<?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>217473</bug_id>
          
          <creation_ts>2020-10-08 07:03:55 -0700</creation_ts>
          <short_desc>CSS transform computed style should not reflect individual transform properties</short_desc>
          <delta_ts>2020-10-09 09:27:01 -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>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>178117</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>changseok</cc>
    
    <cc>clopez</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1695880</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-10-08 07:03:55 -0700</bug_when>
    <thetext>CSS transform computed style should not reflect individual transform properties</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695881</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-08 07:04:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/70091605&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695883</commentid>
    <comment_count>2</comment_count>
      <attachid>410837</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-10-08 07:08:37 -0700</bug_when>
    <thetext>Created attachment 410837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695884</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-10-08 07:08:42 -0700</bug_when>
    <thetext>&lt;rdar://problem/70091605&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695885</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-10-08 07:09:28 -0700</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695887</commentid>
    <comment_count>5</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-10-08 07:18:30 -0700</bug_when>
    <thetext>WPT PR is https://github.com/web-platform-tests/wpt/pull/26044.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695906</commentid>
    <comment_count>6</comment_count>
      <attachid>410837</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-08 08:28:06 -0700</bug_when>
    <thetext>Comment on attachment 410837
Patch

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

&gt; Source/WebCore/rendering/style/RenderStyle.h:660
&gt; +    enum class TransformOperationExclusion : uint8_t {
&gt; +        TransformOrigin = 1 &lt;&lt; 0,
&gt; +        Scale           = 1 &lt;&lt; 1,
&gt; +        Rotate          = 1 &lt;&lt; 2,
&gt; +        Translate       = 1 &lt;&lt; 3
&gt; +    };

I wonder if this would be cleaner if you did inclusion rather than exclusion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695997</commentid>
    <comment_count>7</comment_count>
      <attachid>410871</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-10-08 12:39:46 -0700</bug_when>
    <thetext>Created attachment 410871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696010</commentid>
    <comment_count>8</comment_count>
      <attachid>410871</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-08 13:21:06 -0700</bug_when>
    <thetext>Comment on attachment 410871
Patch

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:1319
&gt; +TransformationMatrix RenderLayer::currentTransform(OptionSet&lt;RenderStyle::TransformOperationInclusion&gt; inclusions) const

I&apos;d call these options, not inclusions.

&gt; Source/WebCore/rendering/RenderLayer.cpp:1345
&gt; +        renderBox.style().applyTransform(currTransform, pixelSnappedBorderRect, { RenderStyle::TransformOperationInclusion::Rotate, RenderStyle::TransformOperationInclusion::Scale, RenderStyle::TransformOperationInclusion::Translate });

Let&apos;s keep the order as translate, rotate, scale

&gt; Source/WebCore/rendering/RenderLayer.h:798
&gt; +    TransformationMatrix currentTransform(OptionSet&lt;RenderStyle::TransformOperationInclusion&gt; = { RenderStyle::TransformOperationInclusion::TransformOrigin, RenderStyle::TransformOperationInclusion::Rotate, RenderStyle::TransformOperationInclusion::Scale, RenderStyle::TransformOperationInclusion::Translate }) const;

Let&apos;s keep the order as translate, rotate, scale

&gt; Source/WebCore/rendering/style/RenderStyle.h:660
&gt; +    enum class TransformOperationInclusion : uint8_t {
&gt; +        TransformOrigin = 1 &lt;&lt; 0,
&gt; +        Scale           = 1 &lt;&lt; 1,
&gt; +        Rotate          = 1 &lt;&lt; 2,
&gt; +        Translate       = 1 &lt;&lt; 3
&gt; +    };

You could add a constexpr OptionSet&lt;TransformOperationInclusion&gt; individualTransformFunctions = { TransformOperationInclusion::Translate, TransformOperationInclusion::Rotate, TransformOperationInclusion::Scale }

to avoid repeating these everywhere.

Use translate, rotate, scale order.

&gt; Source/WebCore/svg/SVGTextElement.cpp:68
&gt; +        return matrix;
&gt; +    }

whitespace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696138</commentid>
    <comment_count>9</comment_count>
      <attachid>410917</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-10-08 23:48:36 -0700</bug_when>
    <thetext>Created attachment 410917
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696140</commentid>
    <comment_count>10</comment_count>
      <attachid>410918</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-10-09 00:10:21 -0700</bug_when>
    <thetext>Created attachment 410918
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696237</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-09 09:26:59 -0700</bug_when>
    <thetext>Committed r268263: &lt;https://trac.webkit.org/changeset/268263&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 410918.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410837</attachid>
            <date>2020-10-08 07:08:37 -0700</date>
            <delta_ts>2020-10-08 12:39:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217473-20201008160836.patch</filename>
            <type>text/plain</type>
            <size>19412</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmIxNDM4NjEyYTZlZTY3
