<?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>201919</bug_id>
          
          <creation_ts>2019-09-18 09:45:30 -0700</creation_ts>
          <short_desc>[LFC] Introduce UsedHorizontalValues::Constraints</short_desc>
          <delta_ts>2019-09-18 12:56:22 -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>Layout and Rendering</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>201795</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1571928</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-09-18 09:45:30 -0700</bug_when>
    <thetext>UsedHorizontalValues::Constraints holds the constraint values for a particular box geometry computation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571929</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-18 09:46:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/55481927&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571930</commentid>
    <comment_count>2</comment_count>
      <attachid>379045</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-09-18 09:50:56 -0700</bug_when>
    <thetext>Created attachment 379045
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572038</commentid>
    <comment_count>3</comment_count>
      <attachid>379045</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-18 12:56:20 -0700</bug_when>
    <thetext>Comment on attachment 379045
Patch

Clearing flags on attachment: 379045

Committed r250050: &lt;https://trac.webkit.org/changeset/250050&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572039</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-18 12:56:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379045</attachid>
            <date>2019-09-18 09:50:56 -0700</date>
            <delta_ts>2019-09-18 12:56:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201919-20190918095056.patch</filename>
            <type>text/plain</type>
            <size>39514</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwMDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjI0Y2MyYTMxMTYzZTMy
