<?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>231326</bug_id>
          
          <creation_ts>2021-10-06 13:18:39 -0700</creation_ts>
          <short_desc>Delete WebCore::DisplayList::SetInlineFillGradient</short_desc>
          <delta_ts>2021-10-06 19:23:23 -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>WebCore Misc.</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>230860</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>mmaxfield</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1801289</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-06 13:18:39 -0700</bug_when>
    <thetext>This display list item was originally introduced to allow Canvas Lines to run to fully run without using any out-of-line display list items, when using Concurrent Display Lists.

However, the way this item is currently being encoded is not safe, since Gradient::Data is a Variant.

I did not measure use of this display list item to affect performance of Canvas Lines in the streaming display list prototype, so instead of making it work with the new architecture, we should just delete it altogether.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801294</commentid>
    <comment_count>1</comment_count>
      <attachid>440426</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-06 13:22:02 -0700</bug_when>
    <thetext>Created attachment 440426
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801347</commentid>
    <comment_count>2</comment_count>
      <attachid>440426</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-06 14:22:34 -0700</bug_when>
    <thetext>Comment on attachment 440426
For EWS

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        -       It should never have been encoded and decoded as POD data in the first place, due to the fact that it

weird flex but ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801377</commentid>
    <comment_count>3</comment_count>
      <attachid>440426</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-06 15:35:57 -0700</bug_when>
    <thetext>Comment on attachment 440426
For EWS

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

Oops, looks like I missed a spot when splitting this patch out, where we still look for `GraphicsContextState::FillGradientChange` in `containsOnlyInlineStateChanges`. This should fix the failing tests in mac-wk2

&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt; +        -       It should never have been encoded and decoded as POD data in the first place, due to the fact that it
&gt; 
&gt; weird flex but ok

😅</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801381</commentid>
    <comment_count>4</comment_count>
      <attachid>440445</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-10-06 15:38:29 -0700</bug_when>
    <thetext>Created attachment 440445
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801476</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-06 19:22:56 -0700</bug_when>
    <thetext>Committed r283697 (242623@main): &lt;https://commits.webkit.org/242623@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440445.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801477</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-06 19:23:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/83963203&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440426</attachid>
            <date>2021-10-06 13:22:02 -0700</date>
            <delta_ts>2021-10-06 15:38:27 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-231326-20211006132201.patch</filename>
            <type>text/plain</type>
            <size>16841</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzZjOWM0YjY4MmViZTIz