ZGY4ZTJiZTE1MmZkZTM1MDI5MDE0NDE5ZC4uNTQ2YmY2NGYzZTk0MWI3ZGJiZGVjNzA0ODlhZDIy
MGQzYzA0MDU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTEwLTA4ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIENTUyB0cmFuc2Zvcm0g
Y29tcHV0ZWQgc3R5bGUgc2hvdWxkIG5vdCByZWZsZWN0IGluZGl2aWR1YWwgdHJhbnNmb3JtIHBy
b3BlcnRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzQ3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAwOTE2MDU+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVjYXVzZSBSZW5kZXJTdHlsZTo6
YXBwbHlUcmFuc2Zvcm0oKSBhY2NvdW50cyBmb3IgdGhlIG5ldyByb3RhdGUsIHNjYWxlIGFuZCB0
cmFuc2xhdGUgcHJvcGVydGllcywgd2UgbmVlZCBhIHdheSB0byBjYWxsIHRoaXMKKyAgICAgICAg
bWV0aG9kIGZyb20gY29tcHV0ZWRUcmFuc2Zvcm0oKSB3aXRob3V0IGFjY291bnRpbmcgZm9yIHRo
b3NlIHByb3BlcnRpZXMuIFdoaWxlIHdlIHVzZWQgdG8gb25seSBoYXZlIHRoZSBvcHRpb24gdG8g
aW5jbHVkZSBvcgorICAgICAgICBleGNsdWRlIHRyYW5zZm9ybS1vcmlnaW4sIHdlIG5vdyBhbGxv
dyBmb3IgbXVsdGlwbGUgZXhjbHVzaW9ucyB0byBiZSBzcGVjaWZpZWQgdXNpbmcgYSBuZXcgVHJh
bnNmb3JtT3BlcmF0aW9uRXhjbHVzaW9uCisgICAgICAgIGVudW0gYW5kIHBhc3NpbmcgYW4gT3B0
aW9uU2V0PFRyYW5zZm9ybU9wZXJhdGlvbkV4Y2x1c2lvbj4gdG8gUmVuZGVyU3R5bGU6OmFwcGx5
VHJhbnNmb3JtKCkuCisKKyAgICAgICAgVGVzdDogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMvdHJhbnNmb3JtLWFuZC1pbmRpdmlkdWFsLXRyYW5zZm9y
bS1wcm9wZXJ0aWVzLWNvbXB1dGVkLXN0eWxlLmh0bWwKKworICAgICAgICAqIGFuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6Y29t
cHV0ZVRyYW5zZm9ybWVkRXh0ZW50VmlhTWF0cml4IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVk
VHJhbnNmb3JtKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZVRyYW5zZm9ybSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybSBjb25zdCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZVRy
YW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OmdldEN1cnJl
bnRUcmFuc2Zvcm0gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXF1aXJlVHJhbnNmb3JtT3JpZ2luKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjphcHBseVRyYW5zZm9ybSBjb25zdCk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTdHlsZTo6YXBwbHlUcmFuc2Zvcm0pOgorICAgICAgICAqIHN2Zy9TVkdUZXh0RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0RWxlbWVudDo6YW5pbWF0ZWRMb2NhbFRyYW5z
Zm9ybSBjb25zdCk6CisKIDIwMjAtMTAtMDcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIG5vbi1hY2NlbGVyYXRlZCBhbmltYXRp
b24gb2YgaW5kaXZpZHVhbCB0cmFuc2Zvcm0gcHJvcGVydGllcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKaW5kZXggMjI5ZmRkM2I2YmI0MjJiNGUyMWE1MjU0
NTFiYjA3ZDA1ZWExMGExYi4uMjY0M2Q0ZjUzN2RlMDdhOTFmMDk3ZmFiZmM2MDI4NjY1YWVmODEy
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCkBAIC0x
ODczLDcgKzE4NzMsNyBAQCBib29sIEtleWZyYW1lRWZmZWN0Ojpjb21wdXRlVHJhbnNmb3JtZWRF
eHRlbnRWaWFUcmFuc2Zvcm1MaXN0KGNvbnN0IEZsb2F0UmVjdCYgcgogYm9vbCBLZXlmcmFtZUVm
ZmVjdDo6Y29tcHV0ZVRyYW5zZm9ybWVkRXh0ZW50VmlhTWF0cml4KGNvbnN0IEZsb2F0UmVjdCYg
cmVuZGVyZXJCb3gsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgTGF5b3V0UmVjdCYgYm91bmRz
KSBjb25zdAogewogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybTsKLSAgICBzdHls
ZS5hcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIHJlbmRlcmVyQm94LCBSZW5kZXJTdHlsZTo6SW5j
bHVkZVRyYW5zZm9ybU9yaWdpbik7CisgICAgc3R5bGUuYXBwbHlUcmFuc2Zvcm0odHJhbnNmb3Jt
LCByZW5kZXJlckJveCk7CiAgICAgaWYgKCF0cmFuc2Zvcm0uaXNBZmZpbmUoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDlhMGQ1NDNhZTIxNmMyODUyNzg0ZTc4NzhjNWRmOGQ1
MmExMWY4M2IuLmY5NWEzZGUyZjc3NmFhNGI3ZTA0NTJiMmIzYTk4ZDNkMGU5MWE1YjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CkBAIC02MDMsNyArNjAzLDcgQEAgc3RhdGljIFJlZjxDU1NWYWx1ZT4gY29tcHV0ZWRUcmFuc2Zv
cm0oUmVuZGVyT2JqZWN0KiByZW5kZXJlciwgY29uc3QgUmVuZGVyU3R5bGUKICAgICAgICAgcGl4
ZWxTbmFwcGVkUmVjdCA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMoZG93bmNhc3Q8UmVuZGVyQm94
PigqcmVuZGVyZXIpLmJvcmRlckJveFJlY3QoKSwgcmVuZGVyZXItPmRvY3VtZW50KCkuZGV2aWNl
U2NhbGVGYWN0b3IoKSk7CiAKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0cmFuc2Zvcm07Ci0g
ICAgc3R5bGUuYXBwbHlUcmFuc2Zvcm0odHJhbnNmb3JtLCBwaXhlbFNuYXBwZWRSZWN0LCBSZW5k
ZXJTdHlsZTo6RXhjbHVkZVRyYW5zZm9ybU9yaWdpbik7CisgICAgc3R5bGUuYXBwbHlUcmFuc2Zv
cm0odHJhbnNmb3JtLCBwaXhlbFNuYXBwZWRSZWN0LCB7IFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1P
cGVyYXRpb25FeGNsdXNpb246OlRyYW5zZm9ybU9yaWdpbiwgUmVuZGVyU3R5bGU6OlRyYW5zZm9y
bU9wZXJhdGlvbkV4Y2x1c2lvbjo6VHJhbnNsYXRlLCBSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3Bl
cmF0aW9uRXhjbHVzaW9uOjpSb3RhdGUsIFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25F
eGNsdXNpb246OlNjYWxlIH0pOwogICAgIC8vIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IGZsYXR0
ZW4gdG8gYW4gYWZmaW5lIHRyYW5zZm9ybSBpZiBFTkFCTEUoM0RfVFJBTlNGT1JNUykgaXMgb2Zm
LCBieSBkZXNpZ24uCiAKICAgICAvLyBGSVhNRTogTmVlZCB0byBwcmludCBvdXQgaW5kaXZpZHVh
bCBmdW5jdGlvbnMgKGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzky
NCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDdlYjRjNWY3
ZWQzNGRkZmM4YmExMWZkYjBkNzlmM2JiNGExYzU1YjcuLjgxYTA3MzhlMGNjODE2NTMzYTliNDVj
MDEzZDU5NzdkYTQ1ODhjYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcApAQCAtMTMwNSw3ICsxMzA1LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNm
b3JtKCkKICAgICBpZiAoaGFzVHJhbnNmb3JtKSB7CiAgICAgICAgIGF1dG8mIHJlbmRlckJveCA9
IGRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIoKSk7CiAgICAgICAgIG1fdHJhbnNmb3JtLT5t
YWtlSWRlbnRpdHkoKTsKLSAgICAgICAgcmVuZGVyQm94LnN0eWxlKCkuYXBwbHlUcmFuc2Zvcm0o
Km1fdHJhbnNmb3JtLCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJlbmRlckJveC5yZWZlcmVuY2VC
b3godHJhbnNmb3JtQm94VG9DU1NCb3hUeXBlKHJlbmRlckJveC5zdHlsZSgpLnRyYW5zZm9ybUJv
eCgpKSksIHJlbmRlckJveC5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkpLCBSZW5kZXJT
dHlsZTo6SW5jbHVkZVRyYW5zZm9ybU9yaWdpbik7CisgICAgICAgIHJlbmRlckJveC5zdHlsZSgp
LmFwcGx5VHJhbnNmb3JtKCptX3RyYW5zZm9ybSwgc25hcFJlY3RUb0RldmljZVBpeGVscyhyZW5k
ZXJCb3gucmVmZXJlbmNlQm94KHRyYW5zZm9ybUJveFRvQ1NTQm94VHlwZShyZW5kZXJCb3guc3R5
bGUoKS50cmFuc2Zvcm1Cb3goKSkpLCByZW5kZXJCb3guZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZh
Y3RvcigpKSk7CiAgICAgICAgIG1ha2VNYXRyaXhSZW5kZXJhYmxlKCptX3RyYW5zZm9ybSwgY2Fu
UmVuZGVyM0RUcmFuc2Zvcm1zKCkpOwogICAgIH0KIApAQCAtMTMxNiw3ICsxMzE2LDcgQEAgdm9p
ZCBSZW5kZXJMYXllcjo6dXBkYXRlVHJhbnNmb3JtKCkKICAgICB9CiB9CiAKLVRyYW5zZm9ybWF0
aW9uTWF0cml4IFJlbmRlckxheWVyOjpjdXJyZW50VHJhbnNmb3JtKFJlbmRlclN0eWxlOjpBcHBs
eVRyYW5zZm9ybU9yaWdpbiBhcHBseU9yaWdpbikgY29uc3QKK1RyYW5zZm9ybWF0aW9uTWF0cml4
IFJlbmRlckxheWVyOjpjdXJyZW50VHJhbnNmb3JtKE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJh
bnNmb3JtT3BlcmF0aW9uRXhjbHVzaW9uPiBleGNsdXNpb25zKSBjb25zdAogewogICAgIGlmICgh
bV90cmFuc2Zvcm0pCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMzMxLDE4ICsxMzMxLDE4IEBA
IFRyYW5zZm9ybWF0aW9uTWF0cml4IFJlbmRlckxheWVyOjpjdXJyZW50VHJhbnNmb3JtKFJlbmRl
clN0eWxlOjpBcHBseVRyYW5zZm9ybU9yCiAgICAgICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJp
eCBjdXJyVHJhbnNmb3JtOwogICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxl
PiBzdHlsZSA9IHJlbmRlcmVyKCkuYW5pbWF0ZWRTdHlsZSgpOwogICAgICAgICAgICAgRmxvYXRS
ZWN0IHBpeGVsU25hcHBlZEJvcmRlclJlY3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJlbmRl
ckJveC5yZWZlcmVuY2VCb3godHJhbnNmb3JtQm94VG9DU1NCb3hUeXBlKHN0eWxlLT50cmFuc2Zv
cm1Cb3goKSkpLCByZW5kZXJCb3guZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKLSAg
ICAgICAgICAgIHN0eWxlLT5hcHBseVRyYW5zZm9ybShjdXJyVHJhbnNmb3JtLCBwaXhlbFNuYXBw
ZWRCb3JkZXJSZWN0LCBhcHBseU9yaWdpbik7CisgICAgICAgICAgICBzdHlsZS0+YXBwbHlUcmFu
c2Zvcm0oY3VyclRyYW5zZm9ybSwgcGl4ZWxTbmFwcGVkQm9yZGVyUmVjdCwgZXhjbHVzaW9ucyk7
CiAgICAgICAgICAgICBtYWtlTWF0cml4UmVuZGVyYWJsZShjdXJyVHJhbnNmb3JtLCBjYW5SZW5k
ZXIzRFRyYW5zZm9ybXMoKSk7CiAgICAgICAgICAgICByZXR1cm4gY3VyclRyYW5zZm9ybTsKICAg
ICAgICAgfQogICAgIH0KIAogICAgIC8vIG1fdHJhbnNmb3JtIGluY2x1ZGVzIHRyYW5zZm9ybS1v
cmlnaW4sIHNvIHdlIG5lZWQgdG8gcmVjb21wdXRlIHRoZSB0cmFuc2Zvcm0gaGVyZS4KLSAgICBp
ZiAoYXBwbHlPcmlnaW4gPT0gUmVuZGVyU3R5bGU6OkV4Y2x1ZGVUcmFuc2Zvcm1PcmlnaW4pIHsK
KyAgICBpZiAoZXhjbHVzaW9ucy5jb250YWlucyhSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0
aW9uRXhjbHVzaW9uOjpUcmFuc2Zvcm1PcmlnaW4pKSB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9u
TWF0cml4IGN1cnJUcmFuc2Zvcm07CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHls
ZT4gc3R5bGUgPSByZW5kZXJlcigpLmFuaW1hdGVkU3R5bGUoKTsKICAgICAgICAgRmxvYXRSZWN0
IHBpeGVsU25hcHBlZEJvcmRlclJlY3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJlbmRlckJv
eC5yZWZlcmVuY2VCb3godHJhbnNmb3JtQm94VG9DU1NCb3hUeXBlKHN0eWxlLT50cmFuc2Zvcm1C
b3goKSkpLCByZW5kZXJCb3guZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKLSAgICAg
ICAgcmVuZGVyQm94LnN0eWxlKCkuYXBwbHlUcmFuc2Zvcm0oY3VyclRyYW5zZm9ybSwgcGl4ZWxT
bmFwcGVkQm9yZGVyUmVjdCwgUmVuZGVyU3R5bGU6OkV4Y2x1ZGVUcmFuc2Zvcm1PcmlnaW4pOwor
ICAgICAgICByZW5kZXJCb3guc3R5bGUoKS5hcHBseVRyYW5zZm9ybShjdXJyVHJhbnNmb3JtLCBw
aXhlbFNuYXBwZWRCb3JkZXJSZWN0LCB7IFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25F
eGNsdXNpb246OlRyYW5zZm9ybU9yaWdpbiB9KTsKICAgICAgICAgbWFrZU1hdHJpeFJlbmRlcmFi
bGUoY3VyclRyYW5zZm9ybSwgY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkpOwogICAgICAgICByZXR1
cm4gY3VyclRyYW5zZm9ybTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5oCmluZGV4IDk1NmFlNTkzNmM4NjhiYTZjOTAyY2Y1MjQ0YzUwM2E1YzQxYzJiMDUuLjM2ZmU4
ZGRkNjNmMDEyZDA5N2JjNTc3YjMxMGQ1MTllNGUwMzRmZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5oCkBAIC03OTUsNyArNzk1LDcgQEAgcHVibGljOgogICAgIC8vIGN1
cnJlbnRUcmFuc2Zvcm0gY29tcHV0ZXMgYSB0cmFuc2Zvcm0gd2hpY2ggdGFrZXMgYWNjZWxlcmF0
ZWQgYW5pbWF0aW9ucyBpbnRvIGFjY291bnQuIFRoZQogICAgIC8vIHJlc3VsdGluZyB0cmFuc2Zv
cm0gaGFzIHRyYW5zZm9ybS1vcmlnaW4gYmFrZWQgaW4uIElmIHRoZSBsYXllciBkb2VzIG5vdCBo
YXZlIGEgdHJhbnNmb3JtLAogICAgIC8vIHJldHVybnMgdGhlIGlkZW50aXR5IG1hdHJpeC4KLSAg
ICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjdXJyZW50VHJhbnNmb3JtKFJlbmRlclN0eWxlOjpBcHBs
eVRyYW5zZm9ybU9yaWdpbiA9IFJlbmRlclN0eWxlOjpJbmNsdWRlVHJhbnNmb3JtT3JpZ2luKSBj
b25zdDsKKyAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBjdXJyZW50VHJhbnNmb3JtKE9wdGlvblNl
dDxSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uRXhjbHVzaW9uPiA9IHsgfSkgY29uc3Q7
CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggcmVuZGVyYWJsZVRyYW5zZm9ybShPcHRpb25TZXQ8
UGFpbnRCZWhhdmlvcj4pIGNvbnN0OwogICAgIAogICAgIC8vIEdldCB0aGUgcGVyc3BlY3RpdmUg
dHJhbnNmb3JtLCB3aGljaCBpcyBhcHBsaWVkIHRvIHRyYW5zZm9ybWVkIHN1YmxheWVycy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXgg
MmRiYTViMWQ3YTkzMDc5NmY3MDQxMDI4MGFkMGQxODdkZTFkYjViYi4uODUxZGVjODViNTJhMTQx
YmE1YjExYzBjOGZlMDRiYmJjNDQ4MmJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTYzMSw3ICs2MzEsNyBAQCB2b2lkIFJlbmRl
ckxheWVyQmFja2luZzo6dXBkYXRlVHJhbnNmb3JtKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkK
ICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0OwogICAgIGlmIChtX293bmluZ0xheWVyLmhhc1Ry
YW5zZm9ybSgpKSB7CiAgICAgICAgIGF1dG8mIHJlbmRlckJveCA9IGRvd25jYXN0PFJlbmRlckJv
eD4ocmVuZGVyZXIoKSk7Ci0gICAgICAgIHN0eWxlLmFwcGx5VHJhbnNmb3JtKHQsIHNuYXBSZWN0
VG9EZXZpY2VQaXhlbHMocmVuZGVyQm94LmJvcmRlckJveFJlY3QoKSwgZGV2aWNlU2NhbGVGYWN0
b3IoKSksIFJlbmRlclN0eWxlOjpFeGNsdWRlVHJhbnNmb3JtT3JpZ2luKTsKKyAgICAgICAgc3R5
bGUuYXBwbHlUcmFuc2Zvcm0odCwgc25hcFJlY3RUb0RldmljZVBpeGVscyhyZW5kZXJCb3guYm9y
ZGVyQm94UmVjdCgpLCBkZXZpY2VTY2FsZUZhY3RvcigpKSwgeyBSZW5kZXJTdHlsZTo6VHJhbnNm
b3JtT3BlcmF0aW9uRXhjbHVzaW9uOjpUcmFuc2Zvcm1PcmlnaW4gfSk7CiAgICAgICAgIG1ha2VN
YXRyaXhSZW5kZXJhYmxlKHQsIGNvbXBvc2l0b3IoKS5jYW5SZW5kZXIzRFRyYW5zZm9ybXMoKSk7
CiAgICAgfQogICAgIApAQCAtMzQ4Myw3ICszNDgzLDcgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tp
bmc6OmdldEN1cnJlbnRUcmFuc2Zvcm0oY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXll
ciwKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKG1fb3duaW5nTGF5ZXIuaGFzVHJh
bnNmb3JtKCkpIHsKLSAgICAgICAgdHJhbnNmb3JtID0gbV9vd25pbmdMYXllci5jdXJyZW50VHJh
bnNmb3JtKFJlbmRlclN0eWxlOjpFeGNsdWRlVHJhbnNmb3JtT3JpZ2luKTsKKyAgICAgICAgdHJh
bnNmb3JtID0gbV9vd25pbmdMYXllci5jdXJyZW50VHJhbnNmb3JtKHsgUmVuZGVyU3R5bGU6OlRy
YW5zZm9ybU9wZXJhdGlvbkV4Y2x1c2lvbjo6VHJhbnNmb3JtT3JpZ2luIH0pOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggOTNiNjBmZjBjYjhhNDQxYmI0
MTEwMGM0MGI5Mzk4MWQzMTI0NTk3Ni4uYzRkMWI3OWI4OTRmYWIxOTFlODY0ZTZhMWU0YTMxMzM5
N2RiNWJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuY3BwCkBAIC0xMzc5LDM2ICsxMzc5LDIxIEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldEhhc0F0
dHJDb250ZW50KCkKICAgICBTRVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIGhhc0F0dHJD
b250ZW50LCB0cnVlKTsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHJlcXVpcmVUcmFuc2Zvcm1P
cmlnaW4oY29uc3QgVmVjdG9yPFJlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+PiYgdHJhbnNmb3Jt
T3BlcmF0aW9ucywgUmVuZGVyU3R5bGU6OkFwcGx5VHJhbnNmb3JtT3JpZ2luIGFwcGx5T3JpZ2lu
KQorc3RhdGljIGlubGluZSBib29sIHJlcXVpcmVUcmFuc2Zvcm1PcmlnaW4oY29uc3QgVHJhbnNm
b3JtT3BlcmF0aW9ucyYgdHJhbnNmb3JtT3BlcmF0aW9ucywgT3B0aW9uU2V0PFJlbmRlclN0eWxl
OjpUcmFuc2Zvcm1PcGVyYXRpb25FeGNsdXNpb24+IGV4Y2x1c2lvbnMpCiB7CiAgICAgLy8gVGhl
IHRyYW5zZm9ybS1vcmlnaW4gcHJvcGVydHkgYnJhY2tldHMgdGhlIHRyYW5zZm9ybSB3aXRoIHRy
YW5zbGF0ZSBvcGVyYXRpb25zLgogICAgIC8vIFdoZW4gdGhlIG9ubHkgdHJhbnNmb3JtIGlzIGEg
dHJhbnNsYXRpb24sIHRoZSB0cmFuc2Zvcm0tb3JpZ2luIGlzIGlycmVsZXZhbnQuCi0KLSAgICBp
ZiAoYXBwbHlPcmlnaW4gIT0gUmVuZGVyU3R5bGU6OkluY2x1ZGVUcmFuc2Zvcm1PcmlnaW4pCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGZvciAoYXV0byYgb3BlcmF0aW9uIDogdHJhbnNm
b3JtT3BlcmF0aW9ucykgewotICAgICAgICAvLyBGSVhNRTogVXNlIGFmZmVjdGVkQnlUcmFuc2Zv
cm1PcmlnaW4oKS4KLSAgICAgICAgYXV0byB0eXBlID0gb3BlcmF0aW9uLT50eXBlKCk7Ci0gICAg
ICAgIGlmICh0eXBlICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFCi0gICAgICAgICAg
ICAmJiB0eXBlICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFXzNECi0gICAgICAgICAg
ICAmJiB0eXBlICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFX1gKLSAgICAgICAgICAg
ICYmIHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWQotICAgICAgICAgICAg
JiYgdHlwZSAhPSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9aKQotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiAhZXhj
bHVzaW9ucy5jb250YWlucyhSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uRXhjbHVzaW9u
OjpUcmFuc2Zvcm1PcmlnaW4pICYmIHRyYW5zZm9ybU9wZXJhdGlvbnMuYWZmZWN0ZWRCeVRyYW5z
Zm9ybU9yaWdpbigpOwogfQogCi12b2lkIFJlbmRlclN0eWxlOjphcHBseVRyYW5zZm9ybShUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94
LCBBcHBseVRyYW5zZm9ybU9yaWdpbiBhcHBseU9yaWdpbikgY29uc3QKK3ZvaWQgUmVuZGVyU3R5
bGU6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0
IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxSZW5kZXJTdHlsZTo6VHJhbnNmb3Jt
T3BlcmF0aW9uRXhjbHVzaW9uPiBleGNsdXNpb25zKSBjb25zdAogewogICAgIC8vIGh0dHBzOi8v
d3d3LnczLm9yZy9UUi9jc3MtdHJhbnNmb3Jtcy0yLyNjdG0KICAgICAvLyBUaGUgdHJhbnNmb3Jt
YXRpb24gbWF0cml4IGlzIGNvbXB1dGVkIGZyb20gdGhlIHRyYW5zZm9ybSwgdHJhbnNmb3JtLW9y
aWdpbiwgdHJhbnNsYXRlLCByb3RhdGUsIHNjYWxlLCBhbmQgb2Zmc2V0IHByb3BlcnRpZXMgYXMg
Zm9sbG93czoKICAgICAvLyAxLiBTdGFydCB3aXRoIHRoZSBpZGVudGl0eSBtYXRyaXguCiAKLSAg
ICBhdXRvJiBvcGVyYXRpb25zID0gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+dHJhbnNmb3JtLT5v
cGVyYXRpb25zLm9wZXJhdGlvbnMoKTsKLSAgICBib29sIGFwcGx5VHJhbnNmb3JtT3JpZ2luID0g
bV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+cm90YXRlIHx8IG1fcmFyZU5vbkluaGVyaXRlZERhdGEt
PnNjYWxlIHx8IHJlcXVpcmVUcmFuc2Zvcm1PcmlnaW4ob3BlcmF0aW9ucywgYXBwbHlPcmlnaW4p
OworICAgIGF1dG8mIHRyYW5zZm9ybU9wZXJhdGlvbnMgPSBtX3JhcmVOb25Jbmhlcml0ZWREYXRh
LT50cmFuc2Zvcm0tPm9wZXJhdGlvbnM7CisgICAgYm9vbCBhcHBseVRyYW5zZm9ybU9yaWdpbiA9
IG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPnJvdGF0ZSB8fCBtX3JhcmVOb25Jbmhlcml0ZWREYXRh
LT5zY2FsZSB8fCByZXF1aXJlVHJhbnNmb3JtT3JpZ2luKHRyYW5zZm9ybU9wZXJhdGlvbnMsIGV4
Y2x1c2lvbnMpOwogCiAgICAgLy8gMi4gVHJhbnNsYXRlIGJ5IHRoZSBjb21wdXRlZCBYLCBZLCBh
bmQgWiB2YWx1ZXMgb2YgdHJhbnNmb3JtLW9yaWdpbi4KICAgICBGbG9hdFBvaW50M0Qgb3JpZ2lu
VHJhbnNsYXRlOwpAQCAtMTQxOSwyMSArMTQwNCwyNyBAQCB2b2lkIFJlbmRlclN0eWxlOjphcHBs
eVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFJl
YwogICAgIH0KIAogICAgIC8vIDMuIFRyYW5zbGF0ZSBieSB0aGUgY29tcHV0ZWQgWCwgWSwgYW5k
IFogdmFsdWVzIG9mIHRyYW5zbGF0ZS4KLSAgICBpZiAoVHJhbnNmb3JtT3BlcmF0aW9uKiB0cmFu
c2xhdGUgPSBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT50cmFuc2xhdGUuZ2V0KCkpCi0gICAgICAg
IHRyYW5zbGF0ZS0+YXBwbHkodHJhbnNmb3JtLCBib3VuZGluZ0JveC5zaXplKCkpOworICAgIGlm
ICghZXhjbHVzaW9ucy5jb250YWlucyhSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uRXhj
bHVzaW9uOjpUcmFuc2xhdGUpKSB7CisgICAgICAgIGlmIChUcmFuc2Zvcm1PcGVyYXRpb24qIHRy
YW5zbGF0ZSA9IG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPnRyYW5zbGF0ZS5nZXQoKSkKKyAgICAg
ICAgICAgIHRyYW5zbGF0ZS0+YXBwbHkodHJhbnNmb3JtLCBib3VuZGluZ0JveC5zaXplKCkpOwor
ICAgIH0KIAogICAgIC8vIDQuIFJvdGF0ZSBieSB0aGUgY29tcHV0ZWQgPGFuZ2xlPiBhYm91dCB0
aGUgc3BlY2lmaWVkIGF4aXMgb2Ygcm90YXRlLgotICAgIGlmIChUcmFuc2Zvcm1PcGVyYXRpb24q
IHJvdGF0ZSA9IG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPnJvdGF0ZS5nZXQoKSkKLSAgICAgICAg
cm90YXRlLT5hcHBseSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LnNpemUoKSk7CisgICAgaWYgKCFl
eGNsdXNpb25zLmNvbnRhaW5zKFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25FeGNsdXNp
b246OlJvdGF0ZSkpIHsKKyAgICAgICAgaWYgKFRyYW5zZm9ybU9wZXJhdGlvbiogcm90YXRlID0g
bV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+cm90YXRlLmdldCgpKQorICAgICAgICAgICAgcm90YXRl
LT5hcHBseSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LnNpemUoKSk7CisgICAgfQogCiAgICAgLy8g
NS4gU2NhbGUgYnkgdGhlIGNvbXB1dGVkIFgsIFksIGFuZCBaIHZhbHVlcyBvZiBzY2FsZS4KLSAg
ICBpZiAoVHJhbnNmb3JtT3BlcmF0aW9uKiBzY2FsZSA9IG1fcmFyZU5vbkluaGVyaXRlZERhdGEt
PnNjYWxlLmdldCgpKQotICAgICAgICBzY2FsZS0+YXBwbHkodHJhbnNmb3JtLCBib3VuZGluZ0Jv
eC5zaXplKCkpOworICAgIGlmICghZXhjbHVzaW9ucy5jb250YWlucyhSZW5kZXJTdHlsZTo6VHJh
bnNmb3JtT3BlcmF0aW9uRXhjbHVzaW9uOjpTY2FsZSkpIHsKKyAgICAgICAgaWYgKFRyYW5zZm9y
bU9wZXJhdGlvbiogc2NhbGUgPSBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5zY2FsZS5nZXQoKSkK
KyAgICAgICAgICAgIHNjYWxlLT5hcHBseSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LnNpemUoKSk7
CisgICAgfQogCiAgICAgLy8gNi4gVHJhbnNsYXRlIGFuZCByb3RhdGUgYnkgdGhlIHRyYW5zZm9y
bSBzcGVjaWZpZWQgYnkgb2Zmc2V0LiAoRklYTUU6IHdlIGRvbid0IHN1cHBvcnQgdGhlIG9mZnNl
dCBwcm9wZXJ0eSkKIAogICAgIC8vIDcuIE11bHRpcGx5IGJ5IGVhY2ggb2YgdGhlIHRyYW5zZm9y
bSBmdW5jdGlvbnMgaW4gdHJhbnNmb3JtIGZyb20gbGVmdCB0byByaWdodC4KLSAgICBmb3IgKGF1
dG8mIG9wZXJhdGlvbiA6IG9wZXJhdGlvbnMpCisgICAgZm9yIChhdXRvJiBvcGVyYXRpb24gOiB0
cmFuc2Zvcm1PcGVyYXRpb25zLm9wZXJhdGlvbnMoKSkKICAgICAgICAgb3BlcmF0aW9uLT5hcHBs
eSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LnNpemUoKSk7CiAKICAgICAvLyA4LiBUcmFuc2xhdGUg
YnkgdGhlIG5lZ2F0ZWQgY29tcHV0ZWQgWCwgWSBhbmQgWiB2YWx1ZXMgb2YgdHJhbnNmb3JtLW9y
aWdpbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5k
ZXggZGVmODNkMmMwZWI0MWUyZDlkZDFjMmU2Yjc4NjkzNmVhN2M2MzBlMi4uNjg5ZWVkMTM1ZTlh
OTFkMjg1ZTgyOWFiOTU1NGNhOGQ4ZTJhYWFjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTY1Miw4ICs2NTIsMTMgQEAgcHVibGljOgogICAg
IC8vIGluZGljYXRlcyB0aGF0IHdlIGFyZSB0cmFuc2Zvcm1pbmcuCiAgICAgYm9vbCBoYXNUcmFu
c2Zvcm1SZWxhdGVkUHJvcGVydHkoKSBjb25zdCB7IHJldHVybiBoYXNUcmFuc2Zvcm0oKSB8fCB0
cmFuc2xhdGUoKSB8fCBzY2FsZSgpIHx8IHJvdGF0ZSgpIHx8IHByZXNlcnZlczNEKCkgfHwgaGFz
UGVyc3BlY3RpdmUoKTsgfQogCi0gICAgZW51bSBBcHBseVRyYW5zZm9ybU9yaWdpbiB7IEluY2x1
ZGVUcmFuc2Zvcm1PcmlnaW4sIEV4Y2x1ZGVUcmFuc2Zvcm1PcmlnaW4gfTsKLSAgICB2b2lkIGFw
cGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgY29uc3QgRmxvYXRSZWN0JiBib3Vu
ZGluZ0JveCwgQXBwbHlUcmFuc2Zvcm1PcmlnaW4gPSBJbmNsdWRlVHJhbnNmb3JtT3JpZ2luKSBj
b25zdDsKKyAgICBlbnVtIGNsYXNzIFRyYW5zZm9ybU9wZXJhdGlvbkV4Y2x1c2lvbiA6IHVpbnQ4
X3QgeworICAgICAgICBUcmFuc2Zvcm1PcmlnaW4gPSAxIDw8IDAsCisgICAgICAgIFNjYWxlICAg
ICAgICAgICA9IDEgPDwgMSwKKyAgICAgICAgUm90YXRlICAgICAgICAgID0gMSA8PCAyLAorICAg
ICAgICBUcmFuc2xhdGUgICAgICAgPSAxIDw8IDMKKyAgICB9OworICAgIHZvaWQgYXBwbHlUcmFu
c2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94
LCBPcHRpb25TZXQ8VHJhbnNmb3JtT3BlcmF0aW9uRXhjbHVzaW9uPiA9IHsgfSkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRQYWdlU2NhbGVUcmFuc2Zvcm0oZmxvYXQpOwogCiAgICAgYm9vbCBoYXNNYXNr
KCkgY29uc3QgeyByZXR1cm4gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bWFzay0+aGFzSW1hZ2Uo
KSB8fCBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5tYXNrQm94SW1hZ2UuaGFzSW1hZ2UoKTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAKaW5kZXggOTRhZDUxZmNkMWNhZTQ4Nzdm
NjNlODRhZDMyYmY5NjU5N2ZhNGVkMS4uOTZmNjRmZmNiNzgxZDFiNzg0ZjUyYWVmNTdiYjRmZDNh
YTAxNzdjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCkBAIC01NSw3ICs1
NSw3IEBAIEFmZmluZVRyYW5zZm9ybSBTVkdUZXh0RWxlbWVudDo6YW5pbWF0ZWRMb2NhbFRyYW5z
Zm9ybSgpIGNvbnN0CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHQ7CiAgICAgICAgIC8v
IEZvciBub3csIHRoZSB0cmFuc2Zvcm0tb3JpZ2luIGlzIG5vdCB0YWtlbiBpbnRvIGFjY291bnQK
ICAgICAgICAgLy8gQWxzbywgYW55IHBlcmNlbnRhZ2UgdmFsdWVzIHdpbGwgbm90IGJlIHRha2Vu
IGludG8gYWNjb3VudAotICAgICAgICBzdHlsZS0+YXBwbHlUcmFuc2Zvcm0odCwgRmxvYXRSZWN0
KDAsIDAsIDAsIDApLCBSZW5kZXJTdHlsZTo6RXhjbHVkZVRyYW5zZm9ybU9yaWdpbik7CisgICAg
ICAgIHN0eWxlLT5hcHBseVRyYW5zZm9ybSh0LCBGbG9hdFJlY3QoMCwgMCwgMCwgMCksIHsgUmVu
ZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbkV4Y2x1c2lvbjo6VHJhbnNmb3JtT3JpZ2luIH0p
OwogICAgICAgICAvLyBGbGF0dGVuIGFueSAzRCB0cmFuc2Zvcm0KICAgICAgICAgbWF0cml4ID0g
dC50b0FmZmluZVRyYW5zZm9ybSgpOwogICAgIH0gZWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKaW5kZXggMWI1NDA3YjVjYjJiMjM4NWE2MjY1YWJkMWFkNjQ2ZTA1Mjk2NGI1Mi4uYWRk
NzJlZmU5NzYzNzc1MDg3ZjNiYzEzYTI3NDdlMDM3YjE5NWFlYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMTAtMDggIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ1NTIHRyYW5zZm9ybSBjb21wdXRlZCBz
dHlsZSBzaG91bGQgbm90IHJlZmxlY3QgaW5kaXZpZHVhbCB0cmFuc2Zvcm0gcHJvcGVydGllcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NDczCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDA5MTYwNT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXdseS1hdXRob3JlZCBXUFQgdGVzdCB0
byBjaGVjayB0aGF0IHNldHRpbmcgaW5kaXZpZHVhbCB0cmFuc2Zvcm0gcHJvcGVydGllcyBkb2Vz
IG5vdCBpbnRlcmZlcmUgd2l0aCB0aGUKKyAgICAgICAgY29tcHV0ZWQgc3R5bGUgZm9yIHRoZSAi
dHJhbnNmb3JtIiBwcm9wZXJ0eS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXRyYW5zZm9ybXMvdHJhbnNmb3JtLWFuZC1pbmRpdmlkdWFsLXRyYW5zZm9ybS1wcm9wZXJ0
aWVzLWNvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNmb3Jtcy90cmFuc2Zvcm0tYW5kLWluZGl2aWR1YWwt
dHJhbnNmb3JtLXByb3BlcnRpZXMtY29tcHV0ZWQtc3R5bGUuaHRtbDogQWRkZWQuCisKIDIwMjAt
MTAtMDcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIG5vbi1hY2NlbGVyYXRlZCBhbmltYXRpb24gb2YgaW5kaXZpZHVhbCB0cmFu
c2Zvcm0gcHJvcGVydGllcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMvdHJhbnNmb3JtLWFuZC1pbmRpdmlk
dWFsLXRyYW5zZm9ybS1wcm9wZXJ0aWVzLWNvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zv
cm1zL3RyYW5zZm9ybS1hbmQtaW5kaXZpZHVhbC10cmFuc2Zvcm0tcHJvcGVydGllcy1jb21wdXRl
ZC1zdHlsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmRkZDI2YTNjOGFkMGM4YzlkNmZmZWNj
MGU5OWZmOWQ2ZjY5YzFjYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1zL3RyYW5zZm9ybS1hbmQt
aW5kaXZpZHVhbC10cmFuc2Zvcm0tcHJvcGVydGllcy1jb21wdXRlZC1zdHlsZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgVGhlIHRyYW5zZm9ybSBwcm9wZXJ0eSBzaG91bGQg
bm90IGJlIGFmZmVjdGVkIGJ5IGluZGl2aWR1YWwgdHJhbnNmb3JtIHByb3BlcnRpZXMuCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy10cmFuc2Zvcm1zL3RyYW5zZm9ybS1hbmQtaW5kaXZpZHVhbC10cmFuc2Zvcm0tcHJvcGVy
dGllcy1jb21wdXRlZC1zdHlsZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMvdHJhbnNmb3JtLWFuZC1pbmRpdmlkdWFs
LXRyYW5zZm9ybS1wcm9wZXJ0aWVzLWNvbXB1dGVkLXN0eWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJj
MGFjMzJhZmVmMGIwZTQ3ZTQ5YzMzMGI1ODQ3MDY2YzliMzAxZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFu
c2Zvcm1zL3RyYW5zZm9ybS1hbmQtaW5kaXZpZHVhbC10cmFuc2Zvcm0tcHJvcGVydGllcy1jb21w
dXRlZC1zdHlsZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+CisKKzxkaXYgc3R5bGU9InNjYWxlOiAyOyByb3RhdGU6IDkwZGVnOyB0
cmFuc2xhdGU6IDEwMHB4OyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwcHgpIj4KKworPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCit0ZXN0KCgpID0+IHsKKyAgICBjb25zdCBzdHls
ZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdiIp
KTsKKyAgICBhc3NlcnRfZXF1YWxzKHN0eWxlLnNjYWxlLCAiMiIsICJUaGUgc2NhbGUgY29tcHV0
ZWQgc3R5bGUgc2hvdWxkIG1hdGNoIHRoZSBpbmxpbmUgc3R5bGUuIik7CisgICAgYXNzZXJ0X2Vx
dWFscyhzdHlsZS5yb3RhdGUsICI5MGRlZyIsICJUaGUgcm90YXRlIGNvbXB1dGVkIHN0eWxlIHNo
b3VsZCBtYXRjaCB0aGUgaW5saW5lIHN0eWxlLiIpOworICAgIGFzc2VydF9lcXVhbHMoc3R5bGUu
dHJhbnNsYXRlLCAiMTAwcHgiLCAiVGhlIHRyYW5zbGF0ZSBjb21wdXRlZCBzdHlsZSBzaG91bGQg
bWF0Y2ggdGhlIGlubGluZSBzdHlsZS4iKTsKKyAgICBhc3NlcnRfZXF1YWxzKHN0eWxlLnRyYW5z
Zm9ybSwgIm1hdHJpeCgxLCAwLCAwLCAxLCAwLCAxMDApIiwgIlRoZSB0cmFuc2Zvcm0gY29tcHV0
ZWQgc3R5bGUgc2hvdWxkIG1hdGNoIHRoZSBpbmxpbmUgc3R5bGUuIik7Cit9LCAiVGhlIHRyYW5z
Zm9ybSBwcm9wZXJ0eSBzaG91bGQgbm90IGJlIGFmZmVjdGVkIGJ5IGluZGl2aWR1YWwgdHJhbnNm
b3JtIHByb3BlcnRpZXMuIik7CisKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410871</attachid>
            <date>2020-10-08 12:39:46 -0700</date>
            <delta_ts>2020-10-08 23:48:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217473-20201008213944.patch</filename>
            <type>text/plain</type>
            <size>20297</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGU5NjAzNGNhYjMzZWY3