Njc1MmM5OTNkNzdiOTY5YzBiYjYyZGM0MC4uMjg0MWJmODM5MThhZWM1NWU5MGNhYjAzOWNhNDZm
OGMxMTBiZDYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDE5LTA5LTE4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gSW50cm9kdWNlIFVz
ZWRIb3Jpem9udGFsVmFsdWVzOjpDb25zdHJhaW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxOTE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
NTQ4MTkyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMgaG9sZHMgdGhlIGNvbnN0cmFpbnQg
dmFsdWVzIGZvciBhIHBhcnRpY3VsYXIgYm94IGdlb21ldHJ5IGNvbXB1dGF0aW9uIChjdXJyZW50
bHkgaXQgb25seSBoYXMgdGhlIGhvcml6b250YWwgd2lkdGggY29uc3RyYWludCkgCisKKyAgICAg
ICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVPdXRPZkZsb3dIb3Jp
em9udGFsR2VvbWV0cnkpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29u
dGV4dDo6Y29tcHV0ZU91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnkpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUJvcmRlckFuZFBhZGRpbmcpOgor
ICAgICAgICAqIGxheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dO
b25SZXBsYWNlZFZlcnRpY2FsR2VvbWV0cnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd05vblJlcGxhY2VkSG9y
aXpvbnRhbEdlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0Nv
bnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dSZXBsYWNlZFZlcnRpY2FsR2VvbWV0cnkgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6
Om91dE9mRmxvd1JlcGxhY2VkSG9yaXpvbnRhbEdlb21ldHJ5IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGluZ05vblJl
cGxhY2VkV2lkdGhBbmRNYXJnaW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0
aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZsb2F0aW5nUmVwbGFjZWRXaWR0aEFuZE1hcmdpbiBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRy
eTo6aW5saW5lUmVwbGFjZWRXaWR0aEFuZE1hcmdpbiBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93UG9zaXRpb25lZFBv
c2l0aW9uT2Zmc2V0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGlu
Z0NvbnRleHQ6Okdlb21ldHJ5Ojpjb21wdXRlZFBhZGRpbmcgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNvbXB1dGVkSG9yaXpv
bnRhbE1hcmdpbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdD
b250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0ZWRWZXJ0aWNhbE1hcmdpbiBjb25zdCk6CisgICAgICAg
ICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6aGVpZ2h0VmFsdWVPZk5lYXJlc3RD
b250YWluaW5nQmxvY2tXaXRoRml4ZWRIZWlnaHQpOgorICAgICAgICAqIGxheW91dC9MYXlvdXRV
bml0cy5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpVc2VkSG9yaXpvbnRhbFZhbHVlczo6
Q29uc3RyYWludHM6OkNvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VXNl
ZEhvcml6b250YWxWYWx1ZXM6OlVzZWRIb3Jpem9udGFsVmFsdWVzKToKKyAgICAgICAgKiBsYXlv
dXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpwbGFjZUluRmxvd1Bvc2l0
aW9uZWRDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6OmNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBvc2l0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFy
Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6
Y29tcHV0ZUhlaWdodEFuZE1hcmdpbik6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGlu
Zy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93Tm9uUmVwbGFj
ZWRXaWR0aEFuZE1hcmdpbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dXaWR0aEFuZE1hcmdpbik6CisgICAg
ICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6
UXVpcmtzOjpzdHJldGNoZWRJbkZsb3dIZWlnaHQpOgorICAgICAgICAqIGxheW91dC9ibG9ja2Zv
cm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpwb3NpdGl2ZU5lZ2F0
aXZlVmFsdWVzKToKKyAgICAgICAgKiBsYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5oOgor
ICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6
OmxheW91dEluRmxvd0NvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVJ
bnRyaW5zaWNXaWR0aEZvckZvcm1hdHRpbmdSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIZWlnaHRBbmRNYXJnaW4pOgorICAg
ICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0R2Vv
bWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OmlubGluZUJsb2NrV2lkdGhBbmRNYXJnaW4pOgorICAgICAgICAqIGxh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpJ
bmxpbmVMYXlvdXQ6OmNyZWF0ZURpc3BsYXlSdW5zIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQv
dGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0OjpUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlUHJlZmVycmVkV2lk
dGhGb3JDb2x1bW5zKToKKwogMjAxOS0wOS0xOCAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtMRkNdIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0
ZWRIZWlnaHQqIGZ1bmN0aW9ucyBuZWVkIGNvbnRhaW5pbmdCbG9ja0hlaWdodCBvbmx5LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAppbmRleCAwOGFiNWUwOGJjMDJiZGIwMTYzYzBhZWM1YmVmMmUyZTlmZjM3OGU2Li4z
MGY0NmJjMTQ5MmIxZTUzNGU2ODlhOTlkZjFjNjNlMWViNzRlY2MzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApA
QCAtMTQwMiw2ICsxNDAyLDcgQEAgbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAog
bGF5b3V0L0Zvcm1hdHRpbmdTdGF0ZS5jcHAKIGxheW91dC9MYXlvdXRQaGFzZS5jcHAKIGxheW91
dC9MYXlvdXRTdGF0ZS5jcHAKK2xheW91dC9MYXlvdXRVbml0cy5jcHAKIGxheW91dC9WZXJpZmlj
YXRpb24uY3BwCiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQu
Y3BwCiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRy
eS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBlNTdlOGIyNjRmMWNlYmYyNDdmOTcwZWU3MmY0OThlYzhkNjhmM2JkLi5jNDc0
ZWIwOGM4NTk3ZGRiYjBmY2Y0NDk2ODYyYTAzMjFlOTg5YmVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01ODA1LDYgKzU4MDUs
NyBAQAogCQkxMTM0MDlEODIwM0UwMzgwMDBDNjY5MTUgLyogUmVuZGVyVHJlZUJ1aWxkZXJDb250
aW51YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJDb250aW51YXRpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTEzRDBCNEYxRjlGREQyQjAwRjYxMUJC
IC8qIEZyYW1lVmlld0xheW91dENvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRnJhbWVW
aWV3TGF5b3V0Q29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExM0Qw
QjUwMUY5RkREMkIwMEY2MTFCQiAvKiBGcmFtZVZpZXdMYXlvdXRDb250ZXh0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEZyYW1lVmlld0xheW91dENvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMTE1Q0E4MzAyMzMyOEIxRTAwRkQzQjA4IC8qIExheW91dFVuaXRzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IExheW91dFVuaXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMTE1Q0ZBNjgyMDhBRjdEMDAwMUU2OTkxIC8qIEZvcm1hdHRpbmdDb250ZXh0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZvcm1hdHRpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTExNUNGQTY5MjA4QUY3RDAwMDFFNjk5MSAvKiBGb3JtYXR0aW5nQ29udGV4dC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBGb3JtYXR0aW5nQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTExNUNGQTZDMjA4QUZBQjYwMDFFNjk5MSAvKiBCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2Mzk3LDYgKzE2Mzk4LDcgQEAKIAkJCQk2RkVGRTgx
RDIyRjlEMjJBMDAxMTQ5MjcgLyogTGF5b3V0UGhhc2UuaCAqLywKIAkJCQk2RjdDQTNDNTIwOEMy
OTU2MDAyRjI5QUIgLyogTGF5b3V0U3RhdGUuY3BwICovLAogCQkJCTZGN0NBM0M0MjA4QzI5NTYw
MDJGMjlBQiAvKiBMYXlvdXRTdGF0ZS5oICovLAorCQkJCTExNUNBODMwMjMzMjhCMUUwMEZEM0Iw
OCAvKiBMYXlvdXRVbml0cy5jcHAgKi8sCiAJCQkJNkY3MzkxOEMyMTA2Q0VERDAwNkFGMjYyIC8q
IExheW91dFVuaXRzLmggKi8sCiAJCQkJNkZFN0FBMjYyMUMzN0I2MzAwMjk2RENEIC8qIE1hcmdp
blR5cGVzLmggKi8sCiAJCQkJMTFGRjAyRDUyMEJBM0M4MTAwODNGMjVCIC8qIFZlcmlmaWNhdGlv
bi5jcHAgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0Nv
bnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcApp
bmRleCBjZWM4MzRlOTRjZTRmNDA1NzNjYmY5OGM1NTdkMmI4OTQ2MzkwMmE0Li5lMDdiNTk1ZGYx
NmU5YmNjODViZjhiYjA3NzY1YzQxZWI5NDZiMTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBGb3JtYXR0aW5n
Q29udGV4dDo6Y29tcHV0ZU91dE9mRmxvd0hvcml6b250YWxHZW9tZXRyeShjb25zdCBCb3gmIGxh
eW91dEJveCkKICAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja0hlaWdodCA9IGdlb21ldHJ5Rm9yQm94
KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpLnBhZGRpbmdCb3hIZWlnaHQoKTsKIAogICAg
IGF1dG8gY29tcHV0ZSA9IFsmXShPcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkV2lkdGgpIHsKLSAg
ICAgICAgYXV0byB1c2VkSG9yaXpvbnRhbFZhbHVlcyA9IFVzZWRIb3Jpem9udGFsVmFsdWVzIHsg
Y29udGFpbmluZ0Jsb2NrV2lkdGgsIHVzZWRXaWR0aCwgeyB9IH07CisgICAgICAgIGF1dG8gdXNl
ZEhvcml6b250YWxWYWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IFVzZWRIb3Jpem9udGFs
VmFsdWVzOjpDb25zdHJhaW50cyB7IGNvbnRhaW5pbmdCbG9ja1dpZHRoIH0sIHVzZWRXaWR0aCwg
eyB9IH07CiAgICAgICAgIGF1dG8gdXNlZFZlcnRpY2FsVmFsdWVzID0gVXNlZFZlcnRpY2FsVmFs
dWVzIHsgY29udGFpbmluZ0Jsb2NrSGVpZ2h0LCB7IH0gfTsKICAgICAgICAgcmV0dXJuIGdlb21l
dHJ5KCkub3V0T2ZGbG93SG9yaXpvbnRhbEdlb21ldHJ5KGxheW91dEJveCwgdXNlZEhvcml6b250
YWxWYWx1ZXMsIHVzZWRWZXJ0aWNhbFZhbHVlcyk7CiAgICAgfTsKQEAgLTEwNSw3ICsxMDUsNyBA
QCB2b2lkIEZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlT3V0T2ZGbG93VmVydGljYWxHZW9tZXRy
eShjb25zdCBCb3gmIGxheW91dEJveCkKICAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja1dpZHRoID0g
Y29udGFpbmluZ0Jsb2NrR2VvbWV0cnkucGFkZGluZ0JveEhlaWdodCgpOwogCiAgICAgYXV0byB1
c2VkVmVydGljYWxWYWx1ZXNGb3JIZWlnaHQgPSBVc2VkVmVydGljYWxWYWx1ZXMgeyBjb250YWlu
aW5nQmxvY2tIZWlnaHQsIHsgfSB9OwotICAgIGF1dG8gdXNlZEhvcml6b250YWxWYWx1ZXMgPSBV
c2VkSG9yaXpvbnRhbFZhbHVlcyB7IGNvbnRhaW5pbmdCbG9ja1dpZHRoIH07CisgICAgYXV0byB1
c2VkSG9yaXpvbnRhbFZhbHVlcyA9IFVzZWRIb3Jpem9udGFsVmFsdWVzIHsgVXNlZEhvcml6b250
YWxWYWx1ZXM6OkNvbnN0cmFpbnRzIHsgY29udGFpbmluZ0Jsb2NrV2lkdGggfSB9OwogCiAgICAg
YXV0byB2ZXJ0aWNhbEdlb21ldHJ5ID0gY29tcHV0ZSh1c2VkSG9yaXpvbnRhbFZhbHVlcywgdXNl
ZFZlcnRpY2FsVmFsdWVzRm9ySGVpZ2h0KTsKICAgICBpZiAoYXV0byBtYXhIZWlnaHQgPSBnZW9t
ZXRyeSgpLmNvbXB1dGVkTWF4SGVpZ2h0KGxheW91dEJveCwgY29udGFpbmluZ0Jsb2NrSGVpZ2h0
KSkgewpAQCAtMTMzLDcgKzEzMyw3IEBAIHZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVP
dXRPZkZsb3dWZXJ0aWNhbEdlb21ldHJ5KGNvbnN0IEJveCYgbGF5b3V0Qm94KQogdm9pZCBGb3Jt
YXR0aW5nQ29udGV4dDo6Y29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoY29uc3QgQm94JiBsYXlvdXRC
b3gsIE9wdGlvbmFsPFVzZWRIb3Jpem9udGFsVmFsdWVzPiB1c2VkSG9yaXpvbnRhbFZhbHVlcykK
IHsKICAgICBpZiAoIXVzZWRIb3Jpem9udGFsVmFsdWVzKQotICAgICAgICB1c2VkSG9yaXpvbnRh
bFZhbHVlcyA9IFVzZWRIb3Jpem9udGFsVmFsdWVzIHsgZ2VvbWV0cnlGb3JCb3goKmxheW91dEJv
eC5jb250YWluaW5nQmxvY2soKSkuY29udGVudEJveFdpZHRoKCkgfTsKKyAgICAgICAgdXNlZEhv
cml6b250YWxWYWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IFVzZWRIb3Jpem9udGFsVmFs
dWVzOjpDb25zdHJhaW50cyB7IGdlb21ldHJ5Rm9yQm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Js
b2NrKCkpIH0gfTsKICAgICBhdXRvJiBkaXNwbGF5Qm94ID0gZm9ybWF0dGluZ1N0YXRlKCkuZGlz
cGxheUJveChsYXlvdXRCb3gpOwogICAgIGRpc3BsYXlCb3guc2V0Qm9yZGVyKGdlb21ldHJ5KCku
Y29tcHV0ZWRCb3JkZXIobGF5b3V0Qm94KSk7CiAgICAgZGlzcGxheUJveC5zZXRQYWRkaW5nKGdl
b21ldHJ5KCkuY29tcHV0ZWRQYWRkaW5nKGxheW91dEJveCwgKnVzZWRIb3Jpem9udGFsVmFsdWVz
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRH
ZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9t
ZXRyeS5jcHAKaW5kZXggMzRlMzgxZTEyNmU4ZTFjMWQwMTE1YzQ5OTZhOWY3YzNiMjE0MmExNS4u
NWM3YTk0OTYzYmM5ZDU3YzI5YjA1YmJiZDhlZTYzZmM0YjUzNzQzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcApAQCAtMzAw
LDcgKzMwMCw3IEBAIFZlcnRpY2FsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5
OjpvdXRPZkZsb3dOb25SZXBsYWNlZFZlcnRpY2FsR2VvbWV0CiAgICAgYXV0byYgc3R5bGUgPSBs
YXlvdXRCb3guc3R5bGUoKTsKICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250
ZXh0Lmdlb21ldHJ5Rm9yQm94KGxheW91dEJveCk7CiAgICAgYXV0byBjb250YWluaW5nQmxvY2tI
ZWlnaHQgPSAqdXNlZFZlcnRpY2FsVmFsdWVzLmNvbnRhaW5pbmdCbG9ja0hlaWdodDsKLSAgICBh
dXRvIGNvbnRhaW5pbmdCbG9ja1dpZHRoID0gdXNlZEhvcml6b250YWxWYWx1ZXMuY29udGFpbmlu
Z0Jsb2NrV2lkdGg7CisgICAgYXV0byBjb250YWluaW5nQmxvY2tXaWR0aCA9IHVzZWRIb3Jpem9u
dGFsVmFsdWVzLmNvbnN0cmFpbnRzLndpZHRoOwogCiAgICAgYXV0byB0b3AgPSBjb21wdXRlZFZh
bHVlSWZOb3RBdXRvKHN0eWxlLmxvZ2ljYWxUb3AoKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpOwog
ICAgIGF1dG8gYm90dG9tID0gY29tcHV0ZWRWYWx1ZUlmTm90QXV0byhzdHlsZS5sb2dpY2FsQm90
dG9tKCksIGNvbnRhaW5pbmdCbG9ja1dpZHRoKTsKQEAgLTQyMyw3ICs0MjMsNyBAQCBIb3Jpem9u
dGFsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dOb25SZXBs
YWNlZEhvcml6b250YWxHZQogICAgIGF1dG8mIGZvcm1hdHRpbmdDb250ZXh0ID0gdGhpcy0+Zm9y
bWF0dGluZ0NvbnRleHQoKTsKICAgICBhdXRvJiBzdHlsZSA9IGxheW91dEJveC5zdHlsZSgpOwog
ICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3go
bGF5b3V0Qm94KTsKLSAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja1dpZHRoID0gdXNlZEhvcml6b250
YWxWYWx1ZXMuY29udGFpbmluZ0Jsb2NrV2lkdGg7CisgICAgYXV0byBjb250YWluaW5nQmxvY2tX
aWR0aCA9IHVzZWRIb3Jpem9udGFsVmFsdWVzLmNvbnN0cmFpbnRzLndpZHRoOwogICAgIGF1dG8g
aXNMZWZ0VG9SaWdodERpcmVjdGlvbiA9IGxheW91dEJveC5jb250YWluaW5nQmxvY2soKS0+c3R5
bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCk7CiAgICAgCiAgICAgYXV0byBsZWZ0ID0gY29t
cHV0ZWRWYWx1ZUlmTm90QXV0byhzdHlsZS5sb2dpY2FsTGVmdCgpLCBjb250YWluaW5nQmxvY2tX
aWR0aCk7CkBAIC01NTcsNyArNTU3LDcgQEAgVmVydGljYWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd1JlcGxhY2VkVmVydGljYWxHZW9tZXRyeSgKICAgICBh
dXRvJiBzdHlsZSA9IGxheW91dEJveC5zdHlsZSgpOwogICAgIGF1dG8mIGJveEdlb21ldHJ5ID0g
Zm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94KTsKICAgICBhdXRvIGNv
bnRhaW5pbmdCbG9ja0hlaWdodCA9ICp1c2VkVmVydGljYWxWYWx1ZXMuY29udGFpbmluZ0Jsb2Nr
SGVpZ2h0OwotICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrV2lkdGggPSB1c2VkSG9yaXpvbnRhbFZh
bHVlcy5jb250YWluaW5nQmxvY2tXaWR0aDsKKyAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja1dpZHRo
ID0gdXNlZEhvcml6b250YWxWYWx1ZXMuY29uc3RyYWludHMud2lkdGg7CiAKICAgICBhdXRvIHRv
cCA9IGNvbXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5bGUubG9naWNhbFRvcCgpLCBjb250YWluaW5n
QmxvY2tXaWR0aCk7CiAgICAgYXV0byBib3R0b20gPSBjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHN0
eWxlLmxvZ2ljYWxCb3R0b20oKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpOwpAQCAtNjQxLDcgKzY0
MSw3IEBAIEhvcml6b250YWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91
dE9mRmxvd1JlcGxhY2VkSG9yaXpvbnRhbEdlb21lCiAgICAgYXV0byYgZm9ybWF0dGluZ0NvbnRl
eHQgPSB0aGlzLT5mb3JtYXR0aW5nQ29udGV4dCgpOwogICAgIGF1dG8mIHN0eWxlID0gbGF5b3V0
Qm94LnN0eWxlKCk7CiAgICAgYXV0byYgYm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dC5n
ZW9tZXRyeUZvckJveChsYXlvdXRCb3gpOwotICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrV2lkdGgg
PSB1c2VkSG9yaXpvbnRhbFZhbHVlcy5jb250YWluaW5nQmxvY2tXaWR0aDsKKyAgICBhdXRvIGNv
bnRhaW5pbmdCbG9ja1dpZHRoID0gdXNlZEhvcml6b250YWxWYWx1ZXMuY29uc3RyYWludHMud2lk
dGg7CiAgICAgYXV0byBpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uID0gbGF5b3V0Qm94LmNvbnRhaW5p
bmdCbG9jaygpLT5zdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKTsKIAogICAgIGF1dG8g
bGVmdCA9IGNvbXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5bGUubG9naWNhbExlZnQoKSwgY29udGFp
bmluZ0Jsb2NrV2lkdGgpOwpAQCAtNzY5LDkgKzc2OSw5IEBAIFdpZHRoQW5kTWFyZ2luIEZvcm1h
dHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdOb25SZXBsYWNlZFdpZHRoQW5kTWFyZ2lu
KGNvCiAgICAgLy8gIzEKICAgICBhdXRvIHVzZWRIb3Jpem9udGFsbE1hcmdpbiA9IFVzZWRIb3Jp
em9udGFsTWFyZ2luIHsgY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luLnN0YXJ0LnZhbHVlT3IoMCks
IGNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbi5lbmQudmFsdWVPcigwKSB9OwogICAgIC8vICMyCi0g
ICAgYXV0byB3aWR0aCA9IGNvbXB1dGVkVmFsdWVJZk5vdEF1dG8odXNlZEhvcml6b250YWxWYWx1
ZXMud2lkdGggPyBMZW5ndGggeyB1c2VkSG9yaXpvbnRhbFZhbHVlcy53aWR0aC52YWx1ZSgpLCBG
aXhlZCB9IDogbGF5b3V0Qm94LnN0eWxlKCkubG9naWNhbFdpZHRoKCksIHVzZWRIb3Jpem9udGFs
VmFsdWVzLmNvbnRhaW5pbmdCbG9ja1dpZHRoKTsKKyAgICBhdXRvIHdpZHRoID0gY29tcHV0ZWRW
YWx1ZUlmTm90QXV0byh1c2VkSG9yaXpvbnRhbFZhbHVlcy53aWR0aCA/IExlbmd0aCB7IHVzZWRI
b3Jpem9udGFsVmFsdWVzLndpZHRoLnZhbHVlKCksIEZpeGVkIH0gOiBsYXlvdXRCb3guc3R5bGUo
KS5sb2dpY2FsV2lkdGgoKSwgdXNlZEhvcml6b250YWxWYWx1ZXMuY29uc3RyYWludHMud2lkdGgp
OwogICAgIGlmICghd2lkdGgpCi0gICAgICAgIHdpZHRoID0gc2hyaW5rVG9GaXRXaWR0aChsYXlv
dXRCb3gsIHVzZWRIb3Jpem9udGFsVmFsdWVzLmNvbnRhaW5pbmdCbG9ja1dpZHRoKTsKKyAgICAg
ICAgd2lkdGggPSBzaHJpbmtUb0ZpdFdpZHRoKGxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1
ZXMuY29uc3RyYWludHMud2lkdGgpOwogCiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdD
b250ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIltXaWR0aF1bTWFyZ2luXSAtPiBmbG9hdGluZyBub24t
cmVwbGFjZWQgLT4gd2lkdGgoIiA8PCAqd2lkdGggPDwgInB4KSBtYXJnaW4oIiA8PCB1c2VkSG9y
aXpvbnRhbGxNYXJnaW4uc3RhcnQgPDwgInB4LCAiIDw8IHVzZWRIb3Jpem9udGFsbE1hcmdpbi5l
bmQgPDwgInB4KSAtPiBsYXlvdXRCb3goIiA8PCAmbGF5b3V0Qm94IDw8ICIpIik7CiAgICAgcmV0
dXJuIFdpZHRoQW5kTWFyZ2luIHsgKndpZHRoLCB1c2VkSG9yaXpvbnRhbGxNYXJnaW4sIGNvbXB1
dGVkSG9yaXpvbnRhbE1hcmdpbiB9OwpAQCAtNzk4LDggKzc5OCw4IEBAIFdpZHRoQW5kTWFyZ2lu
IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdSZXBsYWNlZFdpZHRoQW5kTWFy
Z2luKGNvbnN0CiAgICAgYXV0byBjb21wdXRlZEhvcml6b250YWxNYXJnaW4gPSBHZW9tZXRyeTo6
Y29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luKGxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMp
OwogCiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0g
PDwgIltIZWlnaHRdW01hcmdpbl0gLT4gZmxvYXRpbmcgcmVwbGFjZWQgLT4gcmVkaXJlY3RlZCB0
byBpbmxpbmUgcmVwbGFjZWQiKTsKLSAgICByZXR1cm4gaW5saW5lUmVwbGFjZWRXaWR0aEFuZE1h
cmdpbihsYXlvdXRCb3gsIFVzZWRIb3Jpem9udGFsVmFsdWVzIHsgdXNlZEhvcml6b250YWxWYWx1
ZXMuY29udGFpbmluZ0Jsb2NrV2lkdGgsCi0gICAgICAgIHVzZWRIb3Jpem9udGFsVmFsdWVzLndp
ZHRoLCBVc2VkSG9yaXpvbnRhbE1hcmdpbiB7IGNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbi5zdGFy
dC52YWx1ZU9yKDApLCBjb21wdXRlZEhvcml6b250YWxNYXJnaW4uZW5kLnZhbHVlT3IoMCkgfSB9
KTsKKyAgICB1c2VkSG9yaXpvbnRhbFZhbHVlcy5tYXJnaW4gPSBVc2VkSG9yaXpvbnRhbE1hcmdp
biB7IGNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbi5zdGFydC52YWx1ZU9yKDApLCBjb21wdXRlZEhv
cml6b250YWxNYXJnaW4uZW5kLnZhbHVlT3IoMCkgfTsKKyAgICByZXR1cm4gaW5saW5lUmVwbGFj
ZWRXaWR0aEFuZE1hcmdpbihsYXlvdXRCb3gsIHVzZWRIb3Jpem9udGFsVmFsdWVzKTsKIH0KIAog
VmVydGljYWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd1Zl
cnRpY2FsR2VvbWV0cnkoY29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRIb3Jpem9udGFsVmFsdWVz
IHVzZWRIb3Jpem9udGFsVmFsdWVzLCBVc2VkVmVydGljYWxWYWx1ZXMgdXNlZFZlcnRpY2FsVmFs
dWVzKSBjb25zdApAQCAtOTA4LDcgKzkwOCw3IEBAIFdpZHRoQW5kTWFyZ2luIEZvcm1hdHRpbmdD
b250ZXh0OjpHZW9tZXRyeTo6aW5saW5lUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihjb25zdCBCCiAg
ICAgLy8gICAgSWYgMzAwcHggaXMgdG9vIHdpZGUgdG8gZml0IHRoZSBkZXZpY2UsIFVBcyBzaG91
bGQgdXNlIHRoZSB3aWR0aCBvZiB0aGUgbGFyZ2VzdCByZWN0YW5nbGUgdGhhdCBoYXMgYSAyOjEg
cmF0aW8gYW5kIGZpdHMgdGhlIGRldmljZSBpbnN0ZWFkLgogCiAgICAgYXV0byYgc3R5bGUgPSBs
YXlvdXRCb3guc3R5bGUoKTsKLSAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja1dpZHRoID0gdXNlZEhv
cml6b250YWxWYWx1ZXMuY29udGFpbmluZ0Jsb2NrV2lkdGg7CisgICAgYXV0byBjb250YWluaW5n
QmxvY2tXaWR0aCA9IHVzZWRIb3Jpem9udGFsVmFsdWVzLmNvbnN0cmFpbnRzLndpZHRoOwogICAg
IGF1dG8gY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luID0gR2VvbWV0cnk6OmNvbXB1dGVkSG9yaXpv
bnRhbE1hcmdpbihsYXlvdXRCb3gsIHVzZWRIb3Jpem9udGFsVmFsdWVzKTsKIAogICAgIGF1dG8g
dXNlZE1hcmdpblN0YXJ0ID0gWyZdIHsKQEAgLTk2OSw3ICs5NjksNyBAQCBMYXlvdXRTaXplIEZv
cm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93UG9zaXRpb25lZFBvc2l0aW9uT2Zmc2V0
KGNvbnN0IEJveAogICAgIC8vIDMuIElmIG5laXRoZXIgaXMgJ2F1dG8nLCAnYm90dG9tJyBpcyBp
Z25vcmVkIChpLmUuLCB0aGUgdXNlZCB2YWx1ZSBvZiAnYm90dG9tJyB3aWxsIGJlIG1pbnVzIHRo
ZSB2YWx1ZSBvZiAndG9wJykuCiAKICAgICBhdXRvJiBzdHlsZSA9IGxheW91dEJveC5zdHlsZSgp
OwotICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrV2lkdGggPSB1c2VkSG9yaXpvbnRhbFZhbHVlcy5j
b250YWluaW5nQmxvY2tXaWR0aDsKKyAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja1dpZHRoID0gdXNl
ZEhvcml6b250YWxWYWx1ZXMuY29uc3RyYWludHMud2lkdGg7CiAKICAgICBhdXRvIHRvcCA9IGNv
bXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5bGUubG9naWNhbFRvcCgpLCBjb250YWluaW5nQmxvY2tX
aWR0aCk7CiAgICAgYXV0byBib3R0b20gPSBjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHN0eWxlLmxv
Z2ljYWxCb3R0b20oKSwgY29udGFpbmluZ0Jsb2NrV2lkdGgpOwpAQCAtMTA0Niw3ICsxMDQ2LDcg
QEAgT3B0aW9uYWw8RWRnZXM+IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0ZWRQ
YWRkaW5nKGNvbnN0IEJveCYgbGF5b3V0Qm8KICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
IAogICAgIGF1dG8mIHN0eWxlID0gbGF5b3V0Qm94LnN0eWxlKCk7Ci0gICAgYXV0byBjb250YWlu
aW5nQmxvY2tXaWR0aCA9IHVzZWRIb3Jpem9udGFsVmFsdWVzLmNvbnRhaW5pbmdCbG9ja1dpZHRo
OworICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrV2lkdGggPSB1c2VkSG9yaXpvbnRhbFZhbHVlcy5j
b25zdHJhaW50cy53aWR0aDsKICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRleHRM
YXlvdXQsIHN0cmVhbSA8PCAiW1BhZGRpbmddIC0+IGxheW91dEJveDogIiA8PCAmbGF5b3V0Qm94
KTsKICAgICByZXR1cm4gRWRnZXMgewogICAgICAgICB7IHZhbHVlRm9yTGVuZ3RoKHN0eWxlLnBh
ZGRpbmdMZWZ0KCksIGNvbnRhaW5pbmdCbG9ja1dpZHRoKSwgdmFsdWVGb3JMZW5ndGgoc3R5bGUu
cGFkZGluZ1JpZ2h0KCksIGNvbnRhaW5pbmdCbG9ja1dpZHRoKSB9LApAQCAtMTA1NywxNCArMTA1
NywxNCBAQCBPcHRpb25hbDxFZGdlcz4gRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpjb21w
dXRlZFBhZGRpbmcoY29uc3QgQm94JiBsYXlvdXRCbwogQ29tcHV0ZWRIb3Jpem9udGFsTWFyZ2lu
IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luKGNv
bnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB1c2VkSG9yaXpvbnRhbFZh
bHVlcykgY29uc3QKIHsKICAgICBhdXRvJiBzdHlsZSA9IGxheW91dEJveC5zdHlsZSgpOwotICAg
IGF1dG8gY29udGFpbmluZ0Jsb2NrV2lkdGggPSB1c2VkSG9yaXpvbnRhbFZhbHVlcy5jb250YWlu
aW5nQmxvY2tXaWR0aDsKKyAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja1dpZHRoID0gdXNlZEhvcml6
b250YWxWYWx1ZXMuY29uc3RyYWludHMud2lkdGg7CiAgICAgcmV0dXJuIHsgY29tcHV0ZWRWYWx1
ZUlmTm90QXV0byhzdHlsZS5tYXJnaW5TdGFydCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCksIGNv
bXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5bGUubWFyZ2luRW5kKCksIGNvbnRhaW5pbmdCbG9ja1dp
ZHRoKSB9OwogfQogCiBDb21wdXRlZFZlcnRpY2FsTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6Y29tcHV0ZWRWZXJ0aWNhbE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCwgVXNl
ZEhvcml6b250YWxWYWx1ZXMgdXNlZEhvcml6b250YWxWYWx1ZXMpIGNvbnN0CiB7CiAgICAgYXV0
byYgc3R5bGUgPSBsYXlvdXRCb3guc3R5bGUoKTsKLSAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja1dp
ZHRoID0gdXNlZEhvcml6b250YWxWYWx1ZXMuY29udGFpbmluZ0Jsb2NrV2lkdGg7CisgICAgYXV0
byBjb250YWluaW5nQmxvY2tXaWR0aCA9IHVzZWRIb3Jpem9udGFsVmFsdWVzLmNvbnN0cmFpbnRz
LndpZHRoOwogICAgIHJldHVybiB7IGNvbXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5bGUubWFyZ2lu
QmVmb3JlKCksIGNvbnRhaW5pbmdCbG9ja1dpZHRoKSwgY29tcHV0ZWRWYWx1ZUlmTm90QXV0byhz
dHlsZS5tYXJnaW5BZnRlcigpLCBjb250YWluaW5nQmxvY2tXaWR0aCkgfTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKaW5kZXgg
NDgyOGQwMDJjYmJiYzRlMTdkOTliOGJjN2NhMTNhNmQ5OTdhZWRmYS4uZGE2NzlmZTM5Mjk0OTVk
MmMwYzBkZjFkNGExMzViNjAwOTRjYjZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwCkBAIC01Miw3ICs1Miw3IEBAIExheW91dFVu
aXQgRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6aGVpZ2h0VmFsdWVPZk5lYXJlc3RDb250YWlu
aW5nQmxvY2tXaXRoRml4CiAgICAgICAgIGlmIChjb250YWluaW5nQmxvY2stPmlzQm9keUJveCgp
IHx8IGNvbnRhaW5pbmdCbG9jay0+aXNEb2N1bWVudEJveCgpKSB7CiAgICAgICAgICAgICBhdXRv
JiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KCpjb250YWlu
aW5nQmxvY2ssIEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVUeXBlOjpBY2Nlc3NBbmNlc3RvckZv
cm1hdHRpbmdDb250ZXh0KTsKIAotICAgICAgICAgICAgYXV0byB1c2VkVmFsdWVzID0gVXNlZEhv
cml6b250YWxWYWx1ZXMgeyBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveCgqY29udGFp
bmluZ0Jsb2NrLT5jb250YWluaW5nQmxvY2soKSwgRm9ybWF0dGluZ0NvbnRleHQ6OkVzY2FwZVR5
cGU6OkFjY2Vzc0FuY2VzdG9yRm9ybWF0dGluZ0NvbnRleHQpLmNvbnRlbnRCb3hXaWR0aCgpIH07
CisgICAgICAgICAgICBhdXRvIHVzZWRWYWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IFVz
ZWRIb3Jpem9udGFsVmFsdWVzOjpDb25zdHJhaW50cyB7IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21l
dHJ5Rm9yQm94KCpjb250YWluaW5nQmxvY2stPmNvbnRhaW5pbmdCbG9jaygpLCBGb3JtYXR0aW5n
Q29udGV4dDo6RXNjYXBlVHlwZTo6QWNjZXNzQW5jZXN0b3JGb3JtYXR0aW5nQ29udGV4dCkgfSB9
OwogICAgICAgICAgICAgYXV0byB2ZXJ0aWNhbE1hcmdpbiA9IGZvcm1hdHRpbmdDb250ZXh0Lmdl
b21ldHJ5KCkuY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbigqY29udGFpbmluZ0Jsb2NrLCB1c2VkVmFs
dWVzKTsKICAgICAgICAgICAgIGF1dG8gdmVydGljYWxQYWRkaW5nID0gYm94R2VvbWV0cnkucGFk
ZGluZ1RvcCgpLnZhbHVlT3IoMCkgKyBib3hHZW9tZXRyeS5wYWRkaW5nQm90dG9tKCkudmFsdWVP
cigwKTsKICAgICAgICAgICAgIGF1dG8gdmVydGljYWxCb3JkZXIgPSBib3hHZW9tZXRyeS5ib3Jk
ZXJUb3AoKSArIGJveEdlb21ldHJ5LmJvcmRlckJvdHRvbSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L0xheW91dFVuaXRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9M
YXlvdXRVbml0cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTA0YzMzODkyNTVmMzNkNDA0MjUwMGE4ZGZlZTFk
NjE3MTNjNjBkOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlv
dXRVbml0cy5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJMYXlvdXRVbml0cy5oIgorCisjaWYgRU5BQkxFKExBWU9VVF9GT1JN
QVRUSU5HX0NPTlRFWFQpCisKKyNpbmNsdWRlICJEaXNwbGF5Qm94LmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKK25hbWVzcGFjZSBMYXlvdXQgeworCitVc2VkSG9yaXpvbnRhbFZhbHVlczo6Q29u
c3RyYWludHM6OkNvbnN0cmFpbnRzKGNvbnN0IERpc3BsYXk6OkJveCYgY29udGFpbmluZ0Jsb2Nr
R2VvbWV0cnkpCisgICAgOiB3aWR0aChjb250YWluaW5nQmxvY2tHZW9tZXRyeS5jb250ZW50Qm94
V2lkdGgoKSkKK3sKK30KKworfQorfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvTGF5b3V0VW5pdHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRVbml0
cy5oCmluZGV4IGI1YzUzYTJmM2IwYWQ5Y2I4NWY2NDRlYTQ3OTM4MzJjNDI4ZDA2MDguLjI5MjM3
YWM4ODQ1ZjFhMWU2Y2NjNDEzMjU4YTRlY2JmNjhkMWRiOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9MYXlvdXRVbml0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9M
YXlvdXRVbml0cy5oCkBAIC0zNCw2ICszNCwxMSBAQAogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSBEaXNwbGF5IHsKK2NsYXNzIEJv
eDsKK30KKwogbmFtZXNwYWNlIExheW91dCB7CiAKIHN0cnVjdCBQb3NpdGlvbiB7CkBAIC0xMzgs
MTkgKzE0MywyOSBAQCBzdHJ1Y3QgVmVydGljYWxHZW9tZXRyeSB7CiB9OwogCiBzdHJ1Y3QgVXNl
ZEhvcml6b250YWxWYWx1ZXMgewotICAgIGV4cGxpY2l0IFVzZWRIb3Jpem9udGFsVmFsdWVzKExh
eW91dFVuaXQgY29udGFpbmluZ0Jsb2NrV2lkdGgpCi0gICAgICAgIDogY29udGFpbmluZ0Jsb2Nr
V2lkdGgoY29udGFpbmluZ0Jsb2NrV2lkdGgpCisgICAgc3RydWN0IENvbnN0cmFpbnRzIHsKKyAg
ICAgICAgZXhwbGljaXQgQ29uc3RyYWludHMoY29uc3QgRGlzcGxheTo6Qm94JiBjb250YWluaW5n
QmxvY2tHZW9tZXRyeSk7CisgICAgICAgIGV4cGxpY2l0IENvbnN0cmFpbnRzKExheW91dFVuaXQg
aG9yaXpvbnRhbENvbnN0cmFpbnQpCisgICAgICAgICAgICA6IHdpZHRoKGhvcml6b250YWxDb25z
dHJhaW50KQogICAgICAgICB7CiAgICAgICAgIH0KIAotICAgIGV4cGxpY2l0IFVzZWRIb3Jpem9u
dGFsVmFsdWVzKExheW91dFVuaXQgY29udGFpbmluZ0Jsb2NrV2lkdGgsIE9wdGlvbmFsPExheW91
dFVuaXQ+IHdpZHRoLCBPcHRpb25hbDxVc2VkSG9yaXpvbnRhbE1hcmdpbj4gbWFyZ2luKQotICAg
ICAgICA6IGNvbnRhaW5pbmdCbG9ja1dpZHRoKGNvbnRhaW5pbmdCbG9ja1dpZHRoKQorICAgICAg
ICBMYXlvdXRVbml0IHdpZHRoOworICAgIH07CisKKyAgICBleHBsaWNpdCBVc2VkSG9yaXpvbnRh
bFZhbHVlcyhDb25zdHJhaW50cyBjb25zdHJhaW50cykKKyAgICAgICAgOiBjb25zdHJhaW50cyhj
b25zdHJhaW50cykKKyAgICB7CisgICAgfQorCisgICAgZXhwbGljaXQgVXNlZEhvcml6b250YWxW
YWx1ZXMoQ29uc3RyYWludHMgY29uc3RyYWludHMsIE9wdGlvbmFsPExheW91dFVuaXQ+IHdpZHRo
LCBPcHRpb25hbDxVc2VkSG9yaXpvbnRhbE1hcmdpbj4gbWFyZ2luKQorICAgICAgICA6IGNvbnN0
cmFpbnRzKGNvbnN0cmFpbnRzKQogICAgICAgICAsIHdpZHRoKHdpZHRoKQogICAgICAgICAsIG1h
cmdpbihtYXJnaW4pCi0gICAgICAgIHsKLSAgICAgICAgfQorICAgIHsKKyAgICB9CiAKLSAgICBM
YXlvdXRVbml0IGNvbnRhaW5pbmdCbG9ja1dpZHRoOworICAgIENvbnN0cmFpbnRzIGNvbnN0cmFp
bnRzOwogICAgIE9wdGlvbmFsPExheW91dFVuaXQ+IHdpZHRoOwogICAgIE9wdGlvbmFsPFVzZWRI
b3Jpem9udGFsTWFyZ2luPiBtYXJnaW47CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5j
cHAKaW5kZXggMmYyNGVmNDM4ZDJkM2RiZWM3YTZjYzhiNDJlYjFkY2I2NjJmNzk5Yy4uZmFjMGZi
Y2NjNWZjMmIxZmE1MGYzZmYyNjFjYmQyMTk4ODQ1Njk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRmxvYXRpbmdDb250ZXh0
LmgiCiAjaW5jbHVkZSAiRmxvYXRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIkxheW91dEJveC5oIgor
I2luY2x1ZGUgIkxheW91dENoaWxkSXRlcmF0b3IuaCIKICNpbmNsdWRlICJMYXlvdXRDb250YWlu
ZXIuaCIKICNpbmNsdWRlICJMYXlvdXRTdGF0ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKQEAg
LTE5Myw3ICsxOTQsNyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OnBsYWNlSW5GbG93
UG9zaXRpb25lZENoaWxkcmVuKGNvbnN0IEJveCYgbGF5b3V0Qm94KQogICAgICAgICAgICAgY29u
dGludWU7CiAKICAgICAgICAgYXV0byBjb21wdXRlSW5GbG93UG9zaXRpb25lZFBvc2l0aW9uID0g
WyZdIHsKLSAgICAgICAgICAgIGF1dG8gdXNlZEhvcml6b250YWxWYWx1ZXMgPSBVc2VkSG9yaXpv
bnRhbFZhbHVlcyB7IGdlb21ldHJ5Rm9yQm94KCpjaGlsZEJveC5jb250YWluaW5nQmxvY2soKSku
Y29udGVudEJveFdpZHRoKCkgfTsKKyAgICAgICAgICAgIGF1dG8gdXNlZEhvcml6b250YWxWYWx1
ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IFVzZWRIb3Jpem9udGFsVmFsdWVzOjpDb25zdHJh
aW50cyB7IGdlb21ldHJ5Rm9yQm94KCpjaGlsZEJveC5jb250YWluaW5nQmxvY2soKSkgfSB9Owog
ICAgICAgICAgICAgYXV0byBwb3NpdGlvbk9mZnNldCA9IGdlb21ldHJ5KCkuaW5GbG93UG9zaXRp
b25lZFBvc2l0aW9uT2Zmc2V0KGNoaWxkQm94LCB1c2VkSG9yaXpvbnRhbFZhbHVlcyk7CiAKICAg
ICAgICAgICAgIGF1dG8mIGRpc3BsYXlCb3ggPSBmb3JtYXR0aW5nU3RhdGUoKS5kaXNwbGF5Qm94
KGNoaWxkQm94KTsKQEAgLTIzMSw3ICsyMzIsNyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQ6OmNvbXB1dGVTdGF0aWNQb3NpdGlvbihjb25zdCBGbG9hdGluZ0NvbnRleHQmIGZsb2F0aQog
CiB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVFc3RpbWF0ZWRWZXJ0aWNhbFBv
c2l0aW9uKGNvbnN0IEJveCYgbGF5b3V0Qm94KQogewotICAgIGF1dG8gdXNlZEhvcml6b250YWxW
YWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IGdlb21ldHJ5Rm9yQm94KCpsYXlvdXRCb3gu
Y29udGFpbmluZ0Jsb2NrKCkpLmNvbnRlbnRCb3hXaWR0aCgpIH07CisgICAgYXV0byB1c2VkSG9y
aXpvbnRhbFZhbHVlcyA9IFVzZWRIb3Jpem9udGFsVmFsdWVzIHsgVXNlZEhvcml6b250YWxWYWx1
ZXM6OkNvbnN0cmFpbnRzIHsgZ2VvbWV0cnlGb3JCb3goKmxheW91dEJveC5jb250YWluaW5nQmxv
Y2soKSkgfSB9OwogICAgIGF1dG8gY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbiA9IGdlb21ldHJ5KCku
Y29tcHV0ZWRWZXJ0aWNhbE1hcmdpbihsYXlvdXRCb3gsIHVzZWRIb3Jpem9udGFsVmFsdWVzKTsK
ICAgICBhdXRvIHVzZWROb25Db2xsYXBzZWRNYXJnaW4gPSBVc2VkVmVydGljYWxNYXJnaW46Ok5v
bkNvbGxhcHNlZFZhbHVlcyB7IGNvbXB1dGVkVmVydGljYWxNYXJnaW4uYmVmb3JlLnZhbHVlT3Io
MCksIGNvbXB1dGVkVmVydGljYWxNYXJnaW4uYWZ0ZXIudmFsdWVPcigwKSB9OwogICAgIGF1dG8g
ZXN0aW1hdGVkTWFyZ2luQmVmb3JlID0gbWFyZ2luQ29sbGFwc2UoKS5lc3RpbWF0ZWRNYXJnaW5C
ZWZvcmUobGF5b3V0Qm94LCB1c2VkTm9uQ29sbGFwc2VkTWFyZ2luKTsKQEAgLTM1Niw3ICszNTcs
NyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0aEFuZE1hcmdpbihj
b25zdCBCb3gmIGxheW91dEJveCwgT3B0aW9uYQogICAgICAgICBhdmFpbGFibGVXaWR0aCA9IGdl
b21ldHJ5Rm9yQm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpLmNvbnRlbnRCb3hXaWR0
aCgpOwogCiAgICAgYXV0byBjb21wdXRlID0gWyZdKE9wdGlvbmFsPExheW91dFVuaXQ+IHVzZWRX
aWR0aCkgLT4gV2lkdGhBbmRNYXJnaW4gewotICAgICAgICBhdXRvIHVzZWRWYWx1ZXMgPSBVc2Vk
SG9yaXpvbnRhbFZhbHVlcyB7IGF2YWlsYWJsZVdpZHRoLCB1c2VkV2lkdGgsIHsgfSB9OworICAg
ICAgICBhdXRvIHVzZWRWYWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IFVzZWRIb3Jpem9u
dGFsVmFsdWVzOjpDb25zdHJhaW50cyB7IGF2YWlsYWJsZVdpZHRoIH0sIHVzZWRXaWR0aCwgeyB9
IH07CiAgICAgICAgIGlmIChsYXlvdXRCb3guaXNJbkZsb3coKSkKICAgICAgICAgICAgIHJldHVy
biBnZW9tZXRyeSgpLmluRmxvd1dpZHRoQW5kTWFyZ2luKGxheW91dEJveCwgdXNlZFZhbHVlcyk7
CiAKQEAgLTM5MCw3ICszOTEsNyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1
dGVIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gpCiB7CiAgICAgYXV0byBjb21w
dXRlID0gWyZdKGF1dG8gdXNlZFZlcnRpY2FsVmFsdWVzKSAtPiBIZWlnaHRBbmRNYXJnaW4gewog
Ci0gICAgICAgIGF1dG8gdXNlZEhvcml6b250YWxWYWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVl
cyB7IGdlb21ldHJ5Rm9yQm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpLmNvbnRlbnRC
b3hXaWR0aCgpIH07CisgICAgICAgIGF1dG8gdXNlZEhvcml6b250YWxWYWx1ZXMgPSBVc2VkSG9y
aXpvbnRhbFZhbHVlcyB7IFVzZWRIb3Jpem9udGFsVmFsdWVzOjpDb25zdHJhaW50cyB7IGdlb21l
dHJ5Rm9yQm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpIH0gfTsKICAgICAgICAgaWYg
KGxheW91dEJveC5pc0luRmxvdygpKQogICAgICAgICAgICAgcmV0dXJuIGdlb21ldHJ5KCkuaW5G
bG93SGVpZ2h0QW5kTWFyZ2luKGxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMsIHVzZWRW
ZXJ0aWNhbFZhbHVlcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9j
a2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dEdlb21l
dHJ5LmNwcAppbmRleCAyMmE5YzhhZGY4OTZhODJhYWM2MWNjOWE1MTllOTQ0NTRiZjg2ODEwLi5l
OGJmNmY5Mjc2OGEwYzk1MjBiOTczYWQwY2E4MGExZGMzYmM0ZWUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRH
ZW9tZXRyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9C
bG9ja0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCkBAIC0xMzYsNyArMTM2LDcgQEAgV2lk
dGhBbmRNYXJnaW4gQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd05vblJl
cGxhY2VkV2lkdGhBbmRNYXJnaW4KICAgICAgICAgLy8gICAgZWRnZXMgb2YgdGhlIGNvbnRhaW5p
bmcgYmxvY2suCiAKICAgICAgICAgYXV0byYgc3R5bGUgPSBsYXlvdXRCb3guc3R5bGUoKTsKLSAg
ICAgICAgYXV0byBjb250YWluaW5nQmxvY2tXaWR0aCA9IHVzZWRIb3Jpem9udGFsVmFsdWVzLmNv
bnRhaW5pbmdCbG9ja1dpZHRoOworICAgICAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja1dpZHRoID0g
dXNlZEhvcml6b250YWxWYWx1ZXMuY29uc3RyYWludHMud2lkdGg7CiAgICAgICAgIGF1dG8mIGJv
eEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChsYXlvdXRCb3gp
OwogCiAgICAgICAgIGF1dG8gd2lkdGggPSBjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHVzZWRIb3Jp
em9udGFsVmFsdWVzLndpZHRoID8gTGVuZ3RoIHsgdXNlZEhvcml6b250YWxWYWx1ZXMud2lkdGgu
dmFsdWUoKSwgRml4ZWQgfSA6IHN0eWxlLmxvZ2ljYWxXaWR0aCgpLCBjb250YWluaW5nQmxvY2tX
aWR0aCk7CkBAIC0yNzgsNyArMjc4LDcgQEAgSGVpZ2h0QW5kTWFyZ2luIEJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6Okdlb21ldHJ5OjppbkZsb3dIZWlnaHRBbmRNYXJnaW4oY29uc3QgQm8KICAgICBy
ZXR1cm4gaGVpZ2h0QW5kTWFyZ2luOwogfQogCi1XaWR0aEFuZE1hcmdpbiBCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93V2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlv
dXRCb3gsIFVzZWRIb3Jpem9udGFsVmFsdWVzIHVzZWRWYWx1ZXMpCitXaWR0aEFuZE1hcmdpbiBC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93V2lkdGhBbmRNYXJnaW4oY29u
c3QgQm94JiBsYXlvdXRCb3gsIFVzZWRIb3Jpem9udGFsVmFsdWVzIHVzZWRIb3Jpem9udGFsVmFs
dWVzKQogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNJbkZsb3coKSk7CiAKQEAgLTI4NiwxMSAr
Mjg2LDExIEBAIFdpZHRoQW5kTWFyZ2luIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5
OjppbkZsb3dXaWR0aEFuZE1hcmdpbihjb25zdCBCb3gmCiAgICAgICAgIGlmIChsYXlvdXRCb3gu
ZXN0YWJsaXNoZXNUYWJsZUZvcm1hdHRpbmdDb250ZXh0KCkpIHsKICAgICAgICAgICAgIC8vIFRo
aXMgaXMgYSBzcGVjaWFsIHRhYmxlICJmaXQtY29udGVudCBzaXplIiBiZWhhdmlvciBoYW5kbGlu
Zy4gTm90IGluIHRoZSBzcGVjIHRob3VnaC4KICAgICAgICAgICAgIC8vIFRhYmxlIHJldHVybnMg
aXRzIGZpbmFsIHdpZHRoIGFzIG1pbi9tYXguIFVzZSB0aGlzIGZpbmFsIHdpZHRoIHZhbHVlIHRv
IGNvbXB1dGVkIGhvcml6b250YWwgbWFyZ2lucyBldGMuCi0gICAgICAgICAgICB1c2VkVmFsdWVz
LndpZHRoID0gc2hyaW5rVG9GaXRXaWR0aChsYXlvdXRCb3gsIHVzZWRWYWx1ZXMuY29udGFpbmlu
Z0Jsb2NrV2lkdGgpOworICAgICAgICAgICAgdXNlZEhvcml6b250YWxWYWx1ZXMud2lkdGggPSBz
aHJpbmtUb0ZpdFdpZHRoKGxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMuY29uc3RyYWlu
dHMud2lkdGgpOwogICAgICAgICB9Ci0gICAgICAgIHJldHVybiBpbkZsb3dOb25SZXBsYWNlZFdp
ZHRoQW5kTWFyZ2luKGxheW91dEJveCwgdXNlZFZhbHVlcyk7CisgICAgICAgIHJldHVybiBpbkZs
b3dOb25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luKGxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1
ZXMpOwogICAgIH0KLSAgICByZXR1cm4gaW5GbG93UmVwbGFjZWRXaWR0aEFuZE1hcmdpbihsYXlv
dXRCb3gsIHVzZWRWYWx1ZXMpOworICAgIHJldHVybiBpbkZsb3dSZXBsYWNlZFdpZHRoQW5kTWFy
Z2luKGxheW91dEJveCwgdXNlZEhvcml6b250YWxWYWx1ZXMpOwogfQogCiBGb3JtYXR0aW5nQ29u
dGV4dDo6SW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6aW50cmluc2ljV2lkdGhDb25zdHJhaW50cyhjb25zdCBCb3gmIGxheW91dEJveCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tG
b3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tm
b3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwCmluZGV4IDRjMWUxNWJi
YzMyMDYwMmM4ZGJlYTdhNTY1Nzc2ODIyODU1ZmM5NjQuLjMyNDk1ZjhiZGM2ZGY1YzRhNjY4MmFj
NzExYjQ2NTBkZTVmY2Y1ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9j
a2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVp
cmtzLmNwcApAQCAtNjksOCArNjksOCBAQCBIZWlnaHRBbmRNYXJnaW4gQmxvY2tGb3JtYXR0aW5n
Q29udGV4dDo6UXVpcmtzOjpzdHJldGNoZWRJbkZsb3dIZWlnaHQoY29uc3QgQm94JgogICAgIGF1
dG8mIGRvY3VtZW50Qm94ID0gbGF5b3V0Qm94LmlzRG9jdW1lbnRCb3goKSA/IGxheW91dEJveCA6
ICpsYXlvdXRCb3gucGFyZW50KCk7CiAgICAgYXV0byYgZG9jdW1lbnRCb3hHZW9tZXRyeSA9IGZv
cm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KGRvY3VtZW50Qm94KTsKIAotICAgIGF1dG8m
IGluaXRpYWxDb250YWluaW5nQmxvY0dlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0
cnlGb3JCb3goaW5pdGlhbENvbnRhaW5pbmdCbG9jayhsYXlvdXRCb3gpKTsKLSAgICBhdXRvIHN0
cmVjaGVkSGVpZ2h0ID0gaW5pdGlhbENvbnRhaW5pbmdCbG9jR2VvbWV0cnkuY29udGVudEJveEhl
aWdodCgpOworICAgIGF1dG8mIGluaXRpYWxDb250YWluaW5nQmxvY2tHZW9tZXRyeSA9IGZvcm1h
dHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KGluaXRpYWxDb250YWluaW5nQmxvY2sobGF5b3V0
Qm94KSk7CisgICAgYXV0byBzdHJlY2hlZEhlaWdodCA9IGluaXRpYWxDb250YWluaW5nQmxvY2tH
ZW9tZXRyeS5jb250ZW50Qm94SGVpZ2h0KCk7CiAgICAgc3RyZWNoZWRIZWlnaHQgLT0gZG9jdW1l
bnRCb3hHZW9tZXRyeS52ZXJ0aWNhbEJvcmRlcigpICsgZG9jdW1lbnRCb3hHZW9tZXRyeS52ZXJ0
aWNhbFBhZGRpbmcoKS52YWx1ZU9yKDApOwogCiAgICAgTGF5b3V0VW5pdCB0b3RhbFZlcnRpY2Fs
TWFyZ2luOwpAQCAtODIsNyArODIsNyBAQCBIZWlnaHRBbmRNYXJnaW4gQmxvY2tGb3JtYXR0aW5n
Q29udGV4dDo6UXVpcmtzOjpzdHJldGNoZWRJbkZsb3dIZWlnaHQoY29uc3QgQm94JgogICAgICAg
ICAvLyBIZXJlIGlzIHRoZSBxdWlya3kgcGFydCBmb3IgYm9keSBib3g6CiAgICAgICAgIC8vIFN0
cmV0Y2ggdGhlIGJvZHkgdXNpbmcgdGhlIGluaXRpYWwgY29udGFpbmluZyBibG9jaydzIGhlaWdo
dCBhbmQgc2hyaW5rIGl0IHdpdGggZG9jdW1lbnQgYm94J3MgbWFyZ2luL2JvcmRlci9wYWRkaW5n
LgogICAgICAgICAvLyBUaGlzIGxvb2tzIGV4dHJlbWVseSBvZGQgd2hlbiBodG1sIGhhcyBub24t
YXV0byBoZWlnaHQuCi0gICAgICAgIGF1dG8gZG9jdW1lbnRCb3hWZXJ0aWNhbE1hcmdpbiA9IGZv
cm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5KCkuY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbihkb2N1bWVu
dEJveCwgVXNlZEhvcml6b250YWxWYWx1ZXMgeyBpbml0aWFsQ29udGFpbmluZ0Jsb2NHZW9tZXRy
eS5jb250ZW50Qm94V2lkdGgoKSB9KTsKKyAgICAgICAgYXV0byBkb2N1bWVudEJveFZlcnRpY2Fs
TWFyZ2luID0gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnkoKS5jb21wdXRlZFZlcnRpY2FsTWFy
Z2luKGRvY3VtZW50Qm94LCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IFVzZWRIb3Jpem9udGFsVmFs
dWVzOjpDb25zdHJhaW50cyB7IGluaXRpYWxDb250YWluaW5nQmxvY2tHZW9tZXRyeSB9IH0pOwog
ICAgICAgICBzdHJlY2hlZEhlaWdodCAtPSAoZG9jdW1lbnRCb3hWZXJ0aWNhbE1hcmdpbi5iZWZv
cmUudmFsdWVPcigwKSArIGRvY3VtZW50Qm94VmVydGljYWxNYXJnaW4uYWZ0ZXIudmFsdWVPcigw
KSk7CiAKICAgICAgICAgYXV0byYgYm9keUJveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQu
Z2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCmluZGV4
IGJhODhiNTRjM2NkNWQ4ZDNkODBjOGFiYmZmZDAwZWMyYWRmNDcwYjIuLmVkOWIyMjU3NDljNWJm
NTBkM2ZmMjdhZTU3NTBkNzgyYjFiOWFiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcApA
QCAtNTE5LDcgKzUxOSw3IEBAIFBvc2l0aXZlQW5kTmVnYXRpdmVWZXJ0aWNhbE1hcmdpbjo6VmFs
dWVzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlCiAgICAgICAgIHJldHVy
biBtYXJnaW5UeXBlID09IE1hcmdpblR5cGU6OkJlZm9yZSA/IHBvc2l0aXZlQW5kTmVnYXRpdmVW
ZXJ0aWNhbE1hcmdpbi5iZWZvcmUgOiBwb3NpdGl2ZUFuZE5lZ2F0aXZlVmVydGljYWxNYXJnaW4u
YWZ0ZXI7IAogICAgIH0KICAgICAvLyBUaGlzIGlzIHRoZSBlc3RpbWF0ZSBwYXRoLiBXZSBkb24n
dCB5ZXQgaGF2ZSBwb3NpdGl2ZS9uZWdhdGl2ZSBtYXJnaW4gY29tcHV0ZWQuCi0gICAgYXV0byB1
c2VkVmFsdWVzID0gVXNlZEhvcml6b250YWxWYWx1ZXMgeyBmb3JtYXR0aW5nQ29udGV4dCgpLmdl
b21ldHJ5Rm9yQm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpLmNvbnRlbnRCb3hXaWR0
aCgpIH07CisgICAgYXV0byB1c2VkVmFsdWVzID0gVXNlZEhvcml6b250YWxWYWx1ZXMgeyBVc2Vk
SG9yaXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMgeyBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21l
dHJ5Rm9yQm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpIH0gfTsKICAgICBhdXRvIGNv
bXB1dGVkVmVydGljYWxNYXJnaW4gPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5KCkuY29t
cHV0ZWRWZXJ0aWNhbE1hcmdpbihsYXlvdXRCb3gsIHVzZWRWYWx1ZXMpOwogICAgIGF1dG8gbm9u
Q29sbGFwc2VkTWFyZ2luID0gVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMg
eyBjb21wdXRlZFZlcnRpY2FsTWFyZ2luLmJlZm9yZS52YWx1ZU9yKDApLCBjb21wdXRlZFZlcnRp
Y2FsTWFyZ2luLmFmdGVyLnZhbHVlT3IoMCkgfTsgCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5oCmluZGV4IGU0OTY3MzlhZDEwMGQyZWE3YmY3NzEx
YTNkZDA2ODc5MmVkZDc5YmIuLjI4M2Q4NzQ1MzE2OThkOWExYzlmZjg0ODM4YzQzZWUzNDVlZjI4
NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdGluZ0NvbnRleHQu
aApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIkZsb2F0aW5nU3RhdGUuaCIKICNpbmNsdWRl
ICJGb3JtYXR0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIkxheW91dENvbnRhaW5lci5oIgotI2lu
Y2x1ZGUgIkxheW91dFVuaXRzLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXgg
OTFkZWFhNTc2MmQ0ODk0MjM0NWRkY2U0ODI1NGNkYjM1YWQ3MzYwNy4uN2MxY2UwOWNkNTNiODk0
MDY5YzI3NDFjOTA0YTEzNWU0YTg2MmNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250
ZXh0LmNwcApAQCAtNjgsOCArNjgsNyBAQCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojps
YXlvdXRJbkZsb3dDb250ZW50KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTE9HX1dJVEhfU1RS
RUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIltTdGFydF0gLT4gaW5saW5l
IGZvcm1hdHRpbmcgY29udGV4dCAtPiBmb3JtYXR0aW5nIHJvb3QoIiA8PCAmcm9vdCgpIDw8ICIp
Iik7Ci0gICAgYXV0byBhdmFpbGFibGVXaWR0aCA9IGdlb21ldHJ5Rm9yQm94KHJvb3QoKSkuY29u
dGVudEJveFdpZHRoKCk7Ci0gICAgYXV0byB1c2VkVmFsdWVzID0gVXNlZEhvcml6b250YWxWYWx1
ZXMgeyBhdmFpbGFibGVXaWR0aCB9OworICAgIGF1dG8gdXNlZFZhbHVlcyA9IFVzZWRIb3Jpem9u
dGFsVmFsdWVzIHsgVXNlZEhvcml6b250YWxWYWx1ZXM6OkNvbnN0cmFpbnRzIHsgZ2VvbWV0cnlG
b3JCb3gocm9vdCgpKSB9IH07CiAgICAgYXV0byogbGF5b3V0Qm94ID0gcm9vdCgpLmZpcnN0SW5G
bG93T3JGbG9hdGluZ0NoaWxkKCk7CiAgICAgLy8gQ29tcHV0ZSB3aWR0aC9oZWlnaHQgZm9yIG5v
bi10ZXh0IGNvbnRlbnQgYW5kIG1hcmdpbi9ib3JkZXIvcGFkZGluZyBmb3IgaW5saW5lIGNvbnRh
aW5lcnMuCiAgICAgd2hpbGUgKGxheW91dEJveCkgewpAQCAtOTEsNyArOTAsNyBAQCB2b2lkIElu
bGluZUZvcm1hdHRpbmdDb250ZXh0OjpsYXlvdXRJbkZsb3dDb250ZW50KCkKICAgICBmb3JtYXR0
aW5nU3RhdGUoKS5pbmxpbmVSdW5zKCkuY2xlYXIoKTsKIAogICAgIGNvbGxlY3RJbmxpbmVDb250
ZW50KCk7Ci0gICAgSW5saW5lTGF5b3V0KCp0aGlzKS5sYXlvdXQoZm9ybWF0dGluZ1N0YXRlKCku
aW5saW5lSXRlbXMoKSwgYXZhaWxhYmxlV2lkdGgpOworICAgIElubGluZUxheW91dCgqdGhpcyku
bGF5b3V0KGZvcm1hdHRpbmdTdGF0ZSgpLmlubGluZUl0ZW1zKCksIHVzZWRWYWx1ZXMuY29uc3Ry
YWludHMud2lkdGgpOwogICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91
dCwgc3RyZWFtIDw8ICJbRW5kXSAtPiBpbmxpbmUgZm9ybWF0dGluZyBjb250ZXh0IC0+IGZvcm1h
dHRpbmcgcm9vdCgiIDw8ICZyb290KCkgPDwgIikiKTsKIH0KIApAQCAtMTA3LDcgKzEwNiw3IEBA
IEZvcm1hdHRpbmdDb250ZXh0OjpJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzIElubGluZUZvcm1h
dHRpbmdDb250ZXh0Ojpjb21wdXRlZEluCiAgICAgfQogCiAgICAgVmVjdG9yPGNvbnN0IEJveCo+
IGZvcm1hdHRpbmdDb250ZXh0Um9vdExpc3Q7Ci0gICAgYXV0byB1c2VkVmFsdWVzID0gVXNlZEhv
cml6b250YWxWYWx1ZXMgeyBMYXlvdXRVbml0IHsgfSB9OworICAgIGF1dG8gdXNlZFZhbHVlcyA9
IFVzZWRIb3Jpem9udGFsVmFsdWVzIHsgVXNlZEhvcml6b250YWxWYWx1ZXM6OkNvbnN0cmFpbnRz
IHsgTGF5b3V0VW5pdCB7IH0gfSB9OwogICAgIGF1dG8qIGxheW91dEJveCA9IHJvb3QoKS5maXJz
dEluRmxvd09yRmxvYXRpbmdDaGlsZCgpOwogICAgIHdoaWxlIChsYXlvdXRCb3gpIHsKICAgICAg
ICAgaWYgKGxheW91dEJveC0+ZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKSB7CkBAIC0x
NjgsNyArMTY3LDcgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUludHJp
bnNpY1dpZHRoRm9yRm9ybWF0dGluZ1Jvb3QoY29uc3QgQm94JgogewogICAgIEFTU0VSVChmb3Jt
YXR0aW5nUm9vdC5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOwogCi0gICAgYXV0byB1
c2VkVmFsdWVzID0gVXNlZEhvcml6b250YWxWYWx1ZXMgeyBMYXlvdXRVbml0IHsgfSB9OworICAg
IGF1dG8gdXNlZFZhbHVlcyA9IFVzZWRIb3Jpem9udGFsVmFsdWVzIHsgVXNlZEhvcml6b250YWxW
YWx1ZXM6OkNvbnN0cmFpbnRzIHsgTGF5b3V0VW5pdCB7IH0gfSB9OwogICAgIGNvbXB1dGVCb3Jk
ZXJBbmRQYWRkaW5nKGZvcm1hdHRpbmdSb290LCB1c2VkVmFsdWVzKTsKICAgICBjb21wdXRlSG9y
aXpvbnRhbE1hcmdpbihmb3JtYXR0aW5nUm9vdCwgdXNlZFZhbHVlcyk7CiAKQEAgLTIxMSw3ICsy
MTAsNyBAQCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlV2lkdGhBbmRNYXJn
aW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRIbwogdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29u
dGV4dDo6Y29tcHV0ZUhlaWdodEFuZE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCkKIHsKICAg
ICBIZWlnaHRBbmRNYXJnaW4gaGVpZ2h0QW5kTWFyZ2luOwotICAgIGF1dG8gdXNlZEhvcml6b250
YWxWYWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IGdlb21ldHJ5Rm9yQm94KCpsYXlvdXRC
b3guY29udGFpbmluZ0Jsb2NrKCkpLmNvbnRlbnRCb3hXaWR0aCgpIH07CisgICAgYXV0byB1c2Vk
SG9yaXpvbnRhbFZhbHVlcyA9IFVzZWRIb3Jpem9udGFsVmFsdWVzIHsgVXNlZEhvcml6b250YWxW
YWx1ZXM6OkNvbnN0cmFpbnRzIHsgZ2VvbWV0cnlGb3JCb3goKmxheW91dEJveC5jb250YWluaW5n
QmxvY2soKSkgfSB9OwogICAgIGlmIChsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkK
ICAgICAgICAgaGVpZ2h0QW5kTWFyZ2luID0gZ2VvbWV0cnkoKS5mbG9hdGluZ0hlaWdodEFuZE1h
cmdpbihsYXlvdXRCb3gsIHVzZWRIb3Jpem9udGFsVmFsdWVzLCB7IH0pOwogICAgIGVsc2UgaWYg
KGxheW91dEJveC5pc0lubGluZUJsb2NrQm94KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1h
dHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCmluZGV4IDBkMWFjNzU3NjIwMGQzNzJlMTMyNDJhYmEy
YTY1YjJlNGVlOTQyZjQuLjQ2NzVjYzIyYjBiNTY0ODE3YjIxZmZkNWZjMjNmYTM2OTM3ZjdhYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCkBA
IC01Myw5ICs1Myw5IEBAIFdpZHRoQW5kTWFyZ2luIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpH
ZW9tZXRyeTo6aW5saW5lQmxvY2tXaWR0aEFuZE1hcmdpbihjb25zCiAgICAgLy8gSWYgJ3dpZHRo
JyBpcyAnYXV0bycsIHRoZSB1c2VkIHZhbHVlIGlzIHRoZSBzaHJpbmstdG8tZml0IHdpZHRoIGFz
IGZvciBmbG9hdGluZyBlbGVtZW50cy4KICAgICAvLyBBIGNvbXB1dGVkIHZhbHVlIG9mICdhdXRv
JyBmb3IgJ21hcmdpbi1sZWZ0JyBvciAnbWFyZ2luLXJpZ2h0JyBiZWNvbWVzIGEgdXNlZCB2YWx1
ZSBvZiAnMCcuCiAgICAgLy8gIzEKLSAgICBhdXRvIHdpZHRoID0gY29tcHV0ZWRWYWx1ZUlmTm90
QXV0byhmb3JtYXR0aW5nQ29udGV4dFJvb3Quc3R5bGUoKS5sb2dpY2FsV2lkdGgoKSwgdXNlZEhv
cml6b250YWxWYWx1ZXMuY29udGFpbmluZ0Jsb2NrV2lkdGgpOworICAgIGF1dG8gd2lkdGggPSBj
b21wdXRlZFZhbHVlSWZOb3RBdXRvKGZvcm1hdHRpbmdDb250ZXh0Um9vdC5zdHlsZSgpLmxvZ2lj
YWxXaWR0aCgpLCB1c2VkSG9yaXpvbnRhbFZhbHVlcy5jb25zdHJhaW50cy53aWR0aCk7CiAgICAg
aWYgKCF3aWR0aCkKLSAgICAgICAgd2lkdGggPSBzaHJpbmtUb0ZpdFdpZHRoKGZvcm1hdHRpbmdD
b250ZXh0Um9vdCwgdXNlZEhvcml6b250YWxWYWx1ZXMuY29udGFpbmluZ0Jsb2NrV2lkdGgpOwor
ICAgICAgICB3aWR0aCA9IHNocmlua1RvRml0V2lkdGgoZm9ybWF0dGluZ0NvbnRleHRSb290LCB1
c2VkSG9yaXpvbnRhbFZhbHVlcy5jb25zdHJhaW50cy53aWR0aCk7CiAKICAgICAvLyAjMgogICAg
IGF1dG8gY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luID0gR2VvbWV0cnk6OmNvbXB1dGVkSG9yaXpv
bnRhbE1hcmdpbihmb3JtYXR0aW5nQ29udGV4dFJvb3QsIHVzZWRIb3Jpem9udGFsVmFsdWVzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGlu
ZUZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQuY3BwCmlu
ZGV4IDg4M2Y3NDhmZjIwMWUzMmU1NmE1OWM5ZjgwMGM4NmU2MWY0Y2Q2ZjIuLmFlY2JiZjAyODVk
ZmVkZjVhMjI2Zjk2NmUzMTE4Zjc0YmVjOTY2NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNwcApAQCAtNDA0LDExICs0MDQsMTIgQEAgdm9p
ZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6SW5saW5lTGF5b3V0OjpjcmVhdGVEaXNwbGF5UnVu
cyhjb25zdCBMaW5lOjpDb250ZW4KICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAK
KyAgICAgICAgYXV0byB1c2VkSG9yaXpvbnRhbFZhbHVlcyA9IFVzZWRIb3Jpem9udGFsVmFsdWVz
IHsgVXNlZEhvcml6b250YWxWYWx1ZXM6OkNvbnN0cmFpbnRzIHsgZm9ybWF0dGluZ0NvbnRleHQu
Z2VvbWV0cnlGb3JCb3goKmxheW91dEJveC5jb250YWluaW5nQmxvY2soKSkgfSB9OwogICAgICAg
ICAvLyBJbmxpbmUgbGV2ZWwgYm94IChyZXBsYWNlZCBvciBpbmxpbmUtYmxvY2spCiAgICAgICAg
IGlmIChsaW5lUnVuLT5pc0JveCgpKSB7CiAgICAgICAgICAgICBhdXRvIHRvcExlZnQgPSBsb2dp
Y2FsUmVjdC50b3BMZWZ0KCk7CiAgICAgICAgICAgICBpZiAobGF5b3V0Qm94LmlzSW5GbG93UG9z
aXRpb25lZCgpKQotICAgICAgICAgICAgICAgIHRvcExlZnQgKz0gZ2VvbWV0cnkuaW5GbG93UG9z
aXRpb25lZFBvc2l0aW9uT2Zmc2V0KGxheW91dEJveCwgVXNlZEhvcml6b250YWxWYWx1ZXMgeyBm
b3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveCgqbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9j
aygpKS5jb250ZW50Qm94V2lkdGgoKSB9KTsKKyAgICAgICAgICAgICAgICB0b3BMZWZ0ICs9IGdl
b21ldHJ5LmluRmxvd1Bvc2l0aW9uZWRQb3NpdGlvbk9mZnNldChsYXlvdXRCb3gsIHVzZWRIb3Jp
em9udGFsVmFsdWVzKTsKICAgICAgICAgICAgIGRpc3BsYXlCb3guc2V0VG9wTGVmdCh0b3BMZWZ0
KTsKICAgICAgICAgICAgIGxpbmVCb3hSZWN0LmV4cGFuZEhvcml6b250YWxseShsb2dpY2FsUmVj
dC53aWR0aCgpKTsKICAgICAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRJbmxpbmVSdW4obWFr
ZVVuaXF1ZTxEaXNwbGF5OjpSdW4+KGxvZ2ljYWxSZWN0KSk7CkBAIC00MjUsNyArNDI2LDcgQEAg
dm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6SW5saW5lTGF5b3V0OjpjcmVhdGVEaXNwbGF5
UnVucyhjb25zdCBMaW5lOjpDb250ZW4KICAgICAgICAgLy8gSW5saW5lIGxldmVsIGNvbnRhaW5l
ciBlbmQgKDwvc3Bhbj4pCiAgICAgICAgIGlmIChsaW5lUnVuLT5pc0NvbnRhaW5lckVuZCgpKSB7
CiAgICAgICAgICAgICBpZiAobGF5b3V0Qm94LmlzSW5GbG93UG9zaXRpb25lZCgpKSB7Ci0gICAg
ICAgICAgICAgICAgYXV0byBpbmZsb3dPZmZzZXQgPSBnZW9tZXRyeS5pbkZsb3dQb3NpdGlvbmVk
UG9zaXRpb25PZmZzZXQobGF5b3V0Qm94LCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7IGZvcm1hdHRp
bmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpLmNv
bnRlbnRCb3hXaWR0aCgpIH0pOworICAgICAgICAgICAgICAgIGF1dG8gaW5mbG93T2Zmc2V0ID0g
Z2VvbWV0cnkuaW5GbG93UG9zaXRpb25lZFBvc2l0aW9uT2Zmc2V0KGxheW91dEJveCwgdXNlZEhv
cml6b250YWxWYWx1ZXMpOwogICAgICAgICAgICAgICAgIGRpc3BsYXlCb3gubW92ZUhvcml6b250
YWxseShpbmZsb3dPZmZzZXQud2lkdGgoKSk7CiAgICAgICAgICAgICAgICAgZGlzcGxheUJveC5t
b3ZlVmVydGljYWxseShpbmZsb3dPZmZzZXQuaGVpZ2h0KCkpOwogICAgICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1h
dHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcv
VGFibGVGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggNzFmNWMyZGFmMGQ5OWRmZTI2YmY2ZmVj
YWRhZGEwNjlmYTZlNWU2Ny4uZDkxMzgxNjZiZmIwNjI2MDA3MjgwZTRmZTUxNGExZWU4ZTJmOTlj
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJs
ZUZvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVm
b3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwCkBAIC0xOTksNyArMTk5LDcgQEAg
dm9pZCBUYWJsZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlUHJlZmVycmVkV2lkdGhGb3JDb2x1
bW5zKCkKICAgICAgICAgICAgICAgICBpbnRyaW5zaWNXaWR0aCA9IGxheW91dFN0YXRlKCkuY3Jl
YXRlRm9ybWF0dGluZ0NvbnRleHQoZG93bmNhc3Q8Q29udGFpbmVyPih0YWJsZUNlbGxCb3gpKS0+
Y29tcHV0ZWRJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKCk7CiAgICAgICAgICAgICBpbnRyaW5z
aWNXaWR0aCA9IGdlb21ldHJ5KCkuY29uc3RyYWluQnlNaW5NYXhXaWR0aCh0YWJsZUNlbGxCb3gs
ICppbnRyaW5zaWNXaWR0aCk7CiAgICAgICAgICAgICBhdXRvIGJvcmRlciA9IGdlb21ldHJ5KCku
Y29tcHV0ZWRCb3JkZXIodGFibGVDZWxsQm94KTsKLSAgICAgICAgICAgIGF1dG8gcGFkZGluZyA9
ICpnZW9tZXRyeSgpLmNvbXB1dGVkUGFkZGluZyh0YWJsZUNlbGxCb3gsIFVzZWRIb3Jpem9udGFs
VmFsdWVzKHsgfSkpOworICAgICAgICAgICAgYXV0byBwYWRkaW5nID0gKmdlb21ldHJ5KCkuY29t
cHV0ZWRQYWRkaW5nKHRhYmxlQ2VsbEJveCwgVXNlZEhvcml6b250YWxWYWx1ZXMgeyBVc2VkSG9y
aXpvbnRhbFZhbHVlczo6Q29uc3RyYWludHMgeyBMYXlvdXRVbml0IHsgfSB9IH0pOwogCiAgICAg
ICAgICAgICBpbnRyaW5zaWNXaWR0aC0+ZXhwYW5kKGJvcmRlci5ob3Jpem9udGFsLndpZHRoKCkg
KyBwYWRkaW5nLmhvcml6b250YWwud2lkdGgoKSk7CiAgICAgICAgICAgICBmb3JtYXR0aW5nU3Rh
dGUuc2V0SW50cmluc2ljV2lkdGhDb25zdHJhaW50c0ZvckJveCh0YWJsZUNlbGxCb3gsICppbnRy
aW5zaWNXaWR0aCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>