<?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>184753</bug_id>
          
          <creation_ts>2018-04-18 13:29:44 -0700</creation_ts>
          <short_desc>Detect system preview links</short_desc>
          <delta_ts>2018-04-18 16:04:58 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1415684</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-04-18 13:29:44 -0700</bug_when>
    <thetext>Detect system preview links</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415685</commentid>
    <comment_count>1</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-04-18 13:30:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/39500514&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415689</commentid>
    <comment_count>2</comment_count>
      <attachid>338256</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-04-18 13:34:30 -0700</bug_when>
    <thetext>Created attachment 338256
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415696</commentid>
    <comment_count>3</comment_count>
      <attachid>338260</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-04-18 13:59:59 -0700</bug_when>
    <thetext>Created attachment 338260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415703</commentid>
    <comment_count>4</comment_count>
      <attachid>338260</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2018-04-18 14:07:54 -0700</bug_when>
    <thetext>Comment on attachment 338260
Patch

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

&gt; Source/WebCore/html/HTMLAnchorElement.cpp:388
&gt; +            return (numChildren == 1 || numChildren == 2);

Don&apos;t need the parentheses.

&gt; Source/WebCore/testing/Internals.cpp:4494
&gt; +    return downcast&lt;HTMLAnchorElement&gt;(element).isSystemPreviewLink();

return is&lt;HTMLAnchorElement&gt;(element) &amp;&amp; downcast&lt;HTMLAnchorElement&gt;(element).isSystemPreviewLink();

&gt; LayoutTests/system-preview/detection.html:12
&gt; +        children = link.children;

Single-clause if statement should not use curly braces.

&gt; LayoutTests/system-preview/detection.html:25
&gt; +window.addEventListener(&quot;load&quot;, function () {

() =&gt;

&gt; LayoutTests/system-preview/detection.html:44
&gt; +            addResult(result, &quot;No link.&quot;);

Single-clause else statement should not use curly braces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415738</commentid>
    <comment_count>5</comment_count>
      <attachid>338267</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-04-18 14:59:02 -0700</bug_when>
    <thetext>Created attachment 338267
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415745</commentid>
    <comment_count>6</comment_count>
      <attachid>338260</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-04-18 15:09:04 -0700</bug_when>
    <thetext>Comment on attachment 338260
Patch

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

&gt; Source/WebCore/html/HTMLAnchorElement.cpp:380
&gt; +    // The relList is created on demand, which means that calling relList()
&gt; +    // is only available in a non-const method.

Does this comment describe the new code or the existing code? I think in your patch relList() is const which means it can be called from const and non-const methods.

&gt;&gt; Source/WebCore/html/HTMLAnchorElement.cpp:388
&gt;&gt; +            return (numChildren == 1 || numChildren == 2);
&gt; 
&gt; Don&apos;t need the parentheses.

It can also be written like this:

    auto* child = firstElementChild();
    if (!child || childElementCount() &gt; 2)
        return false;
    return is&lt;HTMLImageElement&gt;(child) || is&lt;HTMLPictureElement&gt;(child);

Or even shorter

    auto* child = firstElementChild();
    return child &amp;&amp; childElementCount() &lt;= 2 &amp;&amp; (is&lt;HTMLImageElement&gt;(child) || is&lt;HTMLPictureElement&gt;(child));

&gt; Source/WebCore/html/HTMLPictureElement.cpp:79
&gt; +bool HTMLPictureElement::isSystemPreviewImage() const

Why this function is named isSystemPreviewImage()? Should not this function be named isSystemPreviewPicture()? Or maybe it is better to remove the element name from all these functions:

isSystemPreviewLink()
isSystemPreviewImage()
isSystemPreviewPicture()

and have a single name for all of them isSystemPreviewable()

&gt; Source/WebCore/testing/Internals.cpp:4504
&gt; +bool Internals::isSystemPreviewLink(Element&amp; element) const
&gt; +{
&gt; +    if (!is&lt;HTMLAnchorElement&gt;(element))
&gt; +        return false;
&gt; +    return downcast&lt;HTMLAnchorElement&gt;(element).isSystemPreviewLink();
&gt; +}
&gt; +
&gt; +bool Internals::isSystemPreviewImage(Element&amp; element) const
&gt; +{
&gt; +    if (is&lt;HTMLImageElement&gt;(element))
&gt; +        return downcast&lt;HTMLImageElement&gt;(element).isSystemPreviewImage();
&gt; +    if (is&lt;HTMLPictureElement&gt;(element))
&gt; +        return downcast&lt;HTMLPictureElement&gt;(element).isSystemPreviewImage();
&gt; +    return false;
&gt; +}

Repeating the casting in the Internals and in HTMLPictureElement and HTMLImageElement may suggest having a virtual function Element::isSystemPreviewable() which returns false. HTMLPictureElement and HTMLImageElement override isSystemPreviewable() by just calling parent-&gt;isSystemPreviewable(). And of course HTMLAnchorElement::isSystemPreviewable() will have the real logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415749</commentid>
    <comment_count>7</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-04-18 15:14:15 -0700</bug_when>
    <thetext>Committed r230788: &lt;https://trac.webkit.org/changeset/230788&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1415763</commentid>
    <comment_count>8</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-04-18 16:04:58 -0700</bug_when>
    <thetext>Thanks Said. I&apos;ll make follow-up fixes.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338256</attachid>
            <date>2018-04-18 13:34:30 -0700</date>
            <delta_ts>2018-04-18 13:59:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184753-20180419063429.patch</filename>
            <type>text/plain</type>
            <size>17774</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQ5NTEyZTMyNjUyZDNj
YzA4NzhiYTM2YTczYmY3ODk3ZjRmZjMwNy4uMzg3MDg3MmJmNjIwZDNiZWU1ZjczNjNmNzNmZWNh
ZDE5NTBmODdmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE4LTA0LTE4ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBEZXRlY3Qgc3lzdGVtIHByZXZp
ZXcgbGlua3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4NDc1MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzk1MDA1MTQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGV0ZWN0IGEgc3BlY2lhbCB0eXBl
IG9mIGxpbmsgYW5jaG9yLCB3aGljaCB3ZSdyZSBjYWxsaW5nIFN5c3RlbSBQcmV2aWV3cy4KKyAg
ICAgICAgVWx0aW1hdGVseSB0aGlzIHdpbGwgYWxsb3cgV2ViS2l0IHRvIHByZXNlbnQgc3VjaCBs
aW5rcyBpbiBhIHNwZWNpYWwKKyAgICAgICAgd2F5LgorCisgICAgICAgIEEgU3lzdGVtIFByZXZp
ZXcgbGluayBpcyBhbiA8YT4gZWxlbWVudCwgd2l0aCBhIHJlbCBhdHRyaWJ1dGUgdGhhdAorICAg
ICAgICBpbmNsdWRlcyAic3lzdGVtLXByZXZpZXciLiBJdCBoYXMgYSBzaW5nbGUgZWxlbWVudCBj
aGlsZCwgd2hpY2ggaXMKKyAgICAgICAgZWl0aGVyIGFuIDxpbWc+IG9yIGEgPHBpY3R1cmU+Lgor
CisgICAgICAgIFRlc3Q6IHN5c3RlbS1wcmV2aWV3L2RldGVjdGlvbi5odG1sCisKKyAgICAgICAg
KiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNo
b3JFbGVtZW50OjpyZWxMaXN0KTogQWRkIGJyYWNlcy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxB
bmNob3JFbGVtZW50Ojppc1N5c3RlbVByZXZpZXdMaW5rIGNvbnN0KTogTmV3CisgICAgICAgIGZ1
bmN0aW9uLiBJIHdhbnRlZCB0aGlzIG1ldGhvZCB0byBiZSBjb25zdCwgc28gSSBjb3VsZG4ndCB1
c2UKKyAgICAgICAgdGhlIHJlbExpc3QoKSBoZWxwZXIuIElmIHRoZSBsaXN0IGhhcyBhbHJlYWR5
IGJlZW4gYnVpbHQsIHRoZW4KKyAgICAgICAgdXNlIGl0LCBvdGhlcndpc2UgaXRlcmF0ZSB0aHJv
dWdoIHRoZSBhdHRyaWJ1dGUuCisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oOgor
CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxJbWFnZUVsZW1lbnQ6OmlzU3lzdGVtUHJldmlld0ltYWdlIGNvbnN0KTogQXNrIHRoZQor
ICAgICAgICBwYXJlbnQgaWYgaXQgaXMgYSBzeXN0ZW0gcHJldmlldyBsaW5rLgorICAgICAgICAq
IGh0bWwvSFRNTEltYWdlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBpY3R1cmVFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQaWN0dXJlRWxlbWVudDo6aXNTeXN0ZW1Q
cmV2aWV3SW1hZ2UgY29uc3QpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxQaWN0dXJlRWxl
bWVudC5oOgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOiBUZXN0aW5nIGhlbHBl
cnMuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnN5c3RlbVByZXZpZXdSZWxUeXBlKToK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aXNTeXN0ZW1QcmV2aWV3TGluayBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmlzU3lzdGVtUHJldmlld0ltYWdlIGNvbnN0
KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmlkbDoKKwogMjAxOC0wNC0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMjk4MzEpOiBDTUQtY2xpY2tpbmcgYW4gaUNsb3Vk
IHdlYiBhcHAgbGluayB1bmV4cGVjdGVkbHkgb3BlbnMgdGhhdCBsaW5rIGluIGEgbmV3IHRhYiBh
bmQgdGhlIGN1cnJlbnQgdGFiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
bmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
Y3BwCmluZGV4IDY0ODY2NGMwZmFiNGUxNjk5ODQ2M2NjNGY1ZDQ0NTRlZDZkOGE2MjEuLmRjMWRm
NzgyODJlY2M0MmQ1NjNkMzMzNmFmYjYyZDVjYmM5NjM4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiSFRN
TENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIkhUTUxQaWN0dXJlRWxlbWVudC5oIgog
I2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5j
bHVkZSAiUGluZ0xvYWRlci5oIgpAQCAtNTIsNiArNTMsMTAgQEAKICNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvU3lz
dGVtUHJldmlld0RldGVjdGlvbi5jcHA+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSFRNTEFuY2hvckVsZW1lbnQpOwpAQCAtMzA2
LDEwICszMTEsMTEgQEAgYm9vbCBIVE1MQW5jaG9yRWxlbWVudDo6aGFzUmVsKFJlbGF0aW9uIHJl
bGF0aW9uKSBjb25zdAogCiBET01Ub2tlbkxpc3QmIEhUTUxBbmNob3JFbGVtZW50OjpyZWxMaXN0
KCkKIHsKLSAgICBpZiAoIW1fcmVsTGlzdCkgCisgICAgaWYgKCFtX3JlbExpc3QpIHsKICAgICAg
ICAgbV9yZWxMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+KCp0aGlzLCBIVE1M
TmFtZXM6OnJlbEF0dHIsIFtdKERvY3VtZW50JiwgU3RyaW5nVmlldyB0b2tlbikgewogICAgICAg
ICAgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UodG9rZW4sICJub3JlZmVycmVyIikg
fHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0b2tlbiwgIm5vb3BlbmVyIik7CiAgICAgICAgIH0p
OworICAgIH0KICAgICByZXR1cm4gKm1fcmVsTGlzdDsKIH0KIApAQCAtMzYyLDYgKzM2OCw1NCBA
QCB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpzZW5kUGluZ3MoY29uc3QgVVJMJiBkZXN0aW5hdGlv
blVSTCkKICAgICAgICAgUGluZ0xvYWRlcjo6c2VuZFBpbmcoKmRvY3VtZW50KCkuZnJhbWUoKSwg
ZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChwaW5nVVJMc1tpXSksIGRlc3RpbmF0aW9uVVJMKTsKIH0K
IAorYm9vbCBIVE1MQW5jaG9yRWxlbWVudDo6aXNTeXN0ZW1QcmV2aWV3TGluaygpIGNvbnN0Cit7
CisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAgICBhdXRvIHN5c3RlbVByZXZpZXdSZWxW
YWx1ZSA9IGdldFN5c3RlbVByZXZpZXdSZWxWYWx1ZSgpOworI2Vsc2UKKyAgICBhdXRvIHN5c3Rl
bVByZXZpZXdSZWxWYWx1ZSA9IFN0cmluZyB7IEFTQ0lJTGl0ZXJhbCgic3lzdGVtLXByZXZpZXci
KSB9OworI2VuZGlmCisKKyAgICAvLyBUaGUgcmVsTGlzdCBpcyBjcmVhdGVkIG9uIGRlbWFuZCwg
d2hpY2ggbWVhbnMgdGhhdCBjYWxsaW5nIHJlbExpc3QoKQorICAgIC8vIGlzIG9ubHkgYXZhaWxh
YmxlIGluIGEgbm9uLWNvbnN0IG1ldGhvZC4KKyAgICBpZiAobV9yZWxMaXN0KSB7CisgICAgICAg
IGlmICghbV9yZWxMaXN0LT5jb250YWlucyhzeXN0ZW1QcmV2aWV3UmVsVmFsdWUpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSB7CisgICAgICAgIFN0cmluZyByZWxBdHRy
ID0gZ2V0QXR0cmlidXRlKEhUTUxOYW1lczo6cmVsQXR0cik7CisgICAgICAgIGJvb2wgZm91bmQg
PSBmYWxzZTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBzdGFydCA9IDA7IDsgKSB7CisgICAgICAg
ICAgICB3aGlsZSAoc3RhcnQgPCByZWxBdHRyLmxlbmd0aCgpICYmIGlzSFRNTFNwYWNlKHJlbEF0
dHJbc3RhcnRdKSkKKyAgICAgICAgICAgICAgICArK3N0YXJ0OworICAgICAgICAgICAgaWYgKHN0
YXJ0ID49IHJlbEF0dHIubGVuZ3RoKCkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICB1bnNpZ25lZCBlbmQgPSBzdGFydCArIDE7CisgICAgICAgICAgICB3aGlsZSAoZW5kIDwg
cmVsQXR0ci5sZW5ndGgoKSAmJiAhaXNIVE1MU3BhY2UocmVsQXR0cltlbmRdKSkKKyAgICAgICAg
ICAgICAgICArK2VuZDsKKworICAgICAgICAgICAgYXV0byB0b2tlbiA9IHJlbEF0dHIuc3Vic3Ry
aW5nKHN0YXJ0LCBlbmQgLSBzdGFydCk7CisgICAgICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShzeXN0ZW1QcmV2aWV3UmVsVmFsdWUsIHRva2VuKSkgeworICAgICAgICAgICAgICAg
IGZvdW5kID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgc3RhcnQgPSBlbmQgKyAxOworICAgICAgICB9CisgICAgICAgIGlmICghZm91
bmQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKGF1dG8qIGNo
aWxkID0gZmlyc3RFbGVtZW50Q2hpbGQoKSkgeworICAgICAgICBpZiAoaXM8SFRNTEltYWdlRWxl
bWVudD4oY2hpbGQpIHx8IGlzPEhUTUxQaWN0dXJlRWxlbWVudD4oY2hpbGQpKSB7CisgICAgICAg
ICAgICBhdXRvIG51bUNoaWxkcmVuID0gY2hpbGRFbGVtZW50Q291bnQoKTsKKyAgICAgICAgICAg
IC8vIEZJWE1FOiBTaG91bGQgb25seSBiZSAxLgorICAgICAgICAgICAgcmV0dXJuIChudW1DaGls
ZHJlbiA9PSAxIHx8IG51bUNoaWxkcmVuID09IDIpOworICAgICAgICB9CisgICAgfQorCisgICAg
cmV0dXJuIGZhbHNlOworfQorCiB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpoYW5kbGVDbGljayhF
dmVudCYgZXZlbnQpCiB7CiAgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAppbmRleCA1NTgxOGQxMGIzMGJmZDBkY2Q1M2E2
ODE1N2RiMzFjZWM1ZWRhNjkyLi4yYTdkNWY5NDMzMmNhMmMxM2M1ZmMzNzMxMzFhODlkZjNkOTA3
ODgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCkBAIC02OCw2ICs2
OCw4IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIERPTVRva2VuTGlzdCYgcmVsTGlz
dCgpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc1N5c3RlbVByZXZpZXdMaW5rKCkgY29u
c3Q7CisKIHByb3RlY3RlZDoKICAgICBIVE1MQW5jaG9yRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5j
cHAKaW5kZXggNjVkOTQwYzRkM2MzOTYwMWJjOWM2MmQ2YmM3ZmJjN2Y4MjVhZmM1My4uNmVhODgy
ZGFjZWQ5NGQ5MThmZGM4ZmQ5NTc2NGFmNzZiODdmNDZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbWFnZUVsZW1lbnQuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQ1NTVmFs
dWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCisjaW5jbHVkZSAiSFRNTEFuY2hvckVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUGFy
c2VySWRpb21zLmgiCkBAIC02NzYsNCArNjc3LDEyIEBAIGJvb2wgSFRNTEltYWdlRWxlbWVudDo6
d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKQogfQogI2VuZGlmCiAKK2Jvb2wgSFRNTElt
YWdlRWxlbWVudDo6aXNTeXN0ZW1QcmV2aWV3SW1hZ2UoKSBjb25zdAoreworICAgIGNvbnN0IGF1
dG8qIHBhcmVudCA9IHBhcmVudEVsZW1lbnQoKTsKKyAgICBpZiAoIWlzPEhUTUxBbmNob3JFbGVt
ZW50PihwYXJlbnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGRvd25jYXN0
PEhUTUxBbmNob3JFbGVtZW50PihwYXJlbnQpLT5pc1N5c3RlbVByZXZpZXdMaW5rKCk7Cit9CisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKaW5kZXggYjM5NmJmZDZkODc5
OGI5YjgzOWY4MjczZTQ0MWI4OWFjMzUxMGEzNC4uZjY0OGZjNmJmNDVkYTJmOWJmNDQ1ZTE0ZWJi
NWIyNmNjNDNkYmE0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKQEAg
LTEwMCw2ICsxMDAsOCBAQCBwdWJsaWM6CiAgICAgSFRNTFBpY3R1cmVFbGVtZW50KiBwaWN0dXJl
RWxlbWVudCgpIGNvbnN0OwogICAgIHZvaWQgc2V0UGljdHVyZUVsZW1lbnQoSFRNTFBpY3R1cmVF
bGVtZW50Kik7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzU3lzdGVtUHJldmlld0ltYWdl
KCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBIVE1MSW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCogPSAwKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuY3BwCmluZGV4IDRjMGFhZGJjNmQ1NmMxZDky
MGE5ODI0MTZiOGRhZmY5NzU3MzNkMmEuLmNiOWRlN2NhNmJkYmE0OGYzZjI2ZDQyYWE4YjJmNTU4
OTM1OTAxNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5jcHAK
QEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJIVE1MUGljdHVyZUVsZW1lbnQuaCIKIAogI2lu
Y2x1ZGUgIkVsZW1lbnRDaGlsZEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiSFRNTEFuY2hvckVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5o
IgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC03NSw1ICs3NiwxMyBAQCBi
b29sIEhUTUxQaWN0dXJlRWxlbWVudDo6dmlld3BvcnRDaGFuZ2VBZmZlY3RlZFBpY3R1cmUoKSBj
b25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBIVE1MUGljdHVyZUVsZW1lbnQ6Omlz
U3lzdGVtUHJldmlld0ltYWdlKCkgY29uc3QKK3sKKyAgICBjb25zdCBhdXRvKiBwYXJlbnQgPSBw
YXJlbnRFbGVtZW50KCk7CisgICAgaWYgKCFpczxIVE1MQW5jaG9yRWxlbWVudD4ocGFyZW50KSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBkb3duY2FzdDxIVE1MQW5jaG9yRWxl
bWVudD4ocGFyZW50KS0+aXNTeXN0ZW1QcmV2aWV3TGluaygpOworfQorCiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5oCmluZGV4IDdlZjZiOTEzNDJhODcyMjRlZmNm
MDk0MWM0YTEzNTVhNGM5ZTFkMWEuLjBkYTRjZTFkMWM0YzExNDFjZTE4OWM3ZTM2NjVkOTRhMTc3
ZTBiZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuaApAQCAtNDYs
NiArNDYsOCBAQCBwdWJsaWM6CiAKICAgICBXZWFrUHRyPEhUTUxQaWN0dXJlRWxlbWVudD4gY3Jl
YXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhpcyk7
IH0KIAorICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNTeXN0ZW1QcmV2aWV3SW1hZ2UoKSBjb25z
dDsKKwogcHJpdmF0ZToKICAgICBIVE1MUGljdHVyZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAy
YmMzODIyZDA2YzY5ZWZhMzg0Yzk0MDZjYmY1YjhjNTBhOGQ0ZWU3Li44NTg0OGRiMDM5ZGZkNTlh
MmMyNmI4ZThkY2QwOTcxNzljNDcwMTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCkBAIC03MiwxMiArNzIsMTQgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRl
ICJHQ09ic2VydmF0aW9uLmgiCiAjaW5jbHVkZSAiR3JpZFBvc2l0aW9uLmgiCisjaW5jbHVkZSAi
SFRNTEFuY2hvckVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxJRnJhbWVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTGlua0VsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MUGljdHVyZUVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MUGx1Z0luRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxQcmVs
b2FkU2Nhbm5lci5oIgogI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCkBAIC0yNjIsNiAr
MjY0LDEwIEBACiAjaW5jbHVkZSAiTW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyLmgiCiAjZW5kaWYK
IAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMv
U3lzdGVtUHJldmlld0RldGVjdGlvbi5jcHA+CisjZW5kaWYKKwogdXNpbmcgSlNDOjpDYWxsRGF0
YTsKIHVzaW5nIEpTQzo6Q2FsbFR5cGU7CiB1c2luZyBKU0M6OkNvZGVCbG9jazsKQEAgLTQ0NzIs
NCArNDQ3OCwyOSBAQCBNb2NrQ3JlZGVudGlhbHNNZXNzZW5nZXImIEludGVybmFsczo6bW9ja0Ny
ZWRlbnRpYWxzTWVzc2VuZ2VyKCkgY29uc3QKIH0KICNlbmRpZgogCitTdHJpbmcgSW50ZXJuYWxz
OjpzeXN0ZW1QcmV2aWV3UmVsVHlwZSgpCit7CisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
KyAgICByZXR1cm4gZ2V0U3lzdGVtUHJldmlld1JlbFZhbHVlKCk7CisjZWxzZQorICAgIHJldHVy
biBBU0NJSUxpdGVyYWwoInN5c3RlbS1wcmV2aWV3Iik7CisjZW5kaWYKK30KKworYm9vbCBJbnRl
cm5hbHM6OmlzU3lzdGVtUHJldmlld0xpbmsoRWxlbWVudCYgZWxlbWVudCkgY29uc3QKK3sKKyAg
ICBpZiAoIWlzPEhUTUxBbmNob3JFbGVtZW50PihlbGVtZW50KSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIHJldHVybiBkb3duY2FzdDxIVE1MQW5jaG9yRWxlbWVudD4oZWxlbWVudCkuaXNT
eXN0ZW1QcmV2aWV3TGluaygpOworfQorCitib29sIEludGVybmFsczo6aXNTeXN0ZW1QcmV2aWV3
SW1hZ2UoRWxlbWVudCYgZWxlbWVudCkgY29uc3QKK3sKKyAgICBpZiAoaXM8SFRNTEltYWdlRWxl
bWVudD4oZWxlbWVudCkpCisgICAgICAgIHJldHVybiBkb3duY2FzdDxIVE1MSW1hZ2VFbGVtZW50
PihlbGVtZW50KS5pc1N5c3RlbVByZXZpZXdJbWFnZSgpOworICAgIGlmIChpczxIVE1MUGljdHVy
ZUVsZW1lbnQ+KGVsZW1lbnQpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8SFRNTFBpY3R1cmVF
bGVtZW50PihlbGVtZW50KS5pc1N5c3RlbVByZXZpZXdJbWFnZSgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKaW5kZXggY2NhM2ZlYTM4NTQzZmU5YzEzNTkwMDYzNDM1ZjVkNTAyYjQ0MDE3Zi4uMzA4NjAx
NGUyZDFiNTcyYmZhZDI5NDRmNDIwYjg2ZDk3NDAxMmVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCkBAIC01NiwxMCArNTYsMTIgQEAgY2xhc3MgRmV0Y2hSZXNwb25zZTsKIGNsYXNz
IEZpbGU7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEdDT2JzZXJ2YXRpb247CitjbGFzcyBIVE1MQW5j
aG9yRWxlbWVudDsKIGNsYXNzIEhUTUxJbWFnZUVsZW1lbnQ7CiBjbGFzcyBIVE1MSW5wdXRFbGVt
ZW50OwogY2xhc3MgSFRNTExpbmtFbGVtZW50OwogY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKK2Ns
YXNzIEhUTUxQaWN0dXJlRWxlbWVudDsKIGNsYXNzIEhUTUxTZWxlY3RFbGVtZW50OwogY2xhc3Mg
SW1hZ2VEYXRhOwogY2xhc3MgSW5zcGVjdG9yU3R1YkZyb250ZW5kOwpAQCAtNjU4LDYgKzY2MCwx
MCBAQCBwdWJsaWM6CiAgICAgTW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyJiBtb2NrQ3JlZGVudGlh
bHNNZXNzZW5nZXIoKSBjb25zdDsKICNlbmRpZgogCisgICAgU3RyaW5nIHN5c3RlbVByZXZpZXdS
ZWxUeXBlKCk7CisgICAgYm9vbCBpc1N5c3RlbVByZXZpZXdMaW5rKEVsZW1lbnQmKSBjb25zdDsK
KyAgICBib29sIGlzU3lzdGVtUHJldmlld0ltYWdlKEVsZW1lbnQmKSBjb25zdDsKKwogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1lbnQmKTsKICAgICBEb2N1bWVudCogY29u
dGV4dERvY3VtZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5k
ZXggMWVlOTJhODVkNjdkOWU1ZmI4NmZmMTc0NjRkMDhmZDcxNjU3YzU2Mi4uYmJiMzU5ZDZkOWU1
NGUzZGYwMjkwMTA0NWRmNWQ2NDYyMDNiMmU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbApAQCAtNTkxLDQgKzU5MSw4IEBAIGVudW0gRXZlbnRUaHJvdHRsaW5nQmVoYXZpb3Ig
ewogICAgIFtFbmFibGVkQXRSdW50aW1lPVdlYkFuaW1hdGlvbnNdIHZvaWQgc2V0VGltZWxpbmVD
dXJyZW50VGltZShBbmltYXRpb25UaW1lbGluZSB0aW1lbGluZSwgZG91YmxlIGN1cnJlbnRUaW1l
KTsKICAgICBbQ29uZGl0aW9uYWw9QVBQTEVfUEFZXSByZWFkb25seSBhdHRyaWJ1dGUgTW9ja1Bh
eW1lbnRDb29yZGluYXRvciBtb2NrUGF5bWVudENvb3JkaW5hdG9yOwogICAgIFtDb25kaXRpb25h
bD1XRUJfQVVUSE5dIHJlYWRvbmx5IGF0dHJpYnV0ZSBNb2NrQ3JlZGVudGlhbHNNZXNzZW5nZXIg
bW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyOworCisgICAgRE9NU3RyaW5nIHN5c3RlbVByZXZpZXdS
ZWxUeXBlKCk7CisgICAgYm9vbGVhbiBpc1N5c3RlbVByZXZpZXdMaW5rKEVsZW1lbnQgZWxlbWVu
dCk7CisgICAgYm9vbGVhbiBpc1N5c3RlbVByZXZpZXdJbWFnZShFbGVtZW50IGVsZW1lbnQpOwog
fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA5Y2MxZWYxOTA5MGI0NjIzMjNjOGNiNjI0YWM1ZWNlNTI2YzI5NjIyLi4wYzRl
MzZiMWYwZTVmZTUwMzUxOTgwYjVmODhlZGFiZDc1NmVkYzNhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTgtMDQtMTggIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAg
IERldGVjdCBzeXN0ZW0gcHJldmlldyBsaW5rcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0NzUzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zOTUw
MDUxND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHN5c3RlbS1wcmV2aWV3L2RldGVjdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHN5c3RlbS1wcmV2aWV3L2RldGVjdGlvbi5odG1sOiBBZGRlZC4KKwogMjAxOC0wNC0xNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMjk4
MzEpOiBDTUQtY2xpY2tpbmcgYW4gaUNsb3VkIHdlYiBhcHAgbGluayB1bmV4cGVjdGVkbHkgb3Bl
bnMgdGhhdCBsaW5rIGluIGEgbmV3IHRhYiBhbmQgdGhlIGN1cnJlbnQgdGFiCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zeXN0ZW0tcHJldmlldy9kZXRlY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvc3lzdGVtLXByZXZpZXcvZGV0ZWN0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jMTg3YzE3OTc2ZWU5MDczNjYxMDBmN2YxYTE1MDU2ZWI5NDE5Y2YxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3lzdGVtLXByZXZpZXcvZGV0ZWN0aW9uLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDM5IEBACitUaGlzIHRlc3Qgb25seSB3b3JrcyBpbiBXS1RSIG9yIERSVC4KKwor
VmFsaWQgc3lzdGVtIHByZXZpZXcKKworIAorUmVzdWx0OiBMaW5rIGVsZW1lbnQgcHJlc2VudC4g
SWRlbnRpZmllZCBhcyBzeXN0ZW0gcHJldmlldy4gQ2hpbGQgMCBpcyBhbiBpbWFnZSBpbnNpZGUg
YSBzeXN0ZW0gcHJldmlldy4KKworVmFsaWQgc3lzdGVtIHByZXZpZXcgKG11bHRpcGxlIHJlbCB2
YWx1ZXMpCisKKyAKK1Jlc3VsdDogTGluayBlbGVtZW50IHByZXNlbnQuIElkZW50aWZpZWQgYXMg
c3lzdGVtIHByZXZpZXcuIENoaWxkIDAgaXMgYW4gaW1hZ2UgaW5zaWRlIGEgc3lzdGVtIHByZXZp
ZXcuCisKK1ZhbGlkIHN5c3RlbSBwcmV2aWV3IChwaWN0dXJlIGNoaWxkKQorCitSZXN1bHQ6IExp
bmsgZWxlbWVudCBwcmVzZW50LiBJZGVudGlmaWVkIGFzIHN5c3RlbSBwcmV2aWV3LiBDaGlsZCAw
IGlzIGFuIGltYWdlIGluc2lkZSBhIHN5c3RlbSBwcmV2aWV3LgorCitJbnZhbGlkIHN5c3RlbSBw
cmV2aWV3ICh3cm9uZyByZWwgdmFsdWUpCisKKyAKK1Jlc3VsdDogTGluayBlbGVtZW50IHByZXNl
bnQuIE5vdCBpZGVudGlmaWVkIGFzIHN5c3RlbSBwcmV2aWV3LiBDaGlsZCAwIGlzIG5vdCBhbiBp
bWFnZSBpbnNpZGUgYSBzeXN0ZW0gcHJldmlldy4KKworSW52YWxpZCBzeXN0ZW0gcHJldmlldyAo
d3JvbmcgY2hpbGRyZW4pCisKK2hlbGxvCitSZXN1bHQ6IExpbmsgZWxlbWVudCBwcmVzZW50LiBO
b3QgaWRlbnRpZmllZCBhcyBzeXN0ZW0gcHJldmlldy4gQ2hpbGQgMCBpcyBub3QgYW4gaW1hZ2Ug
aW5zaWRlIGEgc3lzdGVtIHByZXZpZXcuCisKK0ludmFsaWQgc3lzdGVtIHByZXZpZXcgKHRvbyBt
YW55IGNoaWxkcmVuKQorCitoZWxsbyAgCitSZXN1bHQ6IExpbmsgZWxlbWVudCBwcmVzZW50LiBO
b3QgaWRlbnRpZmllZCBhcyBzeXN0ZW0gcHJldmlldy4gQ2hpbGQgMCBpcyBub3QgYW4gaW1hZ2Ug
aW5zaWRlIGEgc3lzdGVtIHByZXZpZXcuIENoaWxkIDEgaXMgbm90IGFuIGltYWdlIGluc2lkZSBh
IHN5c3RlbSBwcmV2aWV3LgorCitJbnZhbGlkIHN5c3RlbSBwcmV2aWV3IChubyBjaGlsZHJlbikK
KworUmVzdWx0OiBMaW5rIGVsZW1lbnQgcHJlc2VudC4gTm90IGlkZW50aWZpZWQgYXMgc3lzdGVt
IHByZXZpZXcuCisKK0ludmFsaWQgc3lzdGVtIHByZXZpZXcgKGp1c3QgYW4gaW1hZ2UpCisKKwor
UmVzdWx0OiBObyBsaW5rLiBDaGlsZCBpcyBub3QgYW4gaW1hZ2UgaW5zaWRlIGEgc3lzdGVtIHBy
ZXZpZXcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zeXN0ZW0tcHJldmlldy9kZXRlY3Rpb24u
aHRtbCBiL0xheW91dFRlc3RzL3N5c3RlbS1wcmV2aWV3L2RldGVjdGlvbi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBlNTBiN2QyMDkwZDZmM2ZhMzVhMWMzYTc2OTI3OTMwMTNmMTg1ODAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9zeXN0ZW0tcHJldmlldy9kZXRlY3Rpb24uaHRtbApAQCAtMCww
ICsxLDEyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gZ2V0
U3lzdGVtUHJldmlld0RhdGEoaWQpCit7CisgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoaWQpOworICAgIGNvbnN0IGxpbmsgPSBjb250YWluZXIucXVlcnlTZWxl
Y3RvcigiYSIpOworICAgIGxldCBjaGlsZHJlbiA9IFtdOworICAgIGlmIChsaW5rKSB7CisgICAg
ICAgIGNoaWxkcmVuID0gbGluay5jaGlsZHJlbjsKKyAgICB9CisgICAgY29uc3QgcmVzdWx0ID0g
Y29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoInAiKVsxXTsKKyAgICByZXR1cm4gW2xpbmssIGNo
aWxkcmVuLCByZXN1bHRdOworfQorCitmdW5jdGlvbiBhZGRSZXN1bHQocmVzdWx0RWxlbWVudCwg
dHh0KQoreworICAgIHJlc3VsdEVsZW1lbnQudGV4dENvbnRlbnQgKz0gdHh0OworfQorCitjb25z
dCBURVNUUyA9IFsidmFsaWQtMSIsICJ2YWxpZC0yIiwgInZhbGlkLTMiLCAiaW52YWxpZC0xIiwg
ImludmFsaWQtMiIsICJpbnZhbGlkLTMiLCAiaW52YWxpZC00IiwgImludmFsaWQtNSJdOworCit3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGZ1bmN0aW9uICgpIHsKKyAgICBpZiAoIXdp
bmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IHJlbFZhbHVlID0g
aW50ZXJuYWxzLnN5c3RlbVByZXZpZXdSZWxUeXBlKCk7CisgICAgVEVTVFMuZm9yRWFjaChpZCA9
PiB7CisgICAgICAgIGNvbnN0IFtsaW5rLCBjaGlsZHJlbiwgcmVzdWx0XSA9IGdldFN5c3RlbVBy
ZXZpZXdEYXRhKGlkKTsKKyAgICAgICAgaWYgKGxpbmspIHsKKyAgICAgICAgICAgIGFkZFJlc3Vs
dChyZXN1bHQsICJMaW5rIGVsZW1lbnQgcHJlc2VudC4iKTsKKworICAgICAgICAgICAgaWYgKGlk
ICE9ICJpbnZhbGlkLTEiKQorICAgICAgICAgICAgICAgIGxpbmsucmVsICs9ICIgIiArIHJlbFZh
bHVlOworCisgICAgICAgICAgICBpZiAoaW50ZXJuYWxzLmlzU3lzdGVtUHJldmlld0xpbmsobGlu
aykpCisgICAgICAgICAgICAgICAgYWRkUmVzdWx0KHJlc3VsdCwgIiBJZGVudGlmaWVkIGFzIHN5
c3RlbSBwcmV2aWV3LiIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGFkZFJl
c3VsdChyZXN1bHQsICIgTm90IGlkZW50aWZpZWQgYXMgc3lzdGVtIHByZXZpZXcuIik7CisKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFkZFJlc3VsdChyZXN1bHQsICJObyBsaW5rLiIp
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNoaWxkcmVuICYmIGNoaWxkcmVuLmxlbmd0aCA+
IDApIHsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBp
KyspIHsKKyAgICAgICAgICAgICAgICBpZiAoaW50ZXJuYWxzLmlzU3lzdGVtUHJldmlld0ltYWdl
KGNoaWxkcmVuW2ldKSkKKyAgICAgICAgICAgICAgICAgICAgYWRkUmVzdWx0KHJlc3VsdCwgYCBD
aGlsZCAke2l9IGlzIGFuIGltYWdlIGluc2lkZSBhIHN5c3RlbSBwcmV2aWV3LmApOworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgYWRkUmVzdWx0KHJlc3VsdCwgYCBD
aGlsZCAke2l9IGlzIG5vdCBhbiBpbWFnZSBpbnNpZGUgYSBzeXN0ZW0gcHJldmlldy5gKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFNwZWNpZmljIHRlc3QgZm9yIHRo
ZSBjYXNlIHRoYXQgaXMganVzdCBhbiBpbWFnZS4KKyAgICAgICAgaWYgKGlkID09ICJpbnZhbGlk
LTUiKSB7CisgICAgICAgICAgICBjb25zdCBjaGlsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KGlkKS5jaGlsZHJlblswXTsKKyAgICAgICAgICAgIGlmIChpbnRlcm5hbHMuaXNTeXN0ZW1QcmV2
aWV3SW1hZ2UoY2hpbGQpKQorICAgICAgICAgICAgICAgIGFkZFJlc3VsdChyZXN1bHQsIGAgQ2hp
bGQgaXMgYW4gaW1hZ2UgaW5zaWRlIGEgc3lzdGVtIHByZXZpZXcuYCk7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgYWRkUmVzdWx0KHJlc3VsdCwgYCBDaGlsZCBpcyBub3QgYW4g
aW1hZ2UgaW5zaWRlIGEgc3lzdGVtIHByZXZpZXcuYCk7CisgICAgICAgIH0KKyAgICB9KTsKK30s
IGZhbHNlKTsKKzwvc2NyaXB0PgorPHA+VGhpcyB0ZXN0IG9ubHkgd29ya3MgaW4gV0tUUiBvciBE
UlQuPC9wPgorPGRpdiBpZD0idmFsaWQtMSI+Cis8cD5WYWxpZCBzeXN0ZW0gcHJldmlldzwvcD4K
KzxhIGhyZWY9Ii8iIHJlbD0iIj4KKyAgICA8aW1nPgorPC9hPgorPHA+UmVzdWx0OiA8L3A+Cis8
L2Rpdj4KKworPGRpdiBpZD0idmFsaWQtMiI+Cis8cD5WYWxpZCBzeXN0ZW0gcHJldmlldyAobXVs
dGlwbGUgcmVsIHZhbHVlcyk8L3A+Cis8YSBocmVmPSIvIiByZWw9ImZvbyI+CisgICAgPGltZz4K
KzwvYT4KKzxwPlJlc3VsdDogPC9wPgorPC9kaXY+CisKKzxkaXYgaWQ9InZhbGlkLTMiPgorPHA+
VmFsaWQgc3lzdGVtIHByZXZpZXcgKHBpY3R1cmUgY2hpbGQpPC9wPgorPGEgaHJlZj0iLyIgcmVs
PSIiPgorICAgIDxwaWN0dXJlPjwvcGljdHVyZT4KKzwvYT4KKzxwPlJlc3VsdDogPC9wPgorPC9k
aXY+CisKKzxkaXYgaWQ9ImludmFsaWQtMSI+Cis8cD5JbnZhbGlkIHN5c3RlbSBwcmV2aWV3ICh3
cm9uZyByZWwgdmFsdWUpPC9wPgorPGEgaHJlZj0iLyIgcmVsPSIiPgorICAgIDxpbWc+Cis8L2E+
Cis8cD5SZXN1bHQ6IDwvcD4KKzwvZGl2PgorCis8ZGl2IGlkPSJpbnZhbGlkLTIiPgorPHA+SW52
YWxpZCBzeXN0ZW0gcHJldmlldyAod3JvbmcgY2hpbGRyZW4pPC9wPgorPGEgaHJlZj0iLyIgcmVs
PSIiPgorICAgIDxzcGFuPmhlbGxvPC9zcGFuPgorPC9hPgorPHA+UmVzdWx0OiA8L3A+Cis8L2Rp
dj4KKworPGRpdiBpZD0iaW52YWxpZC0zIj4KKzxwPkludmFsaWQgc3lzdGVtIHByZXZpZXcgKHRv
byBtYW55IGNoaWxkcmVuKTwvcD4KKzxhIGhyZWY9Ii8iIHJlbD0iIj4KKyAgICA8c3Bhbj5oZWxs
bzwvc3Bhbj4KKyAgICA8aW1nPgorPC9hPgorPHA+UmVzdWx0OiA8L3A+Cis8L2Rpdj4KKworPGRp
diBpZD0iaW52YWxpZC00Ij4KKzxwPkludmFsaWQgc3lzdGVtIHByZXZpZXcgKG5vIGNoaWxkcmVu
KTwvcD4KKzxhIGhyZWY9Ii8iIHJlbD0iIj4KKzwvYT4KKzxwPlJlc3VsdDogPC9wPgorPC9kaXY+
CisKKzxkaXYgaWQ9ImludmFsaWQtNSI+Cis8cD5JbnZhbGlkIHN5c3RlbSBwcmV2aWV3IChqdXN0
IGFuIGltYWdlKTwvcD4KKzxpbWc+Cis8cD5SZXN1bHQ6IDwvcD4KKzwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338260</attachid>
            <date>2018-04-18 13:59:59 -0700</date>
            <delta_ts>2018-04-18 14:07:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184753-20180419065957.patch</filename>
            <type>text/plain</type>
            <size>17378</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQ5NTEyZTMyNjUyZDNj
YzA4NzhiYTM2YTczYmY3ODk3ZjRmZjMwNy4uNGMxY2ZiNjcwZWRlNGU1OGM2NmM3M2Q2MzhmZTZk
NGUwYjA3ODUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE4LTA0LTE4ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBEZXRlY3Qgc3lzdGVtIHByZXZp
ZXcgbGlua3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4NDc1MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzk1MDA1MTQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGV0ZWN0IGEgc3BlY2lhbCB0eXBl
IG9mIGxpbmsgYW5jaG9yLCB3aGljaCB3ZSdyZSBjYWxsaW5nIFN5c3RlbSBQcmV2aWV3cy4KKyAg
ICAgICAgVWx0aW1hdGVseSB0aGlzIHdpbGwgYWxsb3cgV2ViS2l0IHRvIHByZXNlbnQgc3VjaCBs
aW5rcyBpbiBhIHNwZWNpYWwKKyAgICAgICAgd2F5LgorCisgICAgICAgIEEgU3lzdGVtIFByZXZp
ZXcgbGluayBpcyBhbiA8YT4gZWxlbWVudCwgd2l0aCBhIHJlbCBhdHRyaWJ1dGUgdGhhdAorICAg
ICAgICBpbmNsdWRlcyAic3lzdGVtLXByZXZpZXciLiBJdCBoYXMgYSBzaW5nbGUgZWxlbWVudCBj
aGlsZCwgd2hpY2ggaXMKKyAgICAgICAgZWl0aGVyIGFuIDxpbWc+IG9yIGEgPHBpY3R1cmU+Lgor
CisgICAgICAgIFRlc3Q6IHN5c3RlbS1wcmV2aWV3L2RldGVjdGlvbi5odG1sCisKKyAgICAgICAg
KiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNo
b3JFbGVtZW50OjpyZWxMaXN0KTogQWRkIGJyYWNlcy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxB
bmNob3JFbGVtZW50Ojppc1N5c3RlbVByZXZpZXdMaW5rIGNvbnN0KTogTmV3CisgICAgICAgIGZ1
bmN0aW9uLgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuaDoKKworICAgICAgICAq
IGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VF
bGVtZW50Ojppc1N5c3RlbVByZXZpZXdJbWFnZSBjb25zdCk6IEFzayB0aGUKKyAgICAgICAgcGFy
ZW50IGlmIGl0IGlzIGEgc3lzdGVtIHByZXZpZXcgbGluay4KKyAgICAgICAgKiBodG1sL0hUTUxJ
bWFnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxQaWN0dXJlRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MUGljdHVyZUVsZW1lbnQ6OmlzU3lzdGVtUHJldmlld0ltYWdl
IGNvbnN0KTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuaDoKKwor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDogVGVzdGluZyBoZWxwZXJzLgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzeXN0ZW1QcmV2aWV3UmVsVHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6OmlzU3lzdGVtUHJldmlld0xpbmsgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjppc1N5c3RlbVByZXZpZXdJbWFnZSBjb25zdCk6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6
CisKIDIwMTgtMDQtMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBSRUdSRVNTSU9OIChyMjI5ODMxKTogQ01ELWNsaWNraW5nIGFuIGlDbG91ZCB3ZWIgYXBwIGxp
bmsgdW5leHBlY3RlZGx5IG9wZW5zIHRoYXQgbGluayBpbiBhIG5ldyB0YWIgYW5kIHRoZSBjdXJy
ZW50IHRhYgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCA2
NDg2NjRjMGZhYjRlMTY5OTg0NjNjYzRmNWQ0NDU0ZWQ2ZDhhNjIxLi41YTcxMGYyY2RjOTFjYTYz
M2YyYjVmMGY3YjRhYTNkYTVlMzExNTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxQYXJz
ZXJJZGlvbXMuaCIKKyNpbmNsdWRlICJIVE1MUGljdHVyZUVsZW1lbnQuaCIKICNpbmNsdWRlICJL
ZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBpbmdM
b2FkZXIuaCIKQEAgLTUyLDYgKzUzLDEwIEBACiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKKyNpZiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1N5c3RlbVByZXZpZXdE
ZXRlY3Rpb24uY3BwPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRF9JTVBMKEhUTUxBbmNob3JFbGVtZW50KTsKQEAgLTMwNCwxMiArMzA5LDEz
IEBAIGJvb2wgSFRNTEFuY2hvckVsZW1lbnQ6Omhhc1JlbChSZWxhdGlvbiByZWxhdGlvbikgY29u
c3QKICAgICByZXR1cm4gbV9saW5rUmVsYXRpb25zLmNvbnRhaW5zKHJlbGF0aW9uKTsKIH0KIAot
RE9NVG9rZW5MaXN0JiBIVE1MQW5jaG9yRWxlbWVudDo6cmVsTGlzdCgpCitET01Ub2tlbkxpc3Qm
IEhUTUxBbmNob3JFbGVtZW50OjpyZWxMaXN0KCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcmVsTGlz
dCkgCisgICAgaWYgKCFtX3JlbExpc3QpIHsKICAgICAgICAgbV9yZWxMaXN0ID0gc3RkOjptYWtl
X3VuaXF1ZTxET01Ub2tlbkxpc3Q+KCp0aGlzLCBIVE1MTmFtZXM6OnJlbEF0dHIsIFtdKERvY3Vt
ZW50JiwgU3RyaW5nVmlldyB0b2tlbikgewogICAgICAgICAgICAgcmV0dXJuIGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2UodG9rZW4sICJub3JlZmVycmVyIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZSh0b2tlbiwgIm5vb3BlbmVyIik7CiAgICAgICAgIH0pOworICAgIH0KICAgICByZXR1cm4gKm1f
cmVsTGlzdDsKIH0KIApAQCAtMzYyLDYgKzM2OCwzMCBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50
OjpzZW5kUGluZ3MoY29uc3QgVVJMJiBkZXN0aW5hdGlvblVSTCkKICAgICAgICAgUGluZ0xvYWRl
cjo6c2VuZFBpbmcoKmRvY3VtZW50KCkuZnJhbWUoKSwgZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChw
aW5nVVJMc1tpXSksIGRlc3RpbmF0aW9uVVJMKTsKIH0KIAorYm9vbCBIVE1MQW5jaG9yRWxlbWVu
dDo6aXNTeXN0ZW1QcmV2aWV3TGluaygpIGNvbnN0Cit7CisjaWYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKKyAgICBhdXRvIHN5c3RlbVByZXZpZXdSZWxWYWx1ZSA9IGdldFN5c3RlbVByZXZpZXdS
ZWxWYWx1ZSgpOworI2Vsc2UKKyAgICBhdXRvIHN5c3RlbVByZXZpZXdSZWxWYWx1ZSA9IFN0cmlu
ZyB7IEFTQ0lJTGl0ZXJhbCgic3lzdGVtLXByZXZpZXciKSB9OworI2VuZGlmCisKKyAgICAvLyBU
aGUgcmVsTGlzdCBpcyBjcmVhdGVkIG9uIGRlbWFuZCwgd2hpY2ggbWVhbnMgdGhhdCBjYWxsaW5n
IHJlbExpc3QoKQorICAgIC8vIGlzIG9ubHkgYXZhaWxhYmxlIGluIGEgbm9uLWNvbnN0IG1ldGhv
ZC4KKyAgICBpZiAoIXJlbExpc3QoKS5jb250YWlucyhzeXN0ZW1QcmV2aWV3UmVsVmFsdWUpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoYXV0byogY2hpbGQgPSBmaXJzdEVsZW1l
bnRDaGlsZCgpKSB7CisgICAgICAgIGlmIChpczxIVE1MSW1hZ2VFbGVtZW50PihjaGlsZCkgfHwg
aXM8SFRNTFBpY3R1cmVFbGVtZW50PihjaGlsZCkpIHsKKyAgICAgICAgICAgIGF1dG8gbnVtQ2hp
bGRyZW4gPSBjaGlsZEVsZW1lbnRDb3VudCgpOworICAgICAgICAgICAgLy8gRklYTUU6IFNob3Vs
ZCBvbmx5IGJlIDEuCisgICAgICAgICAgICByZXR1cm4gKG51bUNoaWxkcmVuID09IDEgfHwgbnVt
Q2hpbGRyZW4gPT0gMik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKEV2ZW50JiBldmVudCkKIHsK
ICAgICBldmVudC5zZXREZWZhdWx0SGFuZGxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5oCmluZGV4IDU1ODE4ZDEwYjMwYmZkMGRjZDUzYTY4MTU3ZGIzMWNlYzVlZGE2
OTIuLmY5Y2ZmYzQyOWVlZTBhYTIyZGYzYWNiMTlhYzcxMzRjYzAxZjhmYWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgKQEAgLTY2LDcgKzY2LDkgQEAgcHVibGljOgog
ICAgIFNoYXJlZFN0cmluZ0hhc2ggdmlzaXRlZExpbmtIYXNoKCkgY29uc3Q7CiAgICAgdm9pZCBp
bnZhbGlkYXRlQ2FjaGVkVmlzaXRlZExpbmtIYXNoKCkgeyBtX2NhY2hlZFZpc2l0ZWRMaW5rSGFz
aCA9IDA7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIERPTVRva2VuTGlzdCYgcmVsTGlzdCgpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIERPTVRva2VuTGlzdCYgcmVsTGlzdCgpIGNvbnN0OworCisgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBpc1N5c3RlbVByZXZpZXdMaW5rKCkgY29uc3Q7CiAKIHByb3Rl
Y3RlZDoKICAgICBIVE1MQW5jaG9yRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQmKTsKQEAgLTEwNyw3ICsxMDksNyBAQCBwcml2YXRlOgogICAgIE9wdGlvblNldDxSZWxhdGlv
bj4gbV9saW5rUmVsYXRpb25zOwogICAgIG11dGFibGUgU2hhcmVkU3RyaW5nSGFzaCBtX2NhY2hl
ZFZpc2l0ZWRMaW5rSGFzaDsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxET01Ub2tlbkxpc3Q+IG1f
cmVsTGlzdDsKKyAgICBtdXRhYmxlIHN0ZDo6dW5pcXVlX3B0cjxET01Ub2tlbkxpc3Q+IG1fcmVs
TGlzdDsKIH07CiAKIGlubGluZSBTaGFyZWRTdHJpbmdIYXNoIEhUTUxBbmNob3JFbGVtZW50Ojp2
aXNpdGVkTGlua0hhc2goKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5jcHAKaW5kZXggNjVkOTQwYzRkM2MzOTYwMWJjOWM2MmQ2YmM3ZmJjN2Y4MjVhZmM1My4uNmVh
ODgyZGFjZWQ5NGQ5MThmZGM4ZmQ5NTc2NGFmNzZiODdmNDZmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQ1NT
VmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiRnJh
bWVWaWV3LmgiCisjaW5jbHVkZSAiSFRNTEFuY2hvckVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
UGFyc2VySWRpb21zLmgiCkBAIC02NzYsNCArNjc3LDEyIEBAIGJvb2wgSFRNTEltYWdlRWxlbWVu
dDo6d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMoKQogfQogI2VuZGlmCiAKK2Jvb2wgSFRN
TEltYWdlRWxlbWVudDo6aXNTeXN0ZW1QcmV2aWV3SW1hZ2UoKSBjb25zdAoreworICAgIGNvbnN0
IGF1dG8qIHBhcmVudCA9IHBhcmVudEVsZW1lbnQoKTsKKyAgICBpZiAoIWlzPEhUTUxBbmNob3JF
bGVtZW50PihwYXJlbnQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGRvd25j
YXN0PEhUTUxBbmNob3JFbGVtZW50PihwYXJlbnQpLT5pc1N5c3RlbVByZXZpZXdMaW5rKCk7Cit9
CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgKaW5kZXggYjM5NmJmZDZk
ODc5OGI5YjgzOWY4MjczZTQ0MWI4OWFjMzUxMGEzNC4uZjY0OGZjNmJmNDVkYTJmOWJmNDQ1ZTE0
ZWJiNWIyNmNjNDNkYmE0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1h
Z2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmgK
QEAgLTEwMCw2ICsxMDAsOCBAQCBwdWJsaWM6CiAgICAgSFRNTFBpY3R1cmVFbGVtZW50KiBwaWN0
dXJlRWxlbWVudCgpIGNvbnN0OwogICAgIHZvaWQgc2V0UGljdHVyZUVsZW1lbnQoSFRNTFBpY3R1
cmVFbGVtZW50Kik7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzU3lzdGVtUHJldmlld0lt
YWdlKCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBIVE1MSW1hZ2VFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxlbWVudCogPSAwKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuY3BwCmluZGV4IDRjMGFhZGJjNmQ1NmMx
ZDkyMGE5ODI0MTZiOGRhZmY5NzU3MzNkMmEuLmNiOWRlN2NhNmJkYmE0OGYzZjI2ZDQyYWE4YjJm
NTU4OTM1OTAxNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5j
cHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJIVE1MUGljdHVyZUVsZW1lbnQuaCIKIAog
I2luY2x1ZGUgIkVsZW1lbnRDaGlsZEl0ZXJhdG9yLmgiCisjaW5jbHVkZSAiSFRNTEFuY2hvckVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CkBAIC03NSw1ICs3NiwxMyBA
QCBib29sIEhUTUxQaWN0dXJlRWxlbWVudDo6dmlld3BvcnRDaGFuZ2VBZmZlY3RlZFBpY3R1cmUo
KSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBIVE1MUGljdHVyZUVsZW1lbnQ6
OmlzU3lzdGVtUHJldmlld0ltYWdlKCkgY29uc3QKK3sKKyAgICBjb25zdCBhdXRvKiBwYXJlbnQg
PSBwYXJlbnRFbGVtZW50KCk7CisgICAgaWYgKCFpczxIVE1MQW5jaG9yRWxlbWVudD4ocGFyZW50
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBkb3duY2FzdDxIVE1MQW5jaG9y
RWxlbWVudD4ocGFyZW50KS0+aXNTeXN0ZW1QcmV2aWV3TGluaygpOworfQorCiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5oCmluZGV4IDdlZjZiOTEzNDJhODcyMjRl
ZmNmMDk0MWM0YTEzNTVhNGM5ZTFkMWEuLjBkYTRjZTFkMWM0YzExNDFjZTE4OWM3ZTM2NjVkOTRh
MTc3ZTBiZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuaApAQCAt
NDYsNiArNDYsOCBAQCBwdWJsaWM6CiAKICAgICBXZWFrUHRyPEhUTUxQaWN0dXJlRWxlbWVudD4g
Y3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha0ZhY3RvcnkuY3JlYXRlV2Vha1B0cigqdGhp
cyk7IH0KIAorICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNTeXN0ZW1QcmV2aWV3SW1hZ2UoKSBj
b25zdDsKKwogcHJpdmF0ZToKICAgICBIVE1MUGljdHVyZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRl
eCAyYmMzODIyZDA2YzY5ZWZhMzg0Yzk0MDZjYmY1YjhjNTBhOGQ0ZWU3Li44NTg0OGRiMDM5ZGZk
NTlhMmMyNmI4ZThkY2QwOTcxNzljNDcwMTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCkBAIC03MiwxMiArNzIsMTQgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNs
dWRlICJHQ09ic2VydmF0aW9uLmgiCiAjaW5jbHVkZSAiR3JpZFBvc2l0aW9uLmgiCisjaW5jbHVk
ZSAiSFRNTEFuY2hvckVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxJRnJhbWVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTGlua0Vs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MUGljdHVyZUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUGx1Z0luRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxQ
cmVsb2FkU2Nhbm5lci5oIgogI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCkBAIC0yNjIs
NiArMjY0LDEwIEBACiAjaW5jbHVkZSAiTW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyLmgiCiAjZW5k
aWYKIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlv
bnMvU3lzdGVtUHJldmlld0RldGVjdGlvbi5jcHA+CisjZW5kaWYKKwogdXNpbmcgSlNDOjpDYWxs
RGF0YTsKIHVzaW5nIEpTQzo6Q2FsbFR5cGU7CiB1c2luZyBKU0M6OkNvZGVCbG9jazsKQEAgLTQ0
NzIsNCArNDQ3OCwyOSBAQCBNb2NrQ3JlZGVudGlhbHNNZXNzZW5nZXImIEludGVybmFsczo6bW9j
a0NyZWRlbnRpYWxzTWVzc2VuZ2VyKCkgY29uc3QKIH0KICNlbmRpZgogCitTdHJpbmcgSW50ZXJu
YWxzOjpzeXN0ZW1QcmV2aWV3UmVsVHlwZSgpCit7CisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKKyAgICByZXR1cm4gZ2V0U3lzdGVtUHJldmlld1JlbFZhbHVlKCk7CisjZWxzZQorICAgIHJl
dHVybiBBU0NJSUxpdGVyYWwoInN5c3RlbS1wcmV2aWV3Iik7CisjZW5kaWYKK30KKworYm9vbCBJ
bnRlcm5hbHM6OmlzU3lzdGVtUHJldmlld0xpbmsoRWxlbWVudCYgZWxlbWVudCkgY29uc3QKK3sK
KyAgICBpZiAoIWlzPEhUTUxBbmNob3JFbGVtZW50PihlbGVtZW50KSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIHJldHVybiBkb3duY2FzdDxIVE1MQW5jaG9yRWxlbWVudD4oZWxlbWVudCku
aXNTeXN0ZW1QcmV2aWV3TGluaygpOworfQorCitib29sIEludGVybmFsczo6aXNTeXN0ZW1QcmV2
aWV3SW1hZ2UoRWxlbWVudCYgZWxlbWVudCkgY29uc3QKK3sKKyAgICBpZiAoaXM8SFRNTEltYWdl
RWxlbWVudD4oZWxlbWVudCkpCisgICAgICAgIHJldHVybiBkb3duY2FzdDxIVE1MSW1hZ2VFbGVt
ZW50PihlbGVtZW50KS5pc1N5c3RlbVByZXZpZXdJbWFnZSgpOworICAgIGlmIChpczxIVE1MUGlj
dHVyZUVsZW1lbnQ+KGVsZW1lbnQpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8SFRNTFBpY3R1
cmVFbGVtZW50PihlbGVtZW50KS5pc1N5c3RlbVByZXZpZXdJbWFnZSgpOworICAgIHJldHVybiBm
YWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKaW5kZXggY2NhM2ZlYTM4NTQzZmU5YzEzNTkwMDYzNDM1ZjVkNTAyYjQ0MDE3Zi4uMzA4
NjAxNGUyZDFiNTcyYmZhZDI5NDRmNDIwYjg2ZDk3NDAxMmVhYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCkBAIC01NiwxMCArNTYsMTIgQEAgY2xhc3MgRmV0Y2hSZXNwb25zZTsKIGNs
YXNzIEZpbGU7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEdDT2JzZXJ2YXRpb247CitjbGFzcyBIVE1M
QW5jaG9yRWxlbWVudDsKIGNsYXNzIEhUTUxJbWFnZUVsZW1lbnQ7CiBjbGFzcyBIVE1MSW5wdXRF
bGVtZW50OwogY2xhc3MgSFRNTExpbmtFbGVtZW50OwogY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsK
K2NsYXNzIEhUTUxQaWN0dXJlRWxlbWVudDsKIGNsYXNzIEhUTUxTZWxlY3RFbGVtZW50OwogY2xh
c3MgSW1hZ2VEYXRhOwogY2xhc3MgSW5zcGVjdG9yU3R1YkZyb250ZW5kOwpAQCAtNjU4LDYgKzY2
MCwxMCBAQCBwdWJsaWM6CiAgICAgTW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyJiBtb2NrQ3JlZGVu
dGlhbHNNZXNzZW5nZXIoKSBjb25zdDsKICNlbmRpZgogCisgICAgU3RyaW5nIHN5c3RlbVByZXZp
ZXdSZWxUeXBlKCk7CisgICAgYm9vbCBpc1N5c3RlbVByZXZpZXdMaW5rKEVsZW1lbnQmKSBjb25z
dDsKKyAgICBib29sIGlzU3lzdGVtUHJldmlld0ltYWdlKEVsZW1lbnQmKSBjb25zdDsKKwogcHJp
dmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1lbnQmKTsKICAgICBEb2N1bWVudCog
Y29udGV4dERvY3VtZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
aW5kZXggMWVlOTJhODVkNjdkOWU1ZmI4NmZmMTc0NjRkMDhmZDcxNjU3YzU2Mi4uYmJiMzU5ZDZk
OWU1NGUzZGYwMjkwMTA0NWRmNWQ2NDYyMDNiMmU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbApAQCAtNTkxLDQgKzU5MSw4IEBAIGVudW0gRXZlbnRUaHJvdHRsaW5nQmVoYXZp
b3IgewogICAgIFtFbmFibGVkQXRSdW50aW1lPVdlYkFuaW1hdGlvbnNdIHZvaWQgc2V0VGltZWxp
bmVDdXJyZW50VGltZShBbmltYXRpb25UaW1lbGluZSB0aW1lbGluZSwgZG91YmxlIGN1cnJlbnRU
aW1lKTsKICAgICBbQ29uZGl0aW9uYWw9QVBQTEVfUEFZXSByZWFkb25seSBhdHRyaWJ1dGUgTW9j
a1BheW1lbnRDb29yZGluYXRvciBtb2NrUGF5bWVudENvb3JkaW5hdG9yOwogICAgIFtDb25kaXRp
b25hbD1XRUJfQVVUSE5dIHJlYWRvbmx5IGF0dHJpYnV0ZSBNb2NrQ3JlZGVudGlhbHNNZXNzZW5n
ZXIgbW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyOworCisgICAgRE9NU3RyaW5nIHN5c3RlbVByZXZp
ZXdSZWxUeXBlKCk7CisgICAgYm9vbGVhbiBpc1N5c3RlbVByZXZpZXdMaW5rKEVsZW1lbnQgZWxl
bWVudCk7CisgICAgYm9vbGVhbiBpc1N5c3RlbVByZXZpZXdJbWFnZShFbGVtZW50IGVsZW1lbnQp
OwogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA5Y2MxZWYxOTA5MGI0NjIzMjNjOGNiNjI0YWM1ZWNlNTI2YzI5NjIyLi4w
YzRlMzZiMWYwZTVmZTUwMzUxOTgwYjVmODhlZGFiZDc1NmVkYzNhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTgtMDQtMTggIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAg
ICAgIERldGVjdCBzeXN0ZW0gcHJldmlldyBsaW5rcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0NzUzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8z
OTUwMDUxND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHN5c3RlbS1wcmV2aWV3L2RldGVjdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHN5c3RlbS1wcmV2aWV3L2RldGVjdGlvbi5odG1sOiBBZGRlZC4KKwogMjAxOC0wNC0xNyAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIy
Mjk4MzEpOiBDTUQtY2xpY2tpbmcgYW4gaUNsb3VkIHdlYiBhcHAgbGluayB1bmV4cGVjdGVkbHkg
b3BlbnMgdGhhdCBsaW5rIGluIGEgbmV3IHRhYiBhbmQgdGhlIGN1cnJlbnQgdGFiCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zeXN0ZW0tcHJldmlldy9kZXRlY3Rpb24tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3lzdGVtLXByZXZpZXcvZGV0ZWN0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jMTg3YzE3OTc2ZWU5MDczNjYxMDBmN2YxYTE1MDU2ZWI5NDE5Y2YxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvc3lzdGVtLXByZXZpZXcvZGV0ZWN0aW9uLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDM5IEBACitUaGlzIHRlc3Qgb25seSB3b3JrcyBpbiBXS1RSIG9yIERSVC4K
KworVmFsaWQgc3lzdGVtIHByZXZpZXcKKworIAorUmVzdWx0OiBMaW5rIGVsZW1lbnQgcHJlc2Vu
dC4gSWRlbnRpZmllZCBhcyBzeXN0ZW0gcHJldmlldy4gQ2hpbGQgMCBpcyBhbiBpbWFnZSBpbnNp
ZGUgYSBzeXN0ZW0gcHJldmlldy4KKworVmFsaWQgc3lzdGVtIHByZXZpZXcgKG11bHRpcGxlIHJl
bCB2YWx1ZXMpCisKKyAKK1Jlc3VsdDogTGluayBlbGVtZW50IHByZXNlbnQuIElkZW50aWZpZWQg
YXMgc3lzdGVtIHByZXZpZXcuIENoaWxkIDAgaXMgYW4gaW1hZ2UgaW5zaWRlIGEgc3lzdGVtIHBy
ZXZpZXcuCisKK1ZhbGlkIHN5c3RlbSBwcmV2aWV3IChwaWN0dXJlIGNoaWxkKQorCitSZXN1bHQ6
IExpbmsgZWxlbWVudCBwcmVzZW50LiBJZGVudGlmaWVkIGFzIHN5c3RlbSBwcmV2aWV3LiBDaGls
ZCAwIGlzIGFuIGltYWdlIGluc2lkZSBhIHN5c3RlbSBwcmV2aWV3LgorCitJbnZhbGlkIHN5c3Rl
bSBwcmV2aWV3ICh3cm9uZyByZWwgdmFsdWUpCisKKyAKK1Jlc3VsdDogTGluayBlbGVtZW50IHBy
ZXNlbnQuIE5vdCBpZGVudGlmaWVkIGFzIHN5c3RlbSBwcmV2aWV3LiBDaGlsZCAwIGlzIG5vdCBh
biBpbWFnZSBpbnNpZGUgYSBzeXN0ZW0gcHJldmlldy4KKworSW52YWxpZCBzeXN0ZW0gcHJldmll
dyAod3JvbmcgY2hpbGRyZW4pCisKK2hlbGxvCitSZXN1bHQ6IExpbmsgZWxlbWVudCBwcmVzZW50
LiBOb3QgaWRlbnRpZmllZCBhcyBzeXN0ZW0gcHJldmlldy4gQ2hpbGQgMCBpcyBub3QgYW4gaW1h
Z2UgaW5zaWRlIGEgc3lzdGVtIHByZXZpZXcuCisKK0ludmFsaWQgc3lzdGVtIHByZXZpZXcgKHRv
byBtYW55IGNoaWxkcmVuKQorCitoZWxsbyAgCitSZXN1bHQ6IExpbmsgZWxlbWVudCBwcmVzZW50
LiBOb3QgaWRlbnRpZmllZCBhcyBzeXN0ZW0gcHJldmlldy4gQ2hpbGQgMCBpcyBub3QgYW4gaW1h
Z2UgaW5zaWRlIGEgc3lzdGVtIHByZXZpZXcuIENoaWxkIDEgaXMgbm90IGFuIGltYWdlIGluc2lk
ZSBhIHN5c3RlbSBwcmV2aWV3LgorCitJbnZhbGlkIHN5c3RlbSBwcmV2aWV3IChubyBjaGlsZHJl
bikKKworUmVzdWx0OiBMaW5rIGVsZW1lbnQgcHJlc2VudC4gTm90IGlkZW50aWZpZWQgYXMgc3lz
dGVtIHByZXZpZXcuCisKK0ludmFsaWQgc3lzdGVtIHByZXZpZXcgKGp1c3QgYW4gaW1hZ2UpCisK
KworUmVzdWx0OiBObyBsaW5rLiBDaGlsZCBpcyBub3QgYW4gaW1hZ2UgaW5zaWRlIGEgc3lzdGVt
IHByZXZpZXcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zeXN0ZW0tcHJldmlldy9kZXRlY3Rp
b24uaHRtbCBiL0xheW91dFRlc3RzL3N5c3RlbS1wcmV2aWV3L2RldGVjdGlvbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBlNTBiN2QyMDkwZDZmM2ZhMzVhMWMzYTc2OTI3OTMwMTNmMTg1ODAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zeXN0ZW0tcHJldmlldy9kZXRlY3Rpb24uaHRtbApAQCAt
MCwwICsxLDEyOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24g
Z2V0U3lzdGVtUHJldmlld0RhdGEoaWQpCit7CisgICAgY29uc3QgY29udGFpbmVyID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgIGNvbnN0IGxpbmsgPSBjb250YWluZXIucXVlcnlT
ZWxlY3RvcigiYSIpOworICAgIGxldCBjaGlsZHJlbiA9IFtdOworICAgIGlmIChsaW5rKSB7Cisg
ICAgICAgIGNoaWxkcmVuID0gbGluay5jaGlsZHJlbjsKKyAgICB9CisgICAgY29uc3QgcmVzdWx0
ID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoInAiKVsxXTsKKyAgICByZXR1cm4gW2xpbmss
IGNoaWxkcmVuLCByZXN1bHRdOworfQorCitmdW5jdGlvbiBhZGRSZXN1bHQocmVzdWx0RWxlbWVu
dCwgdHh0KQoreworICAgIHJlc3VsdEVsZW1lbnQudGV4dENvbnRlbnQgKz0gdHh0OworfQorCitj
b25zdCBURVNUUyA9IFsidmFsaWQtMSIsICJ2YWxpZC0yIiwgInZhbGlkLTMiLCAiaW52YWxpZC0x
IiwgImludmFsaWQtMiIsICJpbnZhbGlkLTMiLCAiaW52YWxpZC00IiwgImludmFsaWQtNSJdOwor
Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGZ1bmN0aW9uICgpIHsKKyAgICBpZiAo
IXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IHJlbFZhbHVl
ID0gaW50ZXJuYWxzLnN5c3RlbVByZXZpZXdSZWxUeXBlKCk7CisgICAgVEVTVFMuZm9yRWFjaChp
ZCA9PiB7CisgICAgICAgIGNvbnN0IFtsaW5rLCBjaGlsZHJlbiwgcmVzdWx0XSA9IGdldFN5c3Rl
bVByZXZpZXdEYXRhKGlkKTsKKyAgICAgICAgaWYgKGxpbmspIHsKKyAgICAgICAgICAgIGFkZFJl
c3VsdChyZXN1bHQsICJMaW5rIGVsZW1lbnQgcHJlc2VudC4iKTsKKworICAgICAgICAgICAgaWYg
KGlkICE9ICJpbnZhbGlkLTEiKQorICAgICAgICAgICAgICAgIGxpbmsucmVsICs9ICIgIiArIHJl
bFZhbHVlOworCisgICAgICAgICAgICBpZiAoaW50ZXJuYWxzLmlzU3lzdGVtUHJldmlld0xpbmso
bGluaykpCisgICAgICAgICAgICAgICAgYWRkUmVzdWx0KHJlc3VsdCwgIiBJZGVudGlmaWVkIGFz
IHN5c3RlbSBwcmV2aWV3LiIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGFk
ZFJlc3VsdChyZXN1bHQsICIgTm90IGlkZW50aWZpZWQgYXMgc3lzdGVtIHByZXZpZXcuIik7CisK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFkZFJlc3VsdChyZXN1bHQsICJObyBsaW5r
LiIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNoaWxkcmVuICYmIGNoaWxkcmVuLmxlbmd0
aCA+IDApIHsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3Ro
OyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAoaW50ZXJuYWxzLmlzU3lzdGVtUHJldmlld0lt
YWdlKGNoaWxkcmVuW2ldKSkKKyAgICAgICAgICAgICAgICAgICAgYWRkUmVzdWx0KHJlc3VsdCwg
YCBDaGlsZCAke2l9IGlzIGFuIGltYWdlIGluc2lkZSBhIHN5c3RlbSBwcmV2aWV3LmApOworICAg
ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgYWRkUmVzdWx0KHJlc3VsdCwg
YCBDaGlsZCAke2l9IGlzIG5vdCBhbiBpbWFnZSBpbnNpZGUgYSBzeXN0ZW0gcHJldmlldy5gKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIFNwZWNpZmljIHRlc3QgZm9y
IHRoZSBjYXNlIHRoYXQgaXMganVzdCBhbiBpbWFnZS4KKyAgICAgICAgaWYgKGlkID09ICJpbnZh
bGlkLTUiKSB7CisgICAgICAgICAgICBjb25zdCBjaGlsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKGlkKS5jaGlsZHJlblswXTsKKyAgICAgICAgICAgIGlmIChpbnRlcm5hbHMuaXNTeXN0ZW1Q
cmV2aWV3SW1hZ2UoY2hpbGQpKQorICAgICAgICAgICAgICAgIGFkZFJlc3VsdChyZXN1bHQsIGAg
Q2hpbGQgaXMgYW4gaW1hZ2UgaW5zaWRlIGEgc3lzdGVtIHByZXZpZXcuYCk7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgYWRkUmVzdWx0KHJlc3VsdCwgYCBDaGlsZCBpcyBub3Qg
YW4gaW1hZ2UgaW5zaWRlIGEgc3lzdGVtIHByZXZpZXcuYCk7CisgICAgICAgIH0KKyAgICB9KTsK
K30sIGZhbHNlKTsKKzwvc2NyaXB0PgorPHA+VGhpcyB0ZXN0IG9ubHkgd29ya3MgaW4gV0tUUiBv
ciBEUlQuPC9wPgorPGRpdiBpZD0idmFsaWQtMSI+Cis8cD5WYWxpZCBzeXN0ZW0gcHJldmlldzwv
cD4KKzxhIGhyZWY9Ii8iIHJlbD0iIj4KKyAgICA8aW1nPgorPC9hPgorPHA+UmVzdWx0OiA8L3A+
Cis8L2Rpdj4KKworPGRpdiBpZD0idmFsaWQtMiI+Cis8cD5WYWxpZCBzeXN0ZW0gcHJldmlldyAo
bXVsdGlwbGUgcmVsIHZhbHVlcyk8L3A+Cis8YSBocmVmPSIvIiByZWw9ImZvbyI+CisgICAgPGlt
Zz4KKzwvYT4KKzxwPlJlc3VsdDogPC9wPgorPC9kaXY+CisKKzxkaXYgaWQ9InZhbGlkLTMiPgor
PHA+VmFsaWQgc3lzdGVtIHByZXZpZXcgKHBpY3R1cmUgY2hpbGQpPC9wPgorPGEgaHJlZj0iLyIg
cmVsPSIiPgorICAgIDxwaWN0dXJlPjwvcGljdHVyZT4KKzwvYT4KKzxwPlJlc3VsdDogPC9wPgor
PC9kaXY+CisKKzxkaXYgaWQ9ImludmFsaWQtMSI+Cis8cD5JbnZhbGlkIHN5c3RlbSBwcmV2aWV3
ICh3cm9uZyByZWwgdmFsdWUpPC9wPgorPGEgaHJlZj0iLyIgcmVsPSIiPgorICAgIDxpbWc+Cis8
L2E+Cis8cD5SZXN1bHQ6IDwvcD4KKzwvZGl2PgorCis8ZGl2IGlkPSJpbnZhbGlkLTIiPgorPHA+
SW52YWxpZCBzeXN0ZW0gcHJldmlldyAod3JvbmcgY2hpbGRyZW4pPC9wPgorPGEgaHJlZj0iLyIg
cmVsPSIiPgorICAgIDxzcGFuPmhlbGxvPC9zcGFuPgorPC9hPgorPHA+UmVzdWx0OiA8L3A+Cis8
L2Rpdj4KKworPGRpdiBpZD0iaW52YWxpZC0zIj4KKzxwPkludmFsaWQgc3lzdGVtIHByZXZpZXcg
KHRvbyBtYW55IGNoaWxkcmVuKTwvcD4KKzxhIGhyZWY9Ii8iIHJlbD0iIj4KKyAgICA8c3Bhbj5o
ZWxsbzwvc3Bhbj4KKyAgICA8aW1nPgorPC9hPgorPHA+UmVzdWx0OiA8L3A+Cis8L2Rpdj4KKwor
PGRpdiBpZD0iaW52YWxpZC00Ij4KKzxwPkludmFsaWQgc3lzdGVtIHByZXZpZXcgKG5vIGNoaWxk
cmVuKTwvcD4KKzxhIGhyZWY9Ii8iIHJlbD0iIj4KKzwvYT4KKzxwPlJlc3VsdDogPC9wPgorPC9k
aXY+CisKKzxkaXYgaWQ9ImludmFsaWQtNSI+Cis8cD5JbnZhbGlkIHN5c3RlbSBwcmV2aWV3IChq
dXN0IGFuIGltYWdlKTwvcD4KKzxpbWc+Cis8cD5SZXN1bHQ6IDwvcD4KKzwvZGl2Pgo=
</data>
<flag name="review"
          id="356561"
          type_id="1"
          status="+"
          setter="graouts"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>338267</attachid>
            <date>2018-04-18 14:59:02 -0700</date>
            <delta_ts>2018-04-18 14:59:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184753-20180419075900.patch</filename>
            <type>text/plain</type>
            <size>17460</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNzI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQ5NTEyZTMyNjUyZDNj
YzA4NzhiYTM2YTczYmY3ODk3ZjRmZjMwNy4uNjA0OWEzODdjMWJhNmY0YmQ4OWE0OTIyOTRmOTUz
ODNiOTM2MTgyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE4LTA0LTE4ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBEZXRlY3Qgc3lzdGVtIHByZXZp
ZXcgbGlua3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4NDc1MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzk1MDA1MTQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQW50b2luZSBRdWludC4KKworICAgICAgICBEZXRlY3QgYSBzcGVjaWFsIHR5cGUg
b2YgbGluayBhbmNob3IsIHdoaWNoIHdlJ3JlIGNhbGxpbmcgU3lzdGVtIFByZXZpZXdzLgorICAg
ICAgICBVbHRpbWF0ZWx5IHRoaXMgd2lsbCBhbGxvdyBXZWJLaXQgdG8gcHJlc2VudCBzdWNoIGxp
bmtzIGluIGEgc3BlY2lhbAorICAgICAgICB3YXkuCisKKyAgICAgICAgQSBTeXN0ZW0gUHJldmll
dyBsaW5rIGlzIGFuIDxhPiBlbGVtZW50LCB3aXRoIGEgcmVsIGF0dHJpYnV0ZSB0aGF0CisgICAg
ICAgIGluY2x1ZGVzICJzeXN0ZW0tcHJldmlldyIuIEl0IGhhcyBhIHNpbmdsZSBlbGVtZW50IGNo
aWxkLCB3aGljaCBpcworICAgICAgICBlaXRoZXIgYW4gPGltZz4gb3IgYSA8cGljdHVyZT4uCisK
KyAgICAgICAgVGVzdDogc3lzdGVtLXByZXZpZXcvZGV0ZWN0aW9uLmh0bWwKKworICAgICAgICAq
IGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hv
ckVsZW1lbnQ6OnJlbExpc3QpOiBBZGQgYnJhY2VzLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFu
Y2hvckVsZW1lbnQ6OmlzU3lzdGVtUHJldmlld0xpbmsgY29uc3QpOiBOZXcKKyAgICAgICAgZnVu
Y3Rpb24uCisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oOgorCisgICAgICAgICog
aHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVs
ZW1lbnQ6OmlzU3lzdGVtUHJldmlld0ltYWdlIGNvbnN0KTogQXNrIHRoZQorICAgICAgICBwYXJl
bnQgaWYgaXQgaXMgYSBzeXN0ZW0gcHJldmlldyBsaW5rLgorICAgICAgICAqIGh0bWwvSFRNTElt
YWdlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFBpY3R1cmVFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxQaWN0dXJlRWxlbWVudDo6aXNTeXN0ZW1QcmV2aWV3SW1hZ2Ug
Y29uc3QpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxQaWN0dXJlRWxlbWVudC5oOgorCisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOiBUZXN0aW5nIGhlbHBlcnMuCisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbHM6OnN5c3RlbVByZXZpZXdSZWxUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6aXNTeXN0ZW1QcmV2aWV3TGluayBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6OmlzU3lzdGVtUHJldmlld0ltYWdlIGNvbnN0KToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoK
KwogMjAxOC0wNC0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT04gKHIyMjk4MzEpOiBDTUQtY2xpY2tpbmcgYW4gaUNsb3VkIHdlYiBhcHAgbGlu
ayB1bmV4cGVjdGVkbHkgb3BlbnMgdGhhdCBsaW5rIGluIGEgbmV3IHRhYiBhbmQgdGhlIGN1cnJl
bnQgdGFiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IDY0
ODY2NGMwZmFiNGUxNjk5ODQ2M2NjNGY1ZDQ0NTRlZDZkOGE2MjEuLmM1NjM5ZTUxZjFlMjMyZTgw
YWE4YzY2MTVhMTUwNTU1NWM2NmU0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEFuY2hvckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiSFRNTENhbnZhc0VsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNl
cklkaW9tcy5oIgorI2luY2x1ZGUgIkhUTUxQaWN0dXJlRWxlbWVudC5oIgogI2luY2x1ZGUgIktl
eWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUGluZ0xv
YWRlci5oIgpAQCAtNTIsNiArNTMsMTAgQEAKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5l
cy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAorI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvU3lzdGVtUHJldmlld0Rl
dGVjdGlvbi5jcHA+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoSFRNTEFuY2hvckVsZW1lbnQpOwpAQCAtMzA0LDEyICszMDksMTMg
QEAgYm9vbCBIVE1MQW5jaG9yRWxlbWVudDo6aGFzUmVsKFJlbGF0aW9uIHJlbGF0aW9uKSBjb25z
dAogICAgIHJldHVybiBtX2xpbmtSZWxhdGlvbnMuY29udGFpbnMocmVsYXRpb24pOwogfQogCi1E
T01Ub2tlbkxpc3QmIEhUTUxBbmNob3JFbGVtZW50OjpyZWxMaXN0KCkKK0RPTVRva2VuTGlzdCYg
SFRNTEFuY2hvckVsZW1lbnQ6OnJlbExpc3QoKSBjb25zdAogewotICAgIGlmICghbV9yZWxMaXN0
KSAKLSAgICAgICAgbV9yZWxMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+KCp0
aGlzLCBIVE1MTmFtZXM6OnJlbEF0dHIsIFtdKERvY3VtZW50JiwgU3RyaW5nVmlldyB0b2tlbikg
eworICAgIGlmICghbV9yZWxMaXN0KSB7CisgICAgICAgIG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91
bmlxdWU8RE9NVG9rZW5MaXN0Pihjb25zdF9jYXN0PEhUTUxBbmNob3JFbGVtZW50Jj4oKnRoaXMp
LCBIVE1MTmFtZXM6OnJlbEF0dHIsIFtdKERvY3VtZW50JiwgU3RyaW5nVmlldyB0b2tlbikgewog
ICAgICAgICAgICAgcmV0dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UodG9rZW4sICJub3JlZmVy
cmVyIikgfHwgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0b2tlbiwgIm5vb3BlbmVyIik7CiAgICAg
ICAgIH0pOworICAgIH0KICAgICByZXR1cm4gKm1fcmVsTGlzdDsKIH0KIApAQCAtMzYyLDYgKzM2
OCwzMCBAQCB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpzZW5kUGluZ3MoY29uc3QgVVJMJiBkZXN0
aW5hdGlvblVSTCkKICAgICAgICAgUGluZ0xvYWRlcjo6c2VuZFBpbmcoKmRvY3VtZW50KCkuZnJh
bWUoKSwgZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChwaW5nVVJMc1tpXSksIGRlc3RpbmF0aW9uVVJM
KTsKIH0KIAorYm9vbCBIVE1MQW5jaG9yRWxlbWVudDo6aXNTeXN0ZW1QcmV2aWV3TGluaygpIGNv
bnN0Cit7CisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyAgICBhdXRvIHN5c3RlbVByZXZp
ZXdSZWxWYWx1ZSA9IGdldFN5c3RlbVByZXZpZXdSZWxWYWx1ZSgpOworI2Vsc2UKKyAgICBhdXRv
IHN5c3RlbVByZXZpZXdSZWxWYWx1ZSA9IFN0cmluZyB7IEFTQ0lJTGl0ZXJhbCgic3lzdGVtLXBy
ZXZpZXciKSB9OworI2VuZGlmCisKKyAgICAvLyBUaGUgcmVsTGlzdCBpcyBjcmVhdGVkIG9uIGRl
bWFuZCwgd2hpY2ggbWVhbnMgdGhhdCBjYWxsaW5nIHJlbExpc3QoKQorICAgIC8vIGlzIG9ubHkg
YXZhaWxhYmxlIGluIGEgbm9uLWNvbnN0IG1ldGhvZC4KKyAgICBpZiAoIXJlbExpc3QoKS5jb250
YWlucyhzeXN0ZW1QcmV2aWV3UmVsVmFsdWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoYXV0byogY2hpbGQgPSBmaXJzdEVsZW1lbnRDaGlsZCgpKSB7CisgICAgICAgIGlmIChp
czxIVE1MSW1hZ2VFbGVtZW50PihjaGlsZCkgfHwgaXM8SFRNTFBpY3R1cmVFbGVtZW50PihjaGls
ZCkpIHsKKyAgICAgICAgICAgIGF1dG8gbnVtQ2hpbGRyZW4gPSBjaGlsZEVsZW1lbnRDb3VudCgp
OworICAgICAgICAgICAgLy8gRklYTUU6IFNob3VsZCBvbmx5IGJlIDEuCisgICAgICAgICAgICBy
ZXR1cm4gbnVtQ2hpbGRyZW4gPT0gMSB8fCBudW1DaGlsZHJlbiA9PSAyOworICAgICAgICB9Cisg
ICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIEhUTUxBbmNob3JFbGVtZW50Ojpo
YW5kbGVDbGljayhFdmVudCYgZXZlbnQpCiB7CiAgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaAppbmRleCA1NTgxOGQxMGIz
MGJmZDBkY2Q1M2E2ODE1N2RiMzFjZWM1ZWRhNjkyLi5mOWNmZmM0MjllZWUwYWEyMmRmM2FjYjE5
YWM3MTM0Y2MwMWY4ZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5o
CkBAIC02Niw3ICs2Niw5IEBAIHB1YmxpYzoKICAgICBTaGFyZWRTdHJpbmdIYXNoIHZpc2l0ZWRM
aW5rSGFzaCgpIGNvbnN0OwogICAgIHZvaWQgaW52YWxpZGF0ZUNhY2hlZFZpc2l0ZWRMaW5rSGFz
aCgpIHsgbV9jYWNoZWRWaXNpdGVkTGlua0hhc2ggPSAwOyB9CiAKLSAgICBXRUJDT1JFX0VYUE9S
VCBET01Ub2tlbkxpc3QmIHJlbExpc3QoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBET01Ub2tlbkxp
c3QmIHJlbExpc3QoKSBjb25zdDsKKworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNTeXN0ZW1Q
cmV2aWV3TGluaygpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTEFuY2hvckVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkBAIC0xMDcsNyArMTA5LDcgQEAgcHJp
dmF0ZToKICAgICBPcHRpb25TZXQ8UmVsYXRpb24+IG1fbGlua1JlbGF0aW9uczsKICAgICBtdXRh
YmxlIFNoYXJlZFN0cmluZ0hhc2ggbV9jYWNoZWRWaXNpdGVkTGlua0hhc2g7CiAKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8RE9NVG9rZW5MaXN0PiBtX3JlbExpc3Q7CisgICAgbXV0YWJsZSBzdGQ6OnVu
aXF1ZV9wdHI8RE9NVG9rZW5MaXN0PiBtX3JlbExpc3Q7CiB9OwogCiBpbmxpbmUgU2hhcmVkU3Ry
aW5nSGFzaCBIVE1MQW5jaG9yRWxlbWVudDo6dmlzaXRlZExpbmtIYXNoKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDY1ZDk0MGM0ZDNjMzk2MDFi
YzljNjJkNmJjN2ZiYzdmODI1YWZjNTMuLjZlYTg4MmRhY2VkOTRkOTE4ZmRjOGZkOTU3NjRhZjc2
Yjg3ZjQ2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcApAQCAt
MjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJD
YWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkhUTUxBbmNo
b3JFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZv
cm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgpAQCAtNjc2LDQgKzY3
NywxMiBAQCBib29sIEhUTUxJbWFnZUVsZW1lbnQ6OndpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZl
bnRzKCkKIH0KICNlbmRpZgogCitib29sIEhUTUxJbWFnZUVsZW1lbnQ6OmlzU3lzdGVtUHJldmll
d0ltYWdlKCkgY29uc3QKK3sKKyAgICBjb25zdCBhdXRvKiBwYXJlbnQgPSBwYXJlbnRFbGVtZW50
KCk7CisgICAgaWYgKCFpczxIVE1MQW5jaG9yRWxlbWVudD4ocGFyZW50KSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiBkb3duY2FzdDxIVE1MQW5jaG9yRWxlbWVudD4ocGFyZW50
KS0+aXNTeXN0ZW1QcmV2aWV3TGluaygpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElt
YWdlRWxlbWVudC5oCmluZGV4IGIzOTZiZmQ2ZDg3OThiOWI4MzlmODI3M2U0NDFiODlhYzM1MTBh
MzQuLmY2NDhmYzZiZjQ1ZGEyZjliZjQ0NWUxNGViYjViMjZjYzQzZGJhNDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5oCkBAIC0xMDAsNiArMTAwLDggQEAgcHVibGljOgog
ICAgIEhUTUxQaWN0dXJlRWxlbWVudCogcGljdHVyZUVsZW1lbnQoKSBjb25zdDsKICAgICB2b2lk
IHNldFBpY3R1cmVFbGVtZW50KEhUTUxQaWN0dXJlRWxlbWVudCopOwogCisgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBpc1N5c3RlbVByZXZpZXdJbWFnZSgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAg
ICAgSFRNTEltYWdlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmLCBIVE1M
Rm9ybUVsZW1lbnQqID0gMCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFBpY3R1cmVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBpY3R1cmVFbGVt
ZW50LmNwcAppbmRleCA0YzBhYWRiYzZkNTZjMWQ5MjBhOTgyNDE2YjhkYWZmOTc1NzMzZDJhLi5j
YjlkZTdjYTZiZGJhNDhmM2YyNmQ0MmFhOGIyZjU1ODkzNTkwMTRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUGljdHVyZUVsZW1lbnQuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVk
ZSAiSFRNTFBpY3R1cmVFbGVtZW50LmgiCiAKICNpbmNsdWRlICJFbGVtZW50Q2hpbGRJdGVyYXRv
ci5oIgorI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdl
RWxlbWVudC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
SW5saW5lcy5oPgpAQCAtNzUsNSArNzYsMTMgQEAgYm9vbCBIVE1MUGljdHVyZUVsZW1lbnQ6OnZp
ZXdwb3J0Q2hhbmdlQWZmZWN0ZWRQaWN0dXJlKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKK2Jvb2wgSFRNTFBpY3R1cmVFbGVtZW50Ojppc1N5c3RlbVByZXZpZXdJbWFnZSgpIGNvbnN0
Cit7CisgICAgY29uc3QgYXV0byogcGFyZW50ID0gcGFyZW50RWxlbWVudCgpOworICAgIGlmICgh
aXM8SFRNTEFuY2hvckVsZW1lbnQ+KHBhcmVudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gZG93bmNhc3Q8SFRNTEFuY2hvckVsZW1lbnQ+KHBhcmVudCktPmlzU3lzdGVtUHJl
dmlld0xpbmsoKTsKK30KKwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQaWN0dXJlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGljdHVyZUVsZW1l
bnQuaAppbmRleCA3ZWY2YjkxMzQyYTg3MjI0ZWZjZjA5NDFjNGExMzU1YTRjOWUxZDFhLi4wZGE0
Y2UxZDFjNGMxMTQxY2UxODljN2UzNjY1ZDk0YTE3N2UwYmVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQaWN0dXJlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFBpY3R1cmVFbGVtZW50LmgKQEAgLTQ2LDYgKzQ2LDggQEAgcHVibGljOgogCiAgICAg
V2Vha1B0cjxIVE1MUGljdHVyZUVsZW1lbnQ+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dl
YWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKnRoaXMpOyB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIGlzU3lzdGVtUHJldmlld0ltYWdlKCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgSFRNTFBp
Y3R1cmVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMmJjMzgyMmQwNmM2OWVmYTM4NGM5NDA2Y2Jm
NWI4YzUwYThkNGVlNy4uMzAzNDRlZTg5MDY4NmZhNmNkOTIyYWZhY2E5OTA4ZTFlMGU3NmFhNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNzIsMTIgKzcyLDE0IEBACiAj
aW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR0NPYnNlcnZhdGlvbi5oIgogI2luY2x1
ZGUgIkdyaWRQb3NpdGlvbi5oIgorI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSUZyYW1lRWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCisjaW5jbHVkZSAiSFRNTFBpY3R1cmVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBsdWdJ
bkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUHJlbG9hZFNjYW5uZXIuaCIKICNpbmNsdWRlICJI
VE1MU2VsZWN0RWxlbWVudC5oIgpAQCAtMjYyLDYgKzI2NCwxMCBAQAogI2luY2x1ZGUgIk1vY2tD
cmVkZW50aWFsc01lc3Nlbmdlci5oIgogI2VuZGlmCiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxf
U0RLKQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1N5c3RlbVByZXZpZXdEZXRlY3Rpb24uY3Bw
PgorI2VuZGlmCisKIHVzaW5nIEpTQzo6Q2FsbERhdGE7CiB1c2luZyBKU0M6OkNhbGxUeXBlOwog
dXNpbmcgSlNDOjpDb2RlQmxvY2s7CkBAIC00NDcyLDQgKzQ0NzgsMjcgQEAgTW9ja0NyZWRlbnRp
YWxzTWVzc2VuZ2VyJiBJbnRlcm5hbHM6Om1vY2tDcmVkZW50aWFsc01lc3NlbmdlcigpIGNvbnN0
CiB9CiAjZW5kaWYKIAorU3RyaW5nIEludGVybmFsczo6c3lzdGVtUHJldmlld1JlbFR5cGUoKQor
eworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisgICAgcmV0dXJuIGdldFN5c3RlbVByZXZp
ZXdSZWxWYWx1ZSgpOworI2Vsc2UKKyAgICByZXR1cm4gQVNDSUlMaXRlcmFsKCJzeXN0ZW0tcHJl
dmlldyIpOworI2VuZGlmCit9CisKK2Jvb2wgSW50ZXJuYWxzOjppc1N5c3RlbVByZXZpZXdMaW5r
KEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzPEhUTUxBbmNob3JFbGVt
ZW50PihlbGVtZW50KSAmJiBkb3duY2FzdDxIVE1MQW5jaG9yRWxlbWVudD4oZWxlbWVudCkuaXNT
eXN0ZW1QcmV2aWV3TGluaygpOworfQorCitib29sIEludGVybmFsczo6aXNTeXN0ZW1QcmV2aWV3
SW1hZ2UoRWxlbWVudCYgZWxlbWVudCkgY29uc3QKK3sKKyAgICBpZiAoaXM8SFRNTEltYWdlRWxl
bWVudD4oZWxlbWVudCkpCisgICAgICAgIHJldHVybiBkb3duY2FzdDxIVE1MSW1hZ2VFbGVtZW50
PihlbGVtZW50KS5pc1N5c3RlbVByZXZpZXdJbWFnZSgpOworICAgIGlmIChpczxIVE1MUGljdHVy
ZUVsZW1lbnQ+KGVsZW1lbnQpKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8SFRNTFBpY3R1cmVF
bGVtZW50PihlbGVtZW50KS5pc1N5c3RlbVByZXZpZXdJbWFnZSgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKaW5kZXggY2NhM2ZlYTM4NTQzZmU5YzEzNTkwMDYzNDM1ZjVkNTAyYjQ0MDE3Zi4uMzA4NjAx
NGUyZDFiNTcyYmZhZDI5NDRmNDIwYjg2ZDk3NDAxMmVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCkBAIC01NiwxMCArNTYsMTIgQEAgY2xhc3MgRmV0Y2hSZXNwb25zZTsKIGNsYXNz
IEZpbGU7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEdDT2JzZXJ2YXRpb247CitjbGFzcyBIVE1MQW5j
aG9yRWxlbWVudDsKIGNsYXNzIEhUTUxJbWFnZUVsZW1lbnQ7CiBjbGFzcyBIVE1MSW5wdXRFbGVt
ZW50OwogY2xhc3MgSFRNTExpbmtFbGVtZW50OwogY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKK2Ns
YXNzIEhUTUxQaWN0dXJlRWxlbWVudDsKIGNsYXNzIEhUTUxTZWxlY3RFbGVtZW50OwogY2xhc3Mg
SW1hZ2VEYXRhOwogY2xhc3MgSW5zcGVjdG9yU3R1YkZyb250ZW5kOwpAQCAtNjU4LDYgKzY2MCwx
MCBAQCBwdWJsaWM6CiAgICAgTW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyJiBtb2NrQ3JlZGVudGlh
bHNNZXNzZW5nZXIoKSBjb25zdDsKICNlbmRpZgogCisgICAgU3RyaW5nIHN5c3RlbVByZXZpZXdS
ZWxUeXBlKCk7CisgICAgYm9vbCBpc1N5c3RlbVByZXZpZXdMaW5rKEVsZW1lbnQmKSBjb25zdDsK
KyAgICBib29sIGlzU3lzdGVtUHJldmlld0ltYWdlKEVsZW1lbnQmKSBjb25zdDsKKwogcHJpdmF0
ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1lbnQmKTsKICAgICBEb2N1bWVudCogY29u
dGV4dERvY3VtZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5k
ZXggMWVlOTJhODVkNjdkOWU1ZmI4NmZmMTc0NjRkMDhmZDcxNjU3YzU2Mi4uYmJiMzU5ZDZkOWU1
NGUzZGYwMjkwMTA0NWRmNWQ2NDYyMDNiMmU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbApAQCAtNTkxLDQgKzU5MSw4IEBAIGVudW0gRXZlbnRUaHJvdHRsaW5nQmVoYXZpb3Ig
ewogICAgIFtFbmFibGVkQXRSdW50aW1lPVdlYkFuaW1hdGlvbnNdIHZvaWQgc2V0VGltZWxpbmVD
dXJyZW50VGltZShBbmltYXRpb25UaW1lbGluZSB0aW1lbGluZSwgZG91YmxlIGN1cnJlbnRUaW1l
KTsKICAgICBbQ29uZGl0aW9uYWw9QVBQTEVfUEFZXSByZWFkb25seSBhdHRyaWJ1dGUgTW9ja1Bh
eW1lbnRDb29yZGluYXRvciBtb2NrUGF5bWVudENvb3JkaW5hdG9yOwogICAgIFtDb25kaXRpb25h
bD1XRUJfQVVUSE5dIHJlYWRvbmx5IGF0dHJpYnV0ZSBNb2NrQ3JlZGVudGlhbHNNZXNzZW5nZXIg
bW9ja0NyZWRlbnRpYWxzTWVzc2VuZ2VyOworCisgICAgRE9NU3RyaW5nIHN5c3RlbVByZXZpZXdS
ZWxUeXBlKCk7CisgICAgYm9vbGVhbiBpc1N5c3RlbVByZXZpZXdMaW5rKEVsZW1lbnQgZWxlbWVu
dCk7CisgICAgYm9vbGVhbiBpc1N5c3RlbVByZXZpZXdJbWFnZShFbGVtZW50IGVsZW1lbnQpOwog
fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA5Y2MxZWYxOTA5MGI0NjIzMjNjOGNiNjI0YWM1ZWNlNTI2YzI5NjIyLi5mNmIx
ODg1MWI0ZDQ5ZDVmZWQ3ODAzOGE0OWVjYmM2ZGMyYjQ1ODNiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTgtMDQtMTggIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAg
IERldGVjdCBzeXN0ZW0gcHJldmlldyBsaW5rcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0NzUzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zOTUw
MDUxND4KKworICAgICAgICBSZXZpZXdlZCBieSBBbnRvaW5lIFF1aW50LgorCisgICAgICAgICog
c3lzdGVtLXByZXZpZXcvZGV0ZWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
c3lzdGVtLXByZXZpZXcvZGV0ZWN0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDE4LTA0LTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjIyOTgz
MSk6IENNRC1jbGlja2luZyBhbiBpQ2xvdWQgd2ViIGFwcCBsaW5rIHVuZXhwZWN0ZWRseSBvcGVu
cyB0aGF0IGxpbmsgaW4gYSBuZXcgdGFiIGFuZCB0aGUgY3VycmVudCB0YWIKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N5c3RlbS1wcmV2aWV3L2RldGVjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9zeXN0ZW0tcHJldmlldy9kZXRlY3Rpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmMxODdjMTc5NzZlZTkwNzM2NjEwMGY3ZjFhMTUwNTZlYjk0MTljZjEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9zeXN0ZW0tcHJldmlldy9kZXRlY3Rpb24tZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMzkgQEAKK1RoaXMgdGVzdCBvbmx5IHdvcmtzIGluIFdLVFIgb3IgRFJULgorCitW
YWxpZCBzeXN0ZW0gcHJldmlldworCisgCitSZXN1bHQ6IExpbmsgZWxlbWVudCBwcmVzZW50LiBJ
ZGVudGlmaWVkIGFzIHN5c3RlbSBwcmV2aWV3LiBDaGlsZCAwIGlzIGFuIGltYWdlIGluc2lkZSBh
IHN5c3RlbSBwcmV2aWV3LgorCitWYWxpZCBzeXN0ZW0gcHJldmlldyAobXVsdGlwbGUgcmVsIHZh
bHVlcykKKworIAorUmVzdWx0OiBMaW5rIGVsZW1lbnQgcHJlc2VudC4gSWRlbnRpZmllZCBhcyBz
eXN0ZW0gcHJldmlldy4gQ2hpbGQgMCBpcyBhbiBpbWFnZSBpbnNpZGUgYSBzeXN0ZW0gcHJldmll
dy4KKworVmFsaWQgc3lzdGVtIHByZXZpZXcgKHBpY3R1cmUgY2hpbGQpCisKK1Jlc3VsdDogTGlu
ayBlbGVtZW50IHByZXNlbnQuIElkZW50aWZpZWQgYXMgc3lzdGVtIHByZXZpZXcuIENoaWxkIDAg
aXMgYW4gaW1hZ2UgaW5zaWRlIGEgc3lzdGVtIHByZXZpZXcuCisKK0ludmFsaWQgc3lzdGVtIHBy
ZXZpZXcgKHdyb25nIHJlbCB2YWx1ZSkKKworIAorUmVzdWx0OiBMaW5rIGVsZW1lbnQgcHJlc2Vu
dC4gTm90IGlkZW50aWZpZWQgYXMgc3lzdGVtIHByZXZpZXcuIENoaWxkIDAgaXMgbm90IGFuIGlt
YWdlIGluc2lkZSBhIHN5c3RlbSBwcmV2aWV3LgorCitJbnZhbGlkIHN5c3RlbSBwcmV2aWV3ICh3
cm9uZyBjaGlsZHJlbikKKworaGVsbG8KK1Jlc3VsdDogTGluayBlbGVtZW50IHByZXNlbnQuIE5v
dCBpZGVudGlmaWVkIGFzIHN5c3RlbSBwcmV2aWV3LiBDaGlsZCAwIGlzIG5vdCBhbiBpbWFnZSBp
bnNpZGUgYSBzeXN0ZW0gcHJldmlldy4KKworSW52YWxpZCBzeXN0ZW0gcHJldmlldyAodG9vIG1h
bnkgY2hpbGRyZW4pCisKK2hlbGxvICAKK1Jlc3VsdDogTGluayBlbGVtZW50IHByZXNlbnQuIE5v
dCBpZGVudGlmaWVkIGFzIHN5c3RlbSBwcmV2aWV3LiBDaGlsZCAwIGlzIG5vdCBhbiBpbWFnZSBp
bnNpZGUgYSBzeXN0ZW0gcHJldmlldy4gQ2hpbGQgMSBpcyBub3QgYW4gaW1hZ2UgaW5zaWRlIGEg
c3lzdGVtIHByZXZpZXcuCisKK0ludmFsaWQgc3lzdGVtIHByZXZpZXcgKG5vIGNoaWxkcmVuKQor
CitSZXN1bHQ6IExpbmsgZWxlbWVudCBwcmVzZW50LiBOb3QgaWRlbnRpZmllZCBhcyBzeXN0ZW0g
cHJldmlldy4KKworSW52YWxpZCBzeXN0ZW0gcHJldmlldyAoanVzdCBhbiBpbWFnZSkKKworCitS
ZXN1bHQ6IE5vIGxpbmsuIENoaWxkIGlzIG5vdCBhbiBpbWFnZSBpbnNpZGUgYSBzeXN0ZW0gcHJl
dmlldy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N5c3RlbS1wcmV2aWV3L2RldGVjdGlvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvc3lzdGVtLXByZXZpZXcvZGV0ZWN0aW9uLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDEwZGI4NjhmNDRiMzg0YjhiZWU4ZDE2ZjhjODYwYjUxNmE2ZTEwMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3N5c3RlbS1wcmV2aWV3L2RldGVjdGlvbi5odG1sCkBAIC0wLDAg
KzEsMTI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBnZXRT
eXN0ZW1QcmV2aWV3RGF0YShpZCkKK3sKKyAgICBjb25zdCBjb250YWluZXIgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChpZCk7CisgICAgY29uc3QgbGluayA9IGNvbnRhaW5lci5xdWVyeVNlbGVj
dG9yKCJhIik7CisgICAgbGV0IGNoaWxkcmVuID0gW107CisgICAgaWYgKGxpbmspCisgICAgICAg
IGNoaWxkcmVuID0gbGluay5jaGlsZHJlbjsKKyAgICBjb25zdCByZXN1bHQgPSBjb250YWluZXIu
cXVlcnlTZWxlY3RvckFsbCgicCIpWzFdOworICAgIHJldHVybiBbbGluaywgY2hpbGRyZW4sIHJl
c3VsdF07Cit9CisKK2Z1bmN0aW9uIGFkZFJlc3VsdChyZXN1bHRFbGVtZW50LCB0eHQpCit7Cisg
ICAgcmVzdWx0RWxlbWVudC50ZXh0Q29udGVudCArPSB0eHQ7Cit9CisKK2NvbnN0IFRFU1RTID0g
WyJ2YWxpZC0xIiwgInZhbGlkLTIiLCAidmFsaWQtMyIsICJpbnZhbGlkLTEiLCAiaW52YWxpZC0y
IiwgImludmFsaWQtMyIsICJpbnZhbGlkLTQiLCAiaW52YWxpZC01Il07CisKK3dpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4geworICAgIGlmICghd2luZG93LmludGVybmFscykK
KyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3QgcmVsVmFsdWUgPSBpbnRlcm5hbHMuc3lzdGVt
UHJldmlld1JlbFR5cGUoKTsKKyAgICBURVNUUy5mb3JFYWNoKGlkID0+IHsKKyAgICAgICAgY29u
c3QgW2xpbmssIGNoaWxkcmVuLCByZXN1bHRdID0gZ2V0U3lzdGVtUHJldmlld0RhdGEoaWQpOwor
ICAgICAgICBpZiAobGluaykgeworICAgICAgICAgICAgYWRkUmVzdWx0KHJlc3VsdCwgIkxpbmsg
ZWxlbWVudCBwcmVzZW50LiIpOworCisgICAgICAgICAgICBpZiAoaWQgIT0gImludmFsaWQtMSIp
CisgICAgICAgICAgICAgICAgbGluay5yZWwgKz0gIiAiICsgcmVsVmFsdWU7CisKKyAgICAgICAg
ICAgIGlmIChpbnRlcm5hbHMuaXNTeXN0ZW1QcmV2aWV3TGluayhsaW5rKSkKKyAgICAgICAgICAg
ICAgICBhZGRSZXN1bHQocmVzdWx0LCAiIElkZW50aWZpZWQgYXMgc3lzdGVtIHByZXZpZXcuIik7
CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgYWRkUmVzdWx0KHJlc3VsdCwgIiBO
b3QgaWRlbnRpZmllZCBhcyBzeXN0ZW0gcHJldmlldy4iKTsKKworICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgIGFkZFJlc3VsdChyZXN1bHQsICJObyBsaW5rLiIpOworCisgICAgICAgIGlmIChj
aGlsZHJlbiAmJiBjaGlsZHJlbi5sZW5ndGggPiAwKSB7CisgICAgICAgICAgICBmb3IgKGxldCBp
ID0gMDsgaSA8IGNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGlu
dGVybmFscy5pc1N5c3RlbVByZXZpZXdJbWFnZShjaGlsZHJlbltpXSkpCisgICAgICAgICAgICAg
ICAgICAgIGFkZFJlc3VsdChyZXN1bHQsIGAgQ2hpbGQgJHtpfSBpcyBhbiBpbWFnZSBpbnNpZGUg
YSBzeXN0ZW0gcHJldmlldy5gKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIGFkZFJlc3VsdChyZXN1bHQsIGAgQ2hpbGQgJHtpfSBpcyBub3QgYW4gaW1hZ2UgaW5z
aWRlIGEgc3lzdGVtIHByZXZpZXcuYCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAg
ICAgICAvLyBTcGVjaWZpYyB0ZXN0IGZvciB0aGUgY2FzZSB0aGF0IGlzIGp1c3QgYW4gaW1hZ2Uu
CisgICAgICAgIGlmIChpZCA9PSAiaW52YWxpZC01IikgeworICAgICAgICAgICAgY29uc3QgY2hp
bGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hpbGRyZW5bMF07CisgICAgICAgICAg
ICBpZiAoaW50ZXJuYWxzLmlzU3lzdGVtUHJldmlld0ltYWdlKGNoaWxkKSkKKyAgICAgICAgICAg
ICAgICBhZGRSZXN1bHQocmVzdWx0LCBgIENoaWxkIGlzIGFuIGltYWdlIGluc2lkZSBhIHN5c3Rl
bSBwcmV2aWV3LmApOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGFkZFJlc3Vs
dChyZXN1bHQsIGAgQ2hpbGQgaXMgbm90IGFuIGltYWdlIGluc2lkZSBhIHN5c3RlbSBwcmV2aWV3
LmApOworICAgICAgICB9CisgICAgfSk7Cit9LCBmYWxzZSk7Cis8L3NjcmlwdD4KKzxwPlRoaXMg
dGVzdCBvbmx5IHdvcmtzIGluIFdLVFIgb3IgRFJULjwvcD4KKzxkaXYgaWQ9InZhbGlkLTEiPgor
PHA+VmFsaWQgc3lzdGVtIHByZXZpZXc8L3A+Cis8YSBocmVmPSIvIiByZWw9IiI+CisgICAgPGlt
Zz4KKzwvYT4KKzxwPlJlc3VsdDogPC9wPgorPC9kaXY+CisKKzxkaXYgaWQ9InZhbGlkLTIiPgor
PHA+VmFsaWQgc3lzdGVtIHByZXZpZXcgKG11bHRpcGxlIHJlbCB2YWx1ZXMpPC9wPgorPGEgaHJl
Zj0iLyIgcmVsPSJmb28iPgorICAgIDxpbWc+Cis8L2E+Cis8cD5SZXN1bHQ6IDwvcD4KKzwvZGl2
PgorCis8ZGl2IGlkPSJ2YWxpZC0zIj4KKzxwPlZhbGlkIHN5c3RlbSBwcmV2aWV3IChwaWN0dXJl
IGNoaWxkKTwvcD4KKzxhIGhyZWY9Ii8iIHJlbD0iIj4KKyAgICA8cGljdHVyZT48L3BpY3R1cmU+
Cis8L2E+Cis8cD5SZXN1bHQ6IDwvcD4KKzwvZGl2PgorCis8ZGl2IGlkPSJpbnZhbGlkLTEiPgor
PHA+SW52YWxpZCBzeXN0ZW0gcHJldmlldyAod3JvbmcgcmVsIHZhbHVlKTwvcD4KKzxhIGhyZWY9
Ii8iIHJlbD0iIj4KKyAgICA8aW1nPgorPC9hPgorPHA+UmVzdWx0OiA8L3A+Cis8L2Rpdj4KKwor
PGRpdiBpZD0iaW52YWxpZC0yIj4KKzxwPkludmFsaWQgc3lzdGVtIHByZXZpZXcgKHdyb25nIGNo
aWxkcmVuKTwvcD4KKzxhIGhyZWY9Ii8iIHJlbD0iIj4KKyAgICA8c3Bhbj5oZWxsbzwvc3Bhbj4K
KzwvYT4KKzxwPlJlc3VsdDogPC9wPgorPC9kaXY+CisKKzxkaXYgaWQ9ImludmFsaWQtMyI+Cis8
cD5JbnZhbGlkIHN5c3RlbSBwcmV2aWV3ICh0b28gbWFueSBjaGlsZHJlbik8L3A+Cis8YSBocmVm
PSIvIiByZWw9IiI+CisgICAgPHNwYW4+aGVsbG88L3NwYW4+CisgICAgPGltZz4KKzwvYT4KKzxw
PlJlc3VsdDogPC9wPgorPC9kaXY+CisKKzxkaXYgaWQ9ImludmFsaWQtNCI+Cis8cD5JbnZhbGlk
IHN5c3RlbSBwcmV2aWV3IChubyBjaGlsZHJlbik8L3A+Cis8YSBocmVmPSIvIiByZWw9IiI+Cis8
L2E+Cis8cD5SZXN1bHQ6IDwvcD4KKzwvZGl2PgorCis8ZGl2IGlkPSJpbnZhbGlkLTUiPgorPHA+
SW52YWxpZCBzeXN0ZW0gcHJldmlldyAoanVzdCBhbiBpbWFnZSk8L3A+Cis8aW1nPgorPHA+UmVz
dWx0OiA8L3A+Cis8L2Rpdj4K
</data>

          </attachment>
      

    </bug>

</bugzilla>