<?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>204554</bug_id>
          
          <creation_ts>2019-11-24 02:51:49 -0800</creation_ts>
          <short_desc>transition-property is not computed correctly when transition-duration is set to &quot;inherit&quot;</short_desc>
          <delta_ts>2020-04-08 09:31:27 -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>CSS</component>
          <version>Safari Technology Preview</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="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>dino</cc>
    
    <cc>dstockwell</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1593262</commentid>
    <comment_count>0</comment_count>
      <attachid>384250</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-11-24 02:51:49 -0800</bug_when>
    <thetext>Created attachment 384250
Test

See the attached test case which amounts to this simple markup:

&lt;div style=&quot;transition-duration: 99s; transition-property: margin-left;&quot;&gt;&lt;pre style=&quot;transition-duration: inherit;&quot;&gt;&lt;/li&gt;&lt;/div&gt;

The transition-property for &lt;pre&gt; resolves to the empty string instead of &quot;all&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593263</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-24 02:52:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/57458091&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593384</commentid>
    <comment_count>2</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-11-25 03:07:48 -0800</bug_when>
    <thetext>With the old animation engine, the RenderLayer for the animating &lt;div&gt; is removed after the animation completes and the &lt;div&gt; for the text is positioned.

In the new animation engine, the RenderLayer for the animating &lt;div&gt; still has a RenderLayer after the animation completes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593401</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2019-11-25 05:37:14 -0800</bug_when>
    <thetext>This last comment was for another bug, please disregard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593409</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-11-25 06:39:27 -0800</bug_when>
    <thetext>I think I see the bug generated style building code. Besides duration this also inherits Animation::animationMode() enum which affects interpretation of Animation::property().


    static void applyInheritTransitionDuration(BuilderState&amp; builderState)
    {
        auto&amp; list = builderState.style().ensureTransitions();
        auto* parentList = builderState.parentStyle().transitions();
        size_t i = 0, parentSize = parentList ? parentList-&gt;size() : 0;
        for ( ; i &lt; parentSize &amp;&amp; parentList-&gt;animation(i).isDurationSet(); ++i) {
            if (list.size() &lt;= i)
                list.append(Animation::create());
            list.animation(i).setDuration(parentList-&gt;animation(i).duration());
            list.animation(i).setAnimationMode(parentList-&gt;animation(i).animationMode());
        }

        // Reset any remaining animations to not have the property set.
        for ( ; i &lt; list.size(); ++i)
            list.animation(i).clearDuration();
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593414</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-11-25 06:43:05 -0800</bug_when>
    <thetext>Code generation is in makeprop.pl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638532</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-07 07:47:05 -0700</bug_when>
    <thetext>Specifically, for this code, in generateAnimationPropertyInheritValueSetter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639064</commentid>
    <comment_count>7</comment_count>
      <attachid>395812</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-08 08:27:45 -0700</bug_when>
    <thetext>Created attachment 395812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639070</commentid>
    <comment_count>8</comment_count>
      <attachid>395813</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-08 08:38:06 -0700</bug_when>
    <thetext>Created attachment 395813
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639083</commentid>
    <comment_count>9</comment_count>
      <attachid>395813</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-04-08 08:59:39 -0700</bug_when>
    <thetext>Comment on attachment 395813
Patch

Nice. Sad that it doesn&apos;t flip any WPTs to PASS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639085</commentid>
    <comment_count>10</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-08 09:03:40 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #9)
&gt; Comment on attachment 395813 [details]
&gt; Patch
&gt; 
&gt; Nice. Sad that it doesn&apos;t flip any WPTs to PASS.

Not quite, but we pass one additional assertion call in one of the failing tests!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639090</commentid>
    <comment_count>11</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-04-08 09:31:27 -0700</bug_when>
    <thetext>Committed r259720: &lt;https://trac.webkit.org/changeset/259720&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>384250</attachid>
            <date>2019-11-24 02:51:49 -0800</date>
            <delta_ts>2019-11-24 02:51:49 -0800</delta_ts>
            <desc>Test</desc>
            <filename>transition-property-for-element-with-transition-duration-inherit.html</filename>
            <type>text/html</type>
            <size>508</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">PGRpdiBzdHlsZT0idHJhbnNpdGlvbi1kdXJhdGlvbjogOTlzOyB0cmFuc2l0aW9uLXByb3BlcnR5
OiBtYXJnaW4tbGVmdDsiPjxwcmUgc3R5bGU9InRyYW5zaXRpb24tZHVyYXRpb246IGluaGVyaXQ7
Ij48L2xpPjwvZGl2Pgo8c2NyaXB0PgogICAgY29uc3QgcHJlID0gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcigicHJlIik7CiAgICBjb25zdCBhY3R1YWwgPSBnZXRDb21wdXRlZFN0eWxlKHByZSkudHJh
bnNpdGlvblByb3BlcnR5OwogICAgY29uc3QgZXhwZWN0ZWQgPSAiYWxsIjsKICAgIGlmIChhY3R1
YWwgPT0gZXhwZWN0ZWQpCiAgICAgICAgcHJlLnRleHRDb250ZW50ID0gYFBBU1M6IHRyYW5zaXRp
b24tcHJvcGVydHkgY29tcHV0ZWQgdG8gIiR7ZXhwZWN0ZWR9Ii5gOwogICAgZWxzZQogICAgICAg
IHByZS50ZXh0Q29udGVudCA9IGBGQUlMOiB0cmFuc2l0aW9uLXByb3BlcnR5IGNvbXB1dGVkIHRv
ICIke2FjdHVhbH0iIGJ1dCBleHBlY3RlZCAiJHtleHBlY3RlZH0iLmA7Cjwvc2NyaXB0Pg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395812</attachid>
            <date>2020-04-08 08:27:45 -0700</date>
            <delta_ts>2020-04-08 08:38:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204554-20200408172744.patch</filename>
            <type>text/plain</type>
            <size>24920</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDUwODM2ZmM5MDI4ODMz
NTkyMWE1NWFjYzI3NzFjOGRmOTAzZmVjNC4uMzZhMTk4MzgyNmZjNjU4OGE2NWFiNTAxMzRhYWJk
NDUzYTVlOGQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIwLTA0LTA4ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgdHJhbnNpdGlvbi1wcm9w
ZXJ0eSBpcyBub3QgY29tcHV0ZWQgY29ycmVjdGx5IHdoZW4gdHJhbnNpdGlvbi1kdXJhdGlvbiBp
cyBzZXQgdG8gImluaGVyaXQiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDQ1NTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3NDU4MDkxPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHRyYW5z
aXRpb25zL3RyYW5zaXRpb24tcHJvcGVydHktZm9yLWVsZW1lbnQtd2l0aC10cmFuc2l0aW9uLWR1
cmF0aW9uLWluaGVyaXQuaHRtbAorCisgICAgICAgIFRoZSAidHJhbnNpdGlvbi1wcm9wZXJ0eSIg
d291bGQgYmVoYXZlIGFzIGlmICJpbmhlcml0IiB3YXMgc2V0IHdoZW4gdGhlICJ0cmFuc2l0aW9u
LWR1cmF0aW9uIiBwcm9wZXJ0eSBpdHNlbGYgd2FzIHNldCBleHBsaWNpdGx5IHRvICJpbmhlcml0
Ii4KKyAgICAgICAgV2UgZml4IHRoaXMgYnkgc3RvcmluZyBhbGwgdGhlIGluZm9ybWF0aW9uIGNv
bnRhaW5lZCBpbiB0aGUgInRyYW5zaXRpb24tcHJvcGVydHkiIGludG8gdGhlIHNpbmdsZSBBbmlt
YXRpb246Om1fcHJvcGVydHkgbWVtYmVyIGluc3RlYWQgb2Ygc3BsaXR0aW5nCisgICAgICAgIGl0
IGFjcm9zcyBBbmltYXRpb246Om1fbW9kZSBhcyB3ZWxsLiBXZSBub3cgdXNlIGEgVHJhbnNpdGlv
blByb3BlcnR5IHN0cnVjdCB3aGljaCBob2xkcyBib3RoIHRoZSB0cmFuc2l0aW9uICJtb2RlIiAo
bm9uZSwgYWxsLCBzaW5nbGUgcHJvcGVydHksCisgICAgICAgIHVua25vd24gcHJvcGVydHkpIGFu
ZCBhbmQgdGhlIENTUyBwcm9wZXJ0eSB0YXJnZXRlZCBpdHNlbGYuCisKKyAgICAgICAgVGhpcyBy
ZXF1aXJlcyBtb2RpZnlpbmcgY2FsbCBzaXRlcyBvZiBib3RoIEFuaW1hdGlvbjo6cHJvcGVydHko
KSBhbmQgQW5pbWF0aW9uOjphbmltYXRpb25Nb2RlKCkgdGhyb3VnaG91dCBXZWJDb3JlLgorCisg
ICAgICAgICogYW5pbWF0aW9uL0FuaW1hdGlvblRpbWVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnRyYW5zaXRpb25NYXRjaGVzUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcGls
ZVRyYW5zaXRpb25Qcm9wZXJ0aWVzSW5TdHlsZSk6CisgICAgICAgICogY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVUcmFuc2l0aW9u
UHJvcGVydHlWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1RvU3R5bGVNYXAuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTVG9TdHlsZU1hcDo6bWFwQW5pbWF0aW9uUHJvcGVydHkpOgorICAgICAg
ICAqIGNzcy9tYWtlcHJvcC5wbDoKKyAgICAgICAgKGdlbmVyYXRlQW5pbWF0aW9uUHJvcGVydHlJ
bml0aWFsVmFsdWVTZXR0ZXIpOgorICAgICAgICAoZ2VuZXJhdGVBbmltYXRpb25Qcm9wZXJ0eUlu
aGVyaXRWYWx1ZVNldHRlcik6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5p
bWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRl
VHJhbnNpdGlvbnMpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltcGxpY2l0QW5pbWF0aW9uOjpJbXBsaWNpdEFuaW1h
dGlvbik6CisgICAgICAgICogcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6ZGlkQWRkVHJhbnNpdGlvbik6
CisgICAgICAgICogcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBbmltYXRpb246OkFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRp
b246Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb246OmFuaW1hdGlvbnNN
YXRjaCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRp
b246OnByb3BlcnR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbjo6dGltaW5n
RnVuY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uOjpzZXRQcm9wZXJ0
eSk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb246OnNldFRpbWluZ0Z1bmN0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbjo6aW5pdGlhbFByb3BlcnR5KToKKyAgICAgICAgKFdl
YkNvcmU6OkFuaW1hdGlvbjo6YW5pbWF0aW9uTW9kZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpBbmltYXRpb246OnNldEFuaW1hdGlvbk1vZGUpOiBEZWxldGVkLgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTdHlsZTo6YWRqdXN0VHJhbnNpdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U3R5bGU6OnRyYW5zaXRpb25Gb3JQcm9wZXJ0eSBjb25zdCk6CisKIDIwMjAtMDQtMDggIEtlaXRo
IFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSB0aGUgdXNlIG9m
IFhDQnVpbGQgYnkgZGVmYXVsdCBpbiBBcHBsZSBidWlsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuY3BwCmluZGV4IGFjYjY0YzQxZWQxN2ViYjFlMWE3
NjNjZTYzODBhMmNhOTgxYzM4ZDEuLmQzYjczNTM1NWFhOGVlOGQ0NGEzMTM1NDlkODI4MDMwZTlh
NDg4ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1l
bGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblRpbWVsaW5l
LmNwcApAQCAtMzI4LDExICszMjgsMTEgQEAgc3RhdGljIGRvdWJsZSB0cmFuc2l0aW9uQ29tYmlu
ZWREdXJhdGlvbihjb25zdCBBbmltYXRpb24qIHRyYW5zaXRpb24pCiAKIHN0YXRpYyBib29sIHRy
YW5zaXRpb25NYXRjaGVzUHJvcGVydHkoY29uc3QgQW5pbWF0aW9uJiB0cmFuc2l0aW9uLCBDU1NQ
cm9wZXJ0eUlEIHByb3BlcnR5KQogewotICAgIGF1dG8gbW9kZSA9IHRyYW5zaXRpb24uYW5pbWF0
aW9uTW9kZSgpOwotICAgIGlmIChtb2RlID09IEFuaW1hdGlvbjo6QW5pbWF0ZU5vbmUgfHwgbW9k
ZSA9PSBBbmltYXRpb246OkFuaW1hdGVVbmtub3duUHJvcGVydHkpCisgICAgYXV0byBtb2RlID0g
dHJhbnNpdGlvbi5wcm9wZXJ0eSgpLm1vZGU7CisgICAgaWYgKG1vZGUgPT0gQW5pbWF0aW9uOjpU
cmFuc2l0aW9uTW9kZTo6Tm9uZSB8fCBtb2RlID09IEFuaW1hdGlvbjo6VHJhbnNpdGlvbk1vZGU6
OlVua25vd25Qcm9wZXJ0eSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChtb2RlID09
IEFuaW1hdGlvbjo6QW5pbWF0ZVNpbmdsZVByb3BlcnR5KSB7Ci0gICAgICAgIGF1dG8gdHJhbnNp
dGlvblByb3BlcnR5ID0gdHJhbnNpdGlvbi5wcm9wZXJ0eSgpOworICAgIGlmIChtb2RlID09IEFu
aW1hdGlvbjo6VHJhbnNpdGlvbk1vZGU6OlNpbmdsZVByb3BlcnR5KSB7CisgICAgICAgIGF1dG8g
dHJhbnNpdGlvblByb3BlcnR5ID0gdHJhbnNpdGlvbi5wcm9wZXJ0eSgpLmlkOwogICAgICAgICBp
ZiAodHJhbnNpdGlvblByb3BlcnR5ICE9IHByb3BlcnR5KSB7CiAgICAgICAgICAgICBmb3IgKGF1
dG8gbG9uZ2hhbmQgOiBzaG9ydGhhbmRGb3JQcm9wZXJ0eSh0cmFuc2l0aW9uUHJvcGVydHkpKSB7
CiAgICAgICAgICAgICAgICAgaWYgKGxvbmdoYW5kID09IHByb3BlcnR5KQpAQCAtMzU1LDE1ICsz
NTUsMTUgQEAgc3RhdGljIHZvaWQgY29tcGlsZVRyYW5zaXRpb25Qcm9wZXJ0aWVzSW5TdHlsZShj
b25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIEhhc2hTZXQKIAogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgdHJhbnNpdGlvbnMtPnNpemUoKTsgKytpKSB7CiAgICAgICAgIGNvbnN0IGF1dG8mIGFu
aW1hdGlvbiA9IHRyYW5zaXRpb25zLT5hbmltYXRpb24oaSk7Ci0gICAgICAgIGF1dG8gbW9kZSA9
IGFuaW1hdGlvbi5hbmltYXRpb25Nb2RlKCk7Ci0gICAgICAgIGlmIChtb2RlID09IEFuaW1hdGlv
bjo6QW5pbWF0ZVNpbmdsZVByb3BlcnR5KSB7Ci0gICAgICAgICAgICBhdXRvIHByb3BlcnR5ID0g
YW5pbWF0aW9uLnByb3BlcnR5KCk7CisgICAgICAgIGF1dG8gbW9kZSA9IGFuaW1hdGlvbi5wcm9w
ZXJ0eSgpLm1vZGU7CisgICAgICAgIGlmIChtb2RlID09IEFuaW1hdGlvbjo6VHJhbnNpdGlvbk1v
ZGU6OlNpbmdsZVByb3BlcnR5KSB7CisgICAgICAgICAgICBhdXRvIHByb3BlcnR5ID0gYW5pbWF0
aW9uLnByb3BlcnR5KCkuaWQ7CiAgICAgICAgICAgICBpZiAoaXNTaG9ydGhhbmRDU1NQcm9wZXJ0
eShwcm9wZXJ0eSkpIHsKICAgICAgICAgICAgICAgICBmb3IgKGF1dG8gbG9uZ2hhbmQgOiBzaG9y
dGhhbmRGb3JQcm9wZXJ0eShwcm9wZXJ0eSkpCiAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRp
b25Qcm9wZXJ0aWVzLmFkZChsb25naGFuZCk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKHByb3Bl
cnR5ICE9IENTU1Byb3BlcnR5SW52YWxpZCkKICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uUHJv
cGVydGllcy5hZGQocHJvcGVydHkpOwotICAgICAgICB9IGVsc2UgaWYgKG1vZGUgPT0gQW5pbWF0
aW9uOjpBbmltYXRlQWxsKSB7CisgICAgICAgIH0gZWxzZSBpZiAobW9kZSA9PSBBbmltYXRpb246
OlRyYW5zaXRpb25Nb2RlOjpBbGwpIHsKICAgICAgICAgICAgIHRyYW5zaXRpb25Qcm9wZXJ0aWVz
Q29udGFpbkFsbCA9IHRydWU7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5k
ZXggYjFiZDU3NWVjOWUzOTY3NDE5Y2JjMTMxNTY4MGE1MzI5NjZjZWVmMS4uNTBjYjdhYzQ3NmRi
ZWY0NDQ3MGNmZTA4MDBmMDc0OTZiZGE3YTRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTk1OSwxNCArOTU5LDE0IEBA
IHN0YXRpYyBSZWY8Q1NTVmFsdWU+IHZhbHVlRm9yR3JpZFBvc2l0aW9uKGNvbnN0IEdyaWRQb3Np
dGlvbiYgcG9zaXRpb24pCiAKIHN0YXRpYyBSZWY8Q1NTVmFsdWU+IGNyZWF0ZVRyYW5zaXRpb25Q
cm9wZXJ0eVZhbHVlKGNvbnN0IEFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewotICAgIHN3aXRjaCAo
YW5pbWF0aW9uLmFuaW1hdGlvbk1vZGUoKSkgewotICAgIGNhc2UgQW5pbWF0aW9uOjpBbmltYXRl
Tm9uZToKKyAgICBzd2l0Y2ggKGFuaW1hdGlvbi5wcm9wZXJ0eSgpLm1vZGUpIHsKKyAgICBjYXNl
IEFuaW1hdGlvbjo6VHJhbnNpdGlvbk1vZGU6Ok5vbmU6CiAgICAgICAgIHJldHVybiBDU1NWYWx1
ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpOwot
ICAgIGNhc2UgQW5pbWF0aW9uOjpBbmltYXRlQWxsOgorICAgIGNhc2UgQW5pbWF0aW9uOjpUcmFu
c2l0aW9uTW9kZTo6QWxsOgogICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24o
KS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVBbGwpOwotICAgIGNhc2UgQW5pbWF0aW9u
OjpBbmltYXRlU2luZ2xlUHJvcGVydHk6Ci0gICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNp
bmdsZXRvbigpLmNyZWF0ZVZhbHVlKGdldFByb3BlcnR5TmFtZVN0cmluZyhhbmltYXRpb24ucHJv
cGVydHkoKSksIENTU1VuaXRUeXBlOjpDU1NfU1RSSU5HKTsKLSAgICBjYXNlIEFuaW1hdGlvbjo6
QW5pbWF0ZVVua25vd25Qcm9wZXJ0eToKKyAgICBjYXNlIEFuaW1hdGlvbjo6VHJhbnNpdGlvbk1v
ZGU6OlNpbmdsZVByb3BlcnR5OgorICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0
b24oKS5jcmVhdGVWYWx1ZShnZXRQcm9wZXJ0eU5hbWVTdHJpbmcoYW5pbWF0aW9uLnByb3BlcnR5
KCkuaWQpLCBDU1NVbml0VHlwZTo6Q1NTX1NUUklORyk7CisgICAgY2FzZSBBbmltYXRpb246OlRy
YW5zaXRpb25Nb2RlOjpVbmtub3duUHJvcGVydHk6CiAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBv
b2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKGFuaW1hdGlvbi51bmtub3duUHJvcGVydHkoKSwg
Q1NTVW5pdFR5cGU6OkNTU19TVFJJTkcpOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcAppbmRleCAzMzIwMzlkNmI0N2VlMDEy
MDkzMWI1MGM2MmM1YThlNTc2YTEzNGRhLi40ZjY2MDVkNDJmMmRhNDRmZDUxM2JhYjU4NmEzOTU2
ZWZlZGM5YzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuY3BwCkBAIC00MjQsOCAr
NDI0LDcgQEAgdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25QbGF5U3RhdGUoQW5pbWF0
aW9uJiBsYXllciwgY29uc3QgQ1NTVmFsdWUmIHZhbHUKIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFw
QW5pbWF0aW9uUHJvcGVydHkoQW5pbWF0aW9uJiBhbmltYXRpb24sIGNvbnN0IENTU1ZhbHVlJiB2
YWx1ZSkKIHsKICAgICBpZiAodmFsdWUudHJlYXRBc0luaXRpYWxWYWx1ZShDU1NQcm9wZXJ0eUFu
aW1hdGlvbikpIHsKLSAgICAgICAgYW5pbWF0aW9uLnNldEFuaW1hdGlvbk1vZGUoQW5pbWF0aW9u
OjpBbmltYXRlQWxsKTsKLSAgICAgICAgYW5pbWF0aW9uLnNldFByb3BlcnR5KENTU1Byb3BlcnR5
SW52YWxpZCk7CisgICAgICAgIGFuaW1hdGlvbi5zZXRQcm9wZXJ0eShBbmltYXRpb246OmluaXRp
YWxQcm9wZXJ0eSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNDM0LDIzICs0MzMs
MjAgQEAgdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25Qcm9wZXJ0eShBbmltYXRpb24m
IGFuaW1hdGlvbiwgY29uc3QgQ1NTVmFsdWUmIHYKIAogICAgIGF1dG8mIHByaW1pdGl2ZVZhbHVl
ID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKTsKICAgICBpZiAocHJpbWl0aXZl
VmFsdWUudmFsdWVJRCgpID09IENTU1ZhbHVlQWxsKSB7Ci0gICAgICAgIGFuaW1hdGlvbi5zZXRB
bmltYXRpb25Nb2RlKEFuaW1hdGlvbjo6QW5pbWF0ZUFsbCk7Ci0gICAgICAgIGFuaW1hdGlvbi5z
ZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUludmFsaWQpOworICAgICAgICBhbmltYXRpb24uc2V0UHJv
cGVydHkoeyBBbmltYXRpb246OlRyYW5zaXRpb25Nb2RlOjpBbGwsIENTU1Byb3BlcnR5SW52YWxp
ZCB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAocHJpbWl0aXZlVmFsdWUudmFs
dWVJRCgpID09IENTU1ZhbHVlTm9uZSkgewotICAgICAgICBhbmltYXRpb24uc2V0QW5pbWF0aW9u
TW9kZShBbmltYXRpb246OkFuaW1hdGVOb25lKTsKLSAgICAgICAgYW5pbWF0aW9uLnNldFByb3Bl
cnR5KENTU1Byb3BlcnR5SW52YWxpZCk7CisgICAgICAgIGFuaW1hdGlvbi5zZXRQcm9wZXJ0eSh7
IEFuaW1hdGlvbjo6VHJhbnNpdGlvbk1vZGU6Ok5vbmUsIENTU1Byb3BlcnR5SW52YWxpZCB9KTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAocHJpbWl0aXZlVmFsdWUucHJvcGVydHlJ
RCgpID09IENTU1Byb3BlcnR5SW52YWxpZCkgewotICAgICAgICBhbmltYXRpb24uc2V0QW5pbWF0
aW9uTW9kZShBbmltYXRpb246OkFuaW1hdGVVbmtub3duUHJvcGVydHkpOwotICAgICAgICBhbmlt
YXRpb24uc2V0UHJvcGVydHkoQ1NTUHJvcGVydHlJbnZhbGlkKTsKKyAgICAgICAgYW5pbWF0aW9u
LnNldFByb3BlcnR5KHsgQW5pbWF0aW9uOjpUcmFuc2l0aW9uTW9kZTo6VW5rbm93blByb3BlcnR5
LCBDU1NQcm9wZXJ0eUludmFsaWQgfSk7CiAgICAgICAgIGFuaW1hdGlvbi5zZXRVbmtub3duUHJv
cGVydHkocHJpbWl0aXZlVmFsdWUuc3RyaW5nVmFsdWUoKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9Ci0gICAgYW5pbWF0aW9uLnNldEFuaW1hdGlvbk1vZGUoQW5pbWF0aW9uOjpBbmltYXRlU2lu
Z2xlUHJvcGVydHkpOwotICAgIGFuaW1hdGlvbi5zZXRQcm9wZXJ0eShwcmltaXRpdmVWYWx1ZS5w
cm9wZXJ0eUlEKCkpOworCisgICAgYW5pbWF0aW9uLnNldFByb3BlcnR5KHsgQW5pbWF0aW9uOjpU
cmFuc2l0aW9uTW9kZTo6U2luZ2xlUHJvcGVydHksIHByaW1pdGl2ZVZhbHVlLnByb3BlcnR5SUQo
KSB9KTsKIH0KIAogdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25UaW1pbmdGdW5jdGlv
bihBbmltYXRpb24mIGFuaW1hdGlvbiwgY29uc3QgQ1NTVmFsdWUmIHZhbHVlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsIGIvU291cmNlL1dlYkNvcmUvY3NzL21h
a2Vwcm9wLnBsCmluZGV4IDY1N2UzM2IwODUwNGRjNzdjZWYzODk0NDM1MTA4OWY4MjE0Y2Y1YjMu
LmNkZTExMTExNTJjYzg0YjhjZGY0NDdkYmFmZWMyODlmY2M0MmMyMDIgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFr
ZXByb3AucGwKQEAgLTc2OSw5ICs3NjksNiBAQCBzdWIgZ2VuZXJhdGVBbmltYXRpb25Qcm9wZXJ0
eUluaXRpYWxWYWx1ZVNldHRlciB7CiAgIG15ICRzZXR0ZXIgPSAkcHJvcGVydGllc1dpdGhTdHls
ZUJ1aWxkZXJPcHRpb25zeyRuYW1lfXsic2V0dGVyIn07CiAgIG15ICRpbml0aWFsID0gJHByb3Bl
cnRpZXNXaXRoU3R5bGVCdWlsZGVyT3B0aW9uc3skbmFtZX17ImluaXRpYWwifTsKICAgJHNldHRl
ckNvbnRlbnQgLj0gJGluZGVudCAuICJsaXN0LmFuaW1hdGlvbigwKS4iIC4gJHNldHRlciAuICIo
QW5pbWF0aW9uOjoiIC4gJGluaXRpYWwgLiAiKCkpO1xuIjsKLSAgaWYgKCRuYW1lIGVxICItd2Vi
a2l0LXRyYW5zaXRpb24tcHJvcGVydHkiKSB7Ci0gICAgJHNldHRlckNvbnRlbnQgLj0gJGluZGVu
dCAuICJsaXN0LmFuaW1hdGlvbigwKS5zZXRBbmltYXRpb25Nb2RlKEFuaW1hdGlvbjo6QW5pbWF0
ZUFsbCk7XG4iOwotICB9CiAgICRzZXR0ZXJDb250ZW50IC49ICRpbmRlbnQgLiAiZm9yIChzaXpl
X3QgaSA9IDE7IGkgPCBsaXN0LnNpemUoKTsgKytpKVxuIjsKICAgJHNldHRlckNvbnRlbnQgLj0g
JGluZGVudCAuICIgICAgbGlzdC5hbmltYXRpb24oaSkuIiAuIGdldENsZWFyRnVuY3Rpb24oJG5h
bWUpIC4gIigpO1xuIjsKIApAQCAtNzkyLDcgKzc4OSw2IEBAIHN1YiBnZW5lcmF0ZUFuaW1hdGlv
blByb3BlcnR5SW5oZXJpdFZhbHVlU2V0dGVyIHsKICAgbXkgJGdldHRlciA9ICRwcm9wZXJ0aWVz
V2l0aFN0eWxlQnVpbGRlck9wdGlvbnN7JG5hbWV9eyJnZXR0ZXIifTsKICAgbXkgJHNldHRlciA9
ICRwcm9wZXJ0aWVzV2l0aFN0eWxlQnVpbGRlck9wdGlvbnN7JG5hbWV9eyJzZXR0ZXIifTsKICAg
JHNldHRlckNvbnRlbnQgLj0gJGluZGVudCAuICIgICAgbGlzdC5hbmltYXRpb24oaSkuIiAuICRz
ZXR0ZXIgLiAiKHBhcmVudExpc3QtPmFuaW1hdGlvbihpKS4iIC4gJGdldHRlciAuICIoKSk7XG4i
OwotICAkc2V0dGVyQ29udGVudCAuPSAkaW5kZW50IC4gIiAgICBsaXN0LmFuaW1hdGlvbihpKS5z
ZXRBbmltYXRpb25Nb2RlKHBhcmVudExpc3QtPmFuaW1hdGlvbihpKS5hbmltYXRpb25Nb2RlKCkp
O1xuIjsKICAgJHNldHRlckNvbnRlbnQgLj0gJGluZGVudCAuICJ9XG4iOwogICAkc2V0dGVyQ29u
dGVudCAuPSAiXG4iOwogICAkc2V0dGVyQ29udGVudCAuPSAkaW5kZW50IC4gIi8vIFJlc2V0IGFu
eSByZW1haW5pbmcgYW5pbWF0aW9ucyB0byBub3QgaGF2ZSB0aGUgcHJvcGVydHkgc2V0LlxuIjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1h
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRp
b24uY3BwCmluZGV4IGViZDQ5MjcwN2YyMjhlZDBlZWEwZTI0YjAwMDgxNzYzYzdmYmU4NDcuLmVl
MGQ1Njg4Y2I4ODFhZGRlMDBhNjlkNmI2M2Q5ZWNlOWFkNjczN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcApAQCAtOTcs
MTMgKzk3LDEzIEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVUcmFuc2l0aW9ucyhF
bGVtZW50JiBlbGVtZW50LCBjb25zdCBSZW5kZXJTdHlsZSoKICAgICAgICAgICAgIGF1dG8mIGFu
aW1hdGlvbiA9IHRhcmdldFN0eWxlLnRyYW5zaXRpb25zKCktPmFuaW1hdGlvbihpKTsKICAgICAg
ICAgICAgIGJvb2wgaXNBY3RpdmVUcmFuc2l0aW9uID0gYW5pbWF0aW9uLmR1cmF0aW9uKCkgfHwg
YW5pbWF0aW9uLmRlbGF5KCkgPiAwOwogCi0gICAgICAgICAgICBBbmltYXRpb246OkFuaW1hdGlv
bk1vZGUgbW9kZSA9IGFuaW1hdGlvbi5hbmltYXRpb25Nb2RlKCk7Ci0gICAgICAgICAgICBpZiAo
bW9kZSA9PSBBbmltYXRpb246OkFuaW1hdGVOb25lIHx8IG1vZGUgPT0gQW5pbWF0aW9uOjpBbmlt
YXRlVW5rbm93blByb3BlcnR5KQorICAgICAgICAgICAgYXV0byBtb2RlID0gYW5pbWF0aW9uLnBy
b3BlcnR5KCkubW9kZTsKKyAgICAgICAgICAgIGlmIChtb2RlID09IEFuaW1hdGlvbjo6VHJhbnNp
dGlvbk1vZGU6Ok5vbmUgfHwgbW9kZSA9PSBBbmltYXRpb246OlRyYW5zaXRpb25Nb2RlOjpVbmtu
b3duUHJvcGVydHkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIENT
U1Byb3BlcnR5SUQgcHJvcCA9IGFuaW1hdGlvbi5wcm9wZXJ0eSgpOworICAgICAgICAgICAgQ1NT
UHJvcGVydHlJRCBwcm9wID0gYW5pbWF0aW9uLnByb3BlcnR5KCkuaWQ7CiAKLSAgICAgICAgICAg
IGJvb2wgYWxsID0gbW9kZSA9PSBBbmltYXRpb246OkFuaW1hdGVBbGw7CisgICAgICAgICAgICBi
b29sIGFsbCA9IG1vZGUgPT0gQW5pbWF0aW9uOjpUcmFuc2l0aW9uTW9kZTo6QWxsOwogCiAgICAg
ICAgICAgICAvLyBIYW5kbGUgYm90aCB0aGUgJ2FsbCcgYW5kIHNpbmdsZSBwcm9wZXJ0eSBjYXNl
cy4gRm9yIHRoZSBzaW5nbGUgcHJvcCBjYXNlLCB3ZSBtYWtlIG9ubHkgb25lIHBhc3MKICAgICAg
ICAgICAgIC8vIHRocm91Z2ggdGhlIGxvb3AuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKaW5kZXggNjAwMzJmOThiYTA2ZjI2NmVj
NTAyZWQxZTA2NTVhM2Q0YTY3MTgwMy4uNDUzOWY2YTUzZWM1MTUwYzkwNzM3ZDIwZTFiYjJhNWJi
NDBhMDlhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGlj
aXRBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxp
Y2l0QW5pbWF0aW9uLmNwcApAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBJ
bXBsaWNpdEFuaW1hdGlvbjo6SW1wbGljaXRBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uJiB0cmFu
c2l0aW9uLCBDU1NQcm9wZXJ0eUlEIGFuaW1hdGluZ1Byb3BlcnR5LCBFbGVtZW50JiBlbGVtZW50
LCBDb21wb3NpdGVBbmltYXRpb24mIGNvbXBvc2l0ZUFuaW1hdGlvbiwgY29uc3QgUmVuZGVyU3R5
bGUmIGZyb21TdHlsZSkKICAgICA6IEFuaW1hdGlvbkJhc2UodHJhbnNpdGlvbiwgZWxlbWVudCwg
Y29tcG9zaXRlQW5pbWF0aW9uKQogICAgICwgbV9mcm9tU3R5bGUoUmVuZGVyU3R5bGU6OmNsb25l
UHRyKGZyb21TdHlsZSkpCi0gICAgLCBtX3RyYW5zaXRpb25Qcm9wZXJ0eSh0cmFuc2l0aW9uLnBy
b3BlcnR5KCkpCisgICAgLCBtX3RyYW5zaXRpb25Qcm9wZXJ0eSh0cmFuc2l0aW9uLnByb3BlcnR5
KCkuaWQpCiAgICAgLCBtX2FuaW1hdGluZ1Byb3BlcnR5KGFuaW1hdGluZ1Byb3BlcnR5KQogewog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3Mv
Q29udGVudENoYW5nZU9ic2VydmVyLmNwcAppbmRleCBmYTc3NGE4OTkxMjQzYmQ4Y2JiNThjNjc5
YWE5MjM5MGRmNzZiMDE4Li5jNTQ4NzI2YWZmZTMyYjcxNzQ3NjBhZThiMDRiYTY3ODJlM2YzODIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZl
ci5jcHAKQEAgLTIyMyw3ICsyMjMsNyBAQCB2b2lkIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6ZGlk
QWRkVHJhbnNpdGlvbihjb25zdCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBBbmltYQogICAgICAg
ICByZXR1cm47CiAgICAgaWYgKCF0cmFuc2l0aW9uLmlzRHVyYXRpb25TZXQoKSB8fCAhdHJhbnNp
dGlvbi5pc1Byb3BlcnR5U2V0KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIWlzT2JzZXJ2
ZWRQcm9wZXJ0eUZvclRyYW5zaXRpb24odHJhbnNpdGlvbi5wcm9wZXJ0eSgpKSkKKyAgICBpZiAo
IWlzT2JzZXJ2ZWRQcm9wZXJ0eUZvclRyYW5zaXRpb24odHJhbnNpdGlvbi5wcm9wZXJ0eSgpLmlk
KSkKICAgICAgICAgcmV0dXJuOwogICAgIGF1dG8gdHJhbnNpdGlvbkVuZCA9IFNlY29uZHMgeyB0
cmFuc2l0aW9uLmR1cmF0aW9uKCkgKyBzdGQ6Om1heDxkb3VibGU+KDAsIHRyYW5zaXRpb24uaXNE
ZWxheVNldCgpID8gdHJhbnNpdGlvbi5kZWxheSgpIDogMCkgfTsKICAgICBpZiAodHJhbnNpdGlv
bkVuZCA+IG1heGltdW1EZWxheUZvclRyYW5zaXRpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmNwcAppbmRleCAxZjE2MWY2YmE5ZDEzMGI3N2Yx
ZmE1Y2ZhNzYzYjdmYjJiNzg1ZmYzLi45YTU3OThkNTQxMDhkOGExY2MwNjdkYmY4ZGUxMzc3OTFh
OWEyY2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5p
bWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0
aW9uLmNwcApAQCAtMzMsNyArMzMsNiBAQCBBbmltYXRpb246OkFuaW1hdGlvbigpCiAgICAgLCBt
X2RlbGF5KGluaXRpYWxEZWxheSgpKQogICAgICwgbV9kdXJhdGlvbihpbml0aWFsRHVyYXRpb24o
KSkKICAgICAsIG1fdGltaW5nRnVuY3Rpb24oaW5pdGlhbFRpbWluZ0Z1bmN0aW9uKCkpCi0gICAg
LCBtX21vZGUoQW5pbWF0ZUFsbCkKICAgICAsIG1fZGlyZWN0aW9uKGluaXRpYWxEaXJlY3Rpb24o
KSkKICAgICAsIG1fZmlsbE1vZGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGluaXRpYWxGaWxsTW9k
ZSgpKSkKICAgICAsIG1fcGxheVN0YXRlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbml0aWFsUGxh
eVN0YXRlKCkpKQpAQCAtNTksNyArNTgsNiBAQCBBbmltYXRpb246OkFuaW1hdGlvbihjb25zdCBB
bmltYXRpb24mIG8pCiAgICAgLCBtX2R1cmF0aW9uKG8ubV9kdXJhdGlvbikKICAgICAsIG1fdGlt
aW5nRnVuY3Rpb24oby5tX3RpbWluZ0Z1bmN0aW9uKQogICAgICwgbV9uYW1lU3R5bGVTY29wZU9y
ZGluYWwoby5tX25hbWVTdHlsZVNjb3BlT3JkaW5hbCkKLSAgICAsIG1fbW9kZShvLm1fbW9kZSkK
ICAgICAsIG1fZGlyZWN0aW9uKG8ubV9kaXJlY3Rpb24pCiAgICAgLCBtX2ZpbGxNb2RlKG8ubV9m
aWxsTW9kZSkKICAgICAsIG1fcGxheVN0YXRlKG8ubV9wbGF5U3RhdGUpCkBAIC04NSw3ICs4Myw2
IEBAIEFuaW1hdGlvbiYgQW5pbWF0aW9uOjpvcGVyYXRvcj0oY29uc3QgQW5pbWF0aW9uJiBvKQog
ICAgIG1fdGltaW5nRnVuY3Rpb24gPSBvLm1fdGltaW5nRnVuY3Rpb247CiAgICAgbV9uYW1lU3R5
bGVTY29wZU9yZGluYWwgPSBvLm1fbmFtZVN0eWxlU2NvcGVPcmRpbmFsOwogICAgIG1fcHJvcGVy
dHkgPSBvLm1fcHJvcGVydHk7Ci0gICAgbV9tb2RlID0gby5tX21vZGU7CiAgICAgbV9kaXJlY3Rp
b24gPSBvLm1fZGlyZWN0aW9uOwogICAgIG1fZmlsbE1vZGUgPSBvLm1fZmlsbE1vZGU7CiAgICAg
bV9wbGF5U3RhdGUgPSBvLm1fcGxheVN0YXRlOwpAQCAtMTMwLDcgKzEyNyw3IEBAIGJvb2wgQW5p
bWF0aW9uOjphbmltYXRpb25zTWF0Y2goY29uc3QgQW5pbWF0aW9uJiBvdGhlciwgYm9vbCBtYXRj
aFByb3BlcnRpZXMpIGNvCiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIHJldHVybiAhbWF0Y2hQcm9wZXJ0aWVzIHx8IChtX21vZGUgPT0gb3RoZXIubV9tb2Rl
ICYmIG1fcHJvcGVydHkgPT0gb3RoZXIubV9wcm9wZXJ0eSAmJiBtX3Byb3BlcnR5U2V0ID09IG90
aGVyLm1fcHJvcGVydHlTZXQpOworICAgIHJldHVybiAhbWF0Y2hQcm9wZXJ0aWVzIHx8IChtX3By
b3BlcnR5Lm1vZGUgPT0gb3RoZXIubV9wcm9wZXJ0eS5tb2RlICYmIG1fcHJvcGVydHkuaWQgPT0g
b3RoZXIubV9wcm9wZXJ0eS5pZCAmJiBtX3Byb3BlcnR5U2V0ID09IG90aGVyLm1fcHJvcGVydHlT
ZXQpOwogfQogCiBjb25zdCBTdHJpbmcmIEFuaW1hdGlvbjo6aW5pdGlhbE5hbWUoKQpAQCAtMTM5
LDEzICsxMzYsMTMgQEAgY29uc3QgU3RyaW5nJiBBbmltYXRpb246OmluaXRpYWxOYW1lKCkKICAg
ICByZXR1cm4gaW5pdGlhbFZhbHVlOwogfQogCi1UZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBBbmltYXRpb246OkFuaW1hdGlvbk1vZGUgbW9kZSkKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEFuaW1hdGlvbjo6VHJhbnNpdGlvblByb3BlcnR5IHRy
YW5zaXRpb25Qcm9wZXJ0eSkKIHsKLSAgICBzd2l0Y2ggKG1vZGUpIHsKLSAgICBjYXNlIEFuaW1h
dGlvbjo6QW5pbWF0ZUFsbDogdHMgPDwgImFsbCI7IGJyZWFrOwotICAgIGNhc2UgQW5pbWF0aW9u
OjpBbmltYXRlTm9uZTogdHMgPDwgIm5vbmUiOyBicmVhazsKLSAgICBjYXNlIEFuaW1hdGlvbjo6
QW5pbWF0ZVNpbmdsZVByb3BlcnR5OiB0cyA8PCAic2luZ2xlIHByb3BlcnR5IjsgYnJlYWs7Ci0g
ICAgY2FzZSBBbmltYXRpb246OkFuaW1hdGVVbmtub3duUHJvcGVydHk6IHRzIDw8ICJ1bmtub3du
IHByb3BlcnR5IjsgYnJlYWs7CisgICAgc3dpdGNoICh0cmFuc2l0aW9uUHJvcGVydHkubW9kZSkg
eworICAgIGNhc2UgQW5pbWF0aW9uOjpUcmFuc2l0aW9uTW9kZTo6QWxsOiB0cyA8PCAiYWxsIjsg
YnJlYWs7CisgICAgY2FzZSBBbmltYXRpb246OlRyYW5zaXRpb25Nb2RlOjpOb25lOiB0cyA8PCAi
bm9uZSI7IGJyZWFrOworICAgIGNhc2UgQW5pbWF0aW9uOjpUcmFuc2l0aW9uTW9kZTo6U2luZ2xl
UHJvcGVydHk6IHRzIDw8IGdldFByb3BlcnR5TmFtZSh0cmFuc2l0aW9uUHJvcGVydHkuaWQpOyBi
cmVhazsKKyAgICBjYXNlIEFuaW1hdGlvbjo6VHJhbnNpdGlvbk1vZGU6OlVua25vd25Qcm9wZXJ0
eTogdHMgPDwgInVua25vd24gcHJvcGVydHkiOyBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIHRz
OwogfQpAQCAtMTYzLDE0ICsxNjAsMTMgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3Ry
ZWFtJiB0cywgQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb24gZGlyZWN0aW9uKQogCiBUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBBbmltYXRpb24mIGFuaW1h
dGlvbikKIHsKLSAgICB0cy5kdW1wUHJvcGVydHkoInByb3BlcnR5IiwgZ2V0UHJvcGVydHlOYW1l
KGFuaW1hdGlvbi5wcm9wZXJ0eSgpKSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJwcm9wZXJ0eSIs
IGFuaW1hdGlvbi5wcm9wZXJ0eSgpKTsKICAgICB0cy5kdW1wUHJvcGVydHkoIm5hbWUiLCBhbmlt
YXRpb24ubmFtZSgpKTsKICAgICB0cy5kdW1wUHJvcGVydHkoIml0ZXJhdGlvbiBjb3VudCIsIGFu
aW1hdGlvbi5pdGVyYXRpb25Db3VudCgpKTsKICAgICB0cy5kdW1wUHJvcGVydHkoImRlbGF5Iiwg
YW5pbWF0aW9uLml0ZXJhdGlvbkNvdW50KCkpOwogICAgIHRzLmR1bXBQcm9wZXJ0eSgiZHVyYXRp
b24iLCBhbmltYXRpb24uZHVyYXRpb24oKSk7CiAgICAgaWYgKGFuaW1hdGlvbi50aW1pbmdGdW5j
dGlvbigpKQogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInRpbWluZyBmdW5jdGlvbiIsICphbmlt
YXRpb24udGltaW5nRnVuY3Rpb24oKSk7Ci0gICAgdHMuZHVtcFByb3BlcnR5KCJtb2RlIiwgYW5p
bWF0aW9uLmFuaW1hdGlvbk1vZGUoKSk7CiAgICAgdHMuZHVtcFByb3BlcnR5KCJkaXJlY3Rpb24i
LCBhbmltYXRpb24uZGlyZWN0aW9uKCkpOwogICAgIHRzLmR1bXBQcm9wZXJ0eSgiZmlsbC1tb2Rl
IiwgYW5pbWF0aW9uLmZpbGxNb2RlKCkpOwogICAgIHRzLmR1bXBQcm9wZXJ0eSgicGxheS1zdGF0
ZSIsIGFuaW1hdGlvbi5wbGF5U3RhdGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
bmltYXRpb24vQW5pbWF0aW9uLmgKaW5kZXggY2FmNjk0YzljMjBjNGM1OGZlZDE4NzNiMDIyZjgw
MDU5NTNhNmRhZS4uNWVjMjJlZWJhMzQyNWVlNmI5NjNmZjQ4OGFmM2RmZjk4YWIwYzYzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaApAQCAtOTIs
MTEgKzkyLDE2IEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBkZWxheSgpIGNvbnN0IHsgcmV0dXJu
IG1fZGVsYXk7IH0KIAotICAgIGVudW0gQW5pbWF0aW9uTW9kZSB7Ci0gICAgICAgIEFuaW1hdGVB
bGwsCi0gICAgICAgIEFuaW1hdGVOb25lLAotICAgICAgICBBbmltYXRlU2luZ2xlUHJvcGVydHks
Ci0gICAgICAgIEFuaW1hdGVVbmtub3duUHJvcGVydHkKKyAgICBlbnVtIGNsYXNzIFRyYW5zaXRp
b25Nb2RlIDogdWludDhfdCB7CisgICAgICAgIEFsbCwKKyAgICAgICAgTm9uZSwKKyAgICAgICAg
U2luZ2xlUHJvcGVydHksCisgICAgICAgIFVua25vd25Qcm9wZXJ0eQorICAgIH07CisKKyAgICBz
dHJ1Y3QgVHJhbnNpdGlvblByb3BlcnR5IHsKKyAgICAgICAgVHJhbnNpdGlvbk1vZGUgbW9kZTsK
KyAgICAgICAgQ1NTUHJvcGVydHlJRCBpZDsKICAgICB9OwogCiAgICAgZW51bSBBbmltYXRpb25E
aXJlY3Rpb24gewpAQCAtMTE4LDEwICsxMjMsOSBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5n
JiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAgICAgU3R5bGU6OlNjb3BlT3JkaW5h
bCBuYW1lU3R5bGVTY29wZU9yZGluYWwoKSBjb25zdCB7IHJldHVybiBtX25hbWVTdHlsZVNjb3Bl
T3JkaW5hbDsgfQogICAgIEFuaW1hdGlvblBsYXlTdGF0ZSBwbGF5U3RhdGUoKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxBbmltYXRpb25QbGF5U3RhdGU+KG1fcGxheVN0YXRlKTsgfQotICAg
IENTU1Byb3BlcnR5SUQgcHJvcGVydHkoKSBjb25zdCB7IHJldHVybiBtX3Byb3BlcnR5OyB9Cisg
ICAgVHJhbnNpdGlvblByb3BlcnR5IHByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gbV9wcm9wZXJ0
eTsgfQogICAgIGNvbnN0IFN0cmluZyYgdW5rbm93blByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4g
bV91bmtub3duUHJvcGVydHk7IH0KICAgICBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24o
KSBjb25zdCB7IHJldHVybiBtX3RpbWluZ0Z1bmN0aW9uLmdldCgpOyB9Ci0gICAgQW5pbWF0aW9u
TW9kZSBhbmltYXRpb25Nb2RlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8QW5pbWF0aW9u
TW9kZT4obV9tb2RlKTsgfQogCiAgICAgdm9pZCBzZXREZWxheShkb3VibGUgYykgeyBtX2RlbGF5
ID0gYzsgbV9kZWxheVNldCA9IHRydWU7IH0KICAgICB2b2lkIHNldERpcmVjdGlvbihBbmltYXRp
b25EaXJlY3Rpb24gZCkgeyBtX2RpcmVjdGlvbiA9IGQ7IG1fZGlyZWN0aW9uU2V0ID0gdHJ1ZTsg
fQpAQCAtMTM1LDEwICsxMzksOSBAQCBwdWJsaWM6CiAgICAgICAgIG1fbmFtZVNldCA9IHRydWU7
CiAgICAgfQogICAgIHZvaWQgc2V0UGxheVN0YXRlKEFuaW1hdGlvblBsYXlTdGF0ZSBkKSB7IG1f
cGxheVN0YXRlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGQpOyBtX3BsYXlTdGF0ZVNldCA9IHRy
dWU7IH0KLSAgICB2b2lkIHNldFByb3BlcnR5KENTU1Byb3BlcnR5SUQgdCkgeyBtX3Byb3BlcnR5
ID0gdDsgbV9wcm9wZXJ0eVNldCA9IHRydWU7IH0KKyAgICB2b2lkIHNldFByb3BlcnR5KFRyYW5z
aXRpb25Qcm9wZXJ0eSB0KSB7IG1fcHJvcGVydHkgPSB0OyBtX3Byb3BlcnR5U2V0ID0gdHJ1ZTsg
fQogICAgIHZvaWQgc2V0VW5rbm93blByb3BlcnR5KGNvbnN0IFN0cmluZyYgcHJvcGVydHkpIHsg
bV91bmtub3duUHJvcGVydHkgPSBwcm9wZXJ0eTsgfQogICAgIHZvaWQgc2V0VGltaW5nRnVuY3Rp
b24oUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiYmIGZ1bmN0aW9uKSB7IG1fdGltaW5nRnVuY3Rpb24g
PSBXVEZNb3ZlKGZ1bmN0aW9uKTsgbV90aW1pbmdGdW5jdGlvblNldCA9IHRydWU7IH0KLSAgICB2
b2lkIHNldEFuaW1hdGlvbk1vZGUoQW5pbWF0aW9uTW9kZSBtb2RlKSB7IG1fbW9kZSA9IHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihtb2RlKTsgfQogCiAgICAgdm9pZCBzZXRJc05vbmVBbmltYXRpb24o
Ym9vbCBuKSB7IG1faXNOb25lID0gbjsgfQogCkBAIC0xNTksNyArMTYyLDcgQEAgcHJpdmF0ZToK
ICAgICBBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uJiBvKTsKICAgICAKICAgICAvLyBQYWNrcyB3
aXRoIG1fcmVmQ291bnQgZnJvbSB0aGUgYmFzZSBjbGFzcy4KLSAgICBDU1NQcm9wZXJ0eUlEIG1f
cHJvcGVydHkgeyBDU1NQcm9wZXJ0eUludmFsaWQgfTsKKyAgICBUcmFuc2l0aW9uUHJvcGVydHkg
bV9wcm9wZXJ0eSB7IFRyYW5zaXRpb25Nb2RlOjpBbGwsIENTU1Byb3BlcnR5SW52YWxpZCB9Owog
CiAgICAgU3RyaW5nIG1fbmFtZTsKICAgICBTdHJpbmcgbV91bmtub3duUHJvcGVydHk7CkBAIC0x
NzAsNyArMTczLDYgQEAgcHJpdmF0ZToKIAogICAgIFN0eWxlOjpTY29wZU9yZGluYWwgbV9uYW1l
U3R5bGVTY29wZU9yZGluYWwgeyBTdHlsZTo6U2NvcGVPcmRpbmFsOjpFbGVtZW50IH07CiAKLSAg
ICB1bnNpZ25lZCBtX21vZGUgOiAyOyAvLyBBbmltYXRpb25Nb2RlCiAgICAgdW5zaWduZWQgbV9k
aXJlY3Rpb24gOiAyOyAvLyBBbmltYXRpb25EaXJlY3Rpb24KICAgICB1bnNpZ25lZCBtX2ZpbGxN
b2RlIDogMjsgLy8gQW5pbWF0aW9uRmlsbE1vZGUKICAgICB1bnNpZ25lZCBtX3BsYXlTdGF0ZSA6
IDI7IC8vIEFuaW1hdGlvblBsYXlTdGF0ZQpAQCAtMTk1LDEyICsxOTcsMTIgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBkb3VibGUgaW5pdGlhbEl0ZXJhdGlvbkNvdW50KCkgeyByZXR1cm4gMS4wOyB9
CiAgICAgc3RhdGljIGNvbnN0IFN0cmluZyYgaW5pdGlhbE5hbWUoKTsKICAgICBzdGF0aWMgQW5p
bWF0aW9uUGxheVN0YXRlIGluaXRpYWxQbGF5U3RhdGUoKSB7IHJldHVybiBBbmltYXRpb25QbGF5
U3RhdGU6OlBsYXlpbmc7IH0KLSAgICBzdGF0aWMgQ1NTUHJvcGVydHlJRCBpbml0aWFsUHJvcGVy
dHkoKSB7IHJldHVybiBDU1NQcm9wZXJ0eUludmFsaWQ7IH0KKyAgICBzdGF0aWMgVHJhbnNpdGlv
blByb3BlcnR5IGluaXRpYWxQcm9wZXJ0eSgpIHsgcmV0dXJuIHsgVHJhbnNpdGlvbk1vZGU6OkFs
bCwgQ1NTUHJvcGVydHlJbnZhbGlkIH07IH0KICAgICBzdGF0aWMgUmVmPFRpbWluZ0Z1bmN0aW9u
PiBpbml0aWFsVGltaW5nRnVuY3Rpb24oKSB7IHJldHVybiBDdWJpY0JlemllclRpbWluZ0Z1bmN0
aW9uOjpjcmVhdGUoKTsgfQogfTsKIAogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6
VGV4dFN0cmVhbSYsIEFuaW1hdGlvblBsYXlTdGF0ZSk7Ci1XVEY6OlRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQW5pbWF0aW9uOjpBbmltYXRpb25Nb2RlKTsKK1dURjo6
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBBbmltYXRpb246OlRyYW5z
aXRpb25Qcm9wZXJ0eSk7CiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3Ry
ZWFtJiwgQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb24pOwogV1RGOjpUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IEFuaW1hdGlvbiYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBkZDk3YTdl
YTBhYTQyMDg3OTkyYzY1OTljNWJjYzI3NjVmMGY5ZGQ5Li4xZDdmMDMxY2ZlNTFhMjI0YTVhZjhh
MDZlMmRiODdlOGQ0OWRlZjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTE2NjEsNyArMTY2MSw3IEBAIHZvaWQgUmVuZGVyU3R5bGU6
OmFkanVzdFRyYW5zaXRpb25zKCkKICAgICAvLyBUaGlzIGlzIGFuIE8obl4yKSBhbGdvcml0aG0g
YnV0IHRoZSBsaXN0cyB0ZW5kIHRvIGJlIHNob3J0LCBzbyBpdCBpcyBwcm9iYWJseSBPSy4KICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRyYW5zaXRpb25MaXN0LT5zaXplKCk7ICsraSkgewog
ICAgICAgICBmb3IgKHNpemVfdCBqID0gaSArIDE7IGogPCB0cmFuc2l0aW9uTGlzdC0+c2l6ZSgp
OyArK2opIHsKLSAgICAgICAgICAgIGlmICh0cmFuc2l0aW9uTGlzdC0+YW5pbWF0aW9uKGkpLnBy
b3BlcnR5KCkgPT0gdHJhbnNpdGlvbkxpc3QtPmFuaW1hdGlvbihqKS5wcm9wZXJ0eSgpKSB7Cisg
ICAgICAgICAgICBpZiAodHJhbnNpdGlvbkxpc3QtPmFuaW1hdGlvbihpKS5wcm9wZXJ0eSgpLmlk
ID09IHRyYW5zaXRpb25MaXN0LT5hbmltYXRpb24oaikucHJvcGVydHkoKS5pZCkgewogICAgICAg
ICAgICAgICAgIC8vIHRvc3MgaQogICAgICAgICAgICAgICAgIHRyYW5zaXRpb25MaXN0LT5yZW1v
dmUoaSk7CiAgICAgICAgICAgICAgICAgaiA9IGk7CkBAIC0xNjkxLDcgKzE2OTEsNyBAQCBjb25z
dCBBbmltYXRpb24qIFJlbmRlclN0eWxlOjp0cmFuc2l0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVy
dHlJRCBwcm9wZXJ0eSkgY29ucwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBmb3IgKHNp
emVfdCBpID0gMCwgc2l6ZSA9IHRyYW5zaXRpb25zLT5zaXplKCk7IGkgPCBzaXplOyArK2kpIHsK
ICAgICAgICAgYXV0byYgYW5pbWF0aW9uID0gdHJhbnNpdGlvbnMtPmFuaW1hdGlvbihpKTsKLSAg
ICAgICAgaWYgKGFuaW1hdGlvbi5hbmltYXRpb25Nb2RlKCkgPT0gQW5pbWF0aW9uOjpBbmltYXRl
QWxsIHx8IGFuaW1hdGlvbi5wcm9wZXJ0eSgpID09IHByb3BlcnR5KQorICAgICAgICBpZiAoYW5p
bWF0aW9uLnByb3BlcnR5KCkubW9kZSA9PSBBbmltYXRpb246OlRyYW5zaXRpb25Nb2RlOjpBbGwg
fHwgYW5pbWF0aW9uLnByb3BlcnR5KCkuaWQgPT0gcHJvcGVydHkpCiAgICAgICAgICAgICByZXR1
cm4gJmFuaW1hdGlvbjsKICAgICB9CiAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzIzMDcw
YzI5NGZhYTc2YjRlNGYxODM5NjQxM2U1ZGNiZjQzZmVkNC4uOWY1OWYyYjBkOGFkYmQ1ZWNhYmQ2
ZTYwMmY2ZTZjNDc2YzIxOGUxYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTA0LTA4ICBB
bnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgdHJhbnNpdGlvbi1w
cm9wZXJ0eSBpcyBub3QgY29tcHV0ZWQgY29ycmVjdGx5IHdoZW4gdHJhbnNpdGlvbi1kdXJhdGlv
biBpcyBzZXQgdG8gImluaGVyaXQiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDQ1NTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3NDU4MDkxPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5l
dyB0ZXN0IHRoYXQgY2hlY2tzIHRoYXQgc2V0dGluZyAidHJhbnNpdGlvbi1kdXJhdGlvbiIgdG8g
ImluaGVyaXQiIGRvZXMgbm90IGNhdXNlICJ0cmFuc2l0aW9uLXByb3BlcnR5IiB0byBiZWhhdmVz
CisgICAgICAgIGFzIGlmICJpbmhlcml0IiB3YXMgaW1wbGljdGx5IHNldCBhcyB3ZWxsLgorCisg
ICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1wcm9wZXJ0eS1mb3ItZWxlbWVudC13aXRo
LXRyYW5zaXRpb24tZHVyYXRpb24taW5oZXJpdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHRyYW5zaXRpb25zL3RyYW5zaXRpb24tcHJvcGVydHktZm9yLWVsZW1lbnQtd2l0aC10cmFu
c2l0aW9uLWR1cmF0aW9uLWluaGVyaXQuaHRtbDogQWRkZWQuCisKIDIwMjAtMDQtMDggIERpZWdv
IFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBHYXJkZW5p
bmcsIGZsYWt5IGZhaWx1cmVzIGluIEVXUyBHVEstV0syCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LWZvci1lbGVtZW50LXdpdGgtdHJhbnNp
dGlvbi1kdXJhdGlvbi1pbmhlcml0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RyYW5zaXRp
b25zL3RyYW5zaXRpb24tcHJvcGVydHktZm9yLWVsZW1lbnQtd2l0aC10cmFuc2l0aW9uLWR1cmF0
aW9uLWluaGVyaXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3MjRjMzViNDNkZmE1NzNmMzlj
ZGZiODRmNDg0MGQ0Mzk4OWM3ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90cmFu
c2l0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LWZvci1lbGVtZW50LXdpdGgtdHJhbnNpdGlvbi1k
dXJhdGlvbi1pbmhlcml0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IHRoZSBl
ZmZlY3Qgb2YgJ3RyYW5zaXRpb24tZHVyYXRpb246IGluaGVyaXQnIG9uICd0cmFuc2l0aW9uLXBy
b3BlcnR5Jy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzcGFuJykpLnRyYW5zaXRpb25Qcm9wZXJ0
eSBpcyAnYWxsJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tcHJv
cGVydHktZm9yLWVsZW1lbnQtd2l0aC10cmFuc2l0aW9uLWR1cmF0aW9uLWluaGVyaXQuaHRtbCBi
L0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tcHJvcGVydHktZm9yLWVsZW1lbnQt
d2l0aC10cmFuc2l0aW9uLWR1cmF0aW9uLWluaGVyaXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTkzN2I4
MjAyMDliMzE4ZGY4NzE4YmZhZGU5Y2I1MGU1YWYwY2M2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1wcm9wZXJ0eS1mb3ItZWxlbWVudC13aXRo
LXRyYW5zaXRpb24tZHVyYXRpb24taW5oZXJpdC5odG1sCkBAIC0wLDAgKzEsNyBAQAorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8ZGl2IHN0eWxl
PSJ0cmFuc2l0aW9uLWR1cmF0aW9uOiAxczsgdHJhbnNpdGlvbi1wcm9wZXJ0eTogbWFyZ2luLWxl
ZnQ7Ij48c3BhbiBzdHlsZT0idHJhbnNpdGlvbi1kdXJhdGlvbjogaW5oZXJpdDsiPjwvc3Bhbj48
L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCB0aGUgZWZmZWN0IG9mICd0cmFuc2l0
aW9uLWR1cmF0aW9uOiBpbmhlcml0JyBvbiAndHJhbnNpdGlvbi1wcm9wZXJ0eScuIikKK3Nob3Vs
ZEJlKCJnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NwYW4nKSkudHJh
bnNpdGlvblByb3BlcnR5IiwgIidhbGwnIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4gICAgClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395813</attachid>
            <date>2020-04-08 08:38:06 -0700</date>
            <delta_ts>2020-04-08 08:59:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204554-20200408173805.patch</filename>
            <type>text/plain</type>
            <size>26505</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDUwODM2ZmM5MDI4ODMz
NTkyMWE1NWFjYzI3NzFjOGRmOTAzZmVjNC4uMzZhMTk4MzgyNmZjNjU4OGE2NWFiNTAxMzRhYWJk
NDUzYTVlOGQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIwLTA0LTA4ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgdHJhbnNpdGlvbi1wcm9w
ZXJ0eSBpcyBub3QgY29tcHV0ZWQgY29ycmVjdGx5IHdoZW4gdHJhbnNpdGlvbi1kdXJhdGlvbiBp
cyBzZXQgdG8gImluaGVyaXQiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDQ1NTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3NDU4MDkxPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IHRyYW5z
aXRpb25zL3RyYW5zaXRpb24tcHJvcGVydHktZm9yLWVsZW1lbnQtd2l0aC10cmFuc2l0aW9uLWR1
cmF0aW9uLWluaGVyaXQuaHRtbAorCisgICAgICAgIFRoZSAidHJhbnNpdGlvbi1wcm9wZXJ0eSIg
d291bGQgYmVoYXZlIGFzIGlmICJpbmhlcml0IiB3YXMgc2V0IHdoZW4gdGhlICJ0cmFuc2l0aW9u
LWR1cmF0aW9uIiBwcm9wZXJ0eSBpdHNlbGYgd2FzIHNldCBleHBsaWNpdGx5IHRvICJpbmhlcml0
Ii4KKyAgICAgICAgV2UgZml4IHRoaXMgYnkgc3RvcmluZyBhbGwgdGhlIGluZm9ybWF0aW9uIGNv
bnRhaW5lZCBpbiB0aGUgInRyYW5zaXRpb24tcHJvcGVydHkiIGludG8gdGhlIHNpbmdsZSBBbmlt
YXRpb246Om1fcHJvcGVydHkgbWVtYmVyIGluc3RlYWQgb2Ygc3BsaXR0aW5nCisgICAgICAgIGl0
IGFjcm9zcyBBbmltYXRpb246Om1fbW9kZSBhcyB3ZWxsLiBXZSBub3cgdXNlIGEgVHJhbnNpdGlv
blByb3BlcnR5IHN0cnVjdCB3aGljaCBob2xkcyBib3RoIHRoZSB0cmFuc2l0aW9uICJtb2RlIiAo
bm9uZSwgYWxsLCBzaW5nbGUgcHJvcGVydHksCisgICAgICAgIHVua25vd24gcHJvcGVydHkpIGFu
ZCBhbmQgdGhlIENTUyBwcm9wZXJ0eSB0YXJnZXRlZCBpdHNlbGYuCisKKyAgICAgICAgVGhpcyBy
ZXF1aXJlcyBtb2RpZnlpbmcgY2FsbCBzaXRlcyBvZiBib3RoIEFuaW1hdGlvbjo6cHJvcGVydHko
KSBhbmQgQW5pbWF0aW9uOjphbmltYXRpb25Nb2RlKCkgdGhyb3VnaG91dCBXZWJDb3JlLgorCisg
ICAgICAgICogYW5pbWF0aW9uL0FuaW1hdGlvblRpbWVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnRyYW5zaXRpb25NYXRjaGVzUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6Y29tcGls
ZVRyYW5zaXRpb25Qcm9wZXJ0aWVzSW5TdHlsZSk6CisgICAgICAgICogY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVUcmFuc2l0aW9u
UHJvcGVydHlWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1RvU3R5bGVNYXAuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTVG9TdHlsZU1hcDo6bWFwQW5pbWF0aW9uUHJvcGVydHkpOgorICAgICAg
ICAqIGNzcy9tYWtlcHJvcC5wbDoKKyAgICAgICAgKGdlbmVyYXRlQW5pbWF0aW9uUHJvcGVydHlJ
bml0aWFsVmFsdWVTZXR0ZXIpOgorICAgICAgICAoZ2VuZXJhdGVBbmltYXRpb25Qcm9wZXJ0eUlu
aGVyaXRWYWx1ZVNldHRlcik6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5p
bWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRl
VHJhbnNpdGlvbnMpOgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltcGxpY2l0QW5pbWF0aW9uOjpJbXBsaWNpdEFuaW1h
dGlvbik6CisgICAgICAgICogcGFnZS9pb3MvQ29udGVudENoYW5nZU9ic2VydmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6ZGlkQWRkVHJhbnNpdGlvbik6
CisgICAgICAgICogcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBbmltYXRpb246OkFuaW1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRp
b246Om9wZXJhdG9yPSk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb246OmFuaW1hdGlvbnNN
YXRjaCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRp
b246OnByb3BlcnR5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbjo6dGltaW5n
RnVuY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uOjpzZXRQcm9wZXJ0
eSk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb246OnNldFRpbWluZ0Z1bmN0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbjo6aW5pdGlhbFByb3BlcnR5KToKKyAgICAgICAgKFdl
YkNvcmU6OkFuaW1hdGlvbjo6YW5pbWF0aW9uTW9kZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpBbmltYXRpb246OnNldEFuaW1hdGlvbk1vZGUpOiBEZWxldGVkLgorICAgICAg
ICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTdHlsZTo6YWRqdXN0VHJhbnNpdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U3R5bGU6OnRyYW5zaXRpb25Gb3JQcm9wZXJ0eSBjb25zdCk6CisKIDIwMjAtMDQtMDggIEtlaXRo
IFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSB0aGUgdXNlIG9m
IFhDQnVpbGQgYnkgZGVmYXVsdCBpbiBBcHBsZSBidWlsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuY3BwCmluZGV4IGFjYjY0YzQxZWQxN2ViYjFlMWE3
NjNjZTYzODBhMmNhOTgxYzM4ZDEuLmQzYjczNTM1NWFhOGVlOGQ0NGEzMTM1NDlkODI4MDMwZTlh
NDg4ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1l
bGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblRpbWVsaW5l
LmNwcApAQCAtMzI4LDExICszMjgsMTEgQEAgc3RhdGljIGRvdWJsZSB0cmFuc2l0aW9uQ29tYmlu
ZWREdXJhdGlvbihjb25zdCBBbmltYXRpb24qIHRyYW5zaXRpb24pCiAKIHN0YXRpYyBib29sIHRy
YW5zaXRpb25NYXRjaGVzUHJvcGVydHkoY29uc3QgQW5pbWF0aW9uJiB0cmFuc2l0aW9uLCBDU1NQ
cm9wZXJ0eUlEIHByb3BlcnR5KQogewotICAgIGF1dG8gbW9kZSA9IHRyYW5zaXRpb24uYW5pbWF0
aW9uTW9kZSgpOwotICAgIGlmIChtb2RlID09IEFuaW1hdGlvbjo6QW5pbWF0ZU5vbmUgfHwgbW9k
ZSA9PSBBbmltYXRpb246OkFuaW1hdGVVbmtub3duUHJvcGVydHkpCisgICAgYXV0byBtb2RlID0g
dHJhbnNpdGlvbi5wcm9wZXJ0eSgpLm1vZGU7CisgICAgaWYgKG1vZGUgPT0gQW5pbWF0aW9uOjpU
cmFuc2l0aW9uTW9kZTo6Tm9uZSB8fCBtb2RlID09IEFuaW1hdGlvbjo6VHJhbnNpdGlvbk1vZGU6
OlVua25vd25Qcm9wZXJ0eSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChtb2RlID09
IEFuaW1hdGlvbjo6QW5pbWF0ZVNpbmdsZVByb3BlcnR5KSB7Ci0gICAgICAgIGF1dG8gdHJhbnNp
dGlvblByb3BlcnR5ID0gdHJhbnNpdGlvbi5wcm9wZXJ0eSgpOworICAgIGlmIChtb2RlID09IEFu
aW1hdGlvbjo6VHJhbnNpdGlvbk1vZGU6OlNpbmdsZVByb3BlcnR5KSB7CisgICAgICAgIGF1dG8g
dHJhbnNpdGlvblByb3BlcnR5ID0gdHJhbnNpdGlvbi5wcm9wZXJ0eSgpLmlkOwogICAgICAgICBp
ZiAodHJhbnNpdGlvblByb3BlcnR5ICE9IHByb3BlcnR5KSB7CiAgICAgICAgICAgICBmb3IgKGF1
dG8gbG9uZ2hhbmQgOiBzaG9ydGhhbmRGb3JQcm9wZXJ0eSh0cmFuc2l0aW9uUHJvcGVydHkpKSB7
CiAgICAgICAgICAgICAgICAgaWYgKGxvbmdoYW5kID09IHByb3BlcnR5KQpAQCAtMzU1LDE1ICsz
NTUsMTUgQEAgc3RhdGljIHZvaWQgY29tcGlsZVRyYW5zaXRpb25Qcm9wZXJ0aWVzSW5TdHlsZShj
b25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIEhhc2hTZXQKIAogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgdHJhbnNpdGlvbnMtPnNpemUoKTsgKytpKSB7CiAgICAgICAgIGNvbnN0IGF1dG8mIGFu
aW1hdGlvbiA9IHRyYW5zaXRpb25zLT5hbmltYXRpb24oaSk7Ci0gICAgICAgIGF1dG8gbW9kZSA9
IGFuaW1hdGlvbi5hbmltYXRpb25Nb2RlKCk7Ci0gICAgICAgIGlmIChtb2RlID09IEFuaW1hdGlv
bjo6QW5pbWF0ZVNpbmdsZVByb3BlcnR5KSB7Ci0gICAgICAgICAgICBhdXRvIHByb3BlcnR5ID0g
YW5pbWF0aW9uLnByb3BlcnR5KCk7CisgICAgICAgIGF1dG8gbW9kZSA9IGFuaW1hdGlvbi5wcm9w
ZXJ0eSgpLm1vZGU7CisgICAgICAgIGlmIChtb2RlID09IEFuaW1hdGlvbjo6VHJhbnNpdGlvbk1v
ZGU6OlNpbmdsZVByb3BlcnR5KSB7CisgICAgICAgICAgICBhdXRvIHByb3BlcnR5ID0gYW5pbWF0
aW9uLnByb3BlcnR5KCkuaWQ7CiAgICAgICAgICAgICBpZiAoaXNTaG9ydGhhbmRDU1NQcm9wZXJ0
eShwcm9wZXJ0eSkpIHsKICAgICAgICAgICAgICAgICBmb3IgKGF1dG8gbG9uZ2hhbmQgOiBzaG9y
dGhhbmRGb3JQcm9wZXJ0eShwcm9wZXJ0eSkpCiAgICAgICAgICAgICAgICAgICAgIHRyYW5zaXRp
b25Qcm9wZXJ0aWVzLmFkZChsb25naGFuZCk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKHByb3Bl
cnR5ICE9IENTU1Byb3BlcnR5SW52YWxpZCkKICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uUHJv
cGVydGllcy5hZGQocHJvcGVydHkpOwotICAgICAgICB9IGVsc2UgaWYgKG1vZGUgPT0gQW5pbWF0
aW9uOjpBbmltYXRlQWxsKSB7CisgICAgICAgIH0gZWxzZSBpZiAobW9kZSA9PSBBbmltYXRpb246
OlRyYW5zaXRpb25Nb2RlOjpBbGwpIHsKICAgICAgICAgICAgIHRyYW5zaXRpb25Qcm9wZXJ0aWVz
Q29udGFpbkFsbCA9IHRydWU7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5k
ZXggYjFiZDU3NWVjOWUzOTY3NDE5Y2JjMTMxNTY4MGE1MzI5NjZjZWVmMS4uNTBjYjdhYzQ3NmRi
ZWY0NDQ3MGNmZTA4MDBmMDc0OTZiZGE3YTRhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTk1OSwxNCArOTU5LDE0IEBA
IHN0YXRpYyBSZWY8Q1NTVmFsdWU+IHZhbHVlRm9yR3JpZFBvc2l0aW9uKGNvbnN0IEdyaWRQb3Np
dGlvbiYgcG9zaXRpb24pCiAKIHN0YXRpYyBSZWY8Q1NTVmFsdWU+IGNyZWF0ZVRyYW5zaXRpb25Q
cm9wZXJ0eVZhbHVlKGNvbnN0IEFuaW1hdGlvbiYgYW5pbWF0aW9uKQogewotICAgIHN3aXRjaCAo
YW5pbWF0aW9uLmFuaW1hdGlvbk1vZGUoKSkgewotICAgIGNhc2UgQW5pbWF0aW9uOjpBbmltYXRl
Tm9uZToKKyAgICBzd2l0Y2ggKGFuaW1hdGlvbi5wcm9wZXJ0eSgpLm1vZGUpIHsKKyAgICBjYXNl
IEFuaW1hdGlvbjo6VHJhbnNpdGlvbk1vZGU6Ok5vbmU6CiAgICAgICAgIHJldHVybiBDU1NWYWx1
ZVBvb2w6OnNpbmdsZXRvbigpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpOwot
ICAgIGNhc2UgQW5pbWF0aW9uOjpBbmltYXRlQWxsOgorICAgIGNhc2UgQW5pbWF0aW9uOjpUcmFu
c2l0aW9uTW9kZTo6QWxsOgogICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0b24o
KS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVBbGwpOwotICAgIGNhc2UgQW5pbWF0aW9u
OjpBbmltYXRlU2luZ2xlUHJvcGVydHk6Ci0gICAgICAgIHJldHVybiBDU1NWYWx1ZVBvb2w6OnNp
bmdsZXRvbigpLmNyZWF0ZVZhbHVlKGdldFByb3BlcnR5TmFtZVN0cmluZyhhbmltYXRpb24ucHJv
cGVydHkoKSksIENTU1VuaXRUeXBlOjpDU1NfU1RSSU5HKTsKLSAgICBjYXNlIEFuaW1hdGlvbjo6
QW5pbWF0ZVVua25vd25Qcm9wZXJ0eToKKyAgICBjYXNlIEFuaW1hdGlvbjo6VHJhbnNpdGlvbk1v
ZGU6OlNpbmdsZVByb3BlcnR5OgorICAgICAgICByZXR1cm4gQ1NTVmFsdWVQb29sOjpzaW5nbGV0
b24oKS5jcmVhdGVWYWx1ZShnZXRQcm9wZXJ0eU5hbWVTdHJpbmcoYW5pbWF0aW9uLnByb3BlcnR5
KCkuaWQpLCBDU1NVbml0VHlwZTo6Q1NTX1NUUklORyk7CisgICAgY2FzZSBBbmltYXRpb246OlRy
YW5zaXRpb25Nb2RlOjpVbmtub3duUHJvcGVydHk6CiAgICAgICAgIHJldHVybiBDU1NWYWx1ZVBv
b2w6OnNpbmdsZXRvbigpLmNyZWF0ZVZhbHVlKGFuaW1hdGlvbi51bmtub3duUHJvcGVydHkoKSwg
Q1NTVW5pdFR5cGU6OkNTU19TVFJJTkcpOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NUb1N0eWxlTWFwLmNwcAppbmRleCAzMzIwMzlkNmI0N2VlMDEy
MDkzMWI1MGM2MmM1YThlNTc2YTEzNGRhLi40ZjY2MDVkNDJmMmRhNDRmZDUxM2JhYjU4NmEzOTU2
ZWZlZGM5YzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVG9TdHlsZU1hcC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1RvU3R5bGVNYXAuY3BwCkBAIC00MjQsOCAr
NDI0LDcgQEAgdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25QbGF5U3RhdGUoQW5pbWF0
aW9uJiBsYXllciwgY29uc3QgQ1NTVmFsdWUmIHZhbHUKIHZvaWQgQ1NTVG9TdHlsZU1hcDo6bWFw
QW5pbWF0aW9uUHJvcGVydHkoQW5pbWF0aW9uJiBhbmltYXRpb24sIGNvbnN0IENTU1ZhbHVlJiB2
YWx1ZSkKIHsKICAgICBpZiAodmFsdWUudHJlYXRBc0luaXRpYWxWYWx1ZShDU1NQcm9wZXJ0eUFu
aW1hdGlvbikpIHsKLSAgICAgICAgYW5pbWF0aW9uLnNldEFuaW1hdGlvbk1vZGUoQW5pbWF0aW9u
OjpBbmltYXRlQWxsKTsKLSAgICAgICAgYW5pbWF0aW9uLnNldFByb3BlcnR5KENTU1Byb3BlcnR5
SW52YWxpZCk7CisgICAgICAgIGFuaW1hdGlvbi5zZXRQcm9wZXJ0eShBbmltYXRpb246OmluaXRp
YWxQcm9wZXJ0eSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNDM0LDIzICs0MzMs
MjAgQEAgdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25Qcm9wZXJ0eShBbmltYXRpb24m
IGFuaW1hdGlvbiwgY29uc3QgQ1NTVmFsdWUmIHYKIAogICAgIGF1dG8mIHByaW1pdGl2ZVZhbHVl
ID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKTsKICAgICBpZiAocHJpbWl0aXZl
VmFsdWUudmFsdWVJRCgpID09IENTU1ZhbHVlQWxsKSB7Ci0gICAgICAgIGFuaW1hdGlvbi5zZXRB
bmltYXRpb25Nb2RlKEFuaW1hdGlvbjo6QW5pbWF0ZUFsbCk7Ci0gICAgICAgIGFuaW1hdGlvbi5z
ZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUludmFsaWQpOworICAgICAgICBhbmltYXRpb24uc2V0UHJv
cGVydHkoeyBBbmltYXRpb246OlRyYW5zaXRpb25Nb2RlOjpBbGwsIENTU1Byb3BlcnR5SW52YWxp
ZCB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAocHJpbWl0aXZlVmFsdWUudmFs
dWVJRCgpID09IENTU1ZhbHVlTm9uZSkgewotICAgICAgICBhbmltYXRpb24uc2V0QW5pbWF0aW9u
TW9kZShBbmltYXRpb246OkFuaW1hdGVOb25lKTsKLSAgICAgICAgYW5pbWF0aW9uLnNldFByb3Bl
cnR5KENTU1Byb3BlcnR5SW52YWxpZCk7CisgICAgICAgIGFuaW1hdGlvbi5zZXRQcm9wZXJ0eSh7
IEFuaW1hdGlvbjo6VHJhbnNpdGlvbk1vZGU6Ok5vbmUsIENTU1Byb3BlcnR5SW52YWxpZCB9KTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAocHJpbWl0aXZlVmFsdWUucHJvcGVydHlJ
RCgpID09IENTU1Byb3BlcnR5SW52YWxpZCkgewotICAgICAgICBhbmltYXRpb24uc2V0QW5pbWF0
aW9uTW9kZShBbmltYXRpb246OkFuaW1hdGVVbmtub3duUHJvcGVydHkpOwotICAgICAgICBhbmlt
YXRpb24uc2V0UHJvcGVydHkoQ1NTUHJvcGVydHlJbnZhbGlkKTsKKyAgICAgICAgYW5pbWF0aW9u
LnNldFByb3BlcnR5KHsgQW5pbWF0aW9uOjpUcmFuc2l0aW9uTW9kZTo6VW5rbm93blByb3BlcnR5
LCBDU1NQcm9wZXJ0eUludmFsaWQgfSk7CiAgICAgICAgIGFuaW1hdGlvbi5zZXRVbmtub3duUHJv
cGVydHkocHJpbWl0aXZlVmFsdWUuc3RyaW5nVmFsdWUoKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9Ci0gICAgYW5pbWF0aW9uLnNldEFuaW1hdGlvbk1vZGUoQW5pbWF0aW9uOjpBbmltYXRlU2lu
Z2xlUHJvcGVydHkpOwotICAgIGFuaW1hdGlvbi5zZXRQcm9wZXJ0eShwcmltaXRpdmVWYWx1ZS5w
cm9wZXJ0eUlEKCkpOworCisgICAgYW5pbWF0aW9uLnNldFByb3BlcnR5KHsgQW5pbWF0aW9uOjpU
cmFuc2l0aW9uTW9kZTo6U2luZ2xlUHJvcGVydHksIHByaW1pdGl2ZVZhbHVlLnByb3BlcnR5SUQo
KSB9KTsKIH0KIAogdm9pZCBDU1NUb1N0eWxlTWFwOjptYXBBbmltYXRpb25UaW1pbmdGdW5jdGlv
bihBbmltYXRpb24mIGFuaW1hdGlvbiwgY29uc3QgQ1NTVmFsdWUmIHZhbHVlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2Vwcm9wLnBsIGIvU291cmNlL1dlYkNvcmUvY3NzL21h
a2Vwcm9wLnBsCmluZGV4IDY1N2UzM2IwODUwNGRjNzdjZWYzODk0NDM1MTA4OWY4MjE0Y2Y1YjMu
LmNkZTExMTExNTJjYzg0YjhjZGY0NDdkYmFmZWMyODlmY2M0MmMyMDIgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9tYWtlcHJvcC5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFr
ZXByb3AucGwKQEAgLTc2OSw5ICs3NjksNiBAQCBzdWIgZ2VuZXJhdGVBbmltYXRpb25Qcm9wZXJ0
eUluaXRpYWxWYWx1ZVNldHRlciB7CiAgIG15ICRzZXR0ZXIgPSAkcHJvcGVydGllc1dpdGhTdHls
ZUJ1aWxkZXJPcHRpb25zeyRuYW1lfXsic2V0dGVyIn07CiAgIG15ICRpbml0aWFsID0gJHByb3Bl
cnRpZXNXaXRoU3R5bGVCdWlsZGVyT3B0aW9uc3skbmFtZX17ImluaXRpYWwifTsKICAgJHNldHRl
ckNvbnRlbnQgLj0gJGluZGVudCAuICJsaXN0LmFuaW1hdGlvbigwKS4iIC4gJHNldHRlciAuICIo
QW5pbWF0aW9uOjoiIC4gJGluaXRpYWwgLiAiKCkpO1xuIjsKLSAgaWYgKCRuYW1lIGVxICItd2Vi
a2l0LXRyYW5zaXRpb24tcHJvcGVydHkiKSB7Ci0gICAgJHNldHRlckNvbnRlbnQgLj0gJGluZGVu
dCAuICJsaXN0LmFuaW1hdGlvbigwKS5zZXRBbmltYXRpb25Nb2RlKEFuaW1hdGlvbjo6QW5pbWF0
ZUFsbCk7XG4iOwotICB9CiAgICRzZXR0ZXJDb250ZW50IC49ICRpbmRlbnQgLiAiZm9yIChzaXpl
X3QgaSA9IDE7IGkgPCBsaXN0LnNpemUoKTsgKytpKVxuIjsKICAgJHNldHRlckNvbnRlbnQgLj0g
JGluZGVudCAuICIgICAgbGlzdC5hbmltYXRpb24oaSkuIiAuIGdldENsZWFyRnVuY3Rpb24oJG5h
bWUpIC4gIigpO1xuIjsKIApAQCAtNzkyLDcgKzc4OSw2IEBAIHN1YiBnZW5lcmF0ZUFuaW1hdGlv
blByb3BlcnR5SW5oZXJpdFZhbHVlU2V0dGVyIHsKICAgbXkgJGdldHRlciA9ICRwcm9wZXJ0aWVz
V2l0aFN0eWxlQnVpbGRlck9wdGlvbnN7JG5hbWV9eyJnZXR0ZXIifTsKICAgbXkgJHNldHRlciA9
ICRwcm9wZXJ0aWVzV2l0aFN0eWxlQnVpbGRlck9wdGlvbnN7JG5hbWV9eyJzZXR0ZXIifTsKICAg
JHNldHRlckNvbnRlbnQgLj0gJGluZGVudCAuICIgICAgbGlzdC5hbmltYXRpb24oaSkuIiAuICRz
ZXR0ZXIgLiAiKHBhcmVudExpc3QtPmFuaW1hdGlvbihpKS4iIC4gJGdldHRlciAuICIoKSk7XG4i
OwotICAkc2V0dGVyQ29udGVudCAuPSAkaW5kZW50IC4gIiAgICBsaXN0LmFuaW1hdGlvbihpKS5z
ZXRBbmltYXRpb25Nb2RlKHBhcmVudExpc3QtPmFuaW1hdGlvbihpKS5hbmltYXRpb25Nb2RlKCkp
O1xuIjsKICAgJHNldHRlckNvbnRlbnQgLj0gJGluZGVudCAuICJ9XG4iOwogICAkc2V0dGVyQ29u
dGVudCAuPSAiXG4iOwogICAkc2V0dGVyQ29udGVudCAuPSAkaW5kZW50IC4gIi8vIFJlc2V0IGFu
eSByZW1haW5pbmcgYW5pbWF0aW9ucyB0byBub3QgaGF2ZSB0aGUgcHJvcGVydHkgc2V0LlxuIjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1h
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRp
b24uY3BwCmluZGV4IGViZDQ5MjcwN2YyMjhlZDBlZWEwZTI0YjAwMDgxNzYzYzdmYmU4NDcuLmVl
MGQ1Njg4Y2I4ODFhZGRlMDBhNjlkNmI2M2Q5ZWNlOWFkNjczN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcApAQCAtOTcs
MTMgKzk3LDEzIEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVUcmFuc2l0aW9ucyhF
bGVtZW50JiBlbGVtZW50LCBjb25zdCBSZW5kZXJTdHlsZSoKICAgICAgICAgICAgIGF1dG8mIGFu
aW1hdGlvbiA9IHRhcmdldFN0eWxlLnRyYW5zaXRpb25zKCktPmFuaW1hdGlvbihpKTsKICAgICAg
ICAgICAgIGJvb2wgaXNBY3RpdmVUcmFuc2l0aW9uID0gYW5pbWF0aW9uLmR1cmF0aW9uKCkgfHwg
YW5pbWF0aW9uLmRlbGF5KCkgPiAwOwogCi0gICAgICAgICAgICBBbmltYXRpb246OkFuaW1hdGlv
bk1vZGUgbW9kZSA9IGFuaW1hdGlvbi5hbmltYXRpb25Nb2RlKCk7Ci0gICAgICAgICAgICBpZiAo
bW9kZSA9PSBBbmltYXRpb246OkFuaW1hdGVOb25lIHx8IG1vZGUgPT0gQW5pbWF0aW9uOjpBbmlt
YXRlVW5rbm93blByb3BlcnR5KQorICAgICAgICAgICAgYXV0byBtb2RlID0gYW5pbWF0aW9uLnBy
b3BlcnR5KCkubW9kZTsKKyAgICAgICAgICAgIGlmIChtb2RlID09IEFuaW1hdGlvbjo6VHJhbnNp
dGlvbk1vZGU6Ok5vbmUgfHwgbW9kZSA9PSBBbmltYXRpb246OlRyYW5zaXRpb25Nb2RlOjpVbmtu
b3duUHJvcGVydHkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIENT
U1Byb3BlcnR5SUQgcHJvcCA9IGFuaW1hdGlvbi5wcm9wZXJ0eSgpOworICAgICAgICAgICAgQ1NT
UHJvcGVydHlJRCBwcm9wID0gYW5pbWF0aW9uLnByb3BlcnR5KCkuaWQ7CiAKLSAgICAgICAgICAg
IGJvb2wgYWxsID0gbW9kZSA9PSBBbmltYXRpb246OkFuaW1hdGVBbGw7CisgICAgICAgICAgICBi
b29sIGFsbCA9IG1vZGUgPT0gQW5pbWF0aW9uOjpUcmFuc2l0aW9uTW9kZTo6QWxsOwogCiAgICAg
ICAgICAgICAvLyBIYW5kbGUgYm90aCB0aGUgJ2FsbCcgYW5kIHNpbmdsZSBwcm9wZXJ0eSBjYXNl
cy4gRm9yIHRoZSBzaW5nbGUgcHJvcCBjYXNlLCB3ZSBtYWtlIG9ubHkgb25lIHBhc3MKICAgICAg
ICAgICAgIC8vIHRocm91Z2ggdGhlIGxvb3AuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKaW5kZXggNjAwMzJmOThiYTA2ZjI2NmVj
NTAyZWQxZTA2NTVhM2Q0YTY3MTgwMy4uNDUzOWY2YTUzZWM1MTUwYzkwNzM3ZDIwZTFiYjJhNWJi
NDBhMDlhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGlj
aXRBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxp
Y2l0QW5pbWF0aW9uLmNwcApAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBJ
bXBsaWNpdEFuaW1hdGlvbjo6SW1wbGljaXRBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uJiB0cmFu
c2l0aW9uLCBDU1NQcm9wZXJ0eUlEIGFuaW1hdGluZ1Byb3BlcnR5LCBFbGVtZW50JiBlbGVtZW50
LCBDb21wb3NpdGVBbmltYXRpb24mIGNvbXBvc2l0ZUFuaW1hdGlvbiwgY29uc3QgUmVuZGVyU3R5
bGUmIGZyb21TdHlsZSkKICAgICA6IEFuaW1hdGlvbkJhc2UodHJhbnNpdGlvbiwgZWxlbWVudCwg
Y29tcG9zaXRlQW5pbWF0aW9uKQogICAgICwgbV9mcm9tU3R5bGUoUmVuZGVyU3R5bGU6OmNsb25l
UHRyKGZyb21TdHlsZSkpCi0gICAgLCBtX3RyYW5zaXRpb25Qcm9wZXJ0eSh0cmFuc2l0aW9uLnBy
b3BlcnR5KCkpCisgICAgLCBtX3RyYW5zaXRpb25Qcm9wZXJ0eSh0cmFuc2l0aW9uLnByb3BlcnR5
KCkuaWQpCiAgICAgLCBtX2FuaW1hdGluZ1Byb3BlcnR5KGFuaW1hdGluZ1Byb3BlcnR5KQogewog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3Mv
Q29udGVudENoYW5nZU9ic2VydmVyLmNwcAppbmRleCBmYTc3NGE4OTkxMjQzYmQ4Y2JiNThjNjc5
YWE5MjM5MGRmNzZiMDE4Li5jNTQ4NzI2YWZmZTMyYjcxNzQ3NjBhZThiMDRiYTY3ODJlM2YzODIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9Db250ZW50Q2hhbmdlT2JzZXJ2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0NvbnRlbnRDaGFuZ2VPYnNlcnZl
ci5jcHAKQEAgLTIyMyw3ICsyMjMsNyBAQCB2b2lkIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6ZGlk
QWRkVHJhbnNpdGlvbihjb25zdCBFbGVtZW50JiBlbGVtZW50LCBjb25zdCBBbmltYQogICAgICAg
ICByZXR1cm47CiAgICAgaWYgKCF0cmFuc2l0aW9uLmlzRHVyYXRpb25TZXQoKSB8fCAhdHJhbnNp
dGlvbi5pc1Byb3BlcnR5U2V0KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIWlzT2JzZXJ2
ZWRQcm9wZXJ0eUZvclRyYW5zaXRpb24odHJhbnNpdGlvbi5wcm9wZXJ0eSgpKSkKKyAgICBpZiAo
IWlzT2JzZXJ2ZWRQcm9wZXJ0eUZvclRyYW5zaXRpb24odHJhbnNpdGlvbi5wcm9wZXJ0eSgpLmlk
KSkKICAgICAgICAgcmV0dXJuOwogICAgIGF1dG8gdHJhbnNpdGlvbkVuZCA9IFNlY29uZHMgeyB0
cmFuc2l0aW9uLmR1cmF0aW9uKCkgKyBzdGQ6Om1heDxkb3VibGU+KDAsIHRyYW5zaXRpb24uaXNE
ZWxheVNldCgpID8gdHJhbnNpdGlvbi5kZWxheSgpIDogMCkgfTsKICAgICBpZiAodHJhbnNpdGlv
bkVuZCA+IG1heGltdW1EZWxheUZvclRyYW5zaXRpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmNwcAppbmRleCAxZjE2MWY2YmE5ZDEzMGI3N2Yx
ZmE1Y2ZhNzYzYjdmYjJiNzg1ZmYzLi45YTU3OThkNTQxMDhkOGExY2MwNjdkYmY4ZGUxMzc3OTFh
OWEyY2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5p
bWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0
aW9uLmNwcApAQCAtMzMsNyArMzMsNiBAQCBBbmltYXRpb246OkFuaW1hdGlvbigpCiAgICAgLCBt
X2RlbGF5KGluaXRpYWxEZWxheSgpKQogICAgICwgbV9kdXJhdGlvbihpbml0aWFsRHVyYXRpb24o
KSkKICAgICAsIG1fdGltaW5nRnVuY3Rpb24oaW5pdGlhbFRpbWluZ0Z1bmN0aW9uKCkpCi0gICAg
LCBtX21vZGUoQW5pbWF0ZUFsbCkKICAgICAsIG1fZGlyZWN0aW9uKGluaXRpYWxEaXJlY3Rpb24o
KSkKICAgICAsIG1fZmlsbE1vZGUoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGluaXRpYWxGaWxsTW9k
ZSgpKSkKICAgICAsIG1fcGxheVN0YXRlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbml0aWFsUGxh
eVN0YXRlKCkpKQpAQCAtNTksNyArNTgsNiBAQCBBbmltYXRpb246OkFuaW1hdGlvbihjb25zdCBB
bmltYXRpb24mIG8pCiAgICAgLCBtX2R1cmF0aW9uKG8ubV9kdXJhdGlvbikKICAgICAsIG1fdGlt
aW5nRnVuY3Rpb24oby5tX3RpbWluZ0Z1bmN0aW9uKQogICAgICwgbV9uYW1lU3R5bGVTY29wZU9y
ZGluYWwoby5tX25hbWVTdHlsZVNjb3BlT3JkaW5hbCkKLSAgICAsIG1fbW9kZShvLm1fbW9kZSkK
ICAgICAsIG1fZGlyZWN0aW9uKG8ubV9kaXJlY3Rpb24pCiAgICAgLCBtX2ZpbGxNb2RlKG8ubV9m
aWxsTW9kZSkKICAgICAsIG1fcGxheVN0YXRlKG8ubV9wbGF5U3RhdGUpCkBAIC04NSw3ICs4Myw2
IEBAIEFuaW1hdGlvbiYgQW5pbWF0aW9uOjpvcGVyYXRvcj0oY29uc3QgQW5pbWF0aW9uJiBvKQog
ICAgIG1fdGltaW5nRnVuY3Rpb24gPSBvLm1fdGltaW5nRnVuY3Rpb247CiAgICAgbV9uYW1lU3R5
bGVTY29wZU9yZGluYWwgPSBvLm1fbmFtZVN0eWxlU2NvcGVPcmRpbmFsOwogICAgIG1fcHJvcGVy
dHkgPSBvLm1fcHJvcGVydHk7Ci0gICAgbV9tb2RlID0gby5tX21vZGU7CiAgICAgbV9kaXJlY3Rp
b24gPSBvLm1fZGlyZWN0aW9uOwogICAgIG1fZmlsbE1vZGUgPSBvLm1fZmlsbE1vZGU7CiAgICAg
bV9wbGF5U3RhdGUgPSBvLm1fcGxheVN0YXRlOwpAQCAtMTMwLDcgKzEyNyw3IEBAIGJvb2wgQW5p
bWF0aW9uOjphbmltYXRpb25zTWF0Y2goY29uc3QgQW5pbWF0aW9uJiBvdGhlciwgYm9vbCBtYXRj
aFByb3BlcnRpZXMpIGNvCiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIHJldHVybiAhbWF0Y2hQcm9wZXJ0aWVzIHx8IChtX21vZGUgPT0gb3RoZXIubV9tb2Rl
ICYmIG1fcHJvcGVydHkgPT0gb3RoZXIubV9wcm9wZXJ0eSAmJiBtX3Byb3BlcnR5U2V0ID09IG90
aGVyLm1fcHJvcGVydHlTZXQpOworICAgIHJldHVybiAhbWF0Y2hQcm9wZXJ0aWVzIHx8IChtX3By
b3BlcnR5Lm1vZGUgPT0gb3RoZXIubV9wcm9wZXJ0eS5tb2RlICYmIG1fcHJvcGVydHkuaWQgPT0g
b3RoZXIubV9wcm9wZXJ0eS5pZCAmJiBtX3Byb3BlcnR5U2V0ID09IG90aGVyLm1fcHJvcGVydHlT
ZXQpOwogfQogCiBjb25zdCBTdHJpbmcmIEFuaW1hdGlvbjo6aW5pdGlhbE5hbWUoKQpAQCAtMTM5
LDEzICsxMzYsMTMgQEAgY29uc3QgU3RyaW5nJiBBbmltYXRpb246OmluaXRpYWxOYW1lKCkKICAg
ICByZXR1cm4gaW5pdGlhbFZhbHVlOwogfQogCi1UZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBBbmltYXRpb246OkFuaW1hdGlvbk1vZGUgbW9kZSkKK1RleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEFuaW1hdGlvbjo6VHJhbnNpdGlvblByb3BlcnR5IHRy
YW5zaXRpb25Qcm9wZXJ0eSkKIHsKLSAgICBzd2l0Y2ggKG1vZGUpIHsKLSAgICBjYXNlIEFuaW1h
dGlvbjo6QW5pbWF0ZUFsbDogdHMgPDwgImFsbCI7IGJyZWFrOwotICAgIGNhc2UgQW5pbWF0aW9u
OjpBbmltYXRlTm9uZTogdHMgPDwgIm5vbmUiOyBicmVhazsKLSAgICBjYXNlIEFuaW1hdGlvbjo6
QW5pbWF0ZVNpbmdsZVByb3BlcnR5OiB0cyA8PCAic2luZ2xlIHByb3BlcnR5IjsgYnJlYWs7Ci0g
ICAgY2FzZSBBbmltYXRpb246OkFuaW1hdGVVbmtub3duUHJvcGVydHk6IHRzIDw8ICJ1bmtub3du
IHByb3BlcnR5IjsgYnJlYWs7CisgICAgc3dpdGNoICh0cmFuc2l0aW9uUHJvcGVydHkubW9kZSkg
eworICAgIGNhc2UgQW5pbWF0aW9uOjpUcmFuc2l0aW9uTW9kZTo6QWxsOiB0cyA8PCAiYWxsIjsg
YnJlYWs7CisgICAgY2FzZSBBbmltYXRpb246OlRyYW5zaXRpb25Nb2RlOjpOb25lOiB0cyA8PCAi
bm9uZSI7IGJyZWFrOworICAgIGNhc2UgQW5pbWF0aW9uOjpUcmFuc2l0aW9uTW9kZTo6U2luZ2xl
UHJvcGVydHk6IHRzIDw8IGdldFByb3BlcnR5TmFtZSh0cmFuc2l0aW9uUHJvcGVydHkuaWQpOyBi
cmVhazsKKyAgICBjYXNlIEFuaW1hdGlvbjo6VHJhbnNpdGlvbk1vZGU6OlVua25vd25Qcm9wZXJ0
eTogdHMgPDwgInVua25vd24gcHJvcGVydHkiOyBicmVhazsKICAgICB9CiAgICAgcmV0dXJuIHRz
OwogfQpAQCAtMTYzLDE0ICsxNjAsMTMgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3Ry
ZWFtJiB0cywgQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb24gZGlyZWN0aW9uKQogCiBUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBBbmltYXRpb24mIGFuaW1h
dGlvbikKIHsKLSAgICB0cy5kdW1wUHJvcGVydHkoInByb3BlcnR5IiwgZ2V0UHJvcGVydHlOYW1l
KGFuaW1hdGlvbi5wcm9wZXJ0eSgpKSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJwcm9wZXJ0eSIs
IGFuaW1hdGlvbi5wcm9wZXJ0eSgpKTsKICAgICB0cy5kdW1wUHJvcGVydHkoIm5hbWUiLCBhbmlt
YXRpb24ubmFtZSgpKTsKICAgICB0cy5kdW1wUHJvcGVydHkoIml0ZXJhdGlvbiBjb3VudCIsIGFu
aW1hdGlvbi5pdGVyYXRpb25Db3VudCgpKTsKICAgICB0cy5kdW1wUHJvcGVydHkoImRlbGF5Iiwg
YW5pbWF0aW9uLml0ZXJhdGlvbkNvdW50KCkpOwogICAgIHRzLmR1bXBQcm9wZXJ0eSgiZHVyYXRp
b24iLCBhbmltYXRpb24uZHVyYXRpb24oKSk7CiAgICAgaWYgKGFuaW1hdGlvbi50aW1pbmdGdW5j
dGlvbigpKQogICAgICAgICB0cy5kdW1wUHJvcGVydHkoInRpbWluZyBmdW5jdGlvbiIsICphbmlt
YXRpb24udGltaW5nRnVuY3Rpb24oKSk7Ci0gICAgdHMuZHVtcFByb3BlcnR5KCJtb2RlIiwgYW5p
bWF0aW9uLmFuaW1hdGlvbk1vZGUoKSk7CiAgICAgdHMuZHVtcFByb3BlcnR5KCJkaXJlY3Rpb24i
LCBhbmltYXRpb24uZGlyZWN0aW9uKCkpOwogICAgIHRzLmR1bXBQcm9wZXJ0eSgiZmlsbC1tb2Rl
IiwgYW5pbWF0aW9uLmZpbGxNb2RlKCkpOwogICAgIHRzLmR1bXBQcm9wZXJ0eSgicGxheS1zdGF0
ZSIsIGFuaW1hdGlvbi5wbGF5U3RhdGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
bmltYXRpb24vQW5pbWF0aW9uLmgKaW5kZXggY2FmNjk0YzljMjBjNGM1OGZlZDE4NzNiMDIyZjgw
MDU5NTNhNmRhZS4uNWVjMjJlZWJhMzQyNWVlNmI5NjNmZjQ4OGFmM2RmZjk4YWIwYzYzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL0FuaW1hdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9BbmltYXRpb24uaApAQCAtOTIs
MTEgKzkyLDE2IEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBkZWxheSgpIGNvbnN0IHsgcmV0dXJu
IG1fZGVsYXk7IH0KIAotICAgIGVudW0gQW5pbWF0aW9uTW9kZSB7Ci0gICAgICAgIEFuaW1hdGVB
bGwsCi0gICAgICAgIEFuaW1hdGVOb25lLAotICAgICAgICBBbmltYXRlU2luZ2xlUHJvcGVydHks
Ci0gICAgICAgIEFuaW1hdGVVbmtub3duUHJvcGVydHkKKyAgICBlbnVtIGNsYXNzIFRyYW5zaXRp
b25Nb2RlIDogdWludDhfdCB7CisgICAgICAgIEFsbCwKKyAgICAgICAgTm9uZSwKKyAgICAgICAg
U2luZ2xlUHJvcGVydHksCisgICAgICAgIFVua25vd25Qcm9wZXJ0eQorICAgIH07CisKKyAgICBz
dHJ1Y3QgVHJhbnNpdGlvblByb3BlcnR5IHsKKyAgICAgICAgVHJhbnNpdGlvbk1vZGUgbW9kZTsK
KyAgICAgICAgQ1NTUHJvcGVydHlJRCBpZDsKICAgICB9OwogCiAgICAgZW51bSBBbmltYXRpb25E
aXJlY3Rpb24gewpAQCAtMTE4LDEwICsxMjMsOSBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5n
JiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAgICAgU3R5bGU6OlNjb3BlT3JkaW5h
bCBuYW1lU3R5bGVTY29wZU9yZGluYWwoKSBjb25zdCB7IHJldHVybiBtX25hbWVTdHlsZVNjb3Bl
T3JkaW5hbDsgfQogICAgIEFuaW1hdGlvblBsYXlTdGF0ZSBwbGF5U3RhdGUoKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxBbmltYXRpb25QbGF5U3RhdGU+KG1fcGxheVN0YXRlKTsgfQotICAg
IENTU1Byb3BlcnR5SUQgcHJvcGVydHkoKSBjb25zdCB7IHJldHVybiBtX3Byb3BlcnR5OyB9Cisg
ICAgVHJhbnNpdGlvblByb3BlcnR5IHByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gbV9wcm9wZXJ0
eTsgfQogICAgIGNvbnN0IFN0cmluZyYgdW5rbm93blByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4g
bV91bmtub3duUHJvcGVydHk7IH0KICAgICBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24o
KSBjb25zdCB7IHJldHVybiBtX3RpbWluZ0Z1bmN0aW9uLmdldCgpOyB9Ci0gICAgQW5pbWF0aW9u
TW9kZSBhbmltYXRpb25Nb2RlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8QW5pbWF0aW9u
TW9kZT4obV9tb2RlKTsgfQogCiAgICAgdm9pZCBzZXREZWxheShkb3VibGUgYykgeyBtX2RlbGF5
ID0gYzsgbV9kZWxheVNldCA9IHRydWU7IH0KICAgICB2b2lkIHNldERpcmVjdGlvbihBbmltYXRp
b25EaXJlY3Rpb24gZCkgeyBtX2RpcmVjdGlvbiA9IGQ7IG1fZGlyZWN0aW9uU2V0ID0gdHJ1ZTsg
fQpAQCAtMTM1LDEwICsxMzksOSBAQCBwdWJsaWM6CiAgICAgICAgIG1fbmFtZVNldCA9IHRydWU7
CiAgICAgfQogICAgIHZvaWQgc2V0UGxheVN0YXRlKEFuaW1hdGlvblBsYXlTdGF0ZSBkKSB7IG1f
cGxheVN0YXRlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGQpOyBtX3BsYXlTdGF0ZVNldCA9IHRy
dWU7IH0KLSAgICB2b2lkIHNldFByb3BlcnR5KENTU1Byb3BlcnR5SUQgdCkgeyBtX3Byb3BlcnR5
ID0gdDsgbV9wcm9wZXJ0eVNldCA9IHRydWU7IH0KKyAgICB2b2lkIHNldFByb3BlcnR5KFRyYW5z
aXRpb25Qcm9wZXJ0eSB0KSB7IG1fcHJvcGVydHkgPSB0OyBtX3Byb3BlcnR5U2V0ID0gdHJ1ZTsg
fQogICAgIHZvaWQgc2V0VW5rbm93blByb3BlcnR5KGNvbnN0IFN0cmluZyYgcHJvcGVydHkpIHsg
bV91bmtub3duUHJvcGVydHkgPSBwcm9wZXJ0eTsgfQogICAgIHZvaWQgc2V0VGltaW5nRnVuY3Rp
b24oUmVmUHRyPFRpbWluZ0Z1bmN0aW9uPiYmIGZ1bmN0aW9uKSB7IG1fdGltaW5nRnVuY3Rpb24g
PSBXVEZNb3ZlKGZ1bmN0aW9uKTsgbV90aW1pbmdGdW5jdGlvblNldCA9IHRydWU7IH0KLSAgICB2
b2lkIHNldEFuaW1hdGlvbk1vZGUoQW5pbWF0aW9uTW9kZSBtb2RlKSB7IG1fbW9kZSA9IHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihtb2RlKTsgfQogCiAgICAgdm9pZCBzZXRJc05vbmVBbmltYXRpb24o
Ym9vbCBuKSB7IG1faXNOb25lID0gbjsgfQogCkBAIC0xNTksNyArMTYyLDcgQEAgcHJpdmF0ZToK
ICAgICBBbmltYXRpb24oY29uc3QgQW5pbWF0aW9uJiBvKTsKICAgICAKICAgICAvLyBQYWNrcyB3
aXRoIG1fcmVmQ291bnQgZnJvbSB0aGUgYmFzZSBjbGFzcy4KLSAgICBDU1NQcm9wZXJ0eUlEIG1f
cHJvcGVydHkgeyBDU1NQcm9wZXJ0eUludmFsaWQgfTsKKyAgICBUcmFuc2l0aW9uUHJvcGVydHkg
bV9wcm9wZXJ0eSB7IFRyYW5zaXRpb25Nb2RlOjpBbGwsIENTU1Byb3BlcnR5SW52YWxpZCB9Owog
CiAgICAgU3RyaW5nIG1fbmFtZTsKICAgICBTdHJpbmcgbV91bmtub3duUHJvcGVydHk7CkBAIC0x
NzAsNyArMTczLDYgQEAgcHJpdmF0ZToKIAogICAgIFN0eWxlOjpTY29wZU9yZGluYWwgbV9uYW1l
U3R5bGVTY29wZU9yZGluYWwgeyBTdHlsZTo6U2NvcGVPcmRpbmFsOjpFbGVtZW50IH07CiAKLSAg
ICB1bnNpZ25lZCBtX21vZGUgOiAyOyAvLyBBbmltYXRpb25Nb2RlCiAgICAgdW5zaWduZWQgbV9k
aXJlY3Rpb24gOiAyOyAvLyBBbmltYXRpb25EaXJlY3Rpb24KICAgICB1bnNpZ25lZCBtX2ZpbGxN
b2RlIDogMjsgLy8gQW5pbWF0aW9uRmlsbE1vZGUKICAgICB1bnNpZ25lZCBtX3BsYXlTdGF0ZSA6
IDI7IC8vIEFuaW1hdGlvblBsYXlTdGF0ZQpAQCAtMTk1LDEyICsxOTcsMTIgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBkb3VibGUgaW5pdGlhbEl0ZXJhdGlvbkNvdW50KCkgeyByZXR1cm4gMS4wOyB9
CiAgICAgc3RhdGljIGNvbnN0IFN0cmluZyYgaW5pdGlhbE5hbWUoKTsKICAgICBzdGF0aWMgQW5p
bWF0aW9uUGxheVN0YXRlIGluaXRpYWxQbGF5U3RhdGUoKSB7IHJldHVybiBBbmltYXRpb25QbGF5
U3RhdGU6OlBsYXlpbmc7IH0KLSAgICBzdGF0aWMgQ1NTUHJvcGVydHlJRCBpbml0aWFsUHJvcGVy
dHkoKSB7IHJldHVybiBDU1NQcm9wZXJ0eUludmFsaWQ7IH0KKyAgICBzdGF0aWMgVHJhbnNpdGlv
blByb3BlcnR5IGluaXRpYWxQcm9wZXJ0eSgpIHsgcmV0dXJuIHsgVHJhbnNpdGlvbk1vZGU6OkFs
bCwgQ1NTUHJvcGVydHlJbnZhbGlkIH07IH0KICAgICBzdGF0aWMgUmVmPFRpbWluZ0Z1bmN0aW9u
PiBpbml0aWFsVGltaW5nRnVuY3Rpb24oKSB7IHJldHVybiBDdWJpY0JlemllclRpbWluZ0Z1bmN0
aW9uOjpjcmVhdGUoKTsgfQogfTsKIAogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6
VGV4dFN0cmVhbSYsIEFuaW1hdGlvblBsYXlTdGF0ZSk7Ci1XVEY6OlRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoV1RGOjpUZXh0U3RyZWFtJiwgQW5pbWF0aW9uOjpBbmltYXRpb25Nb2RlKTsKK1dURjo6
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBBbmltYXRpb246OlRyYW5z
aXRpb25Qcm9wZXJ0eSk7CiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpUZXh0U3Ry
ZWFtJiwgQW5pbWF0aW9uOjpBbmltYXRpb25EaXJlY3Rpb24pOwogV1RGOjpUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNvbnN0IEFuaW1hdGlvbiYpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBkZDk3YTdl
YTBhYTQyMDg3OTkyYzY1OTljNWJjYzI3NjVmMGY5ZGQ5Li4xZDdmMDMxY2ZlNTFhMjI0YTVhZjhh
MDZlMmRiODdlOGQ0OWRlZjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTE2NjEsNyArMTY2MSw3IEBAIHZvaWQgUmVuZGVyU3R5bGU6
OmFkanVzdFRyYW5zaXRpb25zKCkKICAgICAvLyBUaGlzIGlzIGFuIE8obl4yKSBhbGdvcml0aG0g
YnV0IHRoZSBsaXN0cyB0ZW5kIHRvIGJlIHNob3J0LCBzbyBpdCBpcyBwcm9iYWJseSBPSy4KICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHRyYW5zaXRpb25MaXN0LT5zaXplKCk7ICsraSkgewog
ICAgICAgICBmb3IgKHNpemVfdCBqID0gaSArIDE7IGogPCB0cmFuc2l0aW9uTGlzdC0+c2l6ZSgp
OyArK2opIHsKLSAgICAgICAgICAgIGlmICh0cmFuc2l0aW9uTGlzdC0+YW5pbWF0aW9uKGkpLnBy
b3BlcnR5KCkgPT0gdHJhbnNpdGlvbkxpc3QtPmFuaW1hdGlvbihqKS5wcm9wZXJ0eSgpKSB7Cisg
ICAgICAgICAgICBpZiAodHJhbnNpdGlvbkxpc3QtPmFuaW1hdGlvbihpKS5wcm9wZXJ0eSgpLmlk
ID09IHRyYW5zaXRpb25MaXN0LT5hbmltYXRpb24oaikucHJvcGVydHkoKS5pZCkgewogICAgICAg
ICAgICAgICAgIC8vIHRvc3MgaQogICAgICAgICAgICAgICAgIHRyYW5zaXRpb25MaXN0LT5yZW1v
dmUoaSk7CiAgICAgICAgICAgICAgICAgaiA9IGk7CkBAIC0xNjkxLDcgKzE2OTEsNyBAQCBjb25z
dCBBbmltYXRpb24qIFJlbmRlclN0eWxlOjp0cmFuc2l0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVy
dHlJRCBwcm9wZXJ0eSkgY29ucwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBmb3IgKHNp
emVfdCBpID0gMCwgc2l6ZSA9IHRyYW5zaXRpb25zLT5zaXplKCk7IGkgPCBzaXplOyArK2kpIHsK
ICAgICAgICAgYXV0byYgYW5pbWF0aW9uID0gdHJhbnNpdGlvbnMtPmFuaW1hdGlvbihpKTsKLSAg
ICAgICAgaWYgKGFuaW1hdGlvbi5hbmltYXRpb25Nb2RlKCkgPT0gQW5pbWF0aW9uOjpBbmltYXRl
QWxsIHx8IGFuaW1hdGlvbi5wcm9wZXJ0eSgpID09IHByb3BlcnR5KQorICAgICAgICBpZiAoYW5p
bWF0aW9uLnByb3BlcnR5KCkubW9kZSA9PSBBbmltYXRpb246OlRyYW5zaXRpb25Nb2RlOjpBbGwg
fHwgYW5pbWF0aW9uLnByb3BlcnR5KCkuaWQgPT0gcHJvcGVydHkpCiAgICAgICAgICAgICByZXR1
cm4gJmFuaW1hdGlvbjsKICAgICB9CiAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzIzMDcw
YzI5NGZhYTc2YjRlNGYxODM5NjQxM2U1ZGNiZjQzZmVkNC4uOWY1OWYyYjBkOGFkYmQ1ZWNhYmQ2
ZTYwMmY2ZTZjNDc2YzIxOGUxYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTA0LTA4ICBB
bnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgdHJhbnNpdGlvbi1w
cm9wZXJ0eSBpcyBub3QgY29tcHV0ZWQgY29ycmVjdGx5IHdoZW4gdHJhbnNpdGlvbi1kdXJhdGlv
biBpcyBzZXQgdG8gImluaGVyaXQiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDQ1NTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3NDU4MDkxPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5l
dyB0ZXN0IHRoYXQgY2hlY2tzIHRoYXQgc2V0dGluZyAidHJhbnNpdGlvbi1kdXJhdGlvbiIgdG8g
ImluaGVyaXQiIGRvZXMgbm90IGNhdXNlICJ0cmFuc2l0aW9uLXByb3BlcnR5IiB0byBiZWhhdmVz
CisgICAgICAgIGFzIGlmICJpbmhlcml0IiB3YXMgaW1wbGljdGx5IHNldCBhcyB3ZWxsLgorCisg
ICAgICAgICogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1wcm9wZXJ0eS1mb3ItZWxlbWVudC13aXRo
LXRyYW5zaXRpb24tZHVyYXRpb24taW5oZXJpdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHRyYW5zaXRpb25zL3RyYW5zaXRpb24tcHJvcGVydHktZm9yLWVsZW1lbnQtd2l0aC10cmFu
c2l0aW9uLWR1cmF0aW9uLWluaGVyaXQuaHRtbDogQWRkZWQuCisKIDIwMjAtMDQtMDggIERpZWdv
IFBpbm8gR2FyY2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBHYXJkZW5p
bmcsIGZsYWt5IGZhaWx1cmVzIGluIEVXUyBHVEstV0syCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwppbmRleCA4OGUyNWNlODcxNWE4YjU5MDI3ODcwN2U5NjU1NGEzODcxYjI1ODgxLi5hMWNh
ODhjNWU1MDc5MzZiZTVkYzMzNTFjMDNiMTM3NDZkMWNhZDk0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNC0wOCAgQW50b2luZSBRdWludCAg
PGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHkgaXMgbm90
IGNvbXB1dGVkIGNvcnJlY3RseSB3aGVuIHRyYW5zaXRpb24tZHVyYXRpb24gaXMgc2V0IHRvICJp
bmhlcml0IgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA0NTU0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzQ1ODA5MT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTb21laG93IHRoaXMgdGVzdCBwcm9n
cmVzc2VkIHNsaWdodGx5LCBpdCBub3cgZmFpbHMgaW4gdGhlIHNlY29uZCBhc3NlcnRpb24gcmF0
aGVyIHRoYW4gdGhlIGZpcnN0LCBhbHRob3VnaCBpdCBmYWlscyBzdGlsbCBvdmVyYWxsLgorCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvZXZlbnRzLTAw
NC1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDQtMDcgIFR5bGVyIFdpbGNvY2sgIDx0d2lsY28ub0Bw
cm90b25tYWlsLmNvbT4KIAogICAgICAgICBbY3NzLXZhbHVlcy00XSBTdXBwb3J0IGZvbnQtcmVs
YXRpdmUgbGggYW5kIHJsaCB1bml0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNpdGlvbnMvZXZlbnRzLTAwNC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdHJhbnNpdGlvbnMvZXZlbnRzLTAwNC1leHBlY3RlZC50eHQKaW5kZXggNjQ2NTA3NjYw
YTBmNzU5ZjdiNzg4ZDBkZWNhZWE3NGQxZmIzMTA5OC4uN2NhZTJmMWExZjIyMjE5NzRmNjM4ZGFi
ZGI0OGM3ZWVmN2VhZDZkNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zaXRpb25zL2V2ZW50cy0wMDQtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy10cmFuc2l0aW9ucy9ldmVudHMtMDA0LWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAK
IAogUEFTUyByZXBlYXRpbmcgbGlzdHMgCi1GQUlMIHRydW5jYXRpbmcgbGlzdHMgYXNzZXJ0X2Vx
dWFsczogZXhwZWN0ZWQgInBhZGRpbmctdG9wIiBidXQgZ290ICJwYWRkaW5nLWxlZnQiCitGQUlM
IHRydW5jYXRpbmcgbGlzdHMgYXNzZXJ0X2FwcHJveF9lcXVhbHM6IGV4cGVjdGVkIDAuMDIgKy8t
IDAuMDAwNSBidXQgZ290IDAuMDEKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlv
bnMvdHJhbnNpdGlvbi1wcm9wZXJ0eS1mb3ItZWxlbWVudC13aXRoLXRyYW5zaXRpb24tZHVyYXRp
b24taW5oZXJpdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0
aW9uLXByb3BlcnR5LWZvci1lbGVtZW50LXdpdGgtdHJhbnNpdGlvbi1kdXJhdGlvbi1pbmhlcml0
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzI0YzM1YjQzZGZhNTczZjM5Y2RmYjg0ZjQ4NDBk
NDM5ODljN2RlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJh
bnNpdGlvbi1wcm9wZXJ0eS1mb3ItZWxlbWVudC13aXRoLXRyYW5zaXRpb24tZHVyYXRpb24taW5o
ZXJpdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCB0aGUgZWZmZWN0IG9mICd0
cmFuc2l0aW9uLWR1cmF0aW9uOiBpbmhlcml0JyBvbiAndHJhbnNpdGlvbi1wcm9wZXJ0eScuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQucXVlcnlTZWxlY3Rvcignc3BhbicpKS50cmFuc2l0aW9uUHJvcGVydHkgaXMgJ2FsbCcK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LWZvci1l
bGVtZW50LXdpdGgtdHJhbnNpdGlvbi1kdXJhdGlvbi1pbmhlcml0Lmh0bWwgYi9MYXlvdXRUZXN0
cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LWZvci1lbGVtZW50LXdpdGgtdHJhbnNp
dGlvbi1kdXJhdGlvbi1pbmhlcml0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU5MzdiODIwMjA5YjMxOGRm
ODcxOGJmYWRlOWNiNTBlNWFmMGNjNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Ry
YW5zaXRpb25zL3RyYW5zaXRpb24tcHJvcGVydHktZm9yLWVsZW1lbnQtd2l0aC10cmFuc2l0aW9u
LWR1cmF0aW9uLWluaGVyaXQuaHRtbApAQCAtMCwwICsxLDcgQEAKKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPGRpdiBzdHlsZT0idHJhbnNpdGlv
bi1kdXJhdGlvbjogMXM7IHRyYW5zaXRpb24tcHJvcGVydHk6IG1hcmdpbi1sZWZ0OyI+PHNwYW4g
c3R5bGU9InRyYW5zaXRpb24tZHVyYXRpb246IGluaGVyaXQ7Ij48L3NwYW4+PC9kaXY+Cis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oIlRlc3QgdGhlIGVmZmVjdCBvZiAndHJhbnNpdGlvbi1kdXJhdGlv
bjogaW5oZXJpdCcgb24gJ3RyYW5zaXRpb24tcHJvcGVydHknLiIpCitzaG91bGRCZSgiZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzcGFuJykpLnRyYW5zaXRpb25Qcm9w
ZXJ0eSIsICInYWxsJyIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+ICAgIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="review"
          id="411227"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>