OWI5ZGQ0OTRhM2NmMWQxOTM5ODYzZGRhYi4uZDkyNzU2YjkxYjA2YzZlMzJiNDNlMGZjN2Y4MWVh
NjMxMjU1ODRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTEwLTA4ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIENTUyB0cmFuc2Zvcm0g
Y29tcHV0ZWQgc3R5bGUgc2hvdWxkIG5vdCByZWZsZWN0IGluZGl2aWR1YWwgdHJhbnNmb3JtIHBy
b3BlcnRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzQ3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAwOTE2MDU+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVjYXVzZSBSZW5kZXJTdHlsZTo6
YXBwbHlUcmFuc2Zvcm0oKSBhY2NvdW50cyBmb3IgdGhlIG5ldyByb3RhdGUsIHNjYWxlIGFuZCB0
cmFuc2xhdGUgcHJvcGVydGllcywgd2UgbmVlZCBhIHdheSB0byBjYWxsIHRoaXMKKyAgICAgICAg
bWV0aG9kIGZyb20gY29tcHV0ZWRUcmFuc2Zvcm0oKSB3aXRob3V0IGFjY291bnRpbmcgZm9yIHRo
b3NlIHByb3BlcnRpZXMuIFdoaWxlIHdlIHVzZWQgdG8gb25seSBoYXZlIHRoZSBvcHRpb24gdG8g
aW5jbHVkZSBvcgorICAgICAgICBleGNsdWRlIHRyYW5zZm9ybS1vcmlnaW4sIHdlIG5vdyBhbGxv
dyBmb3IgbXVsdGlwbGUgaW5jbHVzaW9ucyB0byBiZSBzcGVjaWZpZWQgdXNpbmcgYSBuZXcgVHJh
bnNmb3JtT3BlcmF0aW9uSW5jbHVzaW9uCisgICAgICAgIGVudW0gYW5kIHBhc3NpbmcgYW4gT3B0
aW9uU2V0PFRyYW5zZm9ybU9wZXJhdGlvbkluY2x1c2lvbj4gdG8gUmVuZGVyU3R5bGU6OmFwcGx5
VHJhbnNmb3JtKCkuCisKKyAgICAgICAgVGVzdDogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMvdHJhbnNmb3JtLWFuZC1pbmRpdmlkdWFsLXRyYW5zZm9y
bS1wcm9wZXJ0aWVzLWNvbXB1dGVkLXN0eWxlLmh0bWwKKworICAgICAgICAqIGFuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6Y29t
cHV0ZVRyYW5zZm9ybWVkRXh0ZW50VmlhTWF0cml4IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVk
VHJhbnNmb3JtKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZVRyYW5zZm9ybSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybSBjb25zdCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZVRy
YW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OmdldEN1cnJl
bnRUcmFuc2Zvcm0gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXF1aXJlVHJhbnNmb3JtT3JpZ2luKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjphcHBseVRyYW5zZm9ybSBjb25zdCk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTdHlsZTo6YXBwbHlUcmFuc2Zvcm0pOgorICAgICAgICAqIHN2Zy9TVkdUZXh0RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0RWxlbWVudDo6YW5pbWF0ZWRMb2NhbFRyYW5z
Zm9ybSBjb25zdCk6CisKIDIwMjAtMTAtMDggIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0aW9uXSBDb252ZXJ0IFJlbmRlclRleHQ6OnBv
c2l0aW9uRm9yUG9pbnQgdXNlIGl0ZXJhdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tl
eWZyYW1lRWZmZWN0LmNwcAppbmRleCAyMjlmZGQzYjZiYjQyMmI0ZTIxYTUyNTQ1MWJiMDdkMDVl
YTEwYTFiLi4yNjQzZDRmNTM3ZGUwN2E5MWYwOTdmYWJmYzYwMjg2NjVhZWY4MTIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKQEAgLTE4NzMsNyArMTg3
Myw3IEBAIGJvb2wgS2V5ZnJhbWVFZmZlY3Q6OmNvbXB1dGVUcmFuc2Zvcm1lZEV4dGVudFZpYVRy
YW5zZm9ybUxpc3QoY29uc3QgRmxvYXRSZWN0JiByCiBib29sIEtleWZyYW1lRWZmZWN0Ojpjb21w
dXRlVHJhbnNmb3JtZWRFeHRlbnRWaWFNYXRyaXgoY29uc3QgRmxvYXRSZWN0JiByZW5kZXJlckJv
eCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBMYXlvdXRSZWN0JiBib3VuZHMpIGNvbnN0CiB7
CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOwotICAgIHN0eWxlLmFwcGx5VHJh
bnNmb3JtKHRyYW5zZm9ybSwgcmVuZGVyZXJCb3gsIFJlbmRlclN0eWxlOjpJbmNsdWRlVHJhbnNm
b3JtT3JpZ2luKTsKKyAgICBzdHlsZS5hcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIHJlbmRlcmVy
Qm94KTsKICAgICBpZiAoIXRyYW5zZm9ybS5pc0FmZmluZSgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAKaW5kZXggOWEwZDU0M2FlMjE2YzI4NTI3ODRlNzg3OGM1ZGY4ZDUyYTExZjgzYi4u
MWNiYjlhZTliNzYxMWJlNzk4NjhlNTQyNmVjNWU0YmUwODJhMTE0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTYwMyw3
ICs2MDMsNyBAQCBzdGF0aWMgUmVmPENTU1ZhbHVlPiBjb21wdXRlZFRyYW5zZm9ybShSZW5kZXJP
YmplY3QqIHJlbmRlcmVyLCBjb25zdCBSZW5kZXJTdHlsZQogICAgICAgICBwaXhlbFNuYXBwZWRS
ZWN0ID0gc25hcFJlY3RUb0RldmljZVBpeGVscyhkb3duY2FzdDxSZW5kZXJCb3g+KCpyZW5kZXJl
cikuYm9yZGVyQm94UmVjdCgpLCByZW5kZXJlci0+ZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3Rv
cigpKTsKIAogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybTsKLSAgICBzdHlsZS5h
cHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIHBpeGVsU25hcHBlZFJlY3QsIFJlbmRlclN0eWxlOjpF
eGNsdWRlVHJhbnNmb3JtT3JpZ2luKTsKKyAgICBzdHlsZS5hcHBseVRyYW5zZm9ybSh0cmFuc2Zv
cm0sIHBpeGVsU25hcHBlZFJlY3QsIHsgfSk7CiAgICAgLy8gTm90ZSB0aGF0IHRoaXMgZG9lcyBu
b3QgZmxhdHRlbiB0byBhbiBhZmZpbmUgdHJhbnNmb3JtIGlmIEVOQUJMRSgzRF9UUkFOU0ZPUk1T
KSBpcyBvZmYsIGJ5IGRlc2lnbi4KIAogICAgIC8vIEZJWE1FOiBOZWVkIHRvIHByaW50IG91dCBp
bmRpdmlkdWFsIGZ1bmN0aW9ucyAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzOTI0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXgg
N2ViNGM1ZjdlZDM0ZGRmYzhiYTExZmRiMGQ3OWYzYmI0YTFjNTViNy4uZGE5YjgzMGJlYTVjOTVk
YWFmZjFhMzNiZWMwZTVlNjU1ZjkyYTljNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwCkBAIC0xMzA1LDcgKzEzMDUsNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRh
dGVUcmFuc2Zvcm0oKQogICAgIGlmIChoYXNUcmFuc2Zvcm0pIHsKICAgICAgICAgYXV0byYgcmVu
ZGVyQm94ID0gZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcigpKTsKICAgICAgICAgbV90cmFu
c2Zvcm0tPm1ha2VJZGVudGl0eSgpOwotICAgICAgICByZW5kZXJCb3guc3R5bGUoKS5hcHBseVRy
YW5zZm9ybSgqbV90cmFuc2Zvcm0sIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMocmVuZGVyQm94LnJl
ZmVyZW5jZUJveCh0cmFuc2Zvcm1Cb3hUb0NTU0JveFR5cGUocmVuZGVyQm94LnN0eWxlKCkudHJh
bnNmb3JtQm94KCkpKSwgcmVuZGVyQm94LmRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSks
IFJlbmRlclN0eWxlOjpJbmNsdWRlVHJhbnNmb3JtT3JpZ2luKTsKKyAgICAgICAgcmVuZGVyQm94
LnN0eWxlKCkuYXBwbHlUcmFuc2Zvcm0oKm1fdHJhbnNmb3JtLCBzbmFwUmVjdFRvRGV2aWNlUGl4
ZWxzKHJlbmRlckJveC5yZWZlcmVuY2VCb3godHJhbnNmb3JtQm94VG9DU1NCb3hUeXBlKHJlbmRl
ckJveC5zdHlsZSgpLnRyYW5zZm9ybUJveCgpKSksIHJlbmRlckJveC5kb2N1bWVudCgpLmRldmlj
ZVNjYWxlRmFjdG9yKCkpKTsKICAgICAgICAgbWFrZU1hdHJpeFJlbmRlcmFibGUoKm1fdHJhbnNm
b3JtLCBjYW5SZW5kZXIzRFRyYW5zZm9ybXMoKSk7CiAgICAgfQogCkBAIC0xMzE2LDcgKzEzMTYs
NyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0oKQogICAgIH0KIH0KIAotVHJh
bnNmb3JtYXRpb25NYXRyaXggUmVuZGVyTGF5ZXI6OmN1cnJlbnRUcmFuc2Zvcm0oUmVuZGVyU3R5
bGU6OkFwcGx5VHJhbnNmb3JtT3JpZ2luIGFwcGx5T3JpZ2luKSBjb25zdAorVHJhbnNmb3JtYXRp
b25NYXRyaXggUmVuZGVyTGF5ZXI6OmN1cnJlbnRUcmFuc2Zvcm0oT3B0aW9uU2V0PFJlbmRlclN0
eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25JbmNsdXNpb24+IGluY2x1c2lvbnMpIGNvbnN0CiB7CiAg
ICAgaWYgKCFtX3RyYW5zZm9ybSkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTEzMzEsMTggKzEz
MzEsMTggQEAgVHJhbnNmb3JtYXRpb25NYXRyaXggUmVuZGVyTGF5ZXI6OmN1cnJlbnRUcmFuc2Zv
cm0oUmVuZGVyU3R5bGU6OkFwcGx5VHJhbnNmb3JtT3IKICAgICAgICAgICAgIFRyYW5zZm9ybWF0
aW9uTWF0cml4IGN1cnJUcmFuc2Zvcm07CiAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVu
ZGVyU3R5bGU+IHN0eWxlID0gcmVuZGVyZXIoKS5hbmltYXRlZFN0eWxlKCk7CiAgICAgICAgICAg
ICBGbG9hdFJlY3QgcGl4ZWxTbmFwcGVkQm9yZGVyUmVjdCA9IHNuYXBSZWN0VG9EZXZpY2VQaXhl
bHMocmVuZGVyQm94LnJlZmVyZW5jZUJveCh0cmFuc2Zvcm1Cb3hUb0NTU0JveFR5cGUoc3R5bGUt
PnRyYW5zZm9ybUJveCgpKSksIHJlbmRlckJveC5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9y
KCkpOwotICAgICAgICAgICAgc3R5bGUtPmFwcGx5VHJhbnNmb3JtKGN1cnJUcmFuc2Zvcm0sIHBp
eGVsU25hcHBlZEJvcmRlclJlY3QsIGFwcGx5T3JpZ2luKTsKKyAgICAgICAgICAgIHN0eWxlLT5h
cHBseVRyYW5zZm9ybShjdXJyVHJhbnNmb3JtLCBwaXhlbFNuYXBwZWRCb3JkZXJSZWN0LCBpbmNs
dXNpb25zKTsKICAgICAgICAgICAgIG1ha2VNYXRyaXhSZW5kZXJhYmxlKGN1cnJUcmFuc2Zvcm0s
IGNhblJlbmRlcjNEVHJhbnNmb3JtcygpKTsKICAgICAgICAgICAgIHJldHVybiBjdXJyVHJhbnNm
b3JtOwogICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gbV90cmFuc2Zvcm0gaW5jbHVkZXMgdHJh
bnNmb3JtLW9yaWdpbiwgc28gd2UgbmVlZCB0byByZWNvbXB1dGUgdGhlIHRyYW5zZm9ybSBoZXJl
LgotICAgIGlmIChhcHBseU9yaWdpbiA9PSBSZW5kZXJTdHlsZTo6RXhjbHVkZVRyYW5zZm9ybU9y
aWdpbikgeworICAgIGlmICghaW5jbHVzaW9ucy5jb250YWlucyhSZW5kZXJTdHlsZTo6VHJhbnNm
b3JtT3BlcmF0aW9uSW5jbHVzaW9uOjpUcmFuc2Zvcm1PcmlnaW4pKSB7CiAgICAgICAgIFRyYW5z
Zm9ybWF0aW9uTWF0cml4IGN1cnJUcmFuc2Zvcm07CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxS
ZW5kZXJTdHlsZT4gc3R5bGUgPSByZW5kZXJlcigpLmFuaW1hdGVkU3R5bGUoKTsKICAgICAgICAg
RmxvYXRSZWN0IHBpeGVsU25hcHBlZEJvcmRlclJlY3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxz
KHJlbmRlckJveC5yZWZlcmVuY2VCb3godHJhbnNmb3JtQm94VG9DU1NCb3hUeXBlKHN0eWxlLT50
cmFuc2Zvcm1Cb3goKSkpLCByZW5kZXJCb3guZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3Rvcigp
KTsKLSAgICAgICAgcmVuZGVyQm94LnN0eWxlKCkuYXBwbHlUcmFuc2Zvcm0oY3VyclRyYW5zZm9y
bSwgcGl4ZWxTbmFwcGVkQm9yZGVyUmVjdCwgUmVuZGVyU3R5bGU6OkV4Y2x1ZGVUcmFuc2Zvcm1P
cmlnaW4pOworICAgICAgICByZW5kZXJCb3guc3R5bGUoKS5hcHBseVRyYW5zZm9ybShjdXJyVHJh
bnNmb3JtLCBwaXhlbFNuYXBwZWRCb3JkZXJSZWN0LCB7IFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1P
cGVyYXRpb25JbmNsdXNpb246OlJvdGF0ZSwgUmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlv
bkluY2x1c2lvbjo6U2NhbGUsIFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25JbmNsdXNp
b246OlRyYW5zbGF0ZSB9KTsKICAgICAgICAgbWFrZU1hdHJpeFJlbmRlcmFibGUoY3VyclRyYW5z
Zm9ybSwgY2FuUmVuZGVyM0RUcmFuc2Zvcm1zKCkpOwogICAgICAgICByZXR1cm4gY3VyclRyYW5z
Zm9ybTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDk1
NmFlNTkzNmM4NjhiYTZjOTAyY2Y1MjQ0YzUwM2E1YzQxYzJiMDUuLjRjYTRjMDZmMGMxZWViNmQx
NDM5YmExNTlmMTAxZDVmZDE1MzVlYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oCkBAIC03OTUsNyArNzk1LDcgQEAgcHVibGljOgogICAgIC8vIGN1cnJlbnRUcmFuc2Zv
cm0gY29tcHV0ZXMgYSB0cmFuc2Zvcm0gd2hpY2ggdGFrZXMgYWNjZWxlcmF0ZWQgYW5pbWF0aW9u
cyBpbnRvIGFjY291bnQuIFRoZQogICAgIC8vIHJlc3VsdGluZyB0cmFuc2Zvcm0gaGFzIHRyYW5z
Zm9ybS1vcmlnaW4gYmFrZWQgaW4uIElmIHRoZSBsYXllciBkb2VzIG5vdCBoYXZlIGEgdHJhbnNm
b3JtLAogICAgIC8vIHJldHVybnMgdGhlIGlkZW50aXR5IG1hdHJpeC4KLSAgICBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCBjdXJyZW50VHJhbnNmb3JtKFJlbmRlclN0eWxlOjpBcHBseVRyYW5zZm9ybU9y
aWdpbiA9IFJlbmRlclN0eWxlOjpJbmNsdWRlVHJhbnNmb3JtT3JpZ2luKSBjb25zdDsKKyAgICBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCBjdXJyZW50VHJhbnNmb3JtKE9wdGlvblNldDxSZW5kZXJTdHls
ZTo6VHJhbnNmb3JtT3BlcmF0aW9uSW5jbHVzaW9uPiA9IHsgUmVuZGVyU3R5bGU6OlRyYW5zZm9y
bU9wZXJhdGlvbkluY2x1c2lvbjo6VHJhbnNmb3JtT3JpZ2luLCBSZW5kZXJTdHlsZTo6VHJhbnNm
b3JtT3BlcmF0aW9uSW5jbHVzaW9uOjpSb3RhdGUsIFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVy
YXRpb25JbmNsdXNpb246OlNjYWxlLCBSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uSW5j
bHVzaW9uOjpUcmFuc2xhdGUgfSkgY29uc3Q7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggcmVu
ZGVyYWJsZVRyYW5zZm9ybShPcHRpb25TZXQ8UGFpbnRCZWhhdmlvcj4pIGNvbnN0OwogICAgIAog
ICAgIC8vIEdldCB0aGUgcGVyc3BlY3RpdmUgdHJhbnNmb3JtLCB3aGljaCBpcyBhcHBsaWVkIHRv
IHRyYW5zZm9ybWVkIHN1YmxheWVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggMmRiYTViMWQ3YTkzMDc5NmY3MDQxMDI4MGFkMGQx
ODdkZTFkYjViYi4uN2Y3YWE0ZTZkODU5ZTRjNjFkNDg1ZDc3OTEzNGIzNjNhZjdjYTc4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAg
LTYzMSw3ICs2MzEsNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlVHJhbnNmb3Jt
KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0Owog
ICAgIGlmIChtX293bmluZ0xheWVyLmhhc1RyYW5zZm9ybSgpKSB7CiAgICAgICAgIGF1dG8mIHJl
bmRlckJveCA9IGRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIoKSk7Ci0gICAgICAgIHN0eWxl
LmFwcGx5VHJhbnNmb3JtKHQsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMocmVuZGVyQm94LmJvcmRl
ckJveFJlY3QoKSwgZGV2aWNlU2NhbGVGYWN0b3IoKSksIFJlbmRlclN0eWxlOjpFeGNsdWRlVHJh
bnNmb3JtT3JpZ2luKTsKKyAgICAgICAgc3R5bGUuYXBwbHlUcmFuc2Zvcm0odCwgc25hcFJlY3RU
b0RldmljZVBpeGVscyhyZW5kZXJCb3guYm9yZGVyQm94UmVjdCgpLCBkZXZpY2VTY2FsZUZhY3Rv
cigpKSwgeyBSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uSW5jbHVzaW9uOjpSb3RhdGUs
IFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25JbmNsdXNpb246OlNjYWxlLCBSZW5kZXJT
dHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uSW5jbHVzaW9uOjpUcmFuc2xhdGUgfSk7CiAgICAgICAg
IG1ha2VNYXRyaXhSZW5kZXJhYmxlKHQsIGNvbXBvc2l0b3IoKS5jYW5SZW5kZXIzRFRyYW5zZm9y
bXMoKSk7CiAgICAgfQogICAgIApAQCAtMzQ4Myw3ICszNDgzLDcgQEAgYm9vbCBSZW5kZXJMYXll
ckJhY2tpbmc6OmdldEN1cnJlbnRUcmFuc2Zvcm0oY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhp
Y3NMYXllciwKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKG1fb3duaW5nTGF5ZXIu
aGFzVHJhbnNmb3JtKCkpIHsKLSAgICAgICAgdHJhbnNmb3JtID0gbV9vd25pbmdMYXllci5jdXJy
ZW50VHJhbnNmb3JtKFJlbmRlclN0eWxlOjpFeGNsdWRlVHJhbnNmb3JtT3JpZ2luKTsKKyAgICAg
ICAgdHJhbnNmb3JtID0gbV9vd25pbmdMYXllci5jdXJyZW50VHJhbnNmb3JtKHsgUmVuZGVyU3R5
bGU6OlRyYW5zZm9ybU9wZXJhdGlvbkluY2x1c2lvbjo6Um90YXRlLCBSZW5kZXJTdHlsZTo6VHJh
bnNmb3JtT3BlcmF0aW9uSW5jbHVzaW9uOjpTY2FsZSwgUmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9w
ZXJhdGlvbkluY2x1c2lvbjo6VHJhbnNsYXRlIH0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggOTNiNjBmZjBjYjhhNDQxYmI0MTEwMGM0MGI5Mzk4MWQz
MTI0NTk3Ni4uNjFmMzBjZjZkZDM3NmFmMzhmOGMwNmM2ZjJmNWU4NTZjMjJlZGU1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0xMzc5
LDM2ICsxMzc5LDIxIEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNldEhhc0F0dHJDb250ZW50KCkKICAg
ICBTRVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIGhhc0F0dHJDb250ZW50LCB0cnVlKTsK
IH0KIAotc3RhdGljIGlubGluZSBib29sIHJlcXVpcmVUcmFuc2Zvcm1PcmlnaW4oY29uc3QgVmVj
dG9yPFJlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+PiYgdHJhbnNmb3JtT3BlcmF0aW9ucywgUmVu
ZGVyU3R5bGU6OkFwcGx5VHJhbnNmb3JtT3JpZ2luIGFwcGx5T3JpZ2luKQorc3RhdGljIGlubGlu
ZSBib29sIHJlcXVpcmVUcmFuc2Zvcm1PcmlnaW4oY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyYg
dHJhbnNmb3JtT3BlcmF0aW9ucywgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVy
YXRpb25JbmNsdXNpb24+IGluY2x1c2lvbnMpCiB7CiAgICAgLy8gVGhlIHRyYW5zZm9ybS1vcmln
aW4gcHJvcGVydHkgYnJhY2tldHMgdGhlIHRyYW5zZm9ybSB3aXRoIHRyYW5zbGF0ZSBvcGVyYXRp
b25zLgogICAgIC8vIFdoZW4gdGhlIG9ubHkgdHJhbnNmb3JtIGlzIGEgdHJhbnNsYXRpb24sIHRo
ZSB0cmFuc2Zvcm0tb3JpZ2luIGlzIGlycmVsZXZhbnQuCi0KLSAgICBpZiAoYXBwbHlPcmlnaW4g
IT0gUmVuZGVyU3R5bGU6OkluY2x1ZGVUcmFuc2Zvcm1PcmlnaW4pCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIGZvciAoYXV0byYgb3BlcmF0aW9uIDogdHJhbnNmb3JtT3BlcmF0aW9ucykg
ewotICAgICAgICAvLyBGSVhNRTogVXNlIGFmZmVjdGVkQnlUcmFuc2Zvcm1PcmlnaW4oKS4KLSAg
ICAgICAgYXV0byB0eXBlID0gb3BlcmF0aW9uLT50eXBlKCk7Ci0gICAgICAgIGlmICh0eXBlICE9
IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFCi0gICAgICAgICAgICAmJiB0eXBlICE9IFRy
YW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFXzNECi0gICAgICAgICAgICAmJiB0eXBlICE9IFRy
YW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFX1gKLSAgICAgICAgICAgICYmIHR5cGUgIT0gVHJh
bnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWQotICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFu
c2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9aKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgfQotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpbmNsdXNpb25zLmNvbnRhaW5z
KFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25JbmNsdXNpb246OlRyYW5zZm9ybU9yaWdp
bikgJiYgdHJhbnNmb3JtT3BlcmF0aW9ucy5hZmZlY3RlZEJ5VHJhbnNmb3JtT3JpZ2luKCk7CiB9
CiAKLXZvaWQgUmVuZGVyU3R5bGU6OmFwcGx5VHJhbnNmb3JtKFRyYW5zZm9ybWF0aW9uTWF0cml4
JiB0cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIEFwcGx5VHJhbnNmb3Jt
T3JpZ2luIGFwcGx5T3JpZ2luKSBjb25zdAordm9pZCBSZW5kZXJTdHlsZTo6YXBwbHlUcmFuc2Zv
cm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRSZWN0JiBib3Vu
ZGluZ0JveCwgT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25JbmNsdXNp
b24+IGluY2x1c2lvbnMpIGNvbnN0CiB7CiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nz
cy10cmFuc2Zvcm1zLTIvI2N0bQogICAgIC8vIFRoZSB0cmFuc2Zvcm1hdGlvbiBtYXRyaXggaXMg
Y29tcHV0ZWQgZnJvbSB0aGUgdHJhbnNmb3JtLCB0cmFuc2Zvcm0tb3JpZ2luLCB0cmFuc2xhdGUs
IHJvdGF0ZSwgc2NhbGUsIGFuZCBvZmZzZXQgcHJvcGVydGllcyBhcyBmb2xsb3dzOgogICAgIC8v
IDEuIFN0YXJ0IHdpdGggdGhlIGlkZW50aXR5IG1hdHJpeC4KIAotICAgIGF1dG8mIG9wZXJhdGlv
bnMgPSBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT50cmFuc2Zvcm0tPm9wZXJhdGlvbnMub3BlcmF0
aW9ucygpOwotICAgIGJvb2wgYXBwbHlUcmFuc2Zvcm1PcmlnaW4gPSBtX3JhcmVOb25Jbmhlcml0
ZWREYXRhLT5yb3RhdGUgfHwgbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+c2NhbGUgfHwgcmVxdWly
ZVRyYW5zZm9ybU9yaWdpbihvcGVyYXRpb25zLCBhcHBseU9yaWdpbik7CisgICAgYXV0byYgdHJh
bnNmb3JtT3BlcmF0aW9ucyA9IG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPnRyYW5zZm9ybS0+b3Bl
cmF0aW9uczsKKyAgICBib29sIGFwcGx5VHJhbnNmb3JtT3JpZ2luID0gbV9yYXJlTm9uSW5oZXJp
dGVkRGF0YS0+cm90YXRlIHx8IG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPnNjYWxlIHx8IHJlcXVp
cmVUcmFuc2Zvcm1PcmlnaW4odHJhbnNmb3JtT3BlcmF0aW9ucywgaW5jbHVzaW9ucyk7CiAKICAg
ICAvLyAyLiBUcmFuc2xhdGUgYnkgdGhlIGNvbXB1dGVkIFgsIFksIGFuZCBaIHZhbHVlcyBvZiB0
cmFuc2Zvcm0tb3JpZ2luLgogICAgIEZsb2F0UG9pbnQzRCBvcmlnaW5UcmFuc2xhdGU7CkBAIC0x
NDE5LDIxICsxNDA0LDI3IEBAIHZvaWQgUmVuZGVyU3R5bGU6OmFwcGx5VHJhbnNmb3JtKFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UmVjCiAgICAgfQogCiAgICAg
Ly8gMy4gVHJhbnNsYXRlIGJ5IHRoZSBjb21wdXRlZCBYLCBZLCBhbmQgWiB2YWx1ZXMgb2YgdHJh
bnNsYXRlLgotICAgIGlmIChUcmFuc2Zvcm1PcGVyYXRpb24qIHRyYW5zbGF0ZSA9IG1fcmFyZU5v
bkluaGVyaXRlZERhdGEtPnRyYW5zbGF0ZS5nZXQoKSkKLSAgICAgICAgdHJhbnNsYXRlLT5hcHBs
eSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LnNpemUoKSk7CisgICAgaWYgKGluY2x1c2lvbnMuY29u
dGFpbnMoUmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbkluY2x1c2lvbjo6VHJhbnNsYXRl
KSkgeworICAgICAgICBpZiAoVHJhbnNmb3JtT3BlcmF0aW9uKiB0cmFuc2xhdGUgPSBtX3JhcmVO
b25Jbmhlcml0ZWREYXRhLT50cmFuc2xhdGUuZ2V0KCkpCisgICAgICAgICAgICB0cmFuc2xhdGUt
PmFwcGx5KHRyYW5zZm9ybSwgYm91bmRpbmdCb3guc2l6ZSgpKTsKKyAgICB9CiAKICAgICAvLyA0
LiBSb3RhdGUgYnkgdGhlIGNvbXB1dGVkIDxhbmdsZT4gYWJvdXQgdGhlIHNwZWNpZmllZCBheGlz
IG9mIHJvdGF0ZS4KLSAgICBpZiAoVHJhbnNmb3JtT3BlcmF0aW9uKiByb3RhdGUgPSBtX3JhcmVO
b25Jbmhlcml0ZWREYXRhLT5yb3RhdGUuZ2V0KCkpCi0gICAgICAgIHJvdGF0ZS0+YXBwbHkodHJh
bnNmb3JtLCBib3VuZGluZ0JveC5zaXplKCkpOworICAgIGlmIChpbmNsdXNpb25zLmNvbnRhaW5z
KFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25JbmNsdXNpb246OlJvdGF0ZSkpIHsKKyAg
ICAgICAgaWYgKFRyYW5zZm9ybU9wZXJhdGlvbiogcm90YXRlID0gbV9yYXJlTm9uSW5oZXJpdGVk
RGF0YS0+cm90YXRlLmdldCgpKQorICAgICAgICAgICAgcm90YXRlLT5hcHBseSh0cmFuc2Zvcm0s
IGJvdW5kaW5nQm94LnNpemUoKSk7CisgICAgfQogCiAgICAgLy8gNS4gU2NhbGUgYnkgdGhlIGNv
bXB1dGVkIFgsIFksIGFuZCBaIHZhbHVlcyBvZiBzY2FsZS4KLSAgICBpZiAoVHJhbnNmb3JtT3Bl
cmF0aW9uKiBzY2FsZSA9IG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPnNjYWxlLmdldCgpKQotICAg
ICAgICBzY2FsZS0+YXBwbHkodHJhbnNmb3JtLCBib3VuZGluZ0JveC5zaXplKCkpOworICAgIGlm
IChpbmNsdXNpb25zLmNvbnRhaW5zKFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25JbmNs
dXNpb246OlNjYWxlKSkgeworICAgICAgICBpZiAoVHJhbnNmb3JtT3BlcmF0aW9uKiBzY2FsZSA9
IG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPnNjYWxlLmdldCgpKQorICAgICAgICAgICAgc2NhbGUt
PmFwcGx5KHRyYW5zZm9ybSwgYm91bmRpbmdCb3guc2l6ZSgpKTsKKyAgICB9CiAKICAgICAvLyA2
LiBUcmFuc2xhdGUgYW5kIHJvdGF0ZSBieSB0aGUgdHJhbnNmb3JtIHNwZWNpZmllZCBieSBvZmZz
ZXQuIChGSVhNRTogd2UgZG9uJ3Qgc3VwcG9ydCB0aGUgb2Zmc2V0IHByb3BlcnR5KQogCiAgICAg
Ly8gNy4gTXVsdGlwbHkgYnkgZWFjaCBvZiB0aGUgdHJhbnNmb3JtIGZ1bmN0aW9ucyBpbiB0cmFu
c2Zvcm0gZnJvbSBsZWZ0IHRvIHJpZ2h0LgotICAgIGZvciAoYXV0byYgb3BlcmF0aW9uIDogb3Bl
cmF0aW9ucykKKyAgICBmb3IgKGF1dG8mIG9wZXJhdGlvbiA6IHRyYW5zZm9ybU9wZXJhdGlvbnMu
b3BlcmF0aW9ucygpKQogICAgICAgICBvcGVyYXRpb24tPmFwcGx5KHRyYW5zZm9ybSwgYm91bmRp
bmdCb3guc2l6ZSgpKTsKIAogICAgIC8vIDguIFRyYW5zbGF0ZSBieSB0aGUgbmVnYXRlZCBjb21w
dXRlZCBYLCBZIGFuZCBaIHZhbHVlcyBvZiB0cmFuc2Zvcm0tb3JpZ2luLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCBkZWY4M2QyYzBlYjQxZTJk
OWRkMWMyZTZiNzg2OTM2ZWE3YzYzMGUyLi5mOWY0ODFlNTdkNTdkN2FhZGI2MTQ3NDQzZTc5MGJi
OGY2NzM0NjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaApAQCAtNjUyLDggKzY1MiwxMyBAQCBwdWJsaWM6CiAgICAgLy8gaW5kaWNhdGVzIHRoYXQg
d2UgYXJlIHRyYW5zZm9ybWluZy4KICAgICBib29sIGhhc1RyYW5zZm9ybVJlbGF0ZWRQcm9wZXJ0
eSgpIGNvbnN0IHsgcmV0dXJuIGhhc1RyYW5zZm9ybSgpIHx8IHRyYW5zbGF0ZSgpIHx8IHNjYWxl
KCkgfHwgcm90YXRlKCkgfHwgcHJlc2VydmVzM0QoKSB8fCBoYXNQZXJzcGVjdGl2ZSgpOyB9CiAK
LSAgICBlbnVtIEFwcGx5VHJhbnNmb3JtT3JpZ2luIHsgSW5jbHVkZVRyYW5zZm9ybU9yaWdpbiwg
RXhjbHVkZVRyYW5zZm9ybU9yaWdpbiB9OwotICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJhbnNm
b3JtYXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBBcHBseVRyYW5z
Zm9ybU9yaWdpbiA9IEluY2x1ZGVUcmFuc2Zvcm1PcmlnaW4pIGNvbnN0OworICAgIGVudW0gY2xh
c3MgVHJhbnNmb3JtT3BlcmF0aW9uSW5jbHVzaW9uIDogdWludDhfdCB7CisgICAgICAgIFRyYW5z
Zm9ybU9yaWdpbiA9IDEgPDwgMCwKKyAgICAgICAgU2NhbGUgICAgICAgICAgID0gMSA8PCAxLAor
ICAgICAgICBSb3RhdGUgICAgICAgICAgPSAxIDw8IDIsCisgICAgICAgIFRyYW5zbGF0ZSAgICAg
ICA9IDEgPDwgMworICAgIH07CisgICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlv
bk1hdHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIE9wdGlvblNldDxUcmFuc2Zv
cm1PcGVyYXRpb25JbmNsdXNpb24+ID0geyBUcmFuc2Zvcm1PcGVyYXRpb25JbmNsdXNpb246OlRy
YW5zZm9ybU9yaWdpbiwgVHJhbnNmb3JtT3BlcmF0aW9uSW5jbHVzaW9uOjpTY2FsZSwgVHJhbnNm
b3JtT3BlcmF0aW9uSW5jbHVzaW9uOjpSb3RhdGUsIFRyYW5zZm9ybU9wZXJhdGlvbkluY2x1c2lv
bjo6VHJhbnNsYXRlIH0pIGNvbnN0OwogICAgIHZvaWQgc2V0UGFnZVNjYWxlVHJhbnNmb3JtKGZs
b2F0KTsKIAogICAgIGJvb2wgaGFzTWFzaygpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZU5vbkluaGVy
aXRlZERhdGEtPm1hc2stPmhhc0ltYWdlKCkgfHwgbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bWFz
a0JveEltYWdlLmhhc0ltYWdlKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUZXh0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuY3Bw
CmluZGV4IDk0YWQ1MWZjZDFjYWU0ODc3ZjYzZTg0YWQzMmJmOTY1OTdmYTRlZDEuLjZhMDgxYmYz
ZDQzMjkzYTI2MGEzMWQ5YjYyZWU1OTM0MzJkOGY4YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rl
eHRFbGVtZW50LmNwcApAQCAtNTUsNyArNTUsNyBAQCBBZmZpbmVUcmFuc2Zvcm0gU1ZHVGV4dEVs
ZW1lbnQ6OmFuaW1hdGVkTG9jYWxUcmFuc2Zvcm0oKSBjb25zdAogICAgICAgICBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCB0OwogICAgICAgICAvLyBGb3Igbm93LCB0aGUgdHJhbnNmb3JtLW9yaWdpbiBp
cyBub3QgdGFrZW4gaW50byBhY2NvdW50CiAgICAgICAgIC8vIEFsc28sIGFueSBwZXJjZW50YWdl
IHZhbHVlcyB3aWxsIG5vdCBiZSB0YWtlbiBpbnRvIGFjY291bnQKLSAgICAgICAgc3R5bGUtPmFw
cGx5VHJhbnNmb3JtKHQsIEZsb2F0UmVjdCgwLCAwLCAwLCAwKSwgUmVuZGVyU3R5bGU6OkV4Y2x1
ZGVUcmFuc2Zvcm1PcmlnaW4pOworICAgICAgICBzdHlsZS0+YXBwbHlUcmFuc2Zvcm0odCwgRmxv
YXRSZWN0KDAsIDAsIDAsIDApLCB7IFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25JbmNs
dXNpb246OlJvdGF0ZSwgUmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbkluY2x1c2lvbjo6
U2NhbGUsIFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25JbmNsdXNpb246OlRyYW5zbGF0
ZSB9KTsKICAgICAgICAgLy8gRmxhdHRlbiBhbnkgM0QgdHJhbnNmb3JtCiAgICAgICAgIG1hdHJp
eCA9IHQudG9BZmZpbmVUcmFuc2Zvcm0oKTsKICAgICB9IGVsc2UKQEAgLTY0LDggKzY0LDggQEAg
QWZmaW5lVHJhbnNmb3JtIFNWR1RleHRFbGVtZW50OjphbmltYXRlZExvY2FsVHJhbnNmb3JtKCkg
Y29uc3QKICAgICBjb25zdCBBZmZpbmVUcmFuc2Zvcm0qIHRyYW5zZm9ybSA9IGNvbnN0X2Nhc3Q8
U1ZHVGV4dEVsZW1lbnQqPih0aGlzKS0+c3VwcGxlbWVudGFsVHJhbnNmb3JtKCk7CiAgICAgaWYg
KHRyYW5zZm9ybSkKICAgICAgICAgcmV0dXJuICp0cmFuc2Zvcm0gKiBtYXRyaXg7Ci0gICAgcmV0
dXJuIG1hdHJpeDsKLX0KKyAgICAgICAgcmV0dXJuIG1hdHJpeDsKKyAgICB9CiAKIFJlbmRlclB0
cjxSZW5kZXJFbGVtZW50PiBTVkdUZXh0RWxlbWVudDo6Y3JlYXRlRWxlbWVudFJlbmRlcmVyKFJl
bmRlclN0eWxlJiYgc3R5bGUsIGNvbnN0IFJlbmRlclRyZWVQb3NpdGlvbiYpCiB7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAyMDIxNzc5ZjU5MDdjNzg3OTdlNDkzZTU4Y2E0NTU3
N2Y5MGNkZDg0Li5mZDllOWFhNDJmMmY4NWFjZjBiOWI4Y2E1YTVmZDBlZTViY2I4ZDA4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0xMC0wOCAg
QW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KKworICAgICAgICBDU1MgdHJhbnNm
b3JtIGNvbXB1dGVkIHN0eWxlIHNob3VsZCBub3QgcmVmbGVjdCBpbmRpdmlkdWFsIHRyYW5zZm9y
bSBwcm9wZXJ0aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc0NzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcwMDkxNjA1PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ld2x5LWF1dGhv
cmVkIFdQVCB0ZXN0IHRvIGNoZWNrIHRoYXQgc2V0dGluZyBpbmRpdmlkdWFsIHRyYW5zZm9ybSBw
cm9wZXJ0aWVzIGRvZXMgbm90IGludGVyZmVyZSB3aXRoIHRoZQorICAgICAgICBjb21wdXRlZCBz
dHlsZSBmb3IgdGhlICJ0cmFuc2Zvcm0iIHByb3BlcnR5LgorCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNmb3Jtcy90cmFuc2Zvcm0tYW5kLWluZGl2aWR1YWwtdHJh
bnNmb3JtLXByb3BlcnRpZXMtY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1zL3RyYW5zZm9ybS1h
bmQtaW5kaXZpZHVhbC10cmFuc2Zvcm0tcHJvcGVydGllcy1jb21wdXRlZC1zdHlsZS5odG1sOiBB
ZGRlZC4KKwogMjAyMC0xMC0wOCAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIEZpeCBpbWFnZS1sb2FkaW5nLWxhenktbXVsdGlwbGUtdGltZXMuaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRy
YW5zZm9ybXMvdHJhbnNmb3JtLWFuZC1pbmRpdmlkdWFsLXRyYW5zZm9ybS1wcm9wZXJ0aWVzLWNv
bXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1zL3RyYW5zZm9ybS1hbmQtaW5kaXZpZHVh
bC10cmFuc2Zvcm0tcHJvcGVydGllcy1jb21wdXRlZC1zdHlsZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmRkZDI2YTNjOGFkMGM4YzlkNmZmZWNjMGU5OWZmOWQ2ZjY5YzFjYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy10cmFuc2Zvcm1zL3RyYW5zZm9ybS1hbmQtaW5kaXZpZHVhbC10cmFuc2Zvcm0tcHJvcGVy
dGllcy1jb21wdXRlZC1zdHlsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
VGhlIHRyYW5zZm9ybSBwcm9wZXJ0eSBzaG91bGQgbm90IGJlIGFmZmVjdGVkIGJ5IGluZGl2aWR1
YWwgdHJhbnNmb3JtIHByb3BlcnRpZXMuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1zL3RyYW5zZm9ybS1h
bmQtaW5kaXZpZHVhbC10cmFuc2Zvcm0tcHJvcGVydGllcy1jb21wdXRlZC1zdHlsZS5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5z
Zm9ybXMvdHJhbnNmb3JtLWFuZC1pbmRpdmlkdWFsLXRyYW5zZm9ybS1wcm9wZXJ0aWVzLWNvbXB1
dGVkLXN0eWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJjMGFjMzJhZmVmMGIwZTQ3ZTQ5YzMzMGI1ODQ3
MDY2YzliMzAxZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1zL3RyYW5zZm9ybS1hbmQtaW5kaXZp
ZHVhbC10cmFuc2Zvcm0tcHJvcGVydGllcy1jb21wdXRlZC1zdHlsZS5odG1sCkBAIC0wLDAgKzEs
MTYgQEAKKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxkaXYgc3R5
bGU9InNjYWxlOiAyOyByb3RhdGU6IDkwZGVnOyB0cmFuc2xhdGU6IDEwMHB4OyB0cmFuc2Zvcm06
IHRyYW5zbGF0ZVkoMTAwcHgpIj4KKworPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgor
Cit0ZXN0KCgpID0+IHsKKyAgICBjb25zdCBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdiIpKTsKKyAgICBhc3NlcnRfZXF1YWxzKHN0eWxl
LnNjYWxlLCAiMiIsICJUaGUgc2NhbGUgY29tcHV0ZWQgc3R5bGUgc2hvdWxkIG1hdGNoIHRoZSBp
bmxpbmUgc3R5bGUuIik7CisgICAgYXNzZXJ0X2VxdWFscyhzdHlsZS5yb3RhdGUsICI5MGRlZyIs
ICJUaGUgcm90YXRlIGNvbXB1dGVkIHN0eWxlIHNob3VsZCBtYXRjaCB0aGUgaW5saW5lIHN0eWxl
LiIpOworICAgIGFzc2VydF9lcXVhbHMoc3R5bGUudHJhbnNsYXRlLCAiMTAwcHgiLCAiVGhlIHRy
YW5zbGF0ZSBjb21wdXRlZCBzdHlsZSBzaG91bGQgbWF0Y2ggdGhlIGlubGluZSBzdHlsZS4iKTsK
KyAgICBhc3NlcnRfZXF1YWxzKHN0eWxlLnRyYW5zZm9ybSwgIm1hdHJpeCgxLCAwLCAwLCAxLCAw
LCAxMDApIiwgIlRoZSB0cmFuc2Zvcm0gY29tcHV0ZWQgc3R5bGUgc2hvdWxkIG1hdGNoIHRoZSBp
bmxpbmUgc3R5bGUuIik7Cit9LCAiVGhlIHRyYW5zZm9ybSBwcm9wZXJ0eSBzaG91bGQgbm90IGJl
IGFmZmVjdGVkIGJ5IGluZGl2aWR1YWwgdHJhbnNmb3JtIHByb3BlcnRpZXMuIik7CisKKzwvc2Ny
aXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410917</attachid>
            <date>2020-10-08 23:48:36 -0700</date>
            <delta_ts>2020-10-09 00:11:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217473-20201009084835.patch</filename>
            <type>text/plain</type>
            <size>19353</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGU5NjAzNGNhYjMzZWY3