NmUzNGFiOWM4ZDhlYWExODNkMmQ1NGUwZC4uY2Y2YzIwOTk2YmFhZGQ0YjAzYzQ3NDIxYzE4NWQ4
NTRkNTA0N2Q5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIxLTEwLTA2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIERlbGV0ZSBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lRmlsbEdyYWRpZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEzMjYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdGhpcyBkaXNwbGF5IGxpc3Qg
aXRlbSwgYmVjYXVzZToKKworICAgICAgICAtICAgICAgIEl0IHNob3VsZCBuZXZlciBoYXZlIGJl
ZW4gZW5jb2RlZCBhbmQgZGVjb2RlZCBhcyBQT0QgZGF0YSBpbiB0aGUgZmlyc3QgcGxhY2UsIGR1
ZSB0byB0aGUgZmFjdCB0aGF0IGl0CisgICAgICAgICAgICAgICAgaW5kaXJlY3RseSBjb250YWlu
cyBWYXJpYW50cy4KKworICAgICAgICAtICAgICAgIERlbGV0aW5nIHRoaXMgaXRlbSBkb2VzIG5v
dCBjYXVzZSBhbnkgc2lnbmlmaWNhbnQgcGVyZm9ybWFuY2UgaW1wYWN0IHdoZW4gdXNpbmcgc3Ry
ZWFtaW5nIElQQyBmb3IKKyAgICAgICAgICAgICAgICBkaXNwbGF5IGxpc3RzLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEaXNwbGF5TGlzdDo6YXBwZW5kKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVmZmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtSGFuZGxlOjphcHBseSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6ZGVzdHJveSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6c2FmZUNvcHkgY29uc3QpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1U
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpzaXplT2ZJdGVtSW5CeXRl
cyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNEcmF3aW5nSXRlbSk6CisgICAg
ICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6aXNJbmxpbmVJdGVtKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OlNldElubGluZUZpbGxH
cmFkaWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5s
aW5lRmlsbEdyYWRpZW50OjpncmFkaWVudCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lRmlsbEdyYWRpZW50OjphcHBseSBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lRmlsbEdyYWRp
ZW50Ojppc0lubGluZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmlzVmFsaWQgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0Ojpjb250YWluc09ubHlJbmxpbmVT
dGF0ZUNoYW5nZXMpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlJlY29yZGVyOjph
cHBlbmRTdGF0ZUNoYW5nZUl0ZW0pOgorCiAyMDIxLTEwLTA2ICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgSW1hZ2VCdWZmZXI6OmRyYXdpbmdD
b250ZXh0KCkgcmV0dXJuIEdyYXBoaWNzQ29udGV4dCBpbnN0ZWFkIG9mIERpc3BsYXlMaXN0OjpE
cmF3aW5nQ29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1NWYyYjFlYThkMDFkOGJhYzA5Mjg5YjA4ZjMwYzVh
YjhiYzZhYWNhLi45NjNiMzIyYTNkNjgwNzgxYjdjOTI5MDQ4ZmQ2NDdhNWZlNzIwMjY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTEwLTA2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIERlbGV0ZSBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6
U2V0SW5saW5lRmlsbEdyYWRpZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzEzMjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTZWUgV2ViQ29yZS9DaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKwor
ICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRlY29kZUl0ZW0pOgor
CiAyMDIxLTEwLTA2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBzb21lIGhlbHBlciBmdW5jdGlvbnMgdG8gUmVtb3RlUmVzb3VyY2VDYWNoZSBh
bmQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcAppbmRl
eCBmYWQ2YTY5NTAwN2E5NjY0NWMyNzExZDhmMDkxMGVhODU2NDNmNTI4Li5jYjIzNTMwN2Y4YWI0
YjRmZmJkNmRiOTkyZTc4NDVhZTI5ZTFkOWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAK
QEAgLTIxNCw4ICsyMTQsNiBAQCB2b2lkIERpc3BsYXlMaXN0OjphcHBlbmQoSXRlbUhhbmRsZSBp
dGVtKQogICAgICAgICByZXR1cm4gYXBwZW5kPENvbmNhdGVuYXRlQ1RNPihpdGVtLmdldDxDb25j
YXRlbmF0ZUNUTT4oKSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q1RNOgogICAgICAgICByZXR1
cm4gYXBwZW5kPFNldENUTT4oaXRlbS5nZXQ8U2V0Q1RNPigpKTsKLSAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAgICAgIHJldHVybiBhcHBlbmQ8U2V0SW5saW5l
RmlsbEdyYWRpZW50PihpdGVtLmdldDxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+KCkpOwogICAgIGNh
c2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoKICAgICAgICAgcmV0dXJuIGFwcGVuZDxT
ZXRJbmxpbmVGaWxsQ29sb3I+KGl0ZW0uZ2V0PFNldElubGluZUZpbGxDb2xvcj4oKSk7CiAgICAg
Y2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtQnVm
ZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCmluZGV4IDEzNTRiZGJlZGQ2MTE2YzIwOWZiNTRhNjNl
MTk0MjI1M2NiM2E1OGEuLmFjMWNjZGRhNjllNTNlZDZmOTQ2YWUzNjEzNzU2YTdlZmYzYzMwNzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIuY3BwCkBAIC02Niw5
ICs2Niw2IEBAIHZvaWQgSXRlbUhhbmRsZTo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
KQogICAgIGNhc2UgSXRlbVR5cGU6OlNldENUTToKICAgICAgICAgZ2V0PFNldENUTT4oKS5hcHBs
eShjb250ZXh0KTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGlu
ZUZpbGxHcmFkaWVudDoKLSAgICAgICAgZ2V0PFNldElubGluZUZpbGxHcmFkaWVudD4oKS5hcHBs
eShjb250ZXh0KTsKLSAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGlu
ZUZpbGxDb2xvcjoKICAgICAgICAgZ2V0PFNldElubGluZUZpbGxDb2xvcj4oKS5hcHBseShjb250
ZXh0KTsKICAgICAgICAgcmV0dXJuOwpAQCAtNDI0LDkgKzQyMSw2IEBAIHZvaWQgSXRlbUhhbmRs
ZTo6ZGVzdHJveSgpCiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgogICAg
ICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRJbmxp
bmVGaWxsQ29sb3I+Ojp2YWx1ZSk7CiAgICAgICAgIHJldHVybjsKLSAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0gICAgICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190
cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldElubGluZUZpbGxHcmFkaWVudD46OnZhbHVlKTsKLSAg
ICAgICAgcmV0dXJuOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgog
ICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfdHJpdmlhbGx5X2Rlc3RydWN0aWJsZTxTZXRJ
bmxpbmVTdHJva2VDb2xvcj46OnZhbHVlKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNjE2LDggKzYx
MCw2IEBAIGJvb2wgSXRlbUhhbmRsZTo6c2FmZUNvcHkoSXRlbVR5cGUgaXRlbVR5cGUsIEl0ZW1I
YW5kbGUgZGVzdGluYXRpb24pIGNvbnN0CiAgICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRDVE0+
KGl0ZW1PZmZzZXQsICp0aGlzKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29s
b3I6CiAgICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRJbmxpbmVGaWxsQ29sb3I+KGl0ZW1PZmZz
ZXQsICp0aGlzKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Ci0g
ICAgICAgIHJldHVybiBjb3B5SW50bzxTZXRJbmxpbmVGaWxsR3JhZGllbnQ+KGl0ZW1PZmZzZXQs
ICp0aGlzKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoKICAgICAg
ICAgcmV0dXJuIGNvcHlJbnRvPFNldElubGluZVN0cm9rZUNvbG9yPihpdGVtT2Zmc2V0LCAqdGhp
cyk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNhcDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdEl0ZW1UeXBlLmNwcAppbmRleCA5OGExNmQyNWZhMWI1YTRjNTJiMGY3M2E0ZjlmNTMy
YWViZmFiNzBjLi40MjY0NGUxNjQyY2UyZGFiMDc1ZTJhYzdkNDk1MWMwNzljMmRhNzgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RJdGVtVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3BwCkBAIC00OCw4ICs0OCw2IEBA
IHN0YXRpYyBzaXplX3Qgc2l6ZU9mSXRlbUluQnl0ZXMoSXRlbVR5cGUgdHlwZSkKICAgICAgICAg
cmV0dXJuIHNpemVvZihDb25jYXRlbmF0ZUNUTSk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0Q1RN
OgogICAgICAgICByZXR1cm4gc2l6ZW9mKFNldENUTSk7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0
SW5saW5lRmlsbEdyYWRpZW50OgotICAgICAgICByZXR1cm4gc2l6ZW9mKFNldElubGluZUZpbGxH
cmFkaWVudCk7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgogICAgICAg
ICByZXR1cm4gc2l6ZW9mKFNldElubGluZUZpbGxDb2xvcik7CiAgICAgY2FzZSBJdGVtVHlwZTo6
U2V0SW5saW5lU3Ryb2tlQ29sb3I6CkBAIC0yMTAsNyArMjA4LDYgQEAgYm9vbCBpc0RyYXdpbmdJ
dGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6U2NhbGU6CiAgICAgY2FzZSBJ
dGVtVHlwZTo6U2V0Q1RNOgogICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoK
LSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6CiAgICAgY2FzZSBJdGVt
VHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUNh
cDoKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lRGFzaDoKQEAgLTM1Nyw3ICszNTQsNiBAQCBi
b29sIGlzSW5saW5lSXRlbShJdGVtVHlwZSB0eXBlKQogICAgIGNhc2UgSXRlbVR5cGU6OlNjYWxl
OgogICAgIGNhc2UgSXRlbVR5cGU6OlNldENUTToKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxp
bmVGaWxsQ29sb3I6Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbEdyYWRpZW50Ogog
ICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgogICAgIGNhc2UgSXRlbVR5
cGU6OlNldExpbmVDYXA6CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0TGluZUpvaW46CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtVHlwZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxh
eWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaAppbmRleCA2YjkxYTI3Yjc1NjU3YmFjNTZjMjM1
NzcwMmM2ZWM0MzBhYzE5NmYyLi45OTE5NDU4ZDIzNjU5Y2VlY2I3NTg1Mzg3ZjEyOGVmYWYwZDQ3
YTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5
bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKQEAgLTM2LDcgKzM2
LDYgQEAgZW51bSBjbGFzcyBJdGVtVHlwZSA6IHVpbnQ4X3QgewogICAgIFNjYWxlLAogICAgIENv
bmNhdGVuYXRlQ1RNLAogICAgIFNldENUTSwKLSAgICBTZXRJbmxpbmVGaWxsR3JhZGllbnQsCiAg
ICAgU2V0SW5saW5lRmlsbENvbG9yLAogICAgIFNldElubGluZVN0cm9rZUNvbG9yLAogICAgIFNl
dFN0cm9rZVRoaWNrbmVzcywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAppbmRl
eCA3OWM5NmFlY2QyZTFkNzRkMTc2NmYyZDdhZDhmNmZkNGUzNDFiODcxLi5lNzI2ZDk0ZjMwMDUw
MDIzMTJiYzY0MmIzMDE1ZWNiYWUzMTQ4NDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0
SXRlbXMuY3BwCkBAIC0xMTQsODMgKzExNCw2IEBAIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBDb25jYXRlbmF0ZUNUTSYgaXRlbSkKICAgICByZXR1
cm4gdHM7CiB9CiAKLVNldElubGluZUZpbGxHcmFkaWVudDo6U2V0SW5saW5lRmlsbEdyYWRpZW50
KGNvbnN0IEdyYWRpZW50JiBncmFkaWVudCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBncmFkaWVu
dFNwYWNlVHJhbnNmb3JtKQotICAgIDogbV9kYXRhKGdyYWRpZW50LmRhdGEoKSkKLSAgICAsIG1f
Z3JhZGllbnRTcGFjZVRyYW5zZm9ybShncmFkaWVudFNwYWNlVHJhbnNmb3JtKQotICAgICwgbV9z
cHJlYWRNZXRob2QoZ3JhZGllbnQuc3ByZWFkTWV0aG9kKCkpCi0gICAgLCBtX2NvbG9yU3RvcENv
dW50KHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGdyYWRpZW50LnN0b3BzKCkuc2l6ZSgpKSkKLXsKLSAg
ICBSRUxFQVNFX0FTU0VSVChtX2NvbG9yU3RvcENvdW50IDw9IG1heENvbG9yU3RvcENvdW50KTsK
LSAgICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCBtX2NvbG9yU3RvcENvdW50OyArK2kpIHsKLSAg
ICAgICAgbV9vZmZzZXRzW2ldID0gZ3JhZGllbnQuc3RvcHMoKVtpXS5vZmZzZXQ7Ci0gICAgICAg
IG1fY29sb3JzW2ldID0gKmdyYWRpZW50LnN0b3BzKClbaV0uY29sb3IudHJ5R2V0QXNTUkdCQUJ5
dGVzKCk7Ci0gICAgfQotfQotCi1TZXRJbmxpbmVGaWxsR3JhZGllbnQ6OlNldElubGluZUZpbGxH
cmFkaWVudChmbG9hdCBvZmZzZXRzW21heENvbG9yU3RvcENvdW50XSwgU1JHQkE8dWludDhfdD4g
Y29sb3JzW21heENvbG9yU3RvcENvdW50XSwgY29uc3QgR3JhZGllbnQ6OkRhdGEmIGRhdGEsIGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYgZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSwgR3JhZGllbnRTcHJl
YWRNZXRob2Qgc3ByZWFkTWV0aG9kLCB1aW50OF90IGNvbG9yU3RvcENvdW50KQotICAgIDogbV9k
YXRhKGRhdGEpCi0gICAgLCBtX2dyYWRpZW50U3BhY2VUcmFuc2Zvcm0oZ3JhZGllbnRTcGFjZVRy
YW5zZm9ybSkKLSAgICAsIG1fc3ByZWFkTWV0aG9kKHNwcmVhZE1ldGhvZCkKLSAgICAsIG1fY29s
b3JTdG9wQ291bnQoY29sb3JTdG9wQ291bnQpCi17Ci0gICAgUkVMRUFTRV9BU1NFUlQobV9jb2xv
clN0b3BDb3VudCA8PSBtYXhDb2xvclN0b3BDb3VudCk7Ci0gICAgZm9yICh1aW50OF90IGkgPSAw
OyBpIDwgbV9jb2xvclN0b3BDb3VudDsgKytpKSB7Ci0gICAgICAgIG1fb2Zmc2V0c1tpXSA9IG9m
ZnNldHNbaV07Ci0gICAgICAgIG1fY29sb3JzW2ldID0gY29sb3JzW2ldOwotICAgIH0KLX0KLQot
U2V0SW5saW5lRmlsbEdyYWRpZW50OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQoY29uc3QgU2V0SW5s
aW5lRmlsbEdyYWRpZW50JiBvdGhlcikKLXsKLSAgICBpZiAoV1RGOjpob2xkc19hbHRlcm5hdGl2
ZTxHcmFkaWVudDo6UmFkaWFsRGF0YT4ob3RoZXIubV9kYXRhKSB8fCBXVEY6OmhvbGRzX2FsdGVy
bmF0aXZlPEdyYWRpZW50OjpMaW5lYXJEYXRhPihvdGhlci5tX2RhdGEpIHx8IFdURjo6aG9sZHNf
YWx0ZXJuYXRpdmU8R3JhZGllbnQ6OkNvbmljRGF0YT4ob3RoZXIubV9kYXRhKSkgewotICAgICAg
ICBtX2RhdGEgPSBvdGhlci5tX2RhdGE7Ci0gICAgICAgIG1fZ3JhZGllbnRTcGFjZVRyYW5zZm9y
bSA9IG90aGVyLm1fZ3JhZGllbnRTcGFjZVRyYW5zZm9ybTsKLSAgICAgICAgbV9zcHJlYWRNZXRo
b2QgPSBvdGhlci5tX3NwcmVhZE1ldGhvZDsKLSAgICAgICAgbV9jb2xvclN0b3BDb3VudCA9IG90
aGVyLm1fY29sb3JTdG9wQ291bnQ7Ci0gICAgICAgIGlmIChtX2NvbG9yU3RvcENvdW50ID4gbWF4
Q29sb3JTdG9wQ291bnQpCi0gICAgICAgICAgICBtX2NvbG9yU3RvcENvdW50ID0gMDsKLSAgICAg
ICAgZm9yICh1aW50OF90IGkgPSAwOyBpIDwgbV9jb2xvclN0b3BDb3VudDsgKytpKSB7Ci0gICAg
ICAgICAgICBtX29mZnNldHNbaV0gPSBvdGhlci5tX29mZnNldHNbaV07Ci0gICAgICAgICAgICBt
X2NvbG9yc1tpXSA9IG90aGVyLm1fY29sb3JzW2ldOwotICAgICAgICB9Ci0gICAgfSBlbHNlCi0g
ICAgICAgIG1faXNWYWxpZCA9IGZhbHNlOwotfQotCi1SZWY8R3JhZGllbnQ+IFNldElubGluZUZp
bGxHcmFkaWVudDo6Z3JhZGllbnQoKSBjb25zdAotewotICAgIGF1dG8gZ3JhZGllbnQgPSBHcmFk
aWVudDo6Y3JlYXRlKEdyYWRpZW50OjpEYXRhKG1fZGF0YSkpOwotICAgIGZvciAodWludDhfdCBp
ID0gMDsgaSA8IG1fY29sb3JTdG9wQ291bnQ7ICsraSkKLSAgICAgICAgZ3JhZGllbnQtPmFkZENv
bG9yU3RvcCh7IG1fb2Zmc2V0c1tpXSwgQ29sb3IobV9jb2xvcnNbaV0pIH0pOwotICAgIGdyYWRp
ZW50LT5zZXRTcHJlYWRNZXRob2QobV9zcHJlYWRNZXRob2QpOwotICAgIHJldHVybiBncmFkaWVu
dDsKLX0KLQotdm9pZCBTZXRJbmxpbmVGaWxsR3JhZGllbnQ6OmFwcGx5KEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCkgY29uc3QKLXsKLSAgICBpZiAobV9jb2xvclN0b3BDb3VudCA8PSBtYXhDb2xv
clN0b3BDb3VudCkKLSAgICAgICAgY29udGV4dC5zZXRGaWxsR3JhZGllbnQoZ3JhZGllbnQoKSwg
bV9ncmFkaWVudFNwYWNlVHJhbnNmb3JtKTsKLX0KLQotYm9vbCBTZXRJbmxpbmVGaWxsR3JhZGll
bnQ6OmlzSW5saW5lKGNvbnN0IEdyYWRpZW50JiBncmFkaWVudCkKLXsKLSAgICBpZiAoZ3JhZGll
bnQuc3RvcHMoKS5zaXplKCkgPiBTZXRJbmxpbmVGaWxsR3JhZGllbnQ6Om1heENvbG9yU3RvcENv
dW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBmb3IgKGF1dG8mIGNvbG9yU3RvcCA6
IGdyYWRpZW50LnN0b3BzKCkpIHsKLSAgICAgICAgaWYgKCFjb2xvclN0b3AuY29sb3IudHJ5R2V0
QXNTUkdCQUJ5dGVzKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KLXN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBjb25zdCBTZXRJbmxpbmVGaWxsR3JhZGllbnQmKQotewotICAgIC8vIEZJWE1FOiBE
dW1wIGdyYWRpZW50IGRhdGEuCi0gICAgcmV0dXJuIHRzOwotfQotCiB2b2lkIFNldElubGluZUZp
bGxDb2xvcjo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KSBjb25zdAogewogICAgIGNv
bnRleHQuc2V0RmlsbENvbG9yKGNvbG9yKCkpOwpAQCAtMTEzMyw3ICsxMDU2LDYgQEAgc3RhdGlj
IFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0ZW1UeXBlIHR5cGUpCiAg
ICAgY2FzZSBJdGVtVHlwZTo6U2NhbGU6IHRzIDw8ICJzY2FsZSI7IGJyZWFrOwogICAgIGNhc2Ug
SXRlbVR5cGU6OlNldENUTTogdHMgPDwgInNldC1jdG0iOyBicmVhazsKICAgICBjYXNlIEl0ZW1U
eXBlOjpDb25jYXRlbmF0ZUNUTTogdHMgPDwgImNvbmNhdGVudGF0ZS1jdG0iOyBicmVhazsKLSAg
ICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6IHRzIDw8ICJzZXQtaW5saW5l
LWZpbGwtZ3JhZGllbnQiOyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxs
Q29sb3I6IHRzIDw8ICJzZXQtaW5saW5lLWZpbGwtY29sb3IiOyBicmVhazsKICAgICBjYXNlIEl0
ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjogdHMgPDwgInNldC1pbmxpbmUtc3Ryb2tlLWNv
bG9yIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzOiB0cyA8
PCAic2V0LXN0cm9rZS10aGlja25lc3MiOyBicmVhazsKQEAgLTEyMjUsOSArMTE0Nyw2IEBAIFRl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIEl0ZW1IYW5kbGUgaXRlbSkKICAg
ICBjYXNlIEl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTToKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8
Q29uY2F0ZW5hdGVDVE0+KCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgSXRlbVR5cGU6OlNl
dElubGluZUZpbGxHcmFkaWVudDoKLSAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0SW5saW5lRmls
bEdyYWRpZW50PigpOwotICAgICAgICBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxp
bmVGaWxsQ29sb3I6CiAgICAgICAgIHRzIDw8IGl0ZW0uZ2V0PFNldElubGluZUZpbGxDb2xvcj4o
KTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAppbmRleCAx
NDhiYjE3MTVlMzNhMWExOTdiY2I0MTMxZDVkOTkyNDgwMjg5OGUwLi4wMTFiNDFkOWIxYjUzOTcw
MzNmYzkwZjZkZDJiYmUwYjVmMGZiZDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1z
LmgKQEAgLTE4MiwzMyArMTgyLDYgQEAgcHJpdmF0ZToKICAgICBBZmZpbmVUcmFuc2Zvcm0gbV90
cmFuc2Zvcm07CiB9OwogCi1jbGFzcyBTZXRJbmxpbmVGaWxsR3JhZGllbnQgewotcHVibGljOgot
ICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlwZTo6U2V0SW5s
aW5lRmlsbEdyYWRpZW50OwotICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0lubGluZUl0ZW0g
PSB0cnVlOwotICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBpc0RyYXdpbmdJdGVtID0gZmFsc2U7
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1aW50OF90IG1heENvbG9yU3RvcENvdW50ID0gNDsKLQot
ICAgIFNldElubGluZUZpbGxHcmFkaWVudChjb25zdCBHcmFkaWVudCYsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgU2V0
SW5saW5lRmlsbEdyYWRpZW50KGZsb2F0IG9mZnNldHNbbWF4Q29sb3JTdG9wQ291bnRdLCBTUkdC
QTx1aW50OF90PiBjb2xvcnNbbWF4Q29sb3JTdG9wQ291bnRdLCBjb25zdCBHcmFkaWVudDo6RGF0
YSYsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgZ3JhZGllbnRTcGFjZVRyYW5zZm9ybSwgR3JhZGll
bnRTcHJlYWRNZXRob2QsIHVpbnQ4X3QgY29sb3JTdG9wQ291bnQpOwotICAgIFNldElubGluZUZp
bGxHcmFkaWVudChjb25zdCBTZXRJbmxpbmVGaWxsR3JhZGllbnQmKTsKLSAgICBib29sIGlzVmFs
aWQoKSBjb25zdCB7IHJldHVybiBtX2lzVmFsaWQ7IH0KLQotICAgIHN0YXRpYyBib29sIGlzSW5s
aW5lKGNvbnN0IEdyYWRpZW50Jik7Ci0gICAgUmVmPEdyYWRpZW50PiBncmFkaWVudCgpIGNvbnN0
OwotCi0gICAgdm9pZCBhcHBseShHcmFwaGljc0NvbnRleHQmKSBjb25zdDsKLQotcHJpdmF0ZToK
LSAgICBmbG9hdCBtX29mZnNldHNbbWF4Q29sb3JTdG9wQ291bnRdOwotICAgIFNSR0JBPHVpbnQ4
X3Q+IG1fY29sb3JzW21heENvbG9yU3RvcENvdW50XTsKLSAgICBHcmFkaWVudDo6RGF0YSBtX2Rh
dGE7Ci0gICAgQWZmaW5lVHJhbnNmb3JtIG1fZ3JhZGllbnRTcGFjZVRyYW5zZm9ybTsKLSAgICBH
cmFkaWVudFNwcmVhZE1ldGhvZCBtX3NwcmVhZE1ldGhvZCB7IEdyYWRpZW50U3ByZWFkTWV0aG9k
OjpQYWQgfTsKLSAgICB1aW50OF90IG1fY29sb3JTdG9wQ291bnQgeyAwIH07Ci0gICAgYm9vbCBt
X2lzVmFsaWQgeyB0cnVlIH07Ci19OwotCiBjbGFzcyBTZXRJbmxpbmVGaWxsQ29sb3IgewogcHVi
bGljOgogICAgIHN0YXRpYyBjb25zdGV4cHIgSXRlbVR5cGUgaXRlbVR5cGUgPSBJdGVtVHlwZTo6
U2V0SW5saW5lRmlsbENvbG9yOwpAQCAtMjQ5OSw3ICsyNDcyLDYgQEAgdXNpbmcgRGlzcGxheUxp
c3RJdGVtID0gVmFyaWFudAogICAgICwgU2NhbGUKICAgICAsIFNldENUTQogICAgICwgU2V0SW5s
aW5lRmlsbENvbG9yCi0gICAgLCBTZXRJbmxpbmVGaWxsR3JhZGllbnQKICAgICAsIFNldElubGlu
ZVN0cm9rZUNvbG9yCiAgICAgLCBTZXRMaW5lQ2FwCiAgICAgLCBTZXRMaW5lRGFzaApAQCAtMjU1
Myw3ICsyNTI1LDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpEaXNw
bGF5TGlzdDo6SXRlbVR5cGU+IHsKICAgICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OlNjYWxlLAogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0Q1RNLAogICAg
IFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6Q29uY2F0ZW5hdGVDVE0sCi0gICAgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQsCiAgICAg
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3IsCiAgICAg
V2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvciwKICAg
ICBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldFN0cm9rZVRoaWNrbmVzcywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCBmOWJmMTkxZWU2Mzg5
ZjAxZDliNWEyMTAyNTNjZDAwYjAzMDE4NTQwLi45Y2UyNDJhMmY0MzUwY2FlOGM5Mzc0MTc0MTk5
MmI0ZWY5NjM5NmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3Bw
CkBAIC05NCwxMCArOTQsNiBAQCBzdGF0aWMgYm9vbCBjb250YWluc09ubHlJbmxpbmVTdGF0ZUNo
YW5nZXMoY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGVDaGFuZ2UmIGNoYQogICAgIGlmIChjaGFu
Z2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKSAm
JiAhY2hhbmdlcy5tX3N0YXRlLmZpbGxDb2xvci50cnlHZXRBc1NSR0JBQnl0ZXMoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNz
Q29udGV4dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UpCi0gICAgICAgICYmICghY2hhbmdlcy5t
X3N0YXRlLmZpbGxHcmFkaWVudCB8fCAhU2V0SW5saW5lRmlsbEdyYWRpZW50Ojppc0lubGluZSgq
Y2hhbmdlcy5tX3N0YXRlLmZpbGxHcmFkaWVudCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMTI3LDkgKzEyMyw2IEBAIHZvaWQgUmVjb3JkZXI6
OmFwcGVuZFN0YXRlQ2hhbmdlSXRlbShjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSYg
Y2hhbmdlcywKIAogICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRT
dGF0ZTo6RmlsbENvbG9yQ2hhbmdlKSkKICAgICAgICAgYXBwZW5kPFNldElubGluZUZpbGxDb2xv
cj4oKmNoYW5nZXMubV9zdGF0ZS5maWxsQ29sb3IudHJ5R2V0QXNTUkdCQUJ5dGVzKCkpOwotCi0g
ICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3Jh
ZGllbnRDaGFuZ2UpKQotICAgICAgICBhcHBlbmQ8U2V0SW5saW5lRmlsbEdyYWRpZW50PigqY2hh
bmdlcy5tX3N0YXRlLmZpbGxHcmFkaWVudCwgY2hhbmdlcy5tX3N0YXRlLmZpbGxHcmFkaWVudFNw
YWNlVHJhbnNmb3JtKTsKIH0KIAogYm9vbCBSZWNvcmRlcjo6Y2FuQXBwZW5kSXRlbU9mVHlwZShJ
dGVtVHlwZSB0eXBlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCmluZGV4IDNjZWU4NmVm
OGMzOTY1ZjNlZGIzYmNmZmNmNjdiMGJhNGRjOWYzYmQuLmU1ZjVmNzBlOGU4NGU2MzMzOGZmOGQ3
NjM4ZDdhMmNmNjNkYzRiMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKQEAgLTY0Nyw3ICs2
NDcsNiBAQCBzdGQ6Om9wdGlvbmFsPERpc3BsYXlMaXN0OjpJdGVtSGFuZGxlPiBXQVJOX1VOVVNF
RF9SRVRVUk4gUmVtb3RlUmVuZGVyaW5nQmFja2VuZAogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0
ZW1UeXBlOjpTY2FsZToKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0Q1RNOgog
ICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAg
Y2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKICAgICBj
YXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6CiAgICAgY2Fz
ZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldExpbmVDYXA6CiAgICAgY2FzZSBEaXNwbGF5TGlz
dDo6SXRlbVR5cGU6OlNldExpbmVKb2luOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440445</attachid>
            <date>2021-10-06 15:38:29 -0700</date>
            <delta_ts>2021-10-06 19:22:57 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-231326-20211006153828.patch</filename>
            <type>text/plain</type>
            <size>17213</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzZjOWM0YjY4MmViZTIz
NmUzNGFiOWM4ZDhlYWExODNkMmQ1NGUwZC4uNjcxOGY0NWIyYzVjYjI0MzQ1ZmQ0YWQ3NmIwNjcx
MTIzNzAxNjU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIxLTEwLTA2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIERlbGV0ZSBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lRmlsbEdyYWRpZW50CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEzMjYKKworICAgICAgICBSZXZpZXdl
ZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgUmVtb3ZlIHRoaXMgZGlzcGxheSBsaXN0IGl0
ZW0sIGJlY2F1c2U6CisKKyAgICAgICAgLSAgICAgICBJdCBzaG91bGQgbmV2ZXIgaGF2ZSBiZWVu
IGVuY29kZWQgYW5kIGRlY29kZWQgYXMgUE9EIGRhdGEgaW4gdGhlIGZpcnN0IHBsYWNlLCBkdWUg
dG8gdGhlIGZhY3QgdGhhdCBpdAorICAgICAgICAgICAgICAgIGluZGlyZWN0bHkgY29udGFpbnMg
VmFyaWFudHMuCisKKyAgICAgICAgLSAgICAgICBEZWxldGluZyB0aGlzIGl0ZW0gZG9lcyBub3Qg
Y2F1c2UgYW55IHNpZ25pZmljYW50IHBlcmZvcm1hbmNlIGltcGFjdCB3aGVuIHVzaW5nIHN0cmVh
bWluZyBJUEMgZm9yCisgICAgICAgICAgICAgICAgZGlzcGxheSBsaXN0cy4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3Q6OmFwcGVuZCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUhhbmRsZTo6YXBwbHkpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU6OmRlc3Ryb3kpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1IYW5kbGU6OnNhZmVDb3B5IGNvbnN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlw
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6c2l6ZU9mSXRlbUluQnl0ZXMp
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmlzRHJhd2luZ0l0ZW0pOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OmlzSW5saW5lSXRlbSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6b3BlcmF0b3I8PCk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6U2V0SW5saW5lRmlsbEdyYWRpZW50OjpTZXRJbmxpbmVGaWxsR3Jh
ZGllbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGlu
ZUZpbGxHcmFkaWVudDo6Z3JhZGllbnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxHcmFkaWVudDo6YXBwbHkgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNldElubGluZUZpbGxHcmFkaWVu
dDo6aXNJbmxpbmUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3Bs
YXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmg6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlz
dDo6U2V0SW5saW5lRmlsbEdyYWRpZW50Ojppc1ZhbGlkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6Y29udGFpbnNPbmx5SW5saW5lU3Rh
dGVDaGFuZ2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpSZWNvcmRlcjo6YXBw
ZW5kU3RhdGVDaGFuZ2VJdGVtKToKKwogMjAyMS0xMC0wNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIEltYWdlQnVmZmVyOjpkcmF3aW5nQ29u
dGV4dCgpIHJldHVybiBHcmFwaGljc0NvbnRleHQgaW5zdGVhZCBvZiBEaXNwbGF5TGlzdDo6RHJh
d2luZ0NvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTVmMmIxZWE4ZDAxZDhiYWMwOTI4OWIwOGYzMGM1YWI4
YmM2YWFjYS4uMDVmZjJkN2ExZjcwYWM4NjI0ODhjMjg3MjcxNDdhNzI2ZTQ3MGJkNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0xMC0wNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KKworICAgICAgICBEZWxldGUgV2ViQ29yZTo6RGlzcGxheUxpc3Q6OlNl
dElubGluZUZpbGxHcmFkaWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMxMzI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgor
CisgICAgICAgIFNlZSBXZWJDb3JlL0NoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAg
ICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGVjb2RlSXRlbSk6CisKIDIw
MjEtMTAtMDYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIHNvbWUgaGVscGVyIGZ1bmN0aW9ucyB0byBSZW1vdGVSZXNvdXJjZUNhY2hlIGFuZCBS
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3QuY3BwCmluZGV4IGZh
ZDZhNjk1MDA3YTk2NjQ1YzI3MTFkOGYwOTEwZWE4NTY0M2Y1MjguLmNiMjM1MzA3ZjhhYjRiNGZm
YmQ2ZGI5OTJlNzg0NWFlMjllMWQ5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0LmNwcApAQCAt
MjE0LDggKzIxNCw2IEBAIHZvaWQgRGlzcGxheUxpc3Q6OmFwcGVuZChJdGVtSGFuZGxlIGl0ZW0p
CiAgICAgICAgIHJldHVybiBhcHBlbmQ8Q29uY2F0ZW5hdGVDVE0+KGl0ZW0uZ2V0PENvbmNhdGVu
YXRlQ1RNPigpKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRDVE06CiAgICAgICAgIHJldHVybiBh
cHBlbmQ8U2V0Q1RNPihpdGVtLmdldDxTZXRDVE0+KCkpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNl
dElubGluZUZpbGxHcmFkaWVudDoKLSAgICAgICAgcmV0dXJuIGFwcGVuZDxTZXRJbmxpbmVGaWxs
R3JhZGllbnQ+KGl0ZW0uZ2V0PFNldElubGluZUZpbGxHcmFkaWVudD4oKSk7CiAgICAgY2FzZSBJ
dGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgogICAgICAgICByZXR1cm4gYXBwZW5kPFNldElu
bGluZUZpbGxDb2xvcj4oaXRlbS5nZXQ8U2V0SW5saW5lRmlsbENvbG9yPigpKTsKICAgICBjYXNl
IEl0ZW1UeXBlOjpTZXRJbmxpbmVTdHJva2VDb2xvcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1CdWZmZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0SXRlbUJ1ZmZlci5jcHAKaW5kZXggMTM1NGJkYmVkZDYxMTZjMjA5ZmI1NGE2M2UxOTQy
MjUzY2IzYTU4YS4uYWMxY2NkZGE2OWU1M2VkNmY5NDZhZTM2MTM3NTZhN2VmZjNjMzA3MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rp
c3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbUJ1ZmZlci5jcHAKQEAgLTY2LDkgKzY2
LDYgQEAgdm9pZCBJdGVtSGFuZGxlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAg
ICAgY2FzZSBJdGVtVHlwZTo6U2V0Q1RNOgogICAgICAgICBnZXQ8U2V0Q1RNPigpLmFwcGx5KGNv
bnRleHQpOwogICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmls
bEdyYWRpZW50OgotICAgICAgICBnZXQ8U2V0SW5saW5lRmlsbEdyYWRpZW50PigpLmFwcGx5KGNv
bnRleHQpOwotICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmls
bENvbG9yOgogICAgICAgICBnZXQ8U2V0SW5saW5lRmlsbENvbG9yPigpLmFwcGx5KGNvbnRleHQp
OwogICAgICAgICByZXR1cm47CkBAIC00MjQsOSArNDIxLDYgQEAgdm9pZCBJdGVtSGFuZGxlOjpk
ZXN0cm95KCkKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6CiAgICAgICAg
IHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldElubGluZUZp
bGxDb2xvcj46OnZhbHVlKTsKICAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSXRlbVR5cGU6OlNl
dElubGluZUZpbGxHcmFkaWVudDoKLSAgICAgICAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX3RyaXZp
YWxseV9kZXN0cnVjdGlibGU8U2V0SW5saW5lRmlsbEdyYWRpZW50Pjo6dmFsdWUpOwotICAgICAg
ICByZXR1cm47CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6CiAgICAg
ICAgIHN0YXRpY19hc3NlcnQoc3RkOjppc190cml2aWFsbHlfZGVzdHJ1Y3RpYmxlPFNldElubGlu
ZVN0cm9rZUNvbG9yPjo6dmFsdWUpOwogICAgICAgICByZXR1cm47CkBAIC02MTYsOCArNjEwLDYg
QEAgYm9vbCBJdGVtSGFuZGxlOjpzYWZlQ29weShJdGVtVHlwZSBpdGVtVHlwZSwgSXRlbUhhbmRs
ZSBkZXN0aW5hdGlvbikgY29uc3QKICAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldENUTT4oaXRl
bU9mZnNldCwgKnRoaXMpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvcjoK
ICAgICAgICAgcmV0dXJuIGNvcHlJbnRvPFNldElubGluZUZpbGxDb2xvcj4oaXRlbU9mZnNldCwg
KnRoaXMpOwotICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKLSAgICAg
ICAgcmV0dXJuIGNvcHlJbnRvPFNldElubGluZUZpbGxHcmFkaWVudD4oaXRlbU9mZnNldCwgKnRo
aXMpOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yOgogICAgICAgICBy
ZXR1cm4gY29weUludG88U2V0SW5saW5lU3Ryb2tlQ29sb3I+KGl0ZW1PZmZzZXQsICp0aGlzKTsK
ICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbVR5cGUuY3BwCmluZGV4IDk4YTE2ZDI1ZmExYjVhNGM1MmIwZjczYTRmOWY1MzJhZWJm
YWI3MGMuLjQyNjQ0ZTE2NDJjZTJkYWIwNzVlMmFjN2Q0OTUxYzA3OWMyZGE3ODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1UeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9k
aXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtVHlwZS5jcHAKQEAgLTQ4LDggKzQ4LDYgQEAgc3Rh
dGljIHNpemVfdCBzaXplT2ZJdGVtSW5CeXRlcyhJdGVtVHlwZSB0eXBlKQogICAgICAgICByZXR1
cm4gc2l6ZW9mKENvbmNhdGVuYXRlQ1RNKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRDVE06CiAg
ICAgICAgIHJldHVybiBzaXplb2YoU2V0Q1RNKTsKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxp
bmVGaWxsR3JhZGllbnQ6Ci0gICAgICAgIHJldHVybiBzaXplb2YoU2V0SW5saW5lRmlsbEdyYWRp
ZW50KTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6CiAgICAgICAgIHJl
dHVybiBzaXplb2YoU2V0SW5saW5lRmlsbENvbG9yKTsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJ
bmxpbmVTdHJva2VDb2xvcjoKQEAgLTIxMCw3ICsyMDgsNiBAQCBib29sIGlzRHJhd2luZ0l0ZW0o
SXRlbVR5cGUgdHlwZSkKICAgICBjYXNlIEl0ZW1UeXBlOjpTY2FsZToKICAgICBjYXNlIEl0ZW1U
eXBlOjpTZXRDVE06CiAgICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lRmlsbENvbG9yOgotICAg
IGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDoKICAgICBjYXNlIEl0ZW1UeXBl
OjpTZXRJbmxpbmVTdHJva2VDb2xvcjoKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lQ2FwOgog
ICAgIGNhc2UgSXRlbVR5cGU6OlNldExpbmVEYXNoOgpAQCAtMzU3LDcgKzM1NCw2IEBAIGJvb2wg
aXNJbmxpbmVJdGVtKEl0ZW1UeXBlIHR5cGUpCiAgICAgY2FzZSBJdGVtVHlwZTo6U2NhbGU6CiAg
ICAgY2FzZSBJdGVtVHlwZTo6U2V0Q1RNOgogICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZp
bGxDb2xvcjoKLSAgICBjYXNlIEl0ZW1UeXBlOjpTZXRJbmxpbmVGaWxsR3JhZGllbnQ6CiAgICAg
Y2FzZSBJdGVtVHlwZTo6U2V0SW5saW5lU3Ryb2tlQ29sb3I6CiAgICAgY2FzZSBJdGVtVHlwZTo6
U2V0TGluZUNhcDoKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRMaW5lSm9pbjoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1UeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtVHlwZS5oCmluZGV4IDZiOTFhMjdiNzU2NTdiYWM1NmMyMzU3NzAy
YzZlYzQzMGFjMTk2ZjIuLjk5MTk0NThkMjM2NTljZWVjYjc1ODUzODdmMTI4ZWZhZjBkNDdhMjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1UeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbVR5cGUuaApAQCAtMzYsNyArMzYsNiBA
QCBlbnVtIGNsYXNzIEl0ZW1UeXBlIDogdWludDhfdCB7CiAgICAgU2NhbGUsCiAgICAgQ29uY2F0
ZW5hdGVDVE0sCiAgICAgU2V0Q1RNLAotICAgIFNldElubGluZUZpbGxHcmFkaWVudCwKICAgICBT
ZXRJbmxpbmVGaWxsQ29sb3IsCiAgICAgU2V0SW5saW5lU3Ryb2tlQ29sb3IsCiAgICAgU2V0U3Ry
b2tlVGhpY2tuZXNzLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCmluZGV4IDc5
Yzk2YWVjZDJlMWQ3NGQxNzY2ZjJkN2FkOGY2ZmQ0ZTM0MWI4NzEuLmU3MjZkOTRmMzAwNTAwMjMx
MmJjNjQyYjMwMTVlY2JhZTMxNDg0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
cy5jcHAKQEAgLTExNCw4MyArMTE0LDYgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIGNvbnN0IENvbmNhdGVuYXRlQ1RNJiBpdGVtKQogICAgIHJldHVybiB0
czsKIH0KIAotU2V0SW5saW5lRmlsbEdyYWRpZW50OjpTZXRJbmxpbmVGaWxsR3JhZGllbnQoY29u
c3QgR3JhZGllbnQmIGdyYWRpZW50LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGdyYWRpZW50U3Bh
Y2VUcmFuc2Zvcm0pCi0gICAgOiBtX2RhdGEoZ3JhZGllbnQuZGF0YSgpKQotICAgICwgbV9ncmFk
aWVudFNwYWNlVHJhbnNmb3JtKGdyYWRpZW50U3BhY2VUcmFuc2Zvcm0pCi0gICAgLCBtX3NwcmVh
ZE1ldGhvZChncmFkaWVudC5zcHJlYWRNZXRob2QoKSkKLSAgICAsIG1fY29sb3JTdG9wQ291bnQo
c3RhdGljX2Nhc3Q8dWludDhfdD4oZ3JhZGllbnQuc3RvcHMoKS5zaXplKCkpKQotewotICAgIFJF
TEVBU0VfQVNTRVJUKG1fY29sb3JTdG9wQ291bnQgPD0gbWF4Q29sb3JTdG9wQ291bnQpOwotICAg
IGZvciAodWludDhfdCBpID0gMDsgaSA8IG1fY29sb3JTdG9wQ291bnQ7ICsraSkgewotICAgICAg
ICBtX29mZnNldHNbaV0gPSBncmFkaWVudC5zdG9wcygpW2ldLm9mZnNldDsKLSAgICAgICAgbV9j
b2xvcnNbaV0gPSAqZ3JhZGllbnQuc3RvcHMoKVtpXS5jb2xvci50cnlHZXRBc1NSR0JBQnl0ZXMo
KTsKLSAgICB9Ci19Ci0KLVNldElubGluZUZpbGxHcmFkaWVudDo6U2V0SW5saW5lRmlsbEdyYWRp
ZW50KGZsb2F0IG9mZnNldHNbbWF4Q29sb3JTdG9wQ291bnRdLCBTUkdCQTx1aW50OF90PiBjb2xv
cnNbbWF4Q29sb3JTdG9wQ291bnRdLCBjb25zdCBHcmFkaWVudDo6RGF0YSYgZGF0YSwgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBncmFkaWVudFNwYWNlVHJhbnNmb3JtLCBHcmFkaWVudFNwcmVhZE1l
dGhvZCBzcHJlYWRNZXRob2QsIHVpbnQ4X3QgY29sb3JTdG9wQ291bnQpCi0gICAgOiBtX2RhdGEo
ZGF0YSkKLSAgICAsIG1fZ3JhZGllbnRTcGFjZVRyYW5zZm9ybShncmFkaWVudFNwYWNlVHJhbnNm
b3JtKQotICAgICwgbV9zcHJlYWRNZXRob2Qoc3ByZWFkTWV0aG9kKQotICAgICwgbV9jb2xvclN0
b3BDb3VudChjb2xvclN0b3BDb3VudCkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2NvbG9yU3Rv
cENvdW50IDw9IG1heENvbG9yU3RvcENvdW50KTsKLSAgICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkg
PCBtX2NvbG9yU3RvcENvdW50OyArK2kpIHsKLSAgICAgICAgbV9vZmZzZXRzW2ldID0gb2Zmc2V0
c1tpXTsKLSAgICAgICAgbV9jb2xvcnNbaV0gPSBjb2xvcnNbaV07Ci0gICAgfQotfQotCi1TZXRJ
bmxpbmVGaWxsR3JhZGllbnQ6OlNldElubGluZUZpbGxHcmFkaWVudChjb25zdCBTZXRJbmxpbmVG
aWxsR3JhZGllbnQmIG90aGVyKQotewotICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPEdy
YWRpZW50OjpSYWRpYWxEYXRhPihvdGhlci5tX2RhdGEpIHx8IFdURjo6aG9sZHNfYWx0ZXJuYXRp
dmU8R3JhZGllbnQ6OkxpbmVhckRhdGE+KG90aGVyLm1fZGF0YSkgfHwgV1RGOjpob2xkc19hbHRl
cm5hdGl2ZTxHcmFkaWVudDo6Q29uaWNEYXRhPihvdGhlci5tX2RhdGEpKSB7Ci0gICAgICAgIG1f
ZGF0YSA9IG90aGVyLm1fZGF0YTsKLSAgICAgICAgbV9ncmFkaWVudFNwYWNlVHJhbnNmb3JtID0g
b3RoZXIubV9ncmFkaWVudFNwYWNlVHJhbnNmb3JtOwotICAgICAgICBtX3NwcmVhZE1ldGhvZCA9
IG90aGVyLm1fc3ByZWFkTWV0aG9kOwotICAgICAgICBtX2NvbG9yU3RvcENvdW50ID0gb3RoZXIu
bV9jb2xvclN0b3BDb3VudDsKLSAgICAgICAgaWYgKG1fY29sb3JTdG9wQ291bnQgPiBtYXhDb2xv
clN0b3BDb3VudCkKLSAgICAgICAgICAgIG1fY29sb3JTdG9wQ291bnQgPSAwOwotICAgICAgICBm
b3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCBtX2NvbG9yU3RvcENvdW50OyArK2kpIHsKLSAgICAgICAg
ICAgIG1fb2Zmc2V0c1tpXSA9IG90aGVyLm1fb2Zmc2V0c1tpXTsKLSAgICAgICAgICAgIG1fY29s
b3JzW2ldID0gb3RoZXIubV9jb2xvcnNbaV07Ci0gICAgICAgIH0KLSAgICB9IGVsc2UKLSAgICAg
ICAgbV9pc1ZhbGlkID0gZmFsc2U7Ci19Ci0KLVJlZjxHcmFkaWVudD4gU2V0SW5saW5lRmlsbEdy
YWRpZW50OjpncmFkaWVudCgpIGNvbnN0Ci17Ci0gICAgYXV0byBncmFkaWVudCA9IEdyYWRpZW50
OjpjcmVhdGUoR3JhZGllbnQ6OkRhdGEobV9kYXRhKSk7Ci0gICAgZm9yICh1aW50OF90IGkgPSAw
OyBpIDwgbV9jb2xvclN0b3BDb3VudDsgKytpKQotICAgICAgICBncmFkaWVudC0+YWRkQ29sb3JT
dG9wKHsgbV9vZmZzZXRzW2ldLCBDb2xvcihtX2NvbG9yc1tpXSkgfSk7Ci0gICAgZ3JhZGllbnQt
PnNldFNwcmVhZE1ldGhvZChtX3NwcmVhZE1ldGhvZCk7Ci0gICAgcmV0dXJuIGdyYWRpZW50Owot
fQotCi12b2lkIFNldElubGluZUZpbGxHcmFkaWVudDo6YXBwbHkoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0KSBjb25zdAotewotICAgIGlmIChtX2NvbG9yU3RvcENvdW50IDw9IG1heENvbG9yU3Rv
cENvdW50KQotICAgICAgICBjb250ZXh0LnNldEZpbGxHcmFkaWVudChncmFkaWVudCgpLCBtX2dy
YWRpZW50U3BhY2VUcmFuc2Zvcm0pOwotfQotCi1ib29sIFNldElubGluZUZpbGxHcmFkaWVudDo6
aXNJbmxpbmUoY29uc3QgR3JhZGllbnQmIGdyYWRpZW50KQotewotICAgIGlmIChncmFkaWVudC5z
dG9wcygpLnNpemUoKSA+IFNldElubGluZUZpbGxHcmFkaWVudDo6bWF4Q29sb3JTdG9wQ291bnQp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGZvciAoYXV0byYgY29sb3JTdG9wIDogZ3Jh
ZGllbnQuc3RvcHMoKSkgewotICAgICAgICBpZiAoIWNvbG9yU3RvcC5jb2xvci50cnlHZXRBc1NS
R0JBQnl0ZXMoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQotc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYg
dHMsIGNvbnN0IFNldElubGluZUZpbGxHcmFkaWVudCYpCi17Ci0gICAgLy8gRklYTUU6IER1bXAg
Z3JhZGllbnQgZGF0YS4KLSAgICByZXR1cm4gdHM7Ci19Ci0KIHZvaWQgU2V0SW5saW5lRmlsbENv
bG9yOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7CiAgICAgY29udGV4
dC5zZXRGaWxsQ29sb3IoY29sb3IoKSk7CkBAIC0xMTMzLDcgKzEwNTYsNiBAQCBzdGF0aWMgVGV4
dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSXRlbVR5cGUgdHlwZSkKICAgICBj
YXNlIEl0ZW1UeXBlOjpTY2FsZTogdHMgPDwgInNjYWxlIjsgYnJlYWs7CiAgICAgY2FzZSBJdGVt
VHlwZTo6U2V0Q1RNOiB0cyA8PCAic2V0LWN0bSI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6
OkNvbmNhdGVuYXRlQ1RNOiB0cyA8PCAiY29uY2F0ZW50YXRlLWN0bSI7IGJyZWFrOwotICAgIGNh
c2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudDogdHMgPDwgInNldC1pbmxpbmUtZmls
bC1ncmFkaWVudCI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xv
cjogdHMgPDwgInNldC1pbmxpbmUtZmlsbC1jb2xvciI7IGJyZWFrOwogICAgIGNhc2UgSXRlbVR5
cGU6OlNldElubGluZVN0cm9rZUNvbG9yOiB0cyA8PCAic2V0LWlubGluZS1zdHJva2UtY29sb3Ii
OyBicmVhazsKICAgICBjYXNlIEl0ZW1UeXBlOjpTZXRTdHJva2VUaGlja25lc3M6IHRzIDw8ICJz
ZXQtc3Ryb2tlLXRoaWNrbmVzcyI7IGJyZWFrOwpAQCAtMTIyNSw5ICsxMTQ3LDYgQEAgVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgSXRlbUhhbmRsZSBpdGVtKQogICAgIGNh
c2UgSXRlbVR5cGU6OkNvbmNhdGVuYXRlQ1RNOgogICAgICAgICB0cyA8PCBpdGVtLmdldDxDb25j
YXRlbmF0ZUNUTT4oKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJdGVtVHlwZTo6U2V0SW5s
aW5lRmlsbEdyYWRpZW50OgotICAgICAgICB0cyA8PCBpdGVtLmdldDxTZXRJbmxpbmVGaWxsR3Jh
ZGllbnQ+KCk7Ci0gICAgICAgIGJyZWFrOwogICAgIGNhc2UgSXRlbVR5cGU6OlNldElubGluZUZp
bGxDb2xvcjoKICAgICAgICAgdHMgPDwgaXRlbS5nZXQ8U2V0SW5saW5lRmlsbENvbG9yPigpOwog
ICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCmluZGV4IDE0OGJi
MTcxNWUzM2ExYTE5N2JjYjQxMzFkNWQ5OTI0ODAyODk4ZTAuLjAxMWI0MWQ5YjFiNTM5NzAzM2Zj
OTBmNmRkMmJiZTBiNWYwZmJkMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApA
QCAtMTgyLDMzICsxODIsNiBAQCBwcml2YXRlOgogICAgIEFmZmluZVRyYW5zZm9ybSBtX3RyYW5z
Zm9ybTsKIH07CiAKLWNsYXNzIFNldElubGluZUZpbGxHcmFkaWVudCB7Ci1wdWJsaWM6Ci0gICAg
c3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpTZXRJbmxpbmVG
aWxsR3JhZGllbnQ7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzSW5saW5lSXRlbSA9IHRy
dWU7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBib29sIGlzRHJhd2luZ0l0ZW0gPSBmYWxzZTsKLSAg
ICBzdGF0aWMgY29uc3RleHByIHVpbnQ4X3QgbWF4Q29sb3JTdG9wQ291bnQgPSA0OwotCi0gICAg
U2V0SW5saW5lRmlsbEdyYWRpZW50KGNvbnN0IEdyYWRpZW50JiwgY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiBncmFkaWVudFNwYWNlVHJhbnNmb3JtKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBTZXRJbmxp
bmVGaWxsR3JhZGllbnQoZmxvYXQgb2Zmc2V0c1ttYXhDb2xvclN0b3BDb3VudF0sIFNSR0JBPHVp
bnQ4X3Q+IGNvbG9yc1ttYXhDb2xvclN0b3BDb3VudF0sIGNvbnN0IEdyYWRpZW50OjpEYXRhJiwg
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiBncmFkaWVudFNwYWNlVHJhbnNmb3JtLCBHcmFkaWVudFNw
cmVhZE1ldGhvZCwgdWludDhfdCBjb2xvclN0b3BDb3VudCk7Ci0gICAgU2V0SW5saW5lRmlsbEdy
YWRpZW50KGNvbnN0IFNldElubGluZUZpbGxHcmFkaWVudCYpOwotICAgIGJvb2wgaXNWYWxpZCgp
IGNvbnN0IHsgcmV0dXJuIG1faXNWYWxpZDsgfQotCi0gICAgc3RhdGljIGJvb2wgaXNJbmxpbmUo
Y29uc3QgR3JhZGllbnQmKTsKLSAgICBSZWY8R3JhZGllbnQ+IGdyYWRpZW50KCkgY29uc3Q7Ci0K
LSAgICB2b2lkIGFwcGx5KEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0OwotCi1wcml2YXRlOgotICAg
IGZsb2F0IG1fb2Zmc2V0c1ttYXhDb2xvclN0b3BDb3VudF07Ci0gICAgU1JHQkE8dWludDhfdD4g
bV9jb2xvcnNbbWF4Q29sb3JTdG9wQ291bnRdOwotICAgIEdyYWRpZW50OjpEYXRhIG1fZGF0YTsK
LSAgICBBZmZpbmVUcmFuc2Zvcm0gbV9ncmFkaWVudFNwYWNlVHJhbnNmb3JtOwotICAgIEdyYWRp
ZW50U3ByZWFkTWV0aG9kIG1fc3ByZWFkTWV0aG9kIHsgR3JhZGllbnRTcHJlYWRNZXRob2Q6OlBh
ZCB9OwotICAgIHVpbnQ4X3QgbV9jb2xvclN0b3BDb3VudCB7IDAgfTsKLSAgICBib29sIG1faXNW
YWxpZCB7IHRydWUgfTsKLX07Ci0KIGNsYXNzIFNldElubGluZUZpbGxDb2xvciB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBJdGVtVHlwZSBpdGVtVHlwZSA9IEl0ZW1UeXBlOjpTZXRJ
bmxpbmVGaWxsQ29sb3I7CkBAIC0yNDk5LDcgKzI0NzIsNiBAQCB1c2luZyBEaXNwbGF5TGlzdEl0
ZW0gPSBWYXJpYW50CiAgICAgLCBTY2FsZQogICAgICwgU2V0Q1RNCiAgICAgLCBTZXRJbmxpbmVG
aWxsQ29sb3IKLSAgICAsIFNldElubGluZUZpbGxHcmFkaWVudAogICAgICwgU2V0SW5saW5lU3Ry
b2tlQ29sb3IKICAgICAsIFNldExpbmVDYXAKICAgICAsIFNldExpbmVEYXNoCkBAIC0yNTUzLDcg
KzI1MjUsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkRpc3BsYXlM
aXN0OjpJdGVtVHlwZT4gewogICAgIFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2Nh
bGUsCiAgICAgV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTZXRDVE0sCiAgICAgV2Vi
Q29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpDb25jYXRlbmF0ZUNUTSwKLSAgICBXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZUZpbGxHcmFkaWVudCwKICAgICBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZUZpbGxDb2xvciwKICAgICBXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldElubGluZVN0cm9rZUNvbG9yLAogICAgIFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0U3Ryb2tlVGhpY2tuZXNzLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3Bs
YXlMaXN0UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCmluZGV4IGY5YmYxOTFlZTYzODlmMDFk
OWI1YTIxMDI1M2NkMDBiMDMwMTg1NDAuLjU0NTYxNGQwYTEzOWY2NzI2OTJiNTU4YWI4ZDExNjc1
ZThiMDU4ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHAKQEAg
LTgyLDcgKzgyLDYgQEAgc3RhdGljIGJvb2wgY29udGFpbnNPbmx5SW5saW5lU3RhdGVDaGFuZ2Vz
KGNvbnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlQ2hhbmdlJiBjaGEKICAgICAgICAgR3JhcGhpY3ND
b250ZXh0U3RhdGU6OlN0cm9rZVRoaWNrbmVzc0NoYW5nZSwKICAgICAgICAgR3JhcGhpY3NDb250
ZXh0U3RhdGU6OlN0cm9rZUNvbG9yQ2hhbmdlLAogICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0
ZTo6RmlsbENvbG9yQ2hhbmdlLAotICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbEdy
YWRpZW50Q2hhbmdlLAogICAgIH07CiAKICAgICBpZiAoY2hhbmdlRmxhZ3MgIT0gKGNoYW5nZUZs
YWdzICYgaW5saW5lU3RhdGVDaGFuZ2VGbGFncykpCkBAIC05NCwxMCArOTMsNiBAQCBzdGF0aWMg
Ym9vbCBjb250YWluc09ubHlJbmxpbmVTdGF0ZUNoYW5nZXMoY29uc3QgR3JhcGhpY3NDb250ZXh0
U3RhdGVDaGFuZ2UmIGNoYQogICAgIGlmIChjaGFuZ2VGbGFncy5jb250YWlucyhHcmFwaGljc0Nv
bnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKSAmJiAhY2hhbmdlcy5tX3N0YXRlLmZpbGxDb2xv
ci50cnlHZXRBc1NSR0JBQnl0ZXMoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYg
KGNoYW5nZUZsYWdzLmNvbnRhaW5zKEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3JhZGllbnRD
aGFuZ2UpCi0gICAgICAgICYmICghY2hhbmdlcy5tX3N0YXRlLmZpbGxHcmFkaWVudCB8fCAhU2V0
SW5saW5lRmlsbEdyYWRpZW50Ojppc0lubGluZSgqY2hhbmdlcy5tX3N0YXRlLmZpbGxHcmFkaWVu
dCkpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAt
MTI3LDkgKzEyMiw2IEBAIHZvaWQgUmVjb3JkZXI6OmFwcGVuZFN0YXRlQ2hhbmdlSXRlbShjb25z
dCBHcmFwaGljc0NvbnRleHRTdGF0ZUNoYW5nZSYgY2hhbmdlcywKIAogICAgIGlmIChjaGFuZ2VG
bGFncy5jb250YWlucyhHcmFwaGljc0NvbnRleHRTdGF0ZTo6RmlsbENvbG9yQ2hhbmdlKSkKICAg
ICAgICAgYXBwZW5kPFNldElubGluZUZpbGxDb2xvcj4oKmNoYW5nZXMubV9zdGF0ZS5maWxsQ29s
b3IudHJ5R2V0QXNTUkdCQUJ5dGVzKCkpOwotCi0gICAgaWYgKGNoYW5nZUZsYWdzLmNvbnRhaW5z
KEdyYXBoaWNzQ29udGV4dFN0YXRlOjpGaWxsR3JhZGllbnRDaGFuZ2UpKQotICAgICAgICBhcHBl
bmQ8U2V0SW5saW5lRmlsbEdyYWRpZW50PigqY2hhbmdlcy5tX3N0YXRlLmZpbGxHcmFkaWVudCwg
Y2hhbmdlcy5tX3N0YXRlLmZpbGxHcmFkaWVudFNwYWNlVHJhbnNmb3JtKTsKIH0KIAogYm9vbCBS
ZWNvcmRlcjo6Y2FuQXBwZW5kSXRlbU9mVHlwZShJdGVtVHlwZSB0eXBlKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRl
cmluZ0JhY2tlbmQuY3BwCmluZGV4IDNjZWU4NmVmOGMzOTY1ZjNlZGIzYmNmZmNmNjdiMGJhNGRj
OWYzYmQuLmU1ZjVmNzBlOGU4NGU2MzMzOGZmOGQ3NjM4ZDdhMmNmNjNkYzRiMGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5jcHAKQEAgLTY0Nyw3ICs2NDcsNiBAQCBzdGQ6Om9wdGlvbmFsPERpc3Bs
YXlMaXN0OjpJdGVtSGFuZGxlPiBXQVJOX1VOVVNFRF9SRVRVUk4gUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZAogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1UeXBlOjpTY2FsZToKICAgICBjYXNlIERp
c3BsYXlMaXN0OjpJdGVtVHlwZTo6U2V0Q1RNOgogICAgIGNhc2UgRGlzcGxheUxpc3Q6Okl0ZW1U
eXBlOjpTZXRJbmxpbmVGaWxsQ29sb3I6Ci0gICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6
OlNldElubGluZUZpbGxHcmFkaWVudDoKICAgICBjYXNlIERpc3BsYXlMaXN0OjpJdGVtVHlwZTo6
U2V0SW5saW5lU3Ryb2tlQ29sb3I6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNl
dExpbmVDYXA6CiAgICAgY2FzZSBEaXNwbGF5TGlzdDo6SXRlbVR5cGU6OlNldExpbmVKb2luOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>