<?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>203687</bug_id>
          
          <creation_ts>2019-10-31 11:16:31 -0700</creation_ts>
          <short_desc>SVGGeometryElement.getPointAtLength should clamp its argument to [0, length]</short_desc>
          <delta_ts>2019-10-31 14:10:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>200143</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>krit</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1585991</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-10-31 11:16:31 -0700</bug_when>
    <thetext>The spec link is: https://svgwg.org/svg2-draft/types.html#__svg__SVGGeometryElement__getPointAtLength</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1585993</commentid>
    <comment_count>1</comment_count>
      <attachid>382481</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-10-31 11:23:04 -0700</bug_when>
    <thetext>Created attachment 382481
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586018</commentid>
    <comment_count>2</comment_count>
      <attachid>382481</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-10-31 12:37:20 -0700</bug_when>
    <thetext>Comment on attachment 382481
Patch

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

&gt; Source/WebCore/svg/SVGGeometryElement.cpp:64
&gt; +    // Sepc: If current element is a non-rendered element, throw an InvalidStateError.

&quot;Sepc&quot;

&gt; Source/WebCore/svg/SVGGeometryElement.cpp:68
&gt; +    // Sepc: Clamp distance to [0, length].

&quot;Sepc&quot;

&gt; Source/WebCore/svg/SVGGeometryElement.cpp:69
&gt; +    distance = std::min&lt;float&gt;(std::max&lt;float&gt;(distance, 0), getTotalLength());

We have a clampTo() function

&gt; Source/WebCore/svg/SVGGeometryElement.cpp:71
&gt; +    // Sepc: Return a newly created, detached SVGPoint object.

&quot;Sepc&quot;

&gt; Source/WebCore/svg/SVGPathElement.cpp:117
&gt; +    // Sepc: Clamp distance to [0, length].
&gt; +    distance = std::min&lt;float&gt;(std::max&lt;float&gt;(distance, 0), getTotalLength());
&gt; +
&gt; +    // Sepc: Return a newly created, detached SVGPoint object.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586050</commentid>
    <comment_count>3</comment_count>
      <attachid>382493</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-10-31 13:33:34 -0700</bug_when>
    <thetext>Created attachment 382493
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586068</commentid>
    <comment_count>4</comment_count>
      <attachid>382493</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-31 14:09:07 -0700</bug_when>
    <thetext>Comment on attachment 382493
Patch

Clearing flags on attachment: 382493

Committed r251877: &lt;https://trac.webkit.org/changeset/251877&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586069</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-31 14:09:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586070</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-31 14:10:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/56794713&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382481</attachid>
            <date>2019-10-31 11:23:04 -0700</date>
            <delta_ts>2019-10-31 13:33:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203687-20191031112303.patch</filename>
            <type>text/plain</type>
            <size>13406</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MTg1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDE5LTEwLTMxICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgU1ZHR2VvbWV0
cnlFbGVtZW50LmdldFBvaW50QXRMZW5ndGggc2hvdWxkIGNsYW1wIGl0cyBhcmd1bWVudCB0byBb
MCwgbGVuZ3RoXQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAzNjg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlIHNwZWMgbGluayBpczoKKyAgICAgICAgICAgIGh0dHBzOi8vc3Znd2cub3JnL3N2ZzIt
ZHJhZnQvdHlwZXMuaHRtbCNfX3N2Z19fU1ZHR2VvbWV0cnlFbGVtZW50X19nZXRQb2ludEF0TGVu
Z3RoCisKKyAgICAgICAgLS0gRml4IHRoZSBTVkdHZW9tZXRyeUVsZW1lbnQuaWRsIHRvIG1hdGNo
IHRoZSBzcGVjcy4KKyAgICAgICAgLS0gRml4IHRoZSBwYXRoIHV0aWxpdHkgZnVuY3Rpb25zIHRv
IHJldHVybiB6ZXJvcyBpbiBjYXNlIG9mIGFuIGVycm9yLgorICAgICAgICAgICBUaGUgY2FsbGVy
cyBuZXZlciB1c2VkIHRoZSByZXR1cm4gdmFsdWVzLgorCisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdTaGFwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdTaGFwZTo6
Z2V0UG9pbnRBdExlbmd0aCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdTaGFwZS5oOgorICAgICAgICAqIHN2Zy9TVkdHZW9tZXRyeUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHR2VvbWV0cnlFbGVtZW50OjpnZXRQb2ludEF0TGVuZ3RoIGNvbnN0KToK
KyAgICAgICAgKiBzdmcvU1ZHR2VvbWV0cnlFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0dl
b21ldHJ5RWxlbWVudC5pZGw6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpnZXRUb3RhbExlbmd0aCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6Z2V0UG9pbnRBdExlbmd0aCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6Z2V0UGF0aFNlZ0F0TGVuZ3RoIGNv
bnN0KToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZH
UGF0aFV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRTVkdQYXRoU2VnQXRMZW5n
dGhGcm9tU1ZHUGF0aEJ5dGVTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6Z2V0VG90YWxMZW5n
dGhPZlNWR1BhdGhCeXRlU3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OmdldFBvaW50QXRMZW5n
dGhPZlNWR1BhdGhCeXRlU3RyZWFtKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFV0aWxpdGllcy5o
OgorCiAyMDE5LTEwLTMxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0xGQ11bSUZDXSBMaW5lOjpSdW4gc2hvdWxkIG5vdCBob2xkIGEgcmVmZXJlbmNlIHRvIElu
bGluZUl0ZW0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hh
cGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHU2hhcGUuY3BwCShyZXZpc2lvbiAyNTE4NTEpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUzLDEzICszNTMs
MTMgQEAgZmxvYXQgUmVuZGVyU1ZHU2hhcGU6OmdldFRvdGFsTGVuZ3RoKCkgYwogICAgIHJldHVy
biAwOwogfQogCi12b2lkIFJlbmRlclNWR1NoYXBlOjpnZXRQb2ludEF0TGVuZ3RoKEZsb2F0UG9p
bnQmIHBvaW50LCBmbG9hdCBkaXN0YW5jZSkgY29uc3QKK0Zsb2F0UG9pbnQgUmVuZGVyU1ZHU2hh
cGU6OmdldFBvaW50QXRMZW5ndGgoZmxvYXQgZGlzdGFuY2UpIGNvbnN0CiB7CiAgICAgaWYgKCFt
X3BhdGgpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIGJvb2wg
aXNWYWxpZDsKLSAgICBwb2ludCA9IG1fcGF0aC0+cG9pbnRBdExlbmd0aChkaXN0YW5jZSwgaXNW
YWxpZCk7CisgICAgcmV0dXJuIG1fcGF0aC0+cG9pbnRBdExlbmd0aChkaXN0YW5jZSwgaXNWYWxp
ZCk7CiB9CiAKIGJvb2wgUmVuZGVyU1ZHU2hhcGU6Om5vZGVBdEZsb2F0UG9pbnQoY29uc3QgSGl0
VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgY29uc3QgRmxvYXRQ
b2ludCYgcG9pbnRJblBhcmVudCwgSGl0VGVzdEFjdGlvbiBoaXRUZXN0QWN0aW9uKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaAkocmV2aXNp
b24gMjUxODUxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFw
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICBib29sIGlz
UG9pbnRJblN0cm9rZShjb25zdCBGbG9hdFBvaW50Jik7CiAKICAgICBmbG9hdCBnZXRUb3RhbExl
bmd0aCgpIGNvbnN0OwotICAgIHZvaWQgZ2V0UG9pbnRBdExlbmd0aChGbG9hdFBvaW50JiwgZmxv
YXQgZGlzdGFuY2UpIGNvbnN0OworICAgIEZsb2F0UG9pbnQgZ2V0UG9pbnRBdExlbmd0aChmbG9h
dCBkaXN0YW5jZSkgY29uc3Q7CiAKICAgICBib29sIGhhc1BhdGgoKSBjb25zdCB7IHJldHVybiBt
X3BhdGguZ2V0KCk7IH0KICAgICBQYXRoJiBwYXRoKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHZW9tZXRyeUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHZW9tZXRyeUVsZW1lbnQuY3BwCShyZXZpc2lvbiAyNTE4NTEpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHR2VvbWV0cnlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTUsMTcgKzU1LDIxIEBAIGZsb2F0IFNWR0dlb21ldHJ5RWxlbWVudDo6Z2V0VG90YWxMZW5ndGgK
ICAgICByZXR1cm4gcmVuZGVyZXItPmdldFRvdGFsTGVuZ3RoKCk7CiB9CiAKLVJlZjxTVkdQb2lu
dD4gU1ZHR2VvbWV0cnlFbGVtZW50OjpnZXRQb2ludEF0TGVuZ3RoKGZsb2F0IGRpc3RhbmNlKSBj
b25zdAorRXhjZXB0aW9uT3I8UmVmPFNWR1BvaW50Pj4gU1ZHR2VvbWV0cnlFbGVtZW50OjpnZXRQ
b2ludEF0TGVuZ3RoKGZsb2F0IGRpc3RhbmNlKSBjb25zdAogewotICAgIEZsb2F0UG9pbnQgcG9p
bnQgeyB9OwotCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoKTsKIAogICAgIGF1dG8qIHJlbmRlcmVyID0gZG93bmNhc3Q8UmVuZGVyU1ZHU2hhcGU+
KHRoaXMtPnJlbmRlcmVyKCkpOwotICAgIGlmIChyZW5kZXJlcikKLSAgICAgICAgcmVuZGVyZXIt
PmdldFBvaW50QXRMZW5ndGgocG9pbnQsIGRpc3RhbmNlKTsKKyAgICAKKyAgICAvLyBTZXBjOiBJ
ZiBjdXJyZW50IGVsZW1lbnQgaXMgYSBub24tcmVuZGVyZWQgZWxlbWVudCwgdGhyb3cgYW4gSW52
YWxpZFN0YXRlRXJyb3IuCisgICAgaWYgKCFyZW5kZXJlcikKKyAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CisgICAgCisgICAgLy8gU2VwYzogQ2xhbXAgZGlz
dGFuY2UgdG8gWzAsIGxlbmd0aF0uCisgICAgZGlzdGFuY2UgPSBzdGQ6Om1pbjxmbG9hdD4oc3Rk
OjptYXg8ZmxvYXQ+KGRpc3RhbmNlLCAwKSwgZ2V0VG90YWxMZW5ndGgoKSk7CiAKLSAgICByZXR1
cm4gU1ZHUG9pbnQ6OmNyZWF0ZShwb2ludCk7CisgICAgLy8gU2VwYzogUmV0dXJuIGEgbmV3bHkg
Y3JlYXRlZCwgZGV0YWNoZWQgU1ZHUG9pbnQgb2JqZWN0LgorICAgIHJldHVybiBTVkdQb2ludDo6
Y3JlYXRlKHJlbmRlcmVyLT5nZXRQb2ludEF0TGVuZ3RoKGRpc3RhbmNlKSk7CiB9CiAKIGJvb2wg
U1ZHR2VvbWV0cnlFbGVtZW50Ojppc1BvaW50SW5GaWxsKERPTVBvaW50SW5pdCYmIHBvaW50SW5p
dCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2VvbWV0cnlFbGVtZW50LmgJKHJldmlzaW9u
IDI1MTg1MSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBTVkdHZW9tZXRyeUVsZW1lbnQgOiBw
dWJsaWMgU1ZHR3JhCiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTVkdHZW9tZXRyeUVsZW1l
bnQpOwogcHVibGljOgogICAgIHZpcnR1YWwgZmxvYXQgZ2V0VG90YWxMZW5ndGgoKSBjb25zdDsK
LSAgICB2aXJ0dWFsIFJlZjxTVkdQb2ludD4gZ2V0UG9pbnRBdExlbmd0aChmbG9hdCBkaXN0YW5j
ZSkgY29uc3Q7CisgICAgdmlydHVhbCBFeGNlcHRpb25PcjxSZWY8U1ZHUG9pbnQ+PiBnZXRQb2lu
dEF0TGVuZ3RoKGZsb2F0IGRpc3RhbmNlKSBjb25zdDsKIAogICAgIGJvb2wgaXNQb2ludEluRmls
bChET01Qb2ludEluaXQmJik7CiAgICAgYm9vbCBpc1BvaW50SW5TdHJva2UoRE9NUG9pbnRJbml0
JiYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxlbWVudC5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxlbWVudC5pZGwJKHJl
dmlzaW9uIDI1MTg1MSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVsZW1lbnQu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxMCArMjUsMTAgQEAKIAogLy8gW0V4cG9zZWQ9V2lu
ZG93XQogaW50ZXJmYWNlIFNWR0dlb21ldHJ5RWxlbWVudCA6IFNWR0dyYXBoaWNzRWxlbWVudCB7
Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFNWR0FuaW1hdGVkTnVtYmVyIHBhdGhMZW5ndGg7IC8v
IEZJWE1FOiBTaG91bGQgYmUgW1NhbWVPYmplY3RdLgorICAgIFtTYW1lT2JqZWN0XSByZWFkb25s
eSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1iZXIgcGF0aExlbmd0aDsKIAogICAgIGJvb2xlYW4g
aXNQb2ludEluRmlsbChvcHRpb25hbCBET01Qb2ludEluaXQgcG9pbnQpOwogICAgIGJvb2xlYW4g
aXNQb2ludEluU3Ryb2tlKG9wdGlvbmFsIERPTVBvaW50SW5pdCBwb2ludCk7CiAgICAgdW5yZXN0
cmljdGVkIGZsb2F0IGdldFRvdGFsTGVuZ3RoKCk7Ci0gICAgW05ld09iamVjdF0gU1ZHUG9pbnQg
Z2V0UG9pbnRBdExlbmd0aChmbG9hdCBkaXN0YW5jZSk7CisgICAgW05ld09iamVjdCwgTWF5VGhy
b3dFeGNlcHRpb25dIFNWR1BvaW50IGdldFBvaW50QXRMZW5ndGgoZmxvYXQgZGlzdGFuY2UpOwog
fTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAkocmV2aXNpb24gMjUx
ODUxKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTA2LDIzICsxMDYsMjEgQEAgdm9pZCBTVkdQYXRoRWxlbWVudDo6cmVtb3ZlZEZy
b21BbmNlc3RvcgogCiBmbG9hdCBTVkdQYXRoRWxlbWVudDo6Z2V0VG90YWxMZW5ndGgoKSBjb25z
dAogewotICAgIGZsb2F0IHRvdGFsTGVuZ3RoID0gMDsKLSAgICBnZXRUb3RhbExlbmd0aE9mU1ZH
UGF0aEJ5dGVTdHJlYW0ocGF0aEJ5dGVTdHJlYW0oKSwgdG90YWxMZW5ndGgpOwotICAgIHJldHVy
biB0b3RhbExlbmd0aDsKKyAgICByZXR1cm4gZ2V0VG90YWxMZW5ndGhPZlNWR1BhdGhCeXRlU3Ry
ZWFtKHBhdGhCeXRlU3RyZWFtKCkpOwogfQogCi1SZWY8U1ZHUG9pbnQ+IFNWR1BhdGhFbGVtZW50
OjpnZXRQb2ludEF0TGVuZ3RoKGZsb2F0IGxlbmd0aCkgY29uc3QKK0V4Y2VwdGlvbk9yPFJlZjxT
VkdQb2ludD4+IFNWR1BhdGhFbGVtZW50OjpnZXRQb2ludEF0TGVuZ3RoKGZsb2F0IGRpc3RhbmNl
KSBjb25zdAogewotICAgIEZsb2F0UG9pbnQgcG9pbnQ7Ci0gICAgZ2V0UG9pbnRBdExlbmd0aE9m
U1ZHUGF0aEJ5dGVTdHJlYW0ocGF0aEJ5dGVTdHJlYW0oKSwgbGVuZ3RoLCBwb2ludCk7Ci0gICAg
cmV0dXJuIFNWR1BvaW50OjpjcmVhdGUocG9pbnQpOworICAgIC8vIFNlcGM6IENsYW1wIGRpc3Rh
bmNlIHRvIFswLCBsZW5ndGhdLgorICAgIGRpc3RhbmNlID0gc3RkOjptaW48ZmxvYXQ+KHN0ZDo6
bWF4PGZsb2F0PihkaXN0YW5jZSwgMCksIGdldFRvdGFsTGVuZ3RoKCkpOworCisgICAgLy8gU2Vw
YzogUmV0dXJuIGEgbmV3bHkgY3JlYXRlZCwgZGV0YWNoZWQgU1ZHUG9pbnQgb2JqZWN0LgorICAg
IHJldHVybiBTVkdQb2ludDo6Y3JlYXRlKGdldFBvaW50QXRMZW5ndGhPZlNWR1BhdGhCeXRlU3Ry
ZWFtKHBhdGhCeXRlU3RyZWFtKCksIGRpc3RhbmNlKSk7CiB9CiAKIHVuc2lnbmVkIFNWR1BhdGhF
bGVtZW50OjpnZXRQYXRoU2VnQXRMZW5ndGgoZmxvYXQgbGVuZ3RoKSBjb25zdAogewotICAgIHVu
c2lnbmVkIHBhdGhTZWcgPSAwOwotICAgIGdldFNWR1BhdGhTZWdBdExlbmd0aEZyb21TVkdQYXRo
Qnl0ZVN0cmVhbShwYXRoQnl0ZVN0cmVhbSgpLCBsZW5ndGgsIHBhdGhTZWcpOwotICAgIHJldHVy
biBwYXRoU2VnOworICAgIHJldHVybiBnZXRTVkdQYXRoU2VnQXRMZW5ndGhGcm9tU1ZHUGF0aEJ5
dGVTdHJlYW0ocGF0aEJ5dGVTdHJlYW0oKSwgbGVuZ3RoKTsKIH0KIAogRmxvYXRSZWN0IFNWR1Bh
dGhFbGVtZW50OjpnZXRCQm94KFN0eWxlVXBkYXRlU3RyYXRlZ3kgc3R5bGVVcGRhdGVTdHJhdGVn
eSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCShyZXZpc2lvbiAyNTE4NTEp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtODgsNyArODgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgZmxvYXQgZ2V0VG90YWxMZW5n
dGgoKSBjb25zdCBmaW5hbDsKLSAgICBSZWY8U1ZHUG9pbnQ+IGdldFBvaW50QXRMZW5ndGgoZmxv
YXQgZGlzdGFuY2UpIGNvbnN0IGZpbmFsOworICAgIEV4Y2VwdGlvbk9yPFJlZjxTVkdQb2ludD4+
IGdldFBvaW50QXRMZW5ndGgoZmxvYXQgZGlzdGFuY2UpIGNvbnN0IGZpbmFsOwogICAgIHVuc2ln
bmVkIGdldFBhdGhTZWdBdExlbmd0aChmbG9hdCBkaXN0YW5jZSkgY29uc3Q7CiAKICAgICBGbG9h
dFJlY3QgZ2V0QkJveChTdHlsZVVwZGF0ZVN0cmF0ZWd5ID0gQWxsb3dTdHlsZVVwZGF0ZSkgZmlu
YWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCShyZXZpc2lv
biAyNTE4NTEpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE5Myw0OCArMTkzLDQ1IEBAIGJvb2wgYWRkVG9TVkdQYXRoQnl0ZVN0
cmVhbShTVkdQYXRoQnl0ZVMKICAgICByZXR1cm4gU1ZHUGF0aEJsZW5kZXI6OmFkZEFuaW1hdGVk
UGF0aChmcm9tU291cmNlLCBieVNvdXJjZSwgYnVpbGRlciwgcmVwZWF0Q291bnQpOwogfQogCi1i
b29sIGdldFNWR1BhdGhTZWdBdExlbmd0aEZyb21TVkdQYXRoQnl0ZVN0cmVhbShjb25zdCBTVkdQ
YXRoQnl0ZVN0cmVhbSYgc3RyZWFtLCBmbG9hdCBsZW5ndGgsIHVuc2lnbmVkJiBwYXRoU2VnKQor
dW5zaWduZWQgZ2V0U1ZHUGF0aFNlZ0F0TGVuZ3RoRnJvbVNWR1BhdGhCeXRlU3RyZWFtKGNvbnN0
IFNWR1BhdGhCeXRlU3RyZWFtJiBzdHJlYW0sIGZsb2F0IGxlbmd0aCkKIHsKICAgICBpZiAoc3Ry
ZWFtLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gMDsK
IAogICAgIFBhdGhUcmF2ZXJzYWxTdGF0ZSB0cmF2ZXJzYWxTdGF0ZShQYXRoVHJhdmVyc2FsU3Rh
dGU6OkFjdGlvbjo6U2VnbWVudEF0TGVuZ3RoKTsKICAgICBTVkdQYXRoVHJhdmVyc2FsU3RhdGVC
dWlsZGVyIGJ1aWxkZXIodHJhdmVyc2FsU3RhdGUsIGxlbmd0aCk7CiAKICAgICBTVkdQYXRoQnl0
ZVN0cmVhbVNvdXJjZSBzb3VyY2Uoc3RyZWFtKTsKLSAgICBib29sIG9rID0gU1ZHUGF0aFBhcnNl
cjo6cGFyc2Uoc291cmNlLCBidWlsZGVyKTsKLSAgICBwYXRoU2VnID0gYnVpbGRlci5wYXRoU2Vn
bWVudEluZGV4KCk7Ci0gICAgcmV0dXJuIG9rOworICAgIFNWR1BhdGhQYXJzZXI6OnBhcnNlKHNv
dXJjZSwgYnVpbGRlcik7CisgICAgcmV0dXJuIGJ1aWxkZXIucGF0aFNlZ21lbnRJbmRleCgpOwog
fQogCi1ib29sIGdldFRvdGFsTGVuZ3RoT2ZTVkdQYXRoQnl0ZVN0cmVhbShjb25zdCBTVkdQYXRo
Qnl0ZVN0cmVhbSYgc3RyZWFtLCBmbG9hdCYgdG90YWxMZW5ndGgpCitmbG9hdCBnZXRUb3RhbExl
bmd0aE9mU1ZHUGF0aEJ5dGVTdHJlYW0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIHN0cmVhbSkK
IHsKICAgICBpZiAoc3RyZWFtLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICByZXR1cm4gMDsKIAogICAgIFBhdGhUcmF2ZXJzYWxTdGF0ZSB0cmF2ZXJzYWxTdGF0ZShQ
YXRoVHJhdmVyc2FsU3RhdGU6OkFjdGlvbjo6VG90YWxMZW5ndGgpOwogCiAgICAgU1ZHUGF0aFRy
YXZlcnNhbFN0YXRlQnVpbGRlciBidWlsZGVyKHRyYXZlcnNhbFN0YXRlKTsKIAogICAgIFNWR1Bh
dGhCeXRlU3RyZWFtU291cmNlIHNvdXJjZShzdHJlYW0pOwotICAgIGJvb2wgb2sgPSBTVkdQYXRo
UGFyc2VyOjpwYXJzZShzb3VyY2UsIGJ1aWxkZXIpOwotICAgIHRvdGFsTGVuZ3RoID0gYnVpbGRl
ci50b3RhbExlbmd0aCgpOwotICAgIHJldHVybiBvazsKKyAgICBTVkdQYXRoUGFyc2VyOjpwYXJz
ZShzb3VyY2UsIGJ1aWxkZXIpOworICAgIHJldHVybiBidWlsZGVyLnRvdGFsTGVuZ3RoKCk7CiB9
CiAKLWJvb2wgZ2V0UG9pbnRBdExlbmd0aE9mU1ZHUGF0aEJ5dGVTdHJlYW0oY29uc3QgU1ZHUGF0
aEJ5dGVTdHJlYW0mIHN0cmVhbSwgZmxvYXQgbGVuZ3RoLCBGbG9hdFBvaW50JiBwb2ludCkKK0Zs
b2F0UG9pbnQgZ2V0UG9pbnRBdExlbmd0aE9mU1ZHUGF0aEJ5dGVTdHJlYW0oY29uc3QgU1ZHUGF0
aEJ5dGVTdHJlYW0mIHN0cmVhbSwgZmxvYXQgbGVuZ3RoKQogewogICAgIGlmIChzdHJlYW0uaXNF
bXB0eSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiB7IH07CiAKICAg
ICBQYXRoVHJhdmVyc2FsU3RhdGUgdHJhdmVyc2FsU3RhdGUoUGF0aFRyYXZlcnNhbFN0YXRlOjpB
Y3Rpb246OlZlY3RvckF0TGVuZ3RoKTsKIAogICAgIFNWR1BhdGhUcmF2ZXJzYWxTdGF0ZUJ1aWxk
ZXIgYnVpbGRlcih0cmF2ZXJzYWxTdGF0ZSwgbGVuZ3RoKTsKIAogICAgIFNWR1BhdGhCeXRlU3Ry
ZWFtU291cmNlIHNvdXJjZShzdHJlYW0pOwotICAgIGJvb2wgb2sgPSBTVkdQYXRoUGFyc2VyOjpw
YXJzZShzb3VyY2UsIGJ1aWxkZXIpOwotICAgIHBvaW50ID0gYnVpbGRlci5jdXJyZW50UG9pbnQo
KTsKLSAgICByZXR1cm4gb2s7CisgICAgU1ZHUGF0aFBhcnNlcjo6cGFyc2Uoc291cmNlLCBidWls
ZGVyKTsKKyAgICByZXR1cm4gYnVpbGRlci5jdXJyZW50UG9pbnQoKTsKIH0KIAogfQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5oCShyZXZpc2lvbiAyNTE4NTEpCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFV0aWxpdGllcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01
Myw4ICs1Myw4IEBAIGJvb2wgY2FuQmxlbmRTVkdQYXRoQnl0ZVN0cmVhbXMoY29uc3QgU1YKIGJv
b2wgYnVpbGRBbmltYXRlZFNWR1BhdGhCeXRlU3RyZWFtKGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFt
JiBmcm9tLCBjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYgdG8sIFNWR1BhdGhCeXRlU3RyZWFtJiBy
ZXN1bHQsIGZsb2F0IHByb2dyZXNzKTsKIGJvb2wgYWRkVG9TVkdQYXRoQnl0ZVN0cmVhbShTVkdQ
YXRoQnl0ZVN0cmVhbSYgc3RyZWFtVG9BcHBlbmRUbywgY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0m
IGZyb20sIHVuc2lnbmVkIHJlcGVhdENvdW50ID0gMSk7CiAKLWJvb2wgZ2V0U1ZHUGF0aFNlZ0F0
TGVuZ3RoRnJvbVNWR1BhdGhCeXRlU3RyZWFtKGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiwgZmxv
YXQgbGVuZ3RoLCB1bnNpZ25lZCYgcGF0aFNlZyk7Ci1ib29sIGdldFRvdGFsTGVuZ3RoT2ZTVkdQ
YXRoQnl0ZVN0cmVhbShjb25zdCBTVkdQYXRoQnl0ZVN0cmVhbSYsIGZsb2F0JiB0b3RhbExlbmd0
aCk7Ci1ib29sIGdldFBvaW50QXRMZW5ndGhPZlNWR1BhdGhCeXRlU3RyZWFtKGNvbnN0IFNWR1Bh
dGhCeXRlU3RyZWFtJiwgZmxvYXQgbGVuZ3RoLCBGbG9hdFBvaW50Jik7Cit1bnNpZ25lZCBnZXRT
VkdQYXRoU2VnQXRMZW5ndGhGcm9tU1ZHUGF0aEJ5dGVTdHJlYW0oY29uc3QgU1ZHUGF0aEJ5dGVT
dHJlYW0mLCBmbG9hdCBsZW5ndGgpOworZmxvYXQgZ2V0VG90YWxMZW5ndGhPZlNWR1BhdGhCeXRl
U3RyZWFtKGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJik7CitGbG9hdFBvaW50IGdldFBvaW50QXRM
ZW5ndGhPZlNWR1BhdGhCeXRlU3RyZWFtKGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiwgZmxvYXQg
bGVuZ3RoKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTE4NjMpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTktMTAtMzEg
IFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBT
VkdHZW9tZXRyeUVsZW1lbnQuZ2V0UG9pbnRBdExlbmd0aCBzaG91bGQgY2xhbXAgaXRzIGFyZ3Vt
ZW50IHRvIFswLCBsZW5ndGhdCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDM2ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zdmcvdHlwZXMvc2NyaXB0ZWQvU1ZHR2Vv
bWV0cnlFbGVtZW50LmdldFBvaW50QXRMZW5ndGgtMDEtZXhwZWN0ZWQudHh0OgorCiAyMDE5LTEw
LTMxICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYiBB
bmltYXRpb25zXSBBZGQgc3VwcG9ydCBmb3IgQW5pbWF0aW9uRXZlbnQucHNldWRvRWxlbWVudApJ
bmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdmcvdHlw
ZXMvc2NyaXB0ZWQvU1ZHR2VvbWV0cnlFbGVtZW50LmdldFBvaW50QXRMZW5ndGgtMDEtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc3ZnL3R5cGVzL3NjcmlwdGVkL1NWR0dlb21ldHJ5RWxlbWVudC5nZXRQb2ludEF0
TGVuZ3RoLTAxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjUxODUxKQorKysgTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdmcvdHlwZXMvc2NyaXB0ZWQvU1ZHR2Vv
bWV0cnlFbGVtZW50LmdldFBvaW50QXRMZW5ndGgtMDEtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xLDYgKzEsNiBAQAogCi1GQUlMIFNWR0dlb21ldHJ5RWxlbWVudC5wcm90b3R5cGUu
Z2V0UG9pbnRBdExlbmd0aCBjbGFtcHMgaXRzIGFyZ3VtZW50IHRvIFswLCBsZW5ndGhdLCBsZXNz
IHRoYW4gemVybyAoU1ZHTGluZUVsZW1lbnQpLiBhc3NlcnRfZXF1YWxzOiBzdGFydGluZyB4IGV4
cGVjdGVkIDUwIGJ1dCBnb3QgNDAKLUZBSUwgU1ZHR2VvbWV0cnlFbGVtZW50LnByb3RvdHlwZS5n
ZXRQb2ludEF0TGVuZ3RoIGNsYW1wcyBpdHMgYXJndW1lbnQgdG8gWzAsIGxlbmd0aF0sIGxlc3Mg
dGhhbiB6ZXJvIChTVkdQYXRoRWxlbWVudCkuIGFzc2VydF9lcXVhbHM6IHN0YXJ0aW5nIHggZXhw
ZWN0ZWQgNDAgYnV0IGdvdCAzMAorUEFTUyBTVkdHZW9tZXRyeUVsZW1lbnQucHJvdG90eXBlLmdl
dFBvaW50QXRMZW5ndGggY2xhbXBzIGl0cyBhcmd1bWVudCB0byBbMCwgbGVuZ3RoXSwgbGVzcyB0
aGFuIHplcm8gKFNWR0xpbmVFbGVtZW50KS4gCitQQVNTIFNWR0dlb21ldHJ5RWxlbWVudC5wcm90
b3R5cGUuZ2V0UG9pbnRBdExlbmd0aCBjbGFtcHMgaXRzIGFyZ3VtZW50IHRvIFswLCBsZW5ndGhd
LCBsZXNzIHRoYW4gemVybyAoU1ZHUGF0aEVsZW1lbnQpLiAKIFBBU1MgU1ZHR2VvbWV0cnlFbGVt
ZW50LnByb3RvdHlwZS5nZXRQb2ludEF0TGVuZ3RoIGNsYW1wcyBpdHMgYXJndW1lbnQgdG8gWzAs
IGxlbmd0aF0sIGdyZWF0ZXIgdGhhbiAnbGVuZ3RoJyAoU1ZHTGluZUVsZW1lbnQpLiAKIFBBU1Mg
U1ZHR2VvbWV0cnlFbGVtZW50LnByb3RvdHlwZS5nZXRQb2ludEF0TGVuZ3RoIGNsYW1wcyBpdHMg
YXJndW1lbnQgdG8gWzAsIGxlbmd0aF0sIGdyZWF0ZXIgdGhhbiAnbGVuZ3RoJyAoU1ZHUGF0aEVs
ZW1lbnQpLiAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382493</attachid>
            <date>2019-10-31 13:33:34 -0700</date>
            <delta_ts>2019-10-31 14:09:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203687-20191031133333.patch</filename>
            <type>text/plain</type>
            <size>14152</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxODY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVkMDAwOWZlMTg3NjM1
OTJmNmFiNzY1YWE0MmZkOTY2ODQyMzc3ZC4uZTEwY2I3MjQ3MjgyZmMwMDAyNmUwY2M3OGM3NmVj
ZGIzODYyZmNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE5LTEwLTMxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgU1ZHR2Vv
bWV0cnlFbGVtZW50LmdldFBvaW50QXRMZW5ndGggc2hvdWxkIGNsYW1wIGl0cyBhcmd1bWVudCB0
byBbMCwgbGVuZ3RoXQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAzNjg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAg
ICAgIFRoZSBzcGVjIGxpbmsgaXM6CisgICAgICAgICAgICBodHRwczovL3N2Z3dnLm9yZy9zdmcy
LWRyYWZ0L3R5cGVzLmh0bWwjX19zdmdfX1NWR0dlb21ldHJ5RWxlbWVudF9fZ2V0UG9pbnRBdExl
bmd0aAorCisgICAgICAgIC0tIEZpeCB0aGUgU1ZHR2VvbWV0cnlFbGVtZW50LmlkbCB0byBtYXRj
aCB0aGUgc3BlY3MuCisgICAgICAgIC0tIEZpeCB0aGUgcGF0aCB1dGlsaXR5IGZ1bmN0aW9ucyB0
byByZXR1cm4gemVyb3MgaW4gY2FzZSBvZiBhbiBlcnJvci4KKyAgICAgICAgICAgVGhlIGNhbGxl
cnMgbmV2ZXIgdXNlZCB0aGUgcmV0dXJuIHZhbHVlcy4KKworICAgICAgICAqIHJlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHU2hhcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHU2hhcGU6
OmdldFBvaW50QXRMZW5ndGggY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHU2hhcGUuaDoKKyAgICAgICAgKiBzdmcvU1ZHR2VvbWV0cnlFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0dlb21ldHJ5RWxlbWVudDo6Z2V0UG9pbnRBdExlbmd0aCBjb25zdCk6
CisgICAgICAgICogc3ZnL1NWR0dlb21ldHJ5RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdH
ZW9tZXRyeUVsZW1lbnQuaWRsOgorICAgICAgICAqIHN2Zy9TVkdQYXRoRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6Z2V0VG90YWxMZW5ndGggY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OmdldFBvaW50QXRMZW5ndGggY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OmdldFBhdGhTZWdBdExlbmd0aCBj
b25zdCk6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R1BhdGhVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0U1ZHUGF0aFNlZ0F0TGVu
Z3RoRnJvbVNWR1BhdGhCeXRlU3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OmdldFRvdGFsTGVu
Z3RoT2ZTVkdQYXRoQnl0ZVN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpnZXRQb2ludEF0TGVu
Z3RoT2ZTVkdQYXRoQnl0ZVN0cmVhbSk6CisgICAgICAgICogc3ZnL1NWR1BhdGhVdGlsaXRpZXMu
aDoKKwogMjAxOS0xMC0zMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBJbnRlZ3JhdGUgcmVzaXplIGV2ZW50IHdpdGggSFRNTDUgZXZlbnQgbG9vcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcAppbmRleCAwYTY5
YzYzNzI4ZjkxNmJmZTdhODY5MmRiMGNlMjJmZTExNDJkNmU0Li45OThmZGNiMjc1MTkxNDRhMThh
MjZkNjFhNTQxNGNiZWMyMTRiZjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1NoYXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1NoYXBlLmNwcApAQCAtMzUzLDEzICszNTMsMTMgQEAgZmxvYXQgUmVuZGVy
U1ZHU2hhcGU6OmdldFRvdGFsTGVuZ3RoKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotdm9p
ZCBSZW5kZXJTVkdTaGFwZTo6Z2V0UG9pbnRBdExlbmd0aChGbG9hdFBvaW50JiBwb2ludCwgZmxv
YXQgZGlzdGFuY2UpIGNvbnN0CitGbG9hdFBvaW50IFJlbmRlclNWR1NoYXBlOjpnZXRQb2ludEF0
TGVuZ3RoKGZsb2F0IGRpc3RhbmNlKSBjb25zdAogewogICAgIGlmICghbV9wYXRoKQotICAgICAg
ICByZXR1cm47CisgICAgICAgIHJldHVybiB7IH07CiAKICAgICBib29sIGlzVmFsaWQ7Ci0gICAg
cG9pbnQgPSBtX3BhdGgtPnBvaW50QXRMZW5ndGgoZGlzdGFuY2UsIGlzVmFsaWQpOworICAgIHJl
dHVybiBtX3BhdGgtPnBvaW50QXRMZW5ndGgoZGlzdGFuY2UsIGlzVmFsaWQpOwogfQogCiBib29s
IFJlbmRlclNWR1NoYXBlOjpub2RlQXRGbG9hdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiBy
ZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50SW5Q
YXJlbnQsIEhpdFRlc3RBY3Rpb24gaGl0VGVzdEFjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHU2hhcGUuaAppbmRleCA2NDYzY2ZjOTQ5NTYxYWQ3YmZiMWY3
NWZhM2UyZjczNDkyNDU1ODlkLi43ZjI1MGJmMDQ0NWI1YWNhZDcxY2IyYWU0MDA1ZDk1NzdlMDQz
MTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1No
YXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdTaGFwZS5o
CkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzUG9pbnRJblN0cm9rZShjb25z
dCBGbG9hdFBvaW50Jik7CiAKICAgICBmbG9hdCBnZXRUb3RhbExlbmd0aCgpIGNvbnN0OwotICAg
IHZvaWQgZ2V0UG9pbnRBdExlbmd0aChGbG9hdFBvaW50JiwgZmxvYXQgZGlzdGFuY2UpIGNvbnN0
OworICAgIEZsb2F0UG9pbnQgZ2V0UG9pbnRBdExlbmd0aChmbG9hdCBkaXN0YW5jZSkgY29uc3Q7
CiAKICAgICBib29sIGhhc1BhdGgoKSBjb25zdCB7IHJldHVybiBtX3BhdGguZ2V0KCk7IH0KICAg
ICBQYXRoJiBwYXRoKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdH
ZW9tZXRyeUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxlbWVu
dC5jcHAKaW5kZXggYjNkMzAxYzBmMGY3OTA5YTVjOWI4MTI4OGIxNzA1MDg3YTU5MDZmOC4uZDVl
ZTBjODg4MzgzMDlmODM3YzJiNTcyYmViMGM5Y2U2MjQwMjQ4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0dlb21ldHJ5RWxlbWVudC5jcHAKQEAgLTU1LDE3ICs1NSwyMSBAQCBmbG9hdCBTVkdH
ZW9tZXRyeUVsZW1lbnQ6OmdldFRvdGFsTGVuZ3RoKCkgY29uc3QKICAgICByZXR1cm4gcmVuZGVy
ZXItPmdldFRvdGFsTGVuZ3RoKCk7CiB9CiAKLVJlZjxTVkdQb2ludD4gU1ZHR2VvbWV0cnlFbGVt
ZW50OjpnZXRQb2ludEF0TGVuZ3RoKGZsb2F0IGRpc3RhbmNlKSBjb25zdAorRXhjZXB0aW9uT3I8
UmVmPFNWR1BvaW50Pj4gU1ZHR2VvbWV0cnlFbGVtZW50OjpnZXRQb2ludEF0TGVuZ3RoKGZsb2F0
IGRpc3RhbmNlKSBjb25zdAogewotICAgIEZsb2F0UG9pbnQgcG9pbnQgeyB9OwotCiAgICAgZG9j
dW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIGF1
dG8qIHJlbmRlcmVyID0gZG93bmNhc3Q8UmVuZGVyU1ZHU2hhcGU+KHRoaXMtPnJlbmRlcmVyKCkp
OwotICAgIGlmIChyZW5kZXJlcikKLSAgICAgICAgcmVuZGVyZXItPmdldFBvaW50QXRMZW5ndGgo
cG9pbnQsIGRpc3RhbmNlKTsKKyAgICAKKyAgICAvLyBTcGVjOiBJZiBjdXJyZW50IGVsZW1lbnQg
aXMgYSBub24tcmVuZGVyZWQgZWxlbWVudCwgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3IuCisg
ICAgaWYgKCFyZW5kZXJlcikKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yIH07CisgICAgCisgICAgLy8gU3BlYzogQ2xhbXAgZGlzdGFuY2UgdG8gWzAsIGxlbmd0
aF0uCisgICAgZGlzdGFuY2UgPSBjbGFtcFRvPGZsb2F0PihkaXN0YW5jZSwgMCwgZ2V0VG90YWxM
ZW5ndGgoKSk7CiAKLSAgICByZXR1cm4gU1ZHUG9pbnQ6OmNyZWF0ZShwb2ludCk7CisgICAgLy8g
U3BlYzogUmV0dXJuIGEgbmV3bHkgY3JlYXRlZCwgZGV0YWNoZWQgU1ZHUG9pbnQgb2JqZWN0Lgor
ICAgIHJldHVybiBTVkdQb2ludDo6Y3JlYXRlKHJlbmRlcmVyLT5nZXRQb2ludEF0TGVuZ3RoKGRp
c3RhbmNlKSk7CiB9CiAKIGJvb2wgU1ZHR2VvbWV0cnlFbGVtZW50Ojppc1BvaW50SW5GaWxsKERP
TVBvaW50SW5pdCYmIHBvaW50SW5pdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdHZW9tZXRyeUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVsZW1l
bnQuaAppbmRleCA1NTVjYjE5OTQzYzE4NTA0N2NiMzVlNDBlMzk3ZjYxYjBjZDA2YjYwLi43M2E4
NmQxOTg1OGZlN2M0NWI3M2ZjMzgzYzAwYzAyYzEzN2RkMmUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR2VvbWV0cnlFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dlb21ldHJ5RWxlbWVudC5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIFNWR0dlb21ldHJ5
RWxlbWVudCA6IHB1YmxpYyBTVkdHcmFwaGljc0VsZW1lbnQgewogICAgIFdURl9NQUtFX0lTT19B
TExPQ0FURUQoU1ZHR2VvbWV0cnlFbGVtZW50KTsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIGZsb2F0
IGdldFRvdGFsTGVuZ3RoKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBSZWY8U1ZHUG9pbnQ+IGdldFBv
aW50QXRMZW5ndGgoZmxvYXQgZGlzdGFuY2UpIGNvbnN0OworICAgIHZpcnR1YWwgRXhjZXB0aW9u
T3I8UmVmPFNWR1BvaW50Pj4gZ2V0UG9pbnRBdExlbmd0aChmbG9hdCBkaXN0YW5jZSkgY29uc3Q7
CiAKICAgICBib29sIGlzUG9pbnRJbkZpbGwoRE9NUG9pbnRJbml0JiYpOwogICAgIGJvb2wgaXNQ
b2ludEluU3Ryb2tlKERPTVBvaW50SW5pdCYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdHZW9tZXRyeUVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21l
dHJ5RWxlbWVudC5pZGwKaW5kZXggNTZkZjZmMTBhZjM0YTI5ZjViOWVlZGNlYTE1NzU1YTNjYzAy
ZDdmNC4uODE5NDc4NmZjYTdmOWE2NjZmOTNlM2I4ZDgzOTljYTQyNDUxYjFhNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxlbWVudC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxlbWVudC5pZGwKQEAgLTI1LDEwICsyNSwxMCBAQAog
CiAvLyBbRXhwb3NlZD1XaW5kb3ddCiBpbnRlcmZhY2UgU1ZHR2VvbWV0cnlFbGVtZW50IDogU1ZH
R3JhcGhpY3NFbGVtZW50IHsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgU1ZHQW5pbWF0ZWROdW1i
ZXIgcGF0aExlbmd0aDsgLy8gRklYTUU6IFNob3VsZCBiZSBbU2FtZU9iamVjdF0uCisgICAgW1Nh
bWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBTVkdBbmltYXRlZE51bWJlciBwYXRoTGVuZ3Ro
OwogCiAgICAgYm9vbGVhbiBpc1BvaW50SW5GaWxsKG9wdGlvbmFsIERPTVBvaW50SW5pdCBwb2lu
dCk7CiAgICAgYm9vbGVhbiBpc1BvaW50SW5TdHJva2Uob3B0aW9uYWwgRE9NUG9pbnRJbml0IHBv
aW50KTsKICAgICB1bnJlc3RyaWN0ZWQgZmxvYXQgZ2V0VG90YWxMZW5ndGgoKTsKLSAgICBbTmV3
T2JqZWN0XSBTVkdQb2ludCBnZXRQb2ludEF0TGVuZ3RoKGZsb2F0IGRpc3RhbmNlKTsKKyAgICBb
TmV3T2JqZWN0LCBNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHUG9pbnQgZ2V0UG9pbnRBdExlbmd0aChm
bG9hdCBkaXN0YW5jZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKaW5k
ZXggZTFjZmY1Y2Q5Mjk0M2VlMjY0MDI5MDFhOTMxOGZhYjFmODgyNTIzMS4uY2E1M2U1YzFkMzU1
NGJjN2UzNTZhYWE2NTYyY2JiZjQ2ZTQ2ODAyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVs
ZW1lbnQuY3BwCkBAIC0xMDYsMjMgKzEwNiwyMSBAQCB2b2lkIFNWR1BhdGhFbGVtZW50OjpyZW1v
dmVkRnJvbUFuY2VzdG9yKFJlbW92YWxUeXBlIHJlbW92YWxUeXBlLCBDb250YWluZXJOb2RlJgog
CiBmbG9hdCBTVkdQYXRoRWxlbWVudDo6Z2V0VG90YWxMZW5ndGgoKSBjb25zdAogewotICAgIGZs
b2F0IHRvdGFsTGVuZ3RoID0gMDsKLSAgICBnZXRUb3RhbExlbmd0aE9mU1ZHUGF0aEJ5dGVTdHJl
YW0ocGF0aEJ5dGVTdHJlYW0oKSwgdG90YWxMZW5ndGgpOwotICAgIHJldHVybiB0b3RhbExlbmd0
aDsKKyAgICByZXR1cm4gZ2V0VG90YWxMZW5ndGhPZlNWR1BhdGhCeXRlU3RyZWFtKHBhdGhCeXRl
U3RyZWFtKCkpOwogfQogCi1SZWY8U1ZHUG9pbnQ+IFNWR1BhdGhFbGVtZW50OjpnZXRQb2ludEF0
TGVuZ3RoKGZsb2F0IGxlbmd0aCkgY29uc3QKK0V4Y2VwdGlvbk9yPFJlZjxTVkdQb2ludD4+IFNW
R1BhdGhFbGVtZW50OjpnZXRQb2ludEF0TGVuZ3RoKGZsb2F0IGRpc3RhbmNlKSBjb25zdAogewot
ICAgIEZsb2F0UG9pbnQgcG9pbnQ7Ci0gICAgZ2V0UG9pbnRBdExlbmd0aE9mU1ZHUGF0aEJ5dGVT
dHJlYW0ocGF0aEJ5dGVTdHJlYW0oKSwgbGVuZ3RoLCBwb2ludCk7Ci0gICAgcmV0dXJuIFNWR1Bv
aW50OjpjcmVhdGUocG9pbnQpOworICAgIC8vIFNwZWM6IENsYW1wIGRpc3RhbmNlIHRvIFswLCBs
ZW5ndGhdLgorICAgIGRpc3RhbmNlID0gY2xhbXBUbzxmbG9hdD4oZGlzdGFuY2UsIDAsIGdldFRv
dGFsTGVuZ3RoKCkpOworCisgICAgLy8gU3BlYzogUmV0dXJuIGEgbmV3bHkgY3JlYXRlZCwgZGV0
YWNoZWQgU1ZHUG9pbnQgb2JqZWN0LgorICAgIHJldHVybiBTVkdQb2ludDo6Y3JlYXRlKGdldFBv
aW50QXRMZW5ndGhPZlNWR1BhdGhCeXRlU3RyZWFtKHBhdGhCeXRlU3RyZWFtKCksIGRpc3RhbmNl
KSk7CiB9CiAKIHVuc2lnbmVkIFNWR1BhdGhFbGVtZW50OjpnZXRQYXRoU2VnQXRMZW5ndGgoZmxv
YXQgbGVuZ3RoKSBjb25zdAogewotICAgIHVuc2lnbmVkIHBhdGhTZWcgPSAwOwotICAgIGdldFNW
R1BhdGhTZWdBdExlbmd0aEZyb21TVkdQYXRoQnl0ZVN0cmVhbShwYXRoQnl0ZVN0cmVhbSgpLCBs
ZW5ndGgsIHBhdGhTZWcpOwotICAgIHJldHVybiBwYXRoU2VnOworICAgIHJldHVybiBnZXRTVkdQ
YXRoU2VnQXRMZW5ndGhGcm9tU1ZHUGF0aEJ5dGVTdHJlYW0ocGF0aEJ5dGVTdHJlYW0oKSwgbGVu
Z3RoKTsKIH0KIAogRmxvYXRSZWN0IFNWR1BhdGhFbGVtZW50OjpnZXRCQm94KFN0eWxlVXBkYXRl
U3RyYXRlZ3kgc3R5bGVVcGRhdGVTdHJhdGVneSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50
LmgKaW5kZXggOTE3ZTMzYjExZTZhOWRiNDlmMjRiMDI5YmIwNzU3NjlmOGU0MDVmNi4uZmE5NWUx
ZGYwODE1YzIxODJjZGM2ZTg5NTg3NmY5ZjliMDYzMzk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhFbGVtZW50LmgKQEAgLTg4LDcgKzg4LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIGZsb2F0
IGdldFRvdGFsTGVuZ3RoKCkgY29uc3QgZmluYWw7Ci0gICAgUmVmPFNWR1BvaW50PiBnZXRQb2lu
dEF0TGVuZ3RoKGZsb2F0IGRpc3RhbmNlKSBjb25zdCBmaW5hbDsKKyAgICBFeGNlcHRpb25PcjxS
ZWY8U1ZHUG9pbnQ+PiBnZXRQb2ludEF0TGVuZ3RoKGZsb2F0IGRpc3RhbmNlKSBjb25zdCBmaW5h
bDsKICAgICB1bnNpZ25lZCBnZXRQYXRoU2VnQXRMZW5ndGgoZmxvYXQgZGlzdGFuY2UpIGNvbnN0
OwogCiAgICAgRmxvYXRSZWN0IGdldEJCb3goU3R5bGVVcGRhdGVTdHJhdGVneSA9IEFsbG93U3R5
bGVVcGRhdGUpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhV
dGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuY3BwCmlu
ZGV4IGRiOGY5MjlhZDE5YjViZTBmNzk0OWJhNWI1MjQ0MTgwZmNhYTdhYTguLmIxOTdkNWJhYWMw
YTQ0NmY5YTYzMWM3YjdmMWE2NmMxMGU3NGQ5MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aFV0aWxpdGllcy5jcHAKQEAgLTE5Myw0OCArMTkzLDQ1IEBAIGJvb2wgYWRkVG9TVkdQYXRoQnl0
ZVN0cmVhbShTVkdQYXRoQnl0ZVN0cmVhbSYgc3RyZWFtVG9BcHBlbmRUbywgY29uc3QgU1ZHUGF0
aEJ5CiAgICAgcmV0dXJuIFNWR1BhdGhCbGVuZGVyOjphZGRBbmltYXRlZFBhdGgoZnJvbVNvdXJj
ZSwgYnlTb3VyY2UsIGJ1aWxkZXIsIHJlcGVhdENvdW50KTsKIH0KIAotYm9vbCBnZXRTVkdQYXRo
U2VnQXRMZW5ndGhGcm9tU1ZHUGF0aEJ5dGVTdHJlYW0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0m
IHN0cmVhbSwgZmxvYXQgbGVuZ3RoLCB1bnNpZ25lZCYgcGF0aFNlZykKK3Vuc2lnbmVkIGdldFNW
R1BhdGhTZWdBdExlbmd0aEZyb21TVkdQYXRoQnl0ZVN0cmVhbShjb25zdCBTVkdQYXRoQnl0ZVN0
cmVhbSYgc3RyZWFtLCBmbG9hdCBsZW5ndGgpCiB7CiAgICAgaWYgKHN0cmVhbS5pc0VtcHR5KCkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBQYXRoVHJh
dmVyc2FsU3RhdGUgdHJhdmVyc2FsU3RhdGUoUGF0aFRyYXZlcnNhbFN0YXRlOjpBY3Rpb246OlNl
Z21lbnRBdExlbmd0aCk7CiAgICAgU1ZHUGF0aFRyYXZlcnNhbFN0YXRlQnVpbGRlciBidWlsZGVy
KHRyYXZlcnNhbFN0YXRlLCBsZW5ndGgpOwogCiAgICAgU1ZHUGF0aEJ5dGVTdHJlYW1Tb3VyY2Ug
c291cmNlKHN0cmVhbSk7Ci0gICAgYm9vbCBvayA9IFNWR1BhdGhQYXJzZXI6OnBhcnNlKHNvdXJj
ZSwgYnVpbGRlcik7Ci0gICAgcGF0aFNlZyA9IGJ1aWxkZXIucGF0aFNlZ21lbnRJbmRleCgpOwot
ICAgIHJldHVybiBvazsKKyAgICBTVkdQYXRoUGFyc2VyOjpwYXJzZShzb3VyY2UsIGJ1aWxkZXIp
OworICAgIHJldHVybiBidWlsZGVyLnBhdGhTZWdtZW50SW5kZXgoKTsKIH0KIAotYm9vbCBnZXRU
b3RhbExlbmd0aE9mU1ZHUGF0aEJ5dGVTdHJlYW0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mIHN0
cmVhbSwgZmxvYXQmIHRvdGFsTGVuZ3RoKQorZmxvYXQgZ2V0VG90YWxMZW5ndGhPZlNWR1BhdGhC
eXRlU3RyZWFtKGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBzdHJlYW0pCiB7CiAgICAgaWYgKHN0
cmVhbS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIDA7
CiAKICAgICBQYXRoVHJhdmVyc2FsU3RhdGUgdHJhdmVyc2FsU3RhdGUoUGF0aFRyYXZlcnNhbFN0
YXRlOjpBY3Rpb246OlRvdGFsTGVuZ3RoKTsKIAogICAgIFNWR1BhdGhUcmF2ZXJzYWxTdGF0ZUJ1
aWxkZXIgYnVpbGRlcih0cmF2ZXJzYWxTdGF0ZSk7CiAKICAgICBTVkdQYXRoQnl0ZVN0cmVhbVNv
dXJjZSBzb3VyY2Uoc3RyZWFtKTsKLSAgICBib29sIG9rID0gU1ZHUGF0aFBhcnNlcjo6cGFyc2Uo
c291cmNlLCBidWlsZGVyKTsKLSAgICB0b3RhbExlbmd0aCA9IGJ1aWxkZXIudG90YWxMZW5ndGgo
KTsKLSAgICByZXR1cm4gb2s7CisgICAgU1ZHUGF0aFBhcnNlcjo6cGFyc2Uoc291cmNlLCBidWls
ZGVyKTsKKyAgICByZXR1cm4gYnVpbGRlci50b3RhbExlbmd0aCgpOwogfQogCi1ib29sIGdldFBv
aW50QXRMZW5ndGhPZlNWR1BhdGhCeXRlU3RyZWFtKGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBz
dHJlYW0sIGZsb2F0IGxlbmd0aCwgRmxvYXRQb2ludCYgcG9pbnQpCitGbG9hdFBvaW50IGdldFBv
aW50QXRMZW5ndGhPZlNWR1BhdGhCeXRlU3RyZWFtKGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBz
dHJlYW0sIGZsb2F0IGxlbmd0aCkKIHsKICAgICBpZiAoc3RyZWFtLmlzRW1wdHkoKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4geyB9OwogCiAgICAgUGF0aFRyYXZlcnNh
bFN0YXRlIHRyYXZlcnNhbFN0YXRlKFBhdGhUcmF2ZXJzYWxTdGF0ZTo6QWN0aW9uOjpWZWN0b3JB
dExlbmd0aCk7CiAKICAgICBTVkdQYXRoVHJhdmVyc2FsU3RhdGVCdWlsZGVyIGJ1aWxkZXIodHJh
dmVyc2FsU3RhdGUsIGxlbmd0aCk7CiAKICAgICBTVkdQYXRoQnl0ZVN0cmVhbVNvdXJjZSBzb3Vy
Y2Uoc3RyZWFtKTsKLSAgICBib29sIG9rID0gU1ZHUGF0aFBhcnNlcjo6cGFyc2Uoc291cmNlLCBi
dWlsZGVyKTsKLSAgICBwb2ludCA9IGJ1aWxkZXIuY3VycmVudFBvaW50KCk7Ci0gICAgcmV0dXJu
IG9rOworICAgIFNWR1BhdGhQYXJzZXI6OnBhcnNlKHNvdXJjZSwgYnVpbGRlcik7CisgICAgcmV0
dXJuIGJ1aWxkZXIuY3VycmVudFBvaW50KCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aFV0aWxpdGllcy5oCmluZGV4IDQ5MGZmN2M2NjBjOWQ5NWY5ZjFlNDU0MzQxZjExN2ZhODEyNmQz
NzguLjdhOGZhYjY3NjhkMGFkYjJiMzJhYjY4NmY0OTVhOGViOTBkYzFmMDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhVdGlsaXRpZXMuaApAQCAtNTMsOCArNTMsOCBAQCBib29sIGNhbkJsZW5k
U1ZHUGF0aEJ5dGVTdHJlYW1zKGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiBmcm9tLCBjb25zdCBT
VkdQYXRoQnl0ZQogYm9vbCBidWlsZEFuaW1hdGVkU1ZHUGF0aEJ5dGVTdHJlYW0oY29uc3QgU1ZH
UGF0aEJ5dGVTdHJlYW0mIGZyb20sIGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiB0bywgU1ZHUGF0
aEJ5dGVTdHJlYW0mIHJlc3VsdCwgZmxvYXQgcHJvZ3Jlc3MpOwogYm9vbCBhZGRUb1NWR1BhdGhC
eXRlU3RyZWFtKFNWR1BhdGhCeXRlU3RyZWFtJiBzdHJlYW1Ub0FwcGVuZFRvLCBjb25zdCBTVkdQ
YXRoQnl0ZVN0cmVhbSYgZnJvbSwgdW5zaWduZWQgcmVwZWF0Q291bnQgPSAxKTsKIAotYm9vbCBn
ZXRTVkdQYXRoU2VnQXRMZW5ndGhGcm9tU1ZHUGF0aEJ5dGVTdHJlYW0oY29uc3QgU1ZHUGF0aEJ5
dGVTdHJlYW0mLCBmbG9hdCBsZW5ndGgsIHVuc2lnbmVkJiBwYXRoU2VnKTsKLWJvb2wgZ2V0VG90
YWxMZW5ndGhPZlNWR1BhdGhCeXRlU3RyZWFtKGNvbnN0IFNWR1BhdGhCeXRlU3RyZWFtJiwgZmxv
YXQmIHRvdGFsTGVuZ3RoKTsKLWJvb2wgZ2V0UG9pbnRBdExlbmd0aE9mU1ZHUGF0aEJ5dGVTdHJl
YW0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mLCBmbG9hdCBsZW5ndGgsIEZsb2F0UG9pbnQmKTsK
K3Vuc2lnbmVkIGdldFNWR1BhdGhTZWdBdExlbmd0aEZyb21TVkdQYXRoQnl0ZVN0cmVhbShjb25z
dCBTVkdQYXRoQnl0ZVN0cmVhbSYsIGZsb2F0IGxlbmd0aCk7CitmbG9hdCBnZXRUb3RhbExlbmd0
aE9mU1ZHUGF0aEJ5dGVTdHJlYW0oY29uc3QgU1ZHUGF0aEJ5dGVTdHJlYW0mKTsKK0Zsb2F0UG9p
bnQgZ2V0UG9pbnRBdExlbmd0aE9mU1ZHUGF0aEJ5dGVTdHJlYW0oY29uc3QgU1ZHUGF0aEJ5dGVT
dHJlYW0mLCBmbG9hdCBsZW5ndGgpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAyOTcwMDVkMjgwNTUyOTZiNTM4NGYxMzcwM2RhNzUy
ZTg2YzZkYTljLi5iNmIzZDI2MmQ0NWNlOTNlYzVkZTM5YzQ3YTM4ZGQ3YmZkNDkzNTk0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOS0xMC0zMSAg
U2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFNW
R0dlb21ldHJ5RWxlbWVudC5nZXRQb2ludEF0TGVuZ3RoIHNob3VsZCBjbGFtcCBpdHMgYXJndW1l
bnQgdG8gWzAsIGxlbmd0aF0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMzY4NworCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKwor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zdmcvdHlwZXMvc2NyaXB0ZWQvU1ZHR2VvbWV0
cnlFbGVtZW50LmdldFBvaW50QXRMZW5ndGgtMDEtZXhwZWN0ZWQudHh0OgorCiAyMDE5LTEwLTMx
ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYiBBbmlt
YXRpb25zXSBBZGQgc3VwcG9ydCBmb3IgQW5pbWF0aW9uRXZlbnQucHNldWRvRWxlbWVudApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdmcv
dHlwZXMvc2NyaXB0ZWQvU1ZHR2VvbWV0cnlFbGVtZW50LmdldFBvaW50QXRMZW5ndGgtMDEtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
dmcvdHlwZXMvc2NyaXB0ZWQvU1ZHR2VvbWV0cnlFbGVtZW50LmdldFBvaW50QXRMZW5ndGgtMDEt
ZXhwZWN0ZWQudHh0CmluZGV4IDIzZjczNTdlYjQ0MmRmY2NmZTk5ZTk0MGVlODk3NTY4ZDUwZTAy
MDguLmQ4NTQzNTEwMDk0ZDBmMjhiYjdhZjBjM2I0NjRiYTdiMTk5ZjJjNWQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc3ZnL3R5cGVzL3Nj
cmlwdGVkL1NWR0dlb21ldHJ5RWxlbWVudC5nZXRQb2ludEF0TGVuZ3RoLTAxLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3N2Zy90
eXBlcy9zY3JpcHRlZC9TVkdHZW9tZXRyeUVsZW1lbnQuZ2V0UG9pbnRBdExlbmd0aC0wMS1leHBl
Y3RlZC50eHQKQEAgLTEsNiArMSw2IEBACiAKLUZBSUwgU1ZHR2VvbWV0cnlFbGVtZW50LnByb3Rv
dHlwZS5nZXRQb2ludEF0TGVuZ3RoIGNsYW1wcyBpdHMgYXJndW1lbnQgdG8gWzAsIGxlbmd0aF0s
IGxlc3MgdGhhbiB6ZXJvIChTVkdMaW5lRWxlbWVudCkuIGFzc2VydF9lcXVhbHM6IHN0YXJ0aW5n
IHggZXhwZWN0ZWQgNTAgYnV0IGdvdCA0MAotRkFJTCBTVkdHZW9tZXRyeUVsZW1lbnQucHJvdG90
eXBlLmdldFBvaW50QXRMZW5ndGggY2xhbXBzIGl0cyBhcmd1bWVudCB0byBbMCwgbGVuZ3RoXSwg
bGVzcyB0aGFuIHplcm8gKFNWR1BhdGhFbGVtZW50KS4gYXNzZXJ0X2VxdWFsczogc3RhcnRpbmcg
eCBleHBlY3RlZCA0MCBidXQgZ290IDMwCitQQVNTIFNWR0dlb21ldHJ5RWxlbWVudC5wcm90b3R5
cGUuZ2V0UG9pbnRBdExlbmd0aCBjbGFtcHMgaXRzIGFyZ3VtZW50IHRvIFswLCBsZW5ndGhdLCBs
ZXNzIHRoYW4gemVybyAoU1ZHTGluZUVsZW1lbnQpLiAKK1BBU1MgU1ZHR2VvbWV0cnlFbGVtZW50
LnByb3RvdHlwZS5nZXRQb2ludEF0TGVuZ3RoIGNsYW1wcyBpdHMgYXJndW1lbnQgdG8gWzAsIGxl
bmd0aF0sIGxlc3MgdGhhbiB6ZXJvIChTVkdQYXRoRWxlbWVudCkuIAogUEFTUyBTVkdHZW9tZXRy
eUVsZW1lbnQucHJvdG90eXBlLmdldFBvaW50QXRMZW5ndGggY2xhbXBzIGl0cyBhcmd1bWVudCB0
byBbMCwgbGVuZ3RoXSwgZ3JlYXRlciB0aGFuICdsZW5ndGgnIChTVkdMaW5lRWxlbWVudCkuIAog
UEFTUyBTVkdHZW9tZXRyeUVsZW1lbnQucHJvdG90eXBlLmdldFBvaW50QXRMZW5ndGggY2xhbXBz
IGl0cyBhcmd1bWVudCB0byBbMCwgbGVuZ3RoXSwgZ3JlYXRlciB0aGFuICdsZW5ndGgnIChTVkdQ
YXRoRWxlbWVudCkuIAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>