OWI5ZGQ0OTRhM2NmMWQxOTM5ODYzZGRhYi4uOWE2ZDY2MTU3ZmJiYzNhZWEyMjgyYTZmZDg2MmUw
YWY3MjQ1MGZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTEwLTA4ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIENTUyB0cmFuc2Zvcm0g
Y29tcHV0ZWQgc3R5bGUgc2hvdWxkIG5vdCByZWZsZWN0IGluZGl2aWR1YWwgdHJhbnNmb3JtIHBy
b3BlcnRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzQ3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAwOTE2MDU+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVjYXVzZSBSZW5kZXJTdHlsZTo6
YXBwbHlUcmFuc2Zvcm0oKSBhY2NvdW50cyBmb3IgdGhlIG5ldyByb3RhdGUsIHNjYWxlIGFuZCB0
cmFuc2xhdGUgcHJvcGVydGllcywgd2UgbmVlZCBhIHdheSB0byBjYWxsIHRoaXMKKyAgICAgICAg
bWV0aG9kIGZyb20gY29tcHV0ZWRUcmFuc2Zvcm0oKSB3aXRob3V0IGFjY291bnRpbmcgZm9yIHRo
b3NlIHByb3BlcnRpZXMuIFdoaWxlIHdlIHVzZWQgdG8gb25seSBoYXZlIHRoZSBvcHRpb24gdG8g
aW5jbHVkZSBvcgorICAgICAgICBleGNsdWRlIHRyYW5zZm9ybS1vcmlnaW4sIHdlIG5vdyBhbGxv
dyBmb3IgbXVsdGlwbGUgb3B0aW9ucyB0byBiZSBzcGVjaWZpZWQgdXNpbmcgYSBuZXcgVHJhbnNm
b3JtT3BlcmF0aW9uIGVudW0gYW5kIHBhc3NpbmcKKyAgICAgICAgYW4gT3B0aW9uU2V0PFRyYW5z
Zm9ybU9wZXJhdGlvbj4gdG8gUmVuZGVyU3R5bGU6OmFwcGx5VHJhbnNmb3JtKCkuCisKKyAgICAg
ICAgVGVzdDogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9y
bXMvdHJhbnNmb3JtLWFuZC1pbmRpdmlkdWFsLXRyYW5zZm9ybS1wcm9wZXJ0aWVzLWNvbXB1dGVk
LXN0eWxlLmh0bWwKKworICAgICAgICAqIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6Y29tcHV0ZVRyYW5zZm9ybWVkRXh0ZW50
VmlhTWF0cml4IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVkVHJhbnNmb3JtKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OnVwZGF0ZVRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y3Vy
cmVudFRyYW5zZm9ybSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZVRyYW5zZm9ybSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OmdldEN1cnJlbnRUcmFuc2Zvcm0gY29uc3QpOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpyZXF1aXJlVHJhbnNmb3JtT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0
eWxlOjphcHBseVRyYW5zZm9ybSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6YXBwbHlUcmFuc2Zv
cm0pOgorICAgICAgICAqIHN2Zy9TVkdUZXh0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUZXh0RWxlbWVudDo6YW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSBjb25zdCk6CisKIDIwMjAt
MTAtMDggIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNd
W0ludGVncmF0aW9uXSBDb252ZXJ0IFJlbmRlclRleHQ6OnBvc2l0aW9uRm9yUG9pbnQgdXNlIGl0
ZXJhdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAppbmRl
eCAyMjlmZGQzYjZiYjQyMmI0ZTIxYTUyNTQ1MWJiMDdkMDVlYTEwYTFiLi4yNjQzZDRmNTM3ZGUw
N2E5MWYwOTdmYWJmYzYwMjg2NjVhZWY4MTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9LZXlmcmFtZUVmZmVjdC5jcHAKQEAgLTE4NzMsNyArMTg3Myw3IEBAIGJvb2wgS2V5ZnJhbWVF
ZmZlY3Q6OmNvbXB1dGVUcmFuc2Zvcm1lZEV4dGVudFZpYVRyYW5zZm9ybUxpc3QoY29uc3QgRmxv
YXRSZWN0JiByCiBib29sIEtleWZyYW1lRWZmZWN0Ojpjb21wdXRlVHJhbnNmb3JtZWRFeHRlbnRW
aWFNYXRyaXgoY29uc3QgRmxvYXRSZWN0JiByZW5kZXJlckJveCwgY29uc3QgUmVuZGVyU3R5bGUm
IHN0eWxlLCBMYXlvdXRSZWN0JiBib3VuZHMpIGNvbnN0CiB7CiAgICAgVHJhbnNmb3JtYXRpb25N
YXRyaXggdHJhbnNmb3JtOwotICAgIHN0eWxlLmFwcGx5VHJhbnNmb3JtKHRyYW5zZm9ybSwgcmVu
ZGVyZXJCb3gsIFJlbmRlclN0eWxlOjpJbmNsdWRlVHJhbnNmb3JtT3JpZ2luKTsKKyAgICBzdHls
ZS5hcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIHJlbmRlcmVyQm94KTsKICAgICBpZiAoIXRyYW5z
Zm9ybS5pc0FmZmluZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggOWEwZDU0
M2FlMjE2YzI4NTI3ODRlNzg3OGM1ZGY4ZDUyYTExZjgzYi4uMWNiYjlhZTliNzYxMWJlNzk4Njhl
NTQyNmVjNWU0YmUwODJhMTE0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTYwMyw3ICs2MDMsNyBAQCBzdGF0aWMgUmVm
PENTU1ZhbHVlPiBjb21wdXRlZFRyYW5zZm9ybShSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25z
dCBSZW5kZXJTdHlsZQogICAgICAgICBwaXhlbFNuYXBwZWRSZWN0ID0gc25hcFJlY3RUb0Rldmlj
ZVBpeGVscyhkb3duY2FzdDxSZW5kZXJCb3g+KCpyZW5kZXJlcikuYm9yZGVyQm94UmVjdCgpLCBy
ZW5kZXJlci0+ZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKIAogICAgIFRyYW5zZm9y
bWF0aW9uTWF0cml4IHRyYW5zZm9ybTsKLSAgICBzdHlsZS5hcHBseVRyYW5zZm9ybSh0cmFuc2Zv
cm0sIHBpeGVsU25hcHBlZFJlY3QsIFJlbmRlclN0eWxlOjpFeGNsdWRlVHJhbnNmb3JtT3JpZ2lu
KTsKKyAgICBzdHlsZS5hcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIHBpeGVsU25hcHBlZFJlY3Qs
IHsgfSk7CiAgICAgLy8gTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgZmxhdHRlbiB0byBhbiBhZmZp
bmUgdHJhbnNmb3JtIGlmIEVOQUJMRSgzRF9UUkFOU0ZPUk1TKSBpcyBvZmYsIGJ5IGRlc2lnbi4K
IAogICAgIC8vIEZJWE1FOiBOZWVkIHRvIHByaW50IG91dCBpbmRpdmlkdWFsIGZ1bmN0aW9ucyAo
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTI0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggN2ViNGM1ZjdlZDM0ZGRmYzhiYTEx
ZmRiMGQ3OWYzYmI0YTFjNTViNy4uMDM2NDU1MjY4OWU5YzAyMjEwYjI4M2Q1ZmQ4MGUxMGNmYWEx
MmZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0xMzA1
LDcgKzEzMDUsNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0oKQogICAgIGlm
IChoYXNUcmFuc2Zvcm0pIHsKICAgICAgICAgYXV0byYgcmVuZGVyQm94ID0gZG93bmNhc3Q8UmVu
ZGVyQm94PihyZW5kZXJlcigpKTsKICAgICAgICAgbV90cmFuc2Zvcm0tPm1ha2VJZGVudGl0eSgp
OwotICAgICAgICByZW5kZXJCb3guc3R5bGUoKS5hcHBseVRyYW5zZm9ybSgqbV90cmFuc2Zvcm0s
IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMocmVuZGVyQm94LnJlZmVyZW5jZUJveCh0cmFuc2Zvcm1C
b3hUb0NTU0JveFR5cGUocmVuZGVyQm94LnN0eWxlKCkudHJhbnNmb3JtQm94KCkpKSwgcmVuZGVy
Qm94LmRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSksIFJlbmRlclN0eWxlOjpJbmNsdWRl
VHJhbnNmb3JtT3JpZ2luKTsKKyAgICAgICAgcmVuZGVyQm94LnN0eWxlKCkuYXBwbHlUcmFuc2Zv
cm0oKm1fdHJhbnNmb3JtLCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJlbmRlckJveC5yZWZlcmVu
Y2VCb3godHJhbnNmb3JtQm94VG9DU1NCb3hUeXBlKHJlbmRlckJveC5zdHlsZSgpLnRyYW5zZm9y
bUJveCgpKSksIHJlbmRlckJveC5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkpKTsKICAg
ICAgICAgbWFrZU1hdHJpeFJlbmRlcmFibGUoKm1fdHJhbnNmb3JtLCBjYW5SZW5kZXIzRFRyYW5z
Zm9ybXMoKSk7CiAgICAgfQogCkBAIC0xMzE2LDcgKzEzMTYsNyBAQCB2b2lkIFJlbmRlckxheWVy
Ojp1cGRhdGVUcmFuc2Zvcm0oKQogICAgIH0KIH0KIAotVHJhbnNmb3JtYXRpb25NYXRyaXggUmVu
ZGVyTGF5ZXI6OmN1cnJlbnRUcmFuc2Zvcm0oUmVuZGVyU3R5bGU6OkFwcGx5VHJhbnNmb3JtT3Jp
Z2luIGFwcGx5T3JpZ2luKSBjb25zdAorVHJhbnNmb3JtYXRpb25NYXRyaXggUmVuZGVyTGF5ZXI6
OmN1cnJlbnRUcmFuc2Zvcm0oT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRp
b24+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3RyYW5zZm9ybSkKICAgICAgICAgcmV0
dXJuIHsgfTsKQEAgLTEzMzEsMTggKzEzMzEsMTggQEAgVHJhbnNmb3JtYXRpb25NYXRyaXggUmVu
ZGVyTGF5ZXI6OmN1cnJlbnRUcmFuc2Zvcm0oUmVuZGVyU3R5bGU6OkFwcGx5VHJhbnNmb3JtT3IK
ICAgICAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGN1cnJUcmFuc2Zvcm07CiAgICAgICAg
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gcmVuZGVyZXIoKS5hbmlt
YXRlZFN0eWxlKCk7CiAgICAgICAgICAgICBGbG9hdFJlY3QgcGl4ZWxTbmFwcGVkQm9yZGVyUmVj
dCA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMocmVuZGVyQm94LnJlZmVyZW5jZUJveCh0cmFuc2Zv
cm1Cb3hUb0NTU0JveFR5cGUoc3R5bGUtPnRyYW5zZm9ybUJveCgpKSksIHJlbmRlckJveC5kb2N1
bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkpOwotICAgICAgICAgICAgc3R5bGUtPmFwcGx5VHJh
bnNmb3JtKGN1cnJUcmFuc2Zvcm0sIHBpeGVsU25hcHBlZEJvcmRlclJlY3QsIGFwcGx5T3JpZ2lu
KTsKKyAgICAgICAgICAgIHN0eWxlLT5hcHBseVRyYW5zZm9ybShjdXJyVHJhbnNmb3JtLCBwaXhl
bFNuYXBwZWRCb3JkZXJSZWN0LCBvcHRpb25zKTsKICAgICAgICAgICAgIG1ha2VNYXRyaXhSZW5k
ZXJhYmxlKGN1cnJUcmFuc2Zvcm0sIGNhblJlbmRlcjNEVHJhbnNmb3JtcygpKTsKICAgICAgICAg
ICAgIHJldHVybiBjdXJyVHJhbnNmb3JtOwogICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gbV90
cmFuc2Zvcm0gaW5jbHVkZXMgdHJhbnNmb3JtLW9yaWdpbiwgc28gd2UgbmVlZCB0byByZWNvbXB1
dGUgdGhlIHRyYW5zZm9ybSBoZXJlLgotICAgIGlmIChhcHBseU9yaWdpbiA9PSBSZW5kZXJTdHls
ZTo6RXhjbHVkZVRyYW5zZm9ybU9yaWdpbikgeworICAgIGlmICghb3B0aW9ucy5jb250YWlucyhS
ZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uOjpUcmFuc2Zvcm1PcmlnaW4pKSB7CiAgICAg
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGN1cnJUcmFuc2Zvcm07CiAgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSByZW5kZXJlcigpLmFuaW1hdGVkU3R5bGUoKTsK
ICAgICAgICAgRmxvYXRSZWN0IHBpeGVsU25hcHBlZEJvcmRlclJlY3QgPSBzbmFwUmVjdFRvRGV2
aWNlUGl4ZWxzKHJlbmRlckJveC5yZWZlcmVuY2VCb3godHJhbnNmb3JtQm94VG9DU1NCb3hUeXBl
KHN0eWxlLT50cmFuc2Zvcm1Cb3goKSkpLCByZW5kZXJCb3guZG9jdW1lbnQoKS5kZXZpY2VTY2Fs
ZUZhY3RvcigpKTsKLSAgICAgICAgcmVuZGVyQm94LnN0eWxlKCkuYXBwbHlUcmFuc2Zvcm0oY3Vy
clRyYW5zZm9ybSwgcGl4ZWxTbmFwcGVkQm9yZGVyUmVjdCwgUmVuZGVyU3R5bGU6OkV4Y2x1ZGVU
cmFuc2Zvcm1PcmlnaW4pOworICAgICAgICByZW5kZXJCb3guc3R5bGUoKS5hcHBseVRyYW5zZm9y
bShjdXJyVHJhbnNmb3JtLCBwaXhlbFNuYXBwZWRCb3JkZXJSZWN0LCBSZW5kZXJTdHlsZTo6aW5k
aXZpZHVhbFRyYW5zZm9ybU9wZXJhdGlvbnMpOwogICAgICAgICBtYWtlTWF0cml4UmVuZGVyYWJs
ZShjdXJyVHJhbnNmb3JtLCBjYW5SZW5kZXIzRFRyYW5zZm9ybXMoKSk7CiAgICAgICAgIHJldHVy
biBjdXJyVHJhbnNmb3JtOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmgKaW5kZXggOTU2YWU1OTM2Yzg2OGJhNmM5MDJjZjUyNDRjNTAzYTVjNDFjMmIwNS4uYjk2OWVk
NmIwNDlkYzlhNDYyYzM5OTRjYTc3NDQ4NTkwODRmNTM2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmgKQEAgLTc5NSw3ICs3OTUsNyBAQCBwdWJsaWM6CiAgICAgLy8gY3Vy
cmVudFRyYW5zZm9ybSBjb21wdXRlcyBhIHRyYW5zZm9ybSB3aGljaCB0YWtlcyBhY2NlbGVyYXRl
ZCBhbmltYXRpb25zIGludG8gYWNjb3VudC4gVGhlCiAgICAgLy8gcmVzdWx0aW5nIHRyYW5zZm9y
bSBoYXMgdHJhbnNmb3JtLW9yaWdpbiBiYWtlZCBpbi4gSWYgdGhlIGxheWVyIGRvZXMgbm90IGhh
dmUgYSB0cmFuc2Zvcm0sCiAgICAgLy8gcmV0dXJucyB0aGUgaWRlbnRpdHkgbWF0cml4LgotICAg
IFRyYW5zZm9ybWF0aW9uTWF0cml4IGN1cnJlbnRUcmFuc2Zvcm0oUmVuZGVyU3R5bGU6OkFwcGx5
VHJhbnNmb3JtT3JpZ2luID0gUmVuZGVyU3R5bGU6OkluY2x1ZGVUcmFuc2Zvcm1PcmlnaW4pIGNv
bnN0OworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGN1cnJlbnRUcmFuc2Zvcm0oT3B0aW9uU2V0
PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5z
Zm9ybU9wZXJhdGlvbnMpIGNvbnN0OwogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHJlbmRlcmFi
bGVUcmFuc2Zvcm0oT3B0aW9uU2V0PFBhaW50QmVoYXZpb3I+KSBjb25zdDsKICAgICAKICAgICAv
LyBHZXQgdGhlIHBlcnNwZWN0aXZlIHRyYW5zZm9ybSwgd2hpY2ggaXMgYXBwbGllZCB0byB0cmFu
c2Zvcm1lZCBzdWJsYXllcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwCmluZGV4IDJkYmE1YjFkN2E5MzA3OTZmNzA0MTAyODBhZDBkMTg3ZGUx
ZGI1YmIuLjVjMmE1NTU2ODE4MmRjODhiNzkxZWZkMjE3NDI2NmVjODMzZWJkNjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC02MzEs
NyArNjMxLDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZVRyYW5zZm9ybShjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdDsKICAgICBp
ZiAobV9vd25pbmdMYXllci5oYXNUcmFuc2Zvcm0oKSkgewogICAgICAgICBhdXRvJiByZW5kZXJC
b3ggPSBkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKCkpOwotICAgICAgICBzdHlsZS5hcHBs
eVRyYW5zZm9ybSh0LCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJlbmRlckJveC5ib3JkZXJCb3hS
ZWN0KCksIGRldmljZVNjYWxlRmFjdG9yKCkpLCBSZW5kZXJTdHlsZTo6RXhjbHVkZVRyYW5zZm9y
bU9yaWdpbik7CisgICAgICAgIHN0eWxlLmFwcGx5VHJhbnNmb3JtKHQsIHNuYXBSZWN0VG9EZXZp
Y2VQaXhlbHMocmVuZGVyQm94LmJvcmRlckJveFJlY3QoKSwgZGV2aWNlU2NhbGVGYWN0b3IoKSks
IFJlbmRlclN0eWxlOjppbmRpdmlkdWFsVHJhbnNmb3JtT3BlcmF0aW9ucyk7CiAgICAgICAgIG1h
a2VNYXRyaXhSZW5kZXJhYmxlKHQsIGNvbXBvc2l0b3IoKS5jYW5SZW5kZXIzRFRyYW5zZm9ybXMo
KSk7CiAgICAgfQogICAgIApAQCAtMzQ4Myw3ICszNDgzLDcgQEAgYm9vbCBSZW5kZXJMYXllckJh
Y2tpbmc6OmdldEN1cnJlbnRUcmFuc2Zvcm0oY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NM
YXllciwKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKG1fb3duaW5nTGF5ZXIuaGFz
VHJhbnNmb3JtKCkpIHsKLSAgICAgICAgdHJhbnNmb3JtID0gbV9vd25pbmdMYXllci5jdXJyZW50
VHJhbnNmb3JtKFJlbmRlclN0eWxlOjpFeGNsdWRlVHJhbnNmb3JtT3JpZ2luKTsKKyAgICAgICAg
dHJhbnNmb3JtID0gbV9vd25pbmdMYXllci5jdXJyZW50VHJhbnNmb3JtKFJlbmRlclN0eWxlOjpp
bmRpdmlkdWFsVHJhbnNmb3JtT3BlcmF0aW9ucyk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcAppbmRleCA5M2I2MGZmMGNiOGE0NDFiYjQxMTAwYzQwYjkzOTgxZDMx
MjQ1OTc2Li4xYmNhOTRjNjYwMjA4Mjc1MTk5OWFmMDkyYWEwZmExYzFlNzI0MTFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTEzNzks
MzYgKzEzNzksMjEgQEAgdm9pZCBSZW5kZXJTdHlsZTo6c2V0SGFzQXR0ckNvbnRlbnQoKQogICAg
IFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgaGFzQXR0ckNvbnRlbnQsIHRydWUpOwog
fQogCi1zdGF0aWMgaW5saW5lIGJvb2wgcmVxdWlyZVRyYW5zZm9ybU9yaWdpbihjb25zdCBWZWN0
b3I8UmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4+JiB0cmFuc2Zvcm1PcGVyYXRpb25zLCBSZW5k
ZXJTdHlsZTo6QXBwbHlUcmFuc2Zvcm1PcmlnaW4gYXBwbHlPcmlnaW4pCitzdGF0aWMgaW5saW5l
IGJvb2wgcmVxdWlyZVRyYW5zZm9ybU9yaWdpbihjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zJiB0
cmFuc2Zvcm1PcGVyYXRpb25zLCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJh
dGlvbj4gb3B0aW9ucykKIHsKICAgICAvLyBUaGUgdHJhbnNmb3JtLW9yaWdpbiBwcm9wZXJ0eSBi
cmFja2V0cyB0aGUgdHJhbnNmb3JtIHdpdGggdHJhbnNsYXRlIG9wZXJhdGlvbnMuCiAgICAgLy8g
V2hlbiB0aGUgb25seSB0cmFuc2Zvcm0gaXMgYSB0cmFuc2xhdGlvbiwgdGhlIHRyYW5zZm9ybS1v
cmlnaW4gaXMgaXJyZWxldmFudC4KLQotICAgIGlmIChhcHBseU9yaWdpbiAhPSBSZW5kZXJTdHls
ZTo6SW5jbHVkZVRyYW5zZm9ybU9yaWdpbikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
Zm9yIChhdXRvJiBvcGVyYXRpb24gOiB0cmFuc2Zvcm1PcGVyYXRpb25zKSB7Ci0gICAgICAgIC8v
IEZJWE1FOiBVc2UgYWZmZWN0ZWRCeVRyYW5zZm9ybU9yaWdpbigpLgotICAgICAgICBhdXRvIHR5
cGUgPSBvcGVyYXRpb24tPnR5cGUoKTsKLSAgICAgICAgaWYgKHR5cGUgIT0gVHJhbnNmb3JtT3Bl
cmF0aW9uOjpUUkFOU0xBVEUKLSAgICAgICAgICAgICYmIHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0
aW9uOjpUUkFOU0xBVEVfM0QKLSAgICAgICAgICAgICYmIHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0
aW9uOjpUUkFOU0xBVEVfWAotICAgICAgICAgICAgJiYgdHlwZSAhPSBUcmFuc2Zvcm1PcGVyYXRp
b246OlRSQU5TTEFURV9ZCi0gICAgICAgICAgICAmJiB0eXBlICE9IFRyYW5zZm9ybU9wZXJhdGlv
bjo6VFJBTlNMQVRFX1opCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG9wdGlvbnMuY29udGFpbnMoUmVuZGVyU3R5bGU6OlRy
YW5zZm9ybU9wZXJhdGlvbjo6VHJhbnNmb3JtT3JpZ2luKSAmJiB0cmFuc2Zvcm1PcGVyYXRpb25z
LmFmZmVjdGVkQnlUcmFuc2Zvcm1PcmlnaW4oKTsKIH0KIAotdm9pZCBSZW5kZXJTdHlsZTo6YXBw
bHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRS
ZWN0JiBib3VuZGluZ0JveCwgQXBwbHlUcmFuc2Zvcm1PcmlnaW4gYXBwbHlPcmlnaW4pIGNvbnN0
Cit2b2lkIFJlbmRlclN0eWxlOjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYg
dHJhbnNmb3JtLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVy
U3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbj4gb3B0aW9ucykgY29uc3QKIHsKICAgICAvLyBodHRw
czovL3d3dy53My5vcmcvVFIvY3NzLXRyYW5zZm9ybXMtMi8jY3RtCiAgICAgLy8gVGhlIHRyYW5z
Zm9ybWF0aW9uIG1hdHJpeCBpcyBjb21wdXRlZCBmcm9tIHRoZSB0cmFuc2Zvcm0sIHRyYW5zZm9y
bS1vcmlnaW4sIHRyYW5zbGF0ZSwgcm90YXRlLCBzY2FsZSwgYW5kIG9mZnNldCBwcm9wZXJ0aWVz
IGFzIGZvbGxvd3M6CiAgICAgLy8gMS4gU3RhcnQgd2l0aCB0aGUgaWRlbnRpdHkgbWF0cml4Lgog
Ci0gICAgYXV0byYgb3BlcmF0aW9ucyA9IG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPnRyYW5zZm9y
bS0+b3BlcmF0aW9ucy5vcGVyYXRpb25zKCk7Ci0gICAgYm9vbCBhcHBseVRyYW5zZm9ybU9yaWdp
biA9IG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPnJvdGF0ZSB8fCBtX3JhcmVOb25Jbmhlcml0ZWRE
YXRhLT5zY2FsZSB8fCByZXF1aXJlVHJhbnNmb3JtT3JpZ2luKG9wZXJhdGlvbnMsIGFwcGx5T3Jp
Z2luKTsKKyAgICBhdXRvJiB0cmFuc2Zvcm1PcGVyYXRpb25zID0gbV9yYXJlTm9uSW5oZXJpdGVk
RGF0YS0+dHJhbnNmb3JtLT5vcGVyYXRpb25zOworICAgIGJvb2wgYXBwbHlUcmFuc2Zvcm1Pcmln
aW4gPSBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5yb3RhdGUgfHwgbV9yYXJlTm9uSW5oZXJpdGVk
RGF0YS0+c2NhbGUgfHwgcmVxdWlyZVRyYW5zZm9ybU9yaWdpbih0cmFuc2Zvcm1PcGVyYXRpb25z
LCBvcHRpb25zKTsKIAogICAgIC8vIDIuIFRyYW5zbGF0ZSBieSB0aGUgY29tcHV0ZWQgWCwgWSwg
YW5kIFogdmFsdWVzIG9mIHRyYW5zZm9ybS1vcmlnaW4uCiAgICAgRmxvYXRQb2ludDNEIG9yaWdp
blRyYW5zbGF0ZTsKQEAgLTE0MTksMjEgKzE0MDQsMjcgQEAgdm9pZCBSZW5kZXJTdHlsZTo6YXBw
bHlUcmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRS
ZWMKICAgICB9CiAKICAgICAvLyAzLiBUcmFuc2xhdGUgYnkgdGhlIGNvbXB1dGVkIFgsIFksIGFu
ZCBaIHZhbHVlcyBvZiB0cmFuc2xhdGUuCi0gICAgaWYgKFRyYW5zZm9ybU9wZXJhdGlvbiogdHJh
bnNsYXRlID0gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+dHJhbnNsYXRlLmdldCgpKQotICAgICAg
ICB0cmFuc2xhdGUtPmFwcGx5KHRyYW5zZm9ybSwgYm91bmRpbmdCb3guc2l6ZSgpKTsKKyAgICBp
ZiAob3B0aW9ucy5jb250YWlucyhSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uOjpUcmFu
c2xhdGUpKSB7CisgICAgICAgIGlmIChUcmFuc2Zvcm1PcGVyYXRpb24qIHRyYW5zbGF0ZSA9IG1f
cmFyZU5vbkluaGVyaXRlZERhdGEtPnRyYW5zbGF0ZS5nZXQoKSkKKyAgICAgICAgICAgIHRyYW5z
bGF0ZS0+YXBwbHkodHJhbnNmb3JtLCBib3VuZGluZ0JveC5zaXplKCkpOworICAgIH0KIAogICAg
IC8vIDQuIFJvdGF0ZSBieSB0aGUgY29tcHV0ZWQgPGFuZ2xlPiBhYm91dCB0aGUgc3BlY2lmaWVk
IGF4aXMgb2Ygcm90YXRlLgotICAgIGlmIChUcmFuc2Zvcm1PcGVyYXRpb24qIHJvdGF0ZSA9IG1f
cmFyZU5vbkluaGVyaXRlZERhdGEtPnJvdGF0ZS5nZXQoKSkKLSAgICAgICAgcm90YXRlLT5hcHBs
eSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LnNpemUoKSk7CisgICAgaWYgKG9wdGlvbnMuY29udGFp
bnMoUmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbjo6Um90YXRlKSkgeworICAgICAgICBp
ZiAoVHJhbnNmb3JtT3BlcmF0aW9uKiByb3RhdGUgPSBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5y
b3RhdGUuZ2V0KCkpCisgICAgICAgICAgICByb3RhdGUtPmFwcGx5KHRyYW5zZm9ybSwgYm91bmRp
bmdCb3guc2l6ZSgpKTsKKyAgICB9CiAKICAgICAvLyA1LiBTY2FsZSBieSB0aGUgY29tcHV0ZWQg
WCwgWSwgYW5kIFogdmFsdWVzIG9mIHNjYWxlLgotICAgIGlmIChUcmFuc2Zvcm1PcGVyYXRpb24q
IHNjYWxlID0gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+c2NhbGUuZ2V0KCkpCi0gICAgICAgIHNj
YWxlLT5hcHBseSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LnNpemUoKSk7CisgICAgaWYgKG9wdGlv
bnMuY29udGFpbnMoUmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbjo6U2NhbGUpKSB7Cisg
ICAgICAgIGlmIChUcmFuc2Zvcm1PcGVyYXRpb24qIHNjYWxlID0gbV9yYXJlTm9uSW5oZXJpdGVk
RGF0YS0+c2NhbGUuZ2V0KCkpCisgICAgICAgICAgICBzY2FsZS0+YXBwbHkodHJhbnNmb3JtLCBi
b3VuZGluZ0JveC5zaXplKCkpOworICAgIH0KIAogICAgIC8vIDYuIFRyYW5zbGF0ZSBhbmQgcm90
YXRlIGJ5IHRoZSB0cmFuc2Zvcm0gc3BlY2lmaWVkIGJ5IG9mZnNldC4gKEZJWE1FOiB3ZSBkb24n
dCBzdXBwb3J0IHRoZSBvZmZzZXQgcHJvcGVydHkpCiAKICAgICAvLyA3LiBNdWx0aXBseSBieSBl
YWNoIG9mIHRoZSB0cmFuc2Zvcm0gZnVuY3Rpb25zIGluIHRyYW5zZm9ybSBmcm9tIGxlZnQgdG8g
cmlnaHQuCi0gICAgZm9yIChhdXRvJiBvcGVyYXRpb24gOiBvcGVyYXRpb25zKQorICAgIGZvciAo
YXV0byYgb3BlcmF0aW9uIDogdHJhbnNmb3JtT3BlcmF0aW9ucy5vcGVyYXRpb25zKCkpCiAgICAg
ICAgIG9wZXJhdGlvbi0+YXBwbHkodHJhbnNmb3JtLCBib3VuZGluZ0JveC5zaXplKCkpOwogCiAg
ICAgLy8gOC4gVHJhbnNsYXRlIGJ5IHRoZSBuZWdhdGVkIGNvbXB1dGVkIFgsIFkgYW5kIFogdmFs
dWVzIG9mIHRyYW5zZm9ybS1vcmlnaW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCmluZGV4IGRlZjgzZDJjMGViNDFlMmQ5ZGQxYzJlNmI3ODY5MzZlYTdj
NjMwZTIuLjI4ODUwOTIxOWZkOWE3ZWRmNDEwNDFlYzg0ODdiMGM4MmRjNTRlNWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC02NTIsOCArNjUy
LDE2IEBAIHB1YmxpYzoKICAgICAvLyBpbmRpY2F0ZXMgdGhhdCB3ZSBhcmUgdHJhbnNmb3JtaW5n
LgogICAgIGJvb2wgaGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KCkgY29uc3QgeyByZXR1cm4g
aGFzVHJhbnNmb3JtKCkgfHwgdHJhbnNsYXRlKCkgfHwgc2NhbGUoKSB8fCByb3RhdGUoKSB8fCBw
cmVzZXJ2ZXMzRCgpIHx8IGhhc1BlcnNwZWN0aXZlKCk7IH0KIAotICAgIGVudW0gQXBwbHlUcmFu
c2Zvcm1PcmlnaW4geyBJbmNsdWRlVHJhbnNmb3JtT3JpZ2luLCBFeGNsdWRlVHJhbnNmb3JtT3Jp
Z2luIH07Ci0gICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGNv
bnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIEFwcGx5VHJhbnNmb3JtT3JpZ2luID0gSW5jbHVk
ZVRyYW5zZm9ybU9yaWdpbikgY29uc3Q7CisgICAgZW51bSBjbGFzcyBUcmFuc2Zvcm1PcGVyYXRp
b24gOiB1aW50OF90IHsKKyAgICAgICAgVHJhbnNmb3JtT3JpZ2luID0gMSA8PCAwLAorICAgICAg
ICBUcmFuc2xhdGUgICAgICAgPSAxIDw8IDEsCisgICAgICAgIFJvdGF0ZSAgICAgICAgICA9IDEg
PDwgMiwKKyAgICAgICAgU2NhbGUgICAgICAgICAgID0gMSA8PCAzCisgICAgfTsKKworICAgIHN0
YXRpYyBjb25zdGV4cHIgT3B0aW9uU2V0PFRyYW5zZm9ybU9wZXJhdGlvbj4gYWxsVHJhbnNmb3Jt
T3BlcmF0aW9ucyA9IHsgVHJhbnNmb3JtT3BlcmF0aW9uOjpUcmFuc2Zvcm1PcmlnaW4sIFRyYW5z
Zm9ybU9wZXJhdGlvbjo6VHJhbnNsYXRlLCBUcmFuc2Zvcm1PcGVyYXRpb246OlJvdGF0ZSwgVHJh
bnNmb3JtT3BlcmF0aW9uOjpTY2FsZSB9OworICAgIHN0YXRpYyBjb25zdGV4cHIgT3B0aW9uU2V0
PFRyYW5zZm9ybU9wZXJhdGlvbj4gaW5kaXZpZHVhbFRyYW5zZm9ybU9wZXJhdGlvbnMgPSB7IFRy
YW5zZm9ybU9wZXJhdGlvbjo6VHJhbnNsYXRlLCBUcmFuc2Zvcm1PcGVyYXRpb246OlJvdGF0ZSwg
VHJhbnNmb3JtT3BlcmF0aW9uOjpTY2FsZSB9OworICAgIHZvaWQgYXBwbHlUcmFuc2Zvcm0oVHJh
bnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25T
ZXQ8VHJhbnNmb3JtT3BlcmF0aW9uPiA9IGFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0Owog
ICAgIHZvaWQgc2V0UGFnZVNjYWxlVHJhbnNmb3JtKGZsb2F0KTsKIAogICAgIGJvb2wgaGFzTWFz
aygpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPm1hc2stPmhhc0ltYWdl
KCkgfHwgbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bWFza0JveEltYWdlLmhhc0ltYWdlKCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCmluZGV4IDk0YWQ1MWZjZDFjYWU0ODc3
ZjYzZTg0YWQzMmJmOTY1OTdmYTRlZDEuLmRjYWJiNWJhOTE5YjMzYTU1OTkwZmVjMjllY2RkNzVh
ZmNjMjEzYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmNwcApAQCAtNTUsNyAr
NTUsNyBAQCBBZmZpbmVUcmFuc2Zvcm0gU1ZHVGV4dEVsZW1lbnQ6OmFuaW1hdGVkTG9jYWxUcmFu
c2Zvcm0oKSBjb25zdAogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1hdHJpeCB0OwogICAgICAgICAv
LyBGb3Igbm93LCB0aGUgdHJhbnNmb3JtLW9yaWdpbiBpcyBub3QgdGFrZW4gaW50byBhY2NvdW50
CiAgICAgICAgIC8vIEFsc28sIGFueSBwZXJjZW50YWdlIHZhbHVlcyB3aWxsIG5vdCBiZSB0YWtl
biBpbnRvIGFjY291bnQKLSAgICAgICAgc3R5bGUtPmFwcGx5VHJhbnNmb3JtKHQsIEZsb2F0UmVj
dCgwLCAwLCAwLCAwKSwgUmVuZGVyU3R5bGU6OkV4Y2x1ZGVUcmFuc2Zvcm1PcmlnaW4pOworICAg
ICAgICBzdHlsZS0+YXBwbHlUcmFuc2Zvcm0odCwgRmxvYXRSZWN0KDAsIDAsIDAsIDApLCBSZW5k
ZXJTdHlsZTo6aW5kaXZpZHVhbFRyYW5zZm9ybU9wZXJhdGlvbnMpOwogICAgICAgICAvLyBGbGF0
dGVuIGFueSAzRCB0cmFuc2Zvcm0KICAgICAgICAgbWF0cml4ID0gdC50b0FmZmluZVRyYW5zZm9y
bSgpOwogICAgIH0gZWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMjAyMTc3
OWY1OTA3Yzc4Nzk3ZTQ5M2U1OGNhNDU1NzdmOTBjZGQ4NC4uZmQ5ZTlhYTQyZjJmODVhY2YwYjli
OGNhNWE1ZmQwZWU1YmNiOGQwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMjAtMTAtMDggIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgQ1NTIHRyYW5zZm9ybSBjb21wdXRlZCBzdHlsZSBzaG91bGQgbm90IHJl
ZmxlY3QgaW5kaXZpZHVhbCB0cmFuc2Zvcm0gcHJvcGVydGllcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NDczCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83MDA5MTYwNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgYSBuZXdseS1hdXRob3JlZCBXUFQgdGVzdCB0byBjaGVjayB0aGF0IHNldHRp
bmcgaW5kaXZpZHVhbCB0cmFuc2Zvcm0gcHJvcGVydGllcyBkb2VzIG5vdCBpbnRlcmZlcmUgd2l0
aCB0aGUKKyAgICAgICAgY29tcHV0ZWQgc3R5bGUgZm9yIHRoZSAidHJhbnNmb3JtIiBwcm9wZXJ0
eS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXRyYW5zZm9ybXMvdHJh
bnNmb3JtLWFuZC1pbmRpdmlkdWFsLXRyYW5zZm9ybS1wcm9wZXJ0aWVzLWNvbXB1dGVkLXN0eWxl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtdHJhbnNmb3Jtcy90cmFuc2Zvcm0tYW5kLWluZGl2aWR1YWwtdHJhbnNmb3JtLXByb3BlcnRp
ZXMtY29tcHV0ZWQtc3R5bGUuaHRtbDogQWRkZWQuCisKIDIwMjAtMTAtMDggIFJvYiBCdWlzICA8
cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXggaW1hZ2UtbG9hZGluZy1sYXp5LW11bHRp
cGxlLXRpbWVzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1zL3RyYW5zZm9ybS1hbmQtaW5kaXZpZHVh
bC10cmFuc2Zvcm0tcHJvcGVydGllcy1jb21wdXRlZC1zdHlsZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNmb3Jt
cy90cmFuc2Zvcm0tYW5kLWluZGl2aWR1YWwtdHJhbnNmb3JtLXByb3BlcnRpZXMtY29tcHV0ZWQt
c3R5bGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkZGQyNmEzYzhhZDBjOGM5ZDZmZmVjYzBl
OTlmZjlkNmY2OWMxY2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNmb3Jtcy90cmFuc2Zvcm0tYW5kLWlu
ZGl2aWR1YWwtdHJhbnNmb3JtLXByb3BlcnRpZXMtY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRoZSB0cmFuc2Zvcm0gcHJvcGVydHkgc2hvdWxkIG5v
dCBiZSBhZmZlY3RlZCBieSBpbmRpdmlkdWFsIHRyYW5zZm9ybSBwcm9wZXJ0aWVzLgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtdHJhbnNmb3Jtcy90cmFuc2Zvcm0tYW5kLWluZGl2aWR1YWwtdHJhbnNmb3JtLXByb3BlcnRp
ZXMtY29tcHV0ZWQtc3R5bGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1zL3RyYW5zZm9ybS1hbmQtaW5kaXZpZHVhbC10
cmFuc2Zvcm0tcHJvcGVydGllcy1jb21wdXRlZC1zdHlsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyYzBh
YzMyYWZlZjBiMGU0N2U0OWMzMzBiNTg0NzA2NmM5YjMwMWYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNm
b3Jtcy90cmFuc2Zvcm0tYW5kLWluZGl2aWR1YWwtdHJhbnNmb3JtLXByb3BlcnRpZXMtY29tcHV0
ZWQtc3R5bGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorCis8ZGl2IHN0eWxlPSJzY2FsZTogMjsgcm90YXRlOiA5MGRlZzsgdHJh
bnNsYXRlOiAxMDBweDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMHB4KSI+CisKKzxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKwordGVzdCgoKSA9PiB7CisgICAgY29uc3Qgc3R5bGUg
PSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYiKSk7
CisgICAgYXNzZXJ0X2VxdWFscyhzdHlsZS5zY2FsZSwgIjIiLCAiVGhlIHNjYWxlIGNvbXB1dGVk
IHN0eWxlIHNob3VsZCBtYXRjaCB0aGUgaW5saW5lIHN0eWxlLiIpOworICAgIGFzc2VydF9lcXVh
bHMoc3R5bGUucm90YXRlLCAiOTBkZWciLCAiVGhlIHJvdGF0ZSBjb21wdXRlZCBzdHlsZSBzaG91
bGQgbWF0Y2ggdGhlIGlubGluZSBzdHlsZS4iKTsKKyAgICBhc3NlcnRfZXF1YWxzKHN0eWxlLnRy
YW5zbGF0ZSwgIjEwMHB4IiwgIlRoZSB0cmFuc2xhdGUgY29tcHV0ZWQgc3R5bGUgc2hvdWxkIG1h
dGNoIHRoZSBpbmxpbmUgc3R5bGUuIik7CisgICAgYXNzZXJ0X2VxdWFscyhzdHlsZS50cmFuc2Zv
cm0sICJtYXRyaXgoMSwgMCwgMCwgMSwgMCwgMTAwKSIsICJUaGUgdHJhbnNmb3JtIGNvbXB1dGVk
IHN0eWxlIHNob3VsZCBtYXRjaCB0aGUgaW5saW5lIHN0eWxlLiIpOworfSwgIlRoZSB0cmFuc2Zv
cm0gcHJvcGVydHkgc2hvdWxkIG5vdCBiZSBhZmZlY3RlZCBieSBpbmRpdmlkdWFsIHRyYW5zZm9y
bSBwcm9wZXJ0aWVzLiIpOworCis8L3NjcmlwdD4K
</data>
<flag name="commit-queue"
          id="426998"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410918</attachid>
            <date>2020-10-09 00:10:21 -0700</date>
            <delta_ts>2020-10-09 09:27:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217473-20201009091020.patch</filename>
            <type>text/plain</type>
            <size>19485</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGU5NjAzNGNhYjMzZWY3
OWI5ZGQ0OTRhM2NmMWQxOTM5ODYzZGRhYi4uNmQzOWZhMzI1MWE2MTgxOWZhNDc4ODA1YjhkNTY1
YTRmZDU3N2I2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTEwLTA4ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIENTUyB0cmFuc2Zvcm0g
Y29tcHV0ZWQgc3R5bGUgc2hvdWxkIG5vdCByZWZsZWN0IGluZGl2aWR1YWwgdHJhbnNmb3JtIHBy
b3BlcnRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzQ3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzAwOTE2MDU+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVjYXVzZSBSZW5kZXJTdHlsZTo6
YXBwbHlUcmFuc2Zvcm0oKSBhY2NvdW50cyBmb3IgdGhlIG5ldyByb3RhdGUsIHNjYWxlIGFuZCB0
cmFuc2xhdGUgcHJvcGVydGllcywgd2UgbmVlZCBhIHdheSB0byBjYWxsIHRoaXMKKyAgICAgICAg
bWV0aG9kIGZyb20gY29tcHV0ZWRUcmFuc2Zvcm0oKSB3aXRob3V0IGFjY291bnRpbmcgZm9yIHRo
b3NlIHByb3BlcnRpZXMuIFdoaWxlIHdlIHVzZWQgdG8gb25seSBoYXZlIHRoZSBvcHRpb24gdG8g
aW5jbHVkZSBvcgorICAgICAgICBleGNsdWRlIHRyYW5zZm9ybS1vcmlnaW4sIHdlIG5vdyBhbGxv
dyBmb3IgbXVsdGlwbGUgb3B0aW9ucyB0byBiZSBzcGVjaWZpZWQgdXNpbmcgYSBuZXcgVHJhbnNm
b3JtT3BlcmF0aW9uT3B0aW9uIGVudW0gYW5kCisgICAgICAgIHBhc3NpbmcgYW4gT3B0aW9uU2V0
PFRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gdG8gUmVuZGVyU3R5bGU6OmFwcGx5VHJhbnNmb3Jt
KCkuCisKKyAgICAgICAgVGVzdDogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXRyYW5zZm9ybXMvdHJhbnNmb3JtLWFuZC1pbmRpdmlkdWFsLXRyYW5zZm9ybS1wcm9wZXJ0
aWVzLWNvbXB1dGVkLXN0eWxlLmh0bWwKKworICAgICAgICAqIGFuaW1hdGlvbi9LZXlmcmFtZUVm
ZmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6Y29tcHV0ZVRyYW5z
Zm9ybWVkRXh0ZW50VmlhTWF0cml4IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXB1dGVkVHJhbnNmb3Jt
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZVRyYW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6Y3VycmVudFRyYW5zZm9ybSBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZVRyYW5zZm9ybSk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OmdldEN1cnJlbnRUcmFuc2Zv
cm0gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpyZXF1aXJlVHJhbnNmb3JtT3JpZ2luKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclN0eWxlOjphcHBseVRyYW5zZm9ybSBjb25zdCk6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6
YXBwbHlUcmFuc2Zvcm0pOgorICAgICAgICAqIHN2Zy9TVkdUZXh0RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdUZXh0RWxlbWVudDo6YW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSBjb25z
dCk6CisKIDIwMjAtMTAtMDggIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtMRkNdW0ludGVncmF0aW9uXSBDb252ZXJ0IFJlbmRlclRleHQ6OnBvc2l0aW9uRm9y
UG9pbnQgdXNlIGl0ZXJhdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
S2V5ZnJhbWVFZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZm
ZWN0LmNwcAppbmRleCAyMjlmZGQzYjZiYjQyMmI0ZTIxYTUyNTQ1MWJiMDdkMDVlYTEwYTFiLi4y
NjQzZDRmNTM3ZGUwN2E5MWYwOTdmYWJmYzYwMjg2NjVhZWY4MTIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKQEAgLTE4NzMsNyArMTg3Myw3IEBAIGJv
b2wgS2V5ZnJhbWVFZmZlY3Q6OmNvbXB1dGVUcmFuc2Zvcm1lZEV4dGVudFZpYVRyYW5zZm9ybUxp
c3QoY29uc3QgRmxvYXRSZWN0JiByCiBib29sIEtleWZyYW1lRWZmZWN0Ojpjb21wdXRlVHJhbnNm
b3JtZWRFeHRlbnRWaWFNYXRyaXgoY29uc3QgRmxvYXRSZWN0JiByZW5kZXJlckJveCwgY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlLCBMYXlvdXRSZWN0JiBib3VuZHMpIGNvbnN0CiB7CiAgICAgVHJh
bnNmb3JtYXRpb25NYXRyaXggdHJhbnNmb3JtOwotICAgIHN0eWxlLmFwcGx5VHJhbnNmb3JtKHRy
YW5zZm9ybSwgcmVuZGVyZXJCb3gsIFJlbmRlclN0eWxlOjpJbmNsdWRlVHJhbnNmb3JtT3JpZ2lu
KTsKKyAgICBzdHlsZS5hcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIHJlbmRlcmVyQm94KTsKICAg
ICBpZiAoIXRyYW5zZm9ybS5pc0FmZmluZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
aW5kZXggOWEwZDU0M2FlMjE2YzI4NTI3ODRlNzg3OGM1ZGY4ZDUyYTExZjgzYi4uMWNiYjlhZTli
NzYxMWJlNzk4NjhlNTQyNmVjNWU0YmUwODJhMTE0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTYwMyw3ICs2MDMsNyBA
QCBzdGF0aWMgUmVmPENTU1ZhbHVlPiBjb21wdXRlZFRyYW5zZm9ybShSZW5kZXJPYmplY3QqIHJl
bmRlcmVyLCBjb25zdCBSZW5kZXJTdHlsZQogICAgICAgICBwaXhlbFNuYXBwZWRSZWN0ID0gc25h
cFJlY3RUb0RldmljZVBpeGVscyhkb3duY2FzdDxSZW5kZXJCb3g+KCpyZW5kZXJlcikuYm9yZGVy
Qm94UmVjdCgpLCByZW5kZXJlci0+ZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKIAog
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybTsKLSAgICBzdHlsZS5hcHBseVRyYW5z
Zm9ybSh0cmFuc2Zvcm0sIHBpeGVsU25hcHBlZFJlY3QsIFJlbmRlclN0eWxlOjpFeGNsdWRlVHJh
bnNmb3JtT3JpZ2luKTsKKyAgICBzdHlsZS5hcHBseVRyYW5zZm9ybSh0cmFuc2Zvcm0sIHBpeGVs
U25hcHBlZFJlY3QsIHsgfSk7CiAgICAgLy8gTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgZmxhdHRl
biB0byBhbiBhZmZpbmUgdHJhbnNmb3JtIGlmIEVOQUJMRSgzRF9UUkFOU0ZPUk1TKSBpcyBvZmYs
IGJ5IGRlc2lnbi4KIAogICAgIC8vIEZJWE1FOiBOZWVkIHRvIHByaW50IG91dCBpbmRpdmlkdWFs
IGZ1bmN0aW9ucyAoaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTI0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggN2ViNGM1Zjdl
ZDM0ZGRmYzhiYTExZmRiMGQ3OWYzYmI0YTFjNTViNy4uODA1NTJjYjBlODQyYzkxYzM1YjY3YjZi
YjU3NmI2NzRmNDhkZDhmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCkBAIC0xMzA1LDcgKzEzMDUsNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zv
cm0oKQogICAgIGlmIChoYXNUcmFuc2Zvcm0pIHsKICAgICAgICAgYXV0byYgcmVuZGVyQm94ID0g
ZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcigpKTsKICAgICAgICAgbV90cmFuc2Zvcm0tPm1h
a2VJZGVudGl0eSgpOwotICAgICAgICByZW5kZXJCb3guc3R5bGUoKS5hcHBseVRyYW5zZm9ybSgq
bV90cmFuc2Zvcm0sIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMocmVuZGVyQm94LnJlZmVyZW5jZUJv
eCh0cmFuc2Zvcm1Cb3hUb0NTU0JveFR5cGUocmVuZGVyQm94LnN0eWxlKCkudHJhbnNmb3JtQm94
KCkpKSwgcmVuZGVyQm94LmRvY3VtZW50KCkuZGV2aWNlU2NhbGVGYWN0b3IoKSksIFJlbmRlclN0
eWxlOjpJbmNsdWRlVHJhbnNmb3JtT3JpZ2luKTsKKyAgICAgICAgcmVuZGVyQm94LnN0eWxlKCku
YXBwbHlUcmFuc2Zvcm0oKm1fdHJhbnNmb3JtLCBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJlbmRl
ckJveC5yZWZlcmVuY2VCb3godHJhbnNmb3JtQm94VG9DU1NCb3hUeXBlKHJlbmRlckJveC5zdHls
ZSgpLnRyYW5zZm9ybUJveCgpKSksIHJlbmRlckJveC5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFj
dG9yKCkpKTsKICAgICAgICAgbWFrZU1hdHJpeFJlbmRlcmFibGUoKm1fdHJhbnNmb3JtLCBjYW5S
ZW5kZXIzRFRyYW5zZm9ybXMoKSk7CiAgICAgfQogCkBAIC0xMzE2LDcgKzEzMTYsNyBAQCB2b2lk
IFJlbmRlckxheWVyOjp1cGRhdGVUcmFuc2Zvcm0oKQogICAgIH0KIH0KIAotVHJhbnNmb3JtYXRp
b25NYXRyaXggUmVuZGVyTGF5ZXI6OmN1cnJlbnRUcmFuc2Zvcm0oUmVuZGVyU3R5bGU6OkFwcGx5
VHJhbnNmb3JtT3JpZ2luIGFwcGx5T3JpZ2luKSBjb25zdAorVHJhbnNmb3JtYXRpb25NYXRyaXgg
UmVuZGVyTGF5ZXI6OmN1cnJlbnRUcmFuc2Zvcm0oT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFu
c2Zvcm1PcGVyYXRpb25PcHRpb24+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3RyYW5z
Zm9ybSkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTEzMzEsMTggKzEzMzEsMTggQEAgVHJhbnNm
b3JtYXRpb25NYXRyaXggUmVuZGVyTGF5ZXI6OmN1cnJlbnRUcmFuc2Zvcm0oUmVuZGVyU3R5bGU6
OkFwcGx5VHJhbnNmb3JtT3IKICAgICAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGN1cnJU
cmFuc2Zvcm07CiAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IHN0eWxl
ID0gcmVuZGVyZXIoKS5hbmltYXRlZFN0eWxlKCk7CiAgICAgICAgICAgICBGbG9hdFJlY3QgcGl4
ZWxTbmFwcGVkQm9yZGVyUmVjdCA9IHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMocmVuZGVyQm94LnJl
ZmVyZW5jZUJveCh0cmFuc2Zvcm1Cb3hUb0NTU0JveFR5cGUoc3R5bGUtPnRyYW5zZm9ybUJveCgp
KSksIHJlbmRlckJveC5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCkpOwotICAgICAgICAg
ICAgc3R5bGUtPmFwcGx5VHJhbnNmb3JtKGN1cnJUcmFuc2Zvcm0sIHBpeGVsU25hcHBlZEJvcmRl
clJlY3QsIGFwcGx5T3JpZ2luKTsKKyAgICAgICAgICAgIHN0eWxlLT5hcHBseVRyYW5zZm9ybShj
dXJyVHJhbnNmb3JtLCBwaXhlbFNuYXBwZWRCb3JkZXJSZWN0LCBvcHRpb25zKTsKICAgICAgICAg
ICAgIG1ha2VNYXRyaXhSZW5kZXJhYmxlKGN1cnJUcmFuc2Zvcm0sIGNhblJlbmRlcjNEVHJhbnNm
b3JtcygpKTsKICAgICAgICAgICAgIHJldHVybiBjdXJyVHJhbnNmb3JtOwogICAgICAgICB9CiAg
ICAgfQogCiAgICAgLy8gbV90cmFuc2Zvcm0gaW5jbHVkZXMgdHJhbnNmb3JtLW9yaWdpbiwgc28g
d2UgbmVlZCB0byByZWNvbXB1dGUgdGhlIHRyYW5zZm9ybSBoZXJlLgotICAgIGlmIChhcHBseU9y
aWdpbiA9PSBSZW5kZXJTdHlsZTo6RXhjbHVkZVRyYW5zZm9ybU9yaWdpbikgeworICAgIGlmICgh
b3B0aW9ucy5jb250YWlucyhSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uOjpU
cmFuc2Zvcm1PcmlnaW4pKSB7CiAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGN1cnJUcmFu
c2Zvcm07CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gc3R5bGUgPSByZW5k
ZXJlcigpLmFuaW1hdGVkU3R5bGUoKTsKICAgICAgICAgRmxvYXRSZWN0IHBpeGVsU25hcHBlZEJv
cmRlclJlY3QgPSBzbmFwUmVjdFRvRGV2aWNlUGl4ZWxzKHJlbmRlckJveC5yZWZlcmVuY2VCb3go
dHJhbnNmb3JtQm94VG9DU1NCb3hUeXBlKHN0eWxlLT50cmFuc2Zvcm1Cb3goKSkpLCByZW5kZXJC
b3guZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKLSAgICAgICAgcmVuZGVyQm94LnN0
eWxlKCkuYXBwbHlUcmFuc2Zvcm0oY3VyclRyYW5zZm9ybSwgcGl4ZWxTbmFwcGVkQm9yZGVyUmVj
dCwgUmVuZGVyU3R5bGU6OkV4Y2x1ZGVUcmFuc2Zvcm1PcmlnaW4pOworICAgICAgICByZW5kZXJC
b3guc3R5bGUoKS5hcHBseVRyYW5zZm9ybShjdXJyVHJhbnNmb3JtLCBwaXhlbFNuYXBwZWRCb3Jk
ZXJSZWN0LCBSZW5kZXJTdHlsZTo6aW5kaXZpZHVhbFRyYW5zZm9ybU9wZXJhdGlvbnMpOwogICAg
ICAgICBtYWtlTWF0cml4UmVuZGVyYWJsZShjdXJyVHJhbnNmb3JtLCBjYW5SZW5kZXIzRFRyYW5z
Zm9ybXMoKSk7CiAgICAgICAgIHJldHVybiBjdXJyVHJhbnNmb3JtOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggOTU2YWU1OTM2Yzg2OGJhNmM5MDJjZjUy
NDRjNTAzYTVjNDFjMmIwNS4uZmRmZjJlZmRmZWIxM2ZjMDc2OTk2NzUyZTgyMDYyZjU4ZGQxNzFj
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTc5NSw3ICs3OTUs
NyBAQCBwdWJsaWM6CiAgICAgLy8gY3VycmVudFRyYW5zZm9ybSBjb21wdXRlcyBhIHRyYW5zZm9y
bSB3aGljaCB0YWtlcyBhY2NlbGVyYXRlZCBhbmltYXRpb25zIGludG8gYWNjb3VudC4gVGhlCiAg
ICAgLy8gcmVzdWx0aW5nIHRyYW5zZm9ybSBoYXMgdHJhbnNmb3JtLW9yaWdpbiBiYWtlZCBpbi4g
SWYgdGhlIGxheWVyIGRvZXMgbm90IGhhdmUgYSB0cmFuc2Zvcm0sCiAgICAgLy8gcmV0dXJucyB0
aGUgaWRlbnRpdHkgbWF0cml4LgotICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGN1cnJlbnRUcmFu
c2Zvcm0oUmVuZGVyU3R5bGU6OkFwcGx5VHJhbnNmb3JtT3JpZ2luID0gUmVuZGVyU3R5bGU6Oklu
Y2x1ZGVUcmFuc2Zvcm1PcmlnaW4pIGNvbnN0OworICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IGN1
cnJlbnRUcmFuc2Zvcm0oT3B0aW9uU2V0PFJlbmRlclN0eWxlOjpUcmFuc2Zvcm1PcGVyYXRpb25P
cHRpb24+ID0gUmVuZGVyU3R5bGU6OmFsbFRyYW5zZm9ybU9wZXJhdGlvbnMpIGNvbnN0OwogICAg
IFRyYW5zZm9ybWF0aW9uTWF0cml4IHJlbmRlcmFibGVUcmFuc2Zvcm0oT3B0aW9uU2V0PFBhaW50
QmVoYXZpb3I+KSBjb25zdDsKICAgICAKICAgICAvLyBHZXQgdGhlIHBlcnNwZWN0aXZlIHRyYW5z
Zm9ybSwgd2hpY2ggaXMgYXBwbGllZCB0byB0cmFuc2Zvcm1lZCBzdWJsYXllcnMuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDJkYmE1
YjFkN2E5MzA3OTZmNzA0MTAyODBhZDBkMTg3ZGUxZGI1YmIuLjVjMmE1NTU2ODE4MmRjODhiNzkx
ZWZkMjE3NDI2NmVjODMzZWJkNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC02MzEsNyArNjMxLDcgQEAgdm9pZCBSZW5kZXJMYXll
ckJhY2tpbmc6OnVwZGF0ZVRyYW5zZm9ybShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAg
VHJhbnNmb3JtYXRpb25NYXRyaXggdDsKICAgICBpZiAobV9vd25pbmdMYXllci5oYXNUcmFuc2Zv
cm0oKSkgewogICAgICAgICBhdXRvJiByZW5kZXJCb3ggPSBkb3duY2FzdDxSZW5kZXJCb3g+KHJl
bmRlcmVyKCkpOwotICAgICAgICBzdHlsZS5hcHBseVRyYW5zZm9ybSh0LCBzbmFwUmVjdFRvRGV2
aWNlUGl4ZWxzKHJlbmRlckJveC5ib3JkZXJCb3hSZWN0KCksIGRldmljZVNjYWxlRmFjdG9yKCkp
LCBSZW5kZXJTdHlsZTo6RXhjbHVkZVRyYW5zZm9ybU9yaWdpbik7CisgICAgICAgIHN0eWxlLmFw
cGx5VHJhbnNmb3JtKHQsIHNuYXBSZWN0VG9EZXZpY2VQaXhlbHMocmVuZGVyQm94LmJvcmRlckJv
eFJlY3QoKSwgZGV2aWNlU2NhbGVGYWN0b3IoKSksIFJlbmRlclN0eWxlOjppbmRpdmlkdWFsVHJh
bnNmb3JtT3BlcmF0aW9ucyk7CiAgICAgICAgIG1ha2VNYXRyaXhSZW5kZXJhYmxlKHQsIGNvbXBv
c2l0b3IoKS5jYW5SZW5kZXIzRFRyYW5zZm9ybXMoKSk7CiAgICAgfQogICAgIApAQCAtMzQ4Myw3
ICszNDgzLDcgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OmdldEN1cnJlbnRUcmFuc2Zvcm0o
Y29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgaWYgKG1fb3duaW5nTGF5ZXIuaGFzVHJhbnNmb3JtKCkpIHsKLSAgICAgICAgdHJh
bnNmb3JtID0gbV9vd25pbmdMYXllci5jdXJyZW50VHJhbnNmb3JtKFJlbmRlclN0eWxlOjpFeGNs
dWRlVHJhbnNmb3JtT3JpZ2luKTsKKyAgICAgICAgdHJhbnNmb3JtID0gbV9vd25pbmdMYXllci5j
dXJyZW50VHJhbnNmb3JtKFJlbmRlclN0eWxlOjppbmRpdmlkdWFsVHJhbnNmb3JtT3BlcmF0aW9u
cyk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCA5M2I2
MGZmMGNiOGE0NDFiYjQxMTAwYzQwYjkzOTgxZDMxMjQ1OTc2Li4xMDdkYzFhMjc1ZjUwYjdmZDhk
ZmVmNzVlM2VkYTdiYThlYzAyMDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTEzNzksMzYgKzEzNzksMjEgQEAgdm9pZCBSZW5kZXJT
dHlsZTo6c2V0SGFzQXR0ckNvbnRlbnQoKQogICAgIFNFVF9WQVIobV9yYXJlTm9uSW5oZXJpdGVk
RGF0YSwgaGFzQXR0ckNvbnRlbnQsIHRydWUpOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgcmVx
dWlyZVRyYW5zZm9ybU9yaWdpbihjb25zdCBWZWN0b3I8UmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlv
bj4+JiB0cmFuc2Zvcm1PcGVyYXRpb25zLCBSZW5kZXJTdHlsZTo6QXBwbHlUcmFuc2Zvcm1Pcmln
aW4gYXBwbHlPcmlnaW4pCitzdGF0aWMgaW5saW5lIGJvb2wgcmVxdWlyZVRyYW5zZm9ybU9yaWdp
bihjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zJiB0cmFuc2Zvcm1PcGVyYXRpb25zLCBPcHRpb25T
ZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykKIHsKICAg
ICAvLyBUaGUgdHJhbnNmb3JtLW9yaWdpbiBwcm9wZXJ0eSBicmFja2V0cyB0aGUgdHJhbnNmb3Jt
IHdpdGggdHJhbnNsYXRlIG9wZXJhdGlvbnMuCiAgICAgLy8gV2hlbiB0aGUgb25seSB0cmFuc2Zv
cm0gaXMgYSB0cmFuc2xhdGlvbiwgdGhlIHRyYW5zZm9ybS1vcmlnaW4gaXMgaXJyZWxldmFudC4K
LQotICAgIGlmIChhcHBseU9yaWdpbiAhPSBSZW5kZXJTdHlsZTo6SW5jbHVkZVRyYW5zZm9ybU9y
aWdpbikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgZm9yIChhdXRvJiBvcGVyYXRpb24g
OiB0cmFuc2Zvcm1PcGVyYXRpb25zKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBVc2UgYWZmZWN0ZWRC
eVRyYW5zZm9ybU9yaWdpbigpLgotICAgICAgICBhdXRvIHR5cGUgPSBvcGVyYXRpb24tPnR5cGUo
KTsKLSAgICAgICAgaWYgKHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEUKLSAg
ICAgICAgICAgICYmIHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfM0QKLSAg
ICAgICAgICAgICYmIHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWAotICAg
ICAgICAgICAgJiYgdHlwZSAhPSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9ZCi0gICAg
ICAgICAgICAmJiB0eXBlICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFX1opCi0gICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0
dXJuIG9wdGlvbnMuY29udGFpbnMoUmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlv
bjo6VHJhbnNmb3JtT3JpZ2luKSAmJiB0cmFuc2Zvcm1PcGVyYXRpb25zLmFmZmVjdGVkQnlUcmFu
c2Zvcm1PcmlnaW4oKTsKIH0KIAotdm9pZCBSZW5kZXJTdHlsZTo6YXBwbHlUcmFuc2Zvcm0oVHJh
bnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0Jv
eCwgQXBwbHlUcmFuc2Zvcm1PcmlnaW4gYXBwbHlPcmlnaW4pIGNvbnN0Cit2b2lkIFJlbmRlclN0
eWxlOjphcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBjb25z
dCBGbG9hdFJlY3QmIGJvdW5kaW5nQm94LCBPcHRpb25TZXQ8UmVuZGVyU3R5bGU6OlRyYW5zZm9y
bU9wZXJhdGlvbk9wdGlvbj4gb3B0aW9ucykgY29uc3QKIHsKICAgICAvLyBodHRwczovL3d3dy53
My5vcmcvVFIvY3NzLXRyYW5zZm9ybXMtMi8jY3RtCiAgICAgLy8gVGhlIHRyYW5zZm9ybWF0aW9u
IG1hdHJpeCBpcyBjb21wdXRlZCBmcm9tIHRoZSB0cmFuc2Zvcm0sIHRyYW5zZm9ybS1vcmlnaW4s
IHRyYW5zbGF0ZSwgcm90YXRlLCBzY2FsZSwgYW5kIG9mZnNldCBwcm9wZXJ0aWVzIGFzIGZvbGxv
d3M6CiAgICAgLy8gMS4gU3RhcnQgd2l0aCB0aGUgaWRlbnRpdHkgbWF0cml4LgogCi0gICAgYXV0
byYgb3BlcmF0aW9ucyA9IG1fcmFyZU5vbkluaGVyaXRlZERhdGEtPnRyYW5zZm9ybS0+b3BlcmF0
aW9ucy5vcGVyYXRpb25zKCk7Ci0gICAgYm9vbCBhcHBseVRyYW5zZm9ybU9yaWdpbiA9IG1fcmFy
ZU5vbkluaGVyaXRlZERhdGEtPnJvdGF0ZSB8fCBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5zY2Fs
ZSB8fCByZXF1aXJlVHJhbnNmb3JtT3JpZ2luKG9wZXJhdGlvbnMsIGFwcGx5T3JpZ2luKTsKKyAg
ICBhdXRvJiB0cmFuc2Zvcm1PcGVyYXRpb25zID0gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+dHJh
bnNmb3JtLT5vcGVyYXRpb25zOworICAgIGJvb2wgYXBwbHlUcmFuc2Zvcm1PcmlnaW4gPSBtX3Jh
cmVOb25Jbmhlcml0ZWREYXRhLT5yb3RhdGUgfHwgbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+c2Nh
bGUgfHwgcmVxdWlyZVRyYW5zZm9ybU9yaWdpbih0cmFuc2Zvcm1PcGVyYXRpb25zLCBvcHRpb25z
KTsKIAogICAgIC8vIDIuIFRyYW5zbGF0ZSBieSB0aGUgY29tcHV0ZWQgWCwgWSwgYW5kIFogdmFs
dWVzIG9mIHRyYW5zZm9ybS1vcmlnaW4uCiAgICAgRmxvYXRQb2ludDNEIG9yaWdpblRyYW5zbGF0
ZTsKQEAgLTE0MTksMjEgKzE0MDQsMjcgQEAgdm9pZCBSZW5kZXJTdHlsZTo6YXBwbHlUcmFuc2Zv
cm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgRmxvYXRSZWMKICAgICB9
CiAKICAgICAvLyAzLiBUcmFuc2xhdGUgYnkgdGhlIGNvbXB1dGVkIFgsIFksIGFuZCBaIHZhbHVl
cyBvZiB0cmFuc2xhdGUuCi0gICAgaWYgKFRyYW5zZm9ybU9wZXJhdGlvbiogdHJhbnNsYXRlID0g
bV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+dHJhbnNsYXRlLmdldCgpKQotICAgICAgICB0cmFuc2xh
dGUtPmFwcGx5KHRyYW5zZm9ybSwgYm91bmRpbmdCb3guc2l6ZSgpKTsKKyAgICBpZiAob3B0aW9u
cy5jb250YWlucyhSZW5kZXJTdHlsZTo6VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uOjpUcmFuc2xh
dGUpKSB7CisgICAgICAgIGlmIChUcmFuc2Zvcm1PcGVyYXRpb24qIHRyYW5zbGF0ZSA9IG1fcmFy
ZU5vbkluaGVyaXRlZERhdGEtPnRyYW5zbGF0ZS5nZXQoKSkKKyAgICAgICAgICAgIHRyYW5zbGF0
ZS0+YXBwbHkodHJhbnNmb3JtLCBib3VuZGluZ0JveC5zaXplKCkpOworICAgIH0KIAogICAgIC8v
IDQuIFJvdGF0ZSBieSB0aGUgY29tcHV0ZWQgPGFuZ2xlPiBhYm91dCB0aGUgc3BlY2lmaWVkIGF4
aXMgb2Ygcm90YXRlLgotICAgIGlmIChUcmFuc2Zvcm1PcGVyYXRpb24qIHJvdGF0ZSA9IG1fcmFy
ZU5vbkluaGVyaXRlZERhdGEtPnJvdGF0ZS5nZXQoKSkKLSAgICAgICAgcm90YXRlLT5hcHBseSh0
cmFuc2Zvcm0sIGJvdW5kaW5nQm94LnNpemUoKSk7CisgICAgaWYgKG9wdGlvbnMuY29udGFpbnMo
UmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbjo6Um90YXRlKSkgeworICAgICAg
ICBpZiAoVHJhbnNmb3JtT3BlcmF0aW9uKiByb3RhdGUgPSBtX3JhcmVOb25Jbmhlcml0ZWREYXRh
LT5yb3RhdGUuZ2V0KCkpCisgICAgICAgICAgICByb3RhdGUtPmFwcGx5KHRyYW5zZm9ybSwgYm91
bmRpbmdCb3guc2l6ZSgpKTsKKyAgICB9CiAKICAgICAvLyA1LiBTY2FsZSBieSB0aGUgY29tcHV0
ZWQgWCwgWSwgYW5kIFogdmFsdWVzIG9mIHNjYWxlLgotICAgIGlmIChUcmFuc2Zvcm1PcGVyYXRp
b24qIHNjYWxlID0gbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+c2NhbGUuZ2V0KCkpCi0gICAgICAg
IHNjYWxlLT5hcHBseSh0cmFuc2Zvcm0sIGJvdW5kaW5nQm94LnNpemUoKSk7CisgICAgaWYgKG9w
dGlvbnMuY29udGFpbnMoUmVuZGVyU3R5bGU6OlRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbjo6U2Nh
bGUpKSB7CisgICAgICAgIGlmIChUcmFuc2Zvcm1PcGVyYXRpb24qIHNjYWxlID0gbV9yYXJlTm9u
SW5oZXJpdGVkRGF0YS0+c2NhbGUuZ2V0KCkpCisgICAgICAgICAgICBzY2FsZS0+YXBwbHkodHJh
bnNmb3JtLCBib3VuZGluZ0JveC5zaXplKCkpOworICAgIH0KIAogICAgIC8vIDYuIFRyYW5zbGF0
ZSBhbmQgcm90YXRlIGJ5IHRoZSB0cmFuc2Zvcm0gc3BlY2lmaWVkIGJ5IG9mZnNldC4gKEZJWE1F
OiB3ZSBkb24ndCBzdXBwb3J0IHRoZSBvZmZzZXQgcHJvcGVydHkpCiAKICAgICAvLyA3LiBNdWx0
aXBseSBieSBlYWNoIG9mIHRoZSB0cmFuc2Zvcm0gZnVuY3Rpb25zIGluIHRyYW5zZm9ybSBmcm9t
IGxlZnQgdG8gcmlnaHQuCi0gICAgZm9yIChhdXRvJiBvcGVyYXRpb24gOiBvcGVyYXRpb25zKQor
ICAgIGZvciAoYXV0byYgb3BlcmF0aW9uIDogdHJhbnNmb3JtT3BlcmF0aW9ucy5vcGVyYXRpb25z
KCkpCiAgICAgICAgIG9wZXJhdGlvbi0+YXBwbHkodHJhbnNmb3JtLCBib3VuZGluZ0JveC5zaXpl
KCkpOwogCiAgICAgLy8gOC4gVHJhbnNsYXRlIGJ5IHRoZSBuZWdhdGVkIGNvbXB1dGVkIFgsIFkg
YW5kIFogdmFsdWVzIG9mIHRyYW5zZm9ybS1vcmlnaW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGRlZjgzZDJjMGViNDFlMmQ5ZGQxYzJlNmI3
ODY5MzZlYTdjNjMwZTIuLmZkOGU4ZjQ1NGYxMDAwZjU0ZmI4YTEzNWUwNmY2ZDVkMjkzYTUxNmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC02
NTIsOCArNjUyLDE2IEBAIHB1YmxpYzoKICAgICAvLyBpbmRpY2F0ZXMgdGhhdCB3ZSBhcmUgdHJh
bnNmb3JtaW5nLgogICAgIGJvb2wgaGFzVHJhbnNmb3JtUmVsYXRlZFByb3BlcnR5KCkgY29uc3Qg
eyByZXR1cm4gaGFzVHJhbnNmb3JtKCkgfHwgdHJhbnNsYXRlKCkgfHwgc2NhbGUoKSB8fCByb3Rh
dGUoKSB8fCBwcmVzZXJ2ZXMzRCgpIHx8IGhhc1BlcnNwZWN0aXZlKCk7IH0KIAotICAgIGVudW0g
QXBwbHlUcmFuc2Zvcm1PcmlnaW4geyBJbmNsdWRlVHJhbnNmb3JtT3JpZ2luLCBFeGNsdWRlVHJh
bnNmb3JtT3JpZ2luIH07Ci0gICAgdm9pZCBhcHBseVRyYW5zZm9ybShUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3gsIEFwcGx5VHJhbnNmb3JtT3JpZ2lu
ID0gSW5jbHVkZVRyYW5zZm9ybU9yaWdpbikgY29uc3Q7CisgICAgZW51bSBjbGFzcyBUcmFuc2Zv
cm1PcGVyYXRpb25PcHRpb24gOiB1aW50OF90IHsKKyAgICAgICAgVHJhbnNmb3JtT3JpZ2luID0g
MSA8PCAwLAorICAgICAgICBUcmFuc2xhdGUgICAgICAgPSAxIDw8IDEsCisgICAgICAgIFJvdGF0
ZSAgICAgICAgICA9IDEgPDwgMiwKKyAgICAgICAgU2NhbGUgICAgICAgICAgID0gMSA8PCAzCisg
ICAgfTsKKworICAgIHN0YXRpYyBjb25zdGV4cHIgT3B0aW9uU2V0PFRyYW5zZm9ybU9wZXJhdGlv
bk9wdGlvbj4gYWxsVHJhbnNmb3JtT3BlcmF0aW9ucyA9IHsgVHJhbnNmb3JtT3BlcmF0aW9uT3B0
aW9uOjpUcmFuc2Zvcm1PcmlnaW4sIFRyYW5zZm9ybU9wZXJhdGlvbk9wdGlvbjo6VHJhbnNsYXRl
LCBUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb246OlJvdGF0ZSwgVHJhbnNmb3JtT3BlcmF0aW9uT3B0
aW9uOjpTY2FsZSB9OworICAgIHN0YXRpYyBjb25zdGV4cHIgT3B0aW9uU2V0PFRyYW5zZm9ybU9w
ZXJhdGlvbk9wdGlvbj4gaW5kaXZpZHVhbFRyYW5zZm9ybU9wZXJhdGlvbnMgPSB7IFRyYW5zZm9y
bU9wZXJhdGlvbk9wdGlvbjo6VHJhbnNsYXRlLCBUcmFuc2Zvcm1PcGVyYXRpb25PcHRpb246OlJv
dGF0ZSwgVHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uOjpTY2FsZSB9OworICAgIHZvaWQgYXBwbHlU
cmFuc2Zvcm0oVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kaW5n
Qm94LCBPcHRpb25TZXQ8VHJhbnNmb3JtT3BlcmF0aW9uT3B0aW9uPiA9IGFsbFRyYW5zZm9ybU9w
ZXJhdGlvbnMpIGNvbnN0OwogICAgIHZvaWQgc2V0UGFnZVNjYWxlVHJhbnNmb3JtKGZsb2F0KTsK
IAogICAgIGJvb2wgaGFzTWFzaygpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZU5vbkluaGVyaXRlZERh
dGEtPm1hc2stPmhhc0ltYWdlKCkgfHwgbV9yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bWFza0JveElt
YWdlLmhhc0ltYWdlKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCmluZGV4
IDk0YWQ1MWZjZDFjYWU0ODc3ZjYzZTg0YWQzMmJmOTY1OTdmYTRlZDEuLmRjYWJiNWJhOTE5YjMz
YTU1OTkwZmVjMjllY2RkNzVhZmNjMjEzYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRFbGVt
ZW50LmNwcApAQCAtNTUsNyArNTUsNyBAQCBBZmZpbmVUcmFuc2Zvcm0gU1ZHVGV4dEVsZW1lbnQ6
OmFuaW1hdGVkTG9jYWxUcmFuc2Zvcm0oKSBjb25zdAogICAgICAgICBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCB0OwogICAgICAgICAvLyBGb3Igbm93LCB0aGUgdHJhbnNmb3JtLW9yaWdpbiBpcyBub3Qg
dGFrZW4gaW50byBhY2NvdW50CiAgICAgICAgIC8vIEFsc28sIGFueSBwZXJjZW50YWdlIHZhbHVl
cyB3aWxsIG5vdCBiZSB0YWtlbiBpbnRvIGFjY291bnQKLSAgICAgICAgc3R5bGUtPmFwcGx5VHJh
bnNmb3JtKHQsIEZsb2F0UmVjdCgwLCAwLCAwLCAwKSwgUmVuZGVyU3R5bGU6OkV4Y2x1ZGVUcmFu
c2Zvcm1PcmlnaW4pOworICAgICAgICBzdHlsZS0+YXBwbHlUcmFuc2Zvcm0odCwgRmxvYXRSZWN0
KDAsIDAsIDAsIDApLCBSZW5kZXJTdHlsZTo6aW5kaXZpZHVhbFRyYW5zZm9ybU9wZXJhdGlvbnMp
OwogICAgICAgICAvLyBGbGF0dGVuIGFueSAzRCB0cmFuc2Zvcm0KICAgICAgICAgbWF0cml4ID0g
dC50b0FmZmluZVRyYW5zZm9ybSgpOwogICAgIH0gZWxzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKaW5kZXggMjAyMTc3OWY1OTA3Yzc4Nzk3ZTQ5M2U1OGNhNDU1NzdmOTBjZGQ4NC4uZmQ5
ZTlhYTQyZjJmODVhY2YwYjliOGNhNWE1ZmQwZWU1YmNiOGQwOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMTAtMDggIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ1NTIHRyYW5zZm9ybSBjb21wdXRlZCBz
dHlsZSBzaG91bGQgbm90IHJlZmxlY3QgaW5kaXZpZHVhbCB0cmFuc2Zvcm0gcHJvcGVydGllcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3NDczCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MDA5MTYwNT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXdseS1hdXRob3JlZCBXUFQgdGVzdCB0
byBjaGVjayB0aGF0IHNldHRpbmcgaW5kaXZpZHVhbCB0cmFuc2Zvcm0gcHJvcGVydGllcyBkb2Vz
IG5vdCBpbnRlcmZlcmUgd2l0aCB0aGUKKyAgICAgICAgY29tcHV0ZWQgc3R5bGUgZm9yIHRoZSAi
dHJhbnNmb3JtIiBwcm9wZXJ0eS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXRyYW5zZm9ybXMvdHJhbnNmb3JtLWFuZC1pbmRpdmlkdWFsLXRyYW5zZm9ybS1wcm9wZXJ0
aWVzLWNvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNmb3Jtcy90cmFuc2Zvcm0tYW5kLWluZGl2aWR1YWwt
dHJhbnNmb3JtLXByb3BlcnRpZXMtY29tcHV0ZWQtc3R5bGUuaHRtbDogQWRkZWQuCisKIDIwMjAt
MTAtMDggIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXggaW1hZ2Ut
bG9hZGluZy1sYXp5LW11bHRpcGxlLXRpbWVzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1zL3RyYW5z
Zm9ybS1hbmQtaW5kaXZpZHVhbC10cmFuc2Zvcm0tcHJvcGVydGllcy1jb21wdXRlZC1zdHlsZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtdHJhbnNmb3Jtcy90cmFuc2Zvcm0tYW5kLWluZGl2aWR1YWwtdHJhbnNmb3JtLXBy
b3BlcnRpZXMtY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkZGQyNmEz
YzhhZDBjOGM5ZDZmZmVjYzBlOTlmZjlkNmY2OWMxY2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNmb3Jt
cy90cmFuc2Zvcm0tYW5kLWluZGl2aWR1YWwtdHJhbnNmb3JtLXByb3BlcnRpZXMtY29tcHV0ZWQt
c3R5bGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRoZSB0cmFuc2Zvcm0g
cHJvcGVydHkgc2hvdWxkIG5vdCBiZSBhZmZlY3RlZCBieSBpbmRpdmlkdWFsIHRyYW5zZm9ybSBw
cm9wZXJ0aWVzLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHJhbnNmb3Jtcy90cmFuc2Zvcm0tYW5kLWluZGl2aWR1YWwt
dHJhbnNmb3JtLXByb3BlcnRpZXMtY29tcHV0ZWQtc3R5bGUuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10cmFuc2Zvcm1zL3RyYW5zZm9y
bS1hbmQtaW5kaXZpZHVhbC10cmFuc2Zvcm0tcHJvcGVydGllcy1jb21wdXRlZC1zdHlsZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjYyYzBhYzMyYWZlZjBiMGU0N2U0OWMzMzBiNTg0NzA2NmM5YjMwMWYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtdHJhbnNmb3Jtcy90cmFuc2Zvcm0tYW5kLWluZGl2aWR1YWwtdHJhbnNmb3Jt
LXByb3BlcnRpZXMtY29tcHV0ZWQtc3R5bGUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorCis8ZGl2IHN0eWxlPSJzY2FsZTogMjsg
cm90YXRlOiA5MGRlZzsgdHJhbnNsYXRlOiAxMDBweDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEw
MHB4KSI+CisKKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKwordGVzdCgoKSA9PiB7
CisgICAgY29uc3Qgc3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCJkaXYiKSk7CisgICAgYXNzZXJ0X2VxdWFscyhzdHlsZS5zY2FsZSwgIjIiLCAi
VGhlIHNjYWxlIGNvbXB1dGVkIHN0eWxlIHNob3VsZCBtYXRjaCB0aGUgaW5saW5lIHN0eWxlLiIp
OworICAgIGFzc2VydF9lcXVhbHMoc3R5bGUucm90YXRlLCAiOTBkZWciLCAiVGhlIHJvdGF0ZSBj
b21wdXRlZCBzdHlsZSBzaG91bGQgbWF0Y2ggdGhlIGlubGluZSBzdHlsZS4iKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKHN0eWxlLnRyYW5zbGF0ZSwgIjEwMHB4IiwgIlRoZSB0cmFuc2xhdGUgY29tcHV0
ZWQgc3R5bGUgc2hvdWxkIG1hdGNoIHRoZSBpbmxpbmUgc3R5bGUuIik7CisgICAgYXNzZXJ0X2Vx
dWFscyhzdHlsZS50cmFuc2Zvcm0sICJtYXRyaXgoMSwgMCwgMCwgMSwgMCwgMTAwKSIsICJUaGUg
dHJhbnNmb3JtIGNvbXB1dGVkIHN0eWxlIHNob3VsZCBtYXRjaCB0aGUgaW5saW5lIHN0eWxlLiIp
OworfSwgIlRoZSB0cmFuc2Zvcm0gcHJvcGVydHkgc2hvdWxkIG5vdCBiZSBhZmZlY3RlZCBieSBp
bmRpdmlkdWFsIHRyYW5zZm9ybSBwcm9wZXJ0aWVzLiIpOworCis8L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>