<?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>126648</bug_id>
          
          <creation_ts>2014-01-08 11:15:10 -0800</creation_ts>
          <short_desc>[CSS Shapes] Factor the ReferenceBox type out of BasicShapes</short_desc>
          <delta_ts>2014-01-09 12:12:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>124173</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bear Travis">betravis</reporter>
          <assigned_to name="Bear Travis">betravis</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>965556</commentid>
    <comment_count>0</comment_count>
    <who name="Bear Travis">betravis</who>
    <bug_when>2014-01-08 11:15:10 -0800</bug_when>
    <thetext>Move the enum to RenderStyleConstants so we don&apos;t have to namespace all the references with BasicShape.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965636</commentid>
    <comment_count>1</comment_count>
      <attachid>220665</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2014-01-08 14:16:47 -0800</bug_when>
    <thetext>Created attachment 220665
Initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965994</commentid>
    <comment_count>2</comment_count>
      <attachid>220665</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-01-09 11:09:56 -0800</bug_when>
    <thetext>Comment on attachment 220665
Initial patch

looks much better already. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966011</commentid>
    <comment_count>3</comment_count>
      <attachid>220665</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-09 12:12:25 -0800</bug_when>
    <thetext>Comment on attachment 220665
Initial patch

Clearing flags on attachment: 220665

Committed r161569: &lt;http://trac.webkit.org/changeset/161569&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966012</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-09 12:12:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220665</attachid>
            <date>2014-01-08 14:16:47 -0800</date>
            <delta_ts>2014-01-09 12:12:25 -0800</delta_ts>
            <desc>Initial patch</desc>
            <filename>bug-126648-20140108141638.patch</filename>
            <type>text/plain</type>
            <size>36518</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxNDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjliNWY4MWQ4ZmEyODA2
OTJlYjNlNmFhNTdhMjA5MzM0ODFlZjkxNy4uMDhjNDQxNGU3MGViOWZiZDc4ZDg0NDBjMjZmODU3
NzYwNWNjMzg2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE0LTAxLTA4ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIFNoYXBlc10gRmFj
dG9yIHRoZSBSZWZlcmVuY2VCb3ggdHlwZSBvdXQgb2YgQmFzaWNTaGFwZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjY0OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmluZyBSZWZlcmVuY2VCb3gg
b3V0IG9mIEJhc2ljU2hhcGVzIGFuZCBpbnRvIFJlbmRlclN0eWxlQ29uc3RhbnRzCisgICAgICAg
IGFzIHRoZSBMYXlvdXRCb3ggZW51bS4gTW9zdCBvZiB0aGUgY2hhbmdlcyBhcmUgcmVtb3Zpbmcg
dGhlIEJhc2ljU2hhcGUKKyAgICAgICAgbmFtZXNwYWNlLgorCisgICAgICAgIFJlZmFjdG9yaW5n
LCBubyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBjc3MvQmFzaWNTaGFwZUZ1bmN0aW9ucy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZUZvckJveCk6CisgICAgICAgIChXZWJDb3JlOjpib3hG
b3JWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZUZvckJhc2ljU2hhcGUpOgorICAgICAg
ICAoV2ViQ29yZTo6YmFzaWNTaGFwZUZvclZhbHVlKToKKyAgICAgICAgKiBjc3MvQmFzaWNTaGFw
ZUZ1bmN0aW9ucy5oOgorICAgICAgICAqIGNzcy9DU1NCYXNpY1NoYXBlcy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NCYXNpY1NoYXBlUmVjdGFuZ2xlOjpjc3NUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU0Jhc2ljU2hhcGVSZWN0YW5nbGU6OmVxdWFscyk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NCYXNpY1NoYXBlQ2lyY2xlOjpjc3NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Jh
c2ljU2hhcGVDaXJjbGU6OmVxdWFscyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NEZXByZWNhdGVk
QmFzaWNTaGFwZUNpcmNsZTo6Y3NzVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NEZXByZWNh
dGVkQmFzaWNTaGFwZUNpcmNsZTo6ZXF1YWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2lj
U2hhcGVFbGxpcHNlOjpjc3NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVF
bGxpcHNlOjplcXVhbHMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRGVwcmVjYXRlZEJhc2ljU2hh
cGVFbGxpcHNlOjpjc3NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0RlcHJlY2F0ZWRCYXNp
Y1NoYXBlRWxsaXBzZTo6ZXF1YWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVQ
b2x5Z29uOjpjc3NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVQb2x5Z29u
OjplcXVhbHMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xl
Ojpjc3NUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldFJlY3Rhbmds
ZTo6ZXF1YWxzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0Jhc2ljU2hhcGVJbnNldDo6Y3NzVGV4
dCk6CisgICAgICAgICogY3NzL0NTU0Jhc2ljU2hhcGVzLmg6CisgICAgICAgIChXZWJDb3JlOjpD
U1NCYXNpY1NoYXBlOjpsYXlvdXRCb3gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQmFzaWNTaGFw
ZTo6c2V0TGF5b3V0Qm94KToKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnByb3Bl
cnR5VmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUGFyc2VyOjpwYXJzZVNoYXBlUHJvcGVydHkpOgorICAgICAgICAqIGNzcy9EZXByZWNh
dGVkU3R5bGVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlDbGlw
UGF0aDo6YXBwbHlWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5U2hhcGU6
OmFwcGx5VmFsdWUpOgorICAgICAgICAqIHJlbmRlcmluZy9DbGlwUGF0aE9wZXJhdGlvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6U2hhcGVDbGlwUGF0aE9wZXJhdGlvbjo6c2V0UmVmZXJlbmNlQm94
KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXBlQ2xpcFBhdGhPcGVyYXRpb246OnJlZmVyZW5jZUJv
eCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFwZUNsaXBQYXRoT3BlcmF0aW9uOjpTaGFwZUNsaXBQ
YXRoT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkJveENsaXBQYXRoT3BlcmF0aW9uOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Qm94Q2xpcFBhdGhPcGVyYXRpb246OnJlZmVyZW5j
ZUJveCk6CisgICAgICAgIChXZWJDb3JlOjpCb3hDbGlwUGF0aE9wZXJhdGlvbjo6Qm94Q2xpcFBh
dGhPcGVyYXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hhcGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2hhcGU6OmNyZWF0ZUxheW91dEJveFNoYXBlKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFw
ZUluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVJbmZvPFJlbmRlclR5cGU+Ojpjb21w
dXRlZFNoYXBlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5oOgorICAg
ICAgICAoV2ViQ29yZTo6U2hhcGVJbmZvOjpzZXRTaGFwZVNpemUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhcGVJbmZvOjpsb2dpY2FsVG9wT2Zmc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXBl
SW5mbzo6bG9naWNhbExlZnRPZmZzZXQpOgorICAgICAgICAqIHJlbmRlcmluZy9zaGFwZXMvU2hh
cGVJbnNpZGVJbmZvLmg6CisgICAgICAgICogcmVuZGVyaW5nL3NoYXBlcy9TaGFwZU91dHNpZGVJ
bmZvLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0Jhc2ljU2hhcGVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkJhc2ljU2hhcGU6OmNhbkJsZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkJh
c2ljU2hhcGU6OnJlZmVyZW5jZUJveFNpemUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9C
YXNpY1NoYXBlcy5oOgorICAgICAgICAoV2ViQ29yZTo6QmFzaWNTaGFwZTo6bGF5b3V0Qm94KToK
KyAgICAgICAgKFdlYkNvcmU6OkJhc2ljU2hhcGU6OnNldExheW91dEJveCk6CisgICAgICAgIChX
ZWJDb3JlOjpCYXNpY1NoYXBlOjpCYXNpY1NoYXBlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU2hh
cGVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVWYWx1ZTo6Y3JlYXRlTGF5b3V0Qm94
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcGVWYWx1ZTo6bGF5b3V0Qm94KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNoYXBlVmFsdWU6OlNoYXBlVmFsdWUpOgorCiAyMDE0LTAxLTA3ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFBsYXRmb3JtTGF5ZXIgY29u
dGFpbmluZyBzY3JvbGxiYXJzIGRvZXMgbm90IGRpc2FwcGVhciB3aGVuIHNldHRpbmcgb3ZlcmZs
b3c6aGlkZGVuIG9uIHBhZ2Ugcm9vdCwgdW50aWwgcmVzaXplLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0Jhc2ljU2hhcGVGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0Jhc2ljU2hhcGVGdW5jdGlvbnMuY3BwCmluZGV4IGQ4ODRkYzY2OThjYTVhYWVmMWM2MGNkMjMz
ZTIxODg4YjQ3YTI5NjQuLmVkYTc3NzAxYzQ2Y2NmMzE5NjdkZmNjZjk2YmNiODE2Y2Y5ODQzZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9CYXNpY1NoYXBlRnVuY3Rpb25zLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQmFzaWNTaGFwZUZ1bmN0aW9ucy5jcHAKQEAgLTM5LDQ1
ICszOSw0NSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8Q1NTUHJpbWl0
aXZlVmFsdWU+IHZhbHVlRm9yQm94KEJhc2ljU2hhcGU6OlJlZmVyZW5jZUJveCBib3gpCitQYXNz
UmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiB2YWx1ZUZvckJveChMYXlvdXRCb3ggYm94KQogewog
ICAgIHN3aXRjaCAoYm94KSB7Ci0gICAgY2FzZSBCYXNpY1NoYXBlOjpDb250ZW50Qm94OgorICAg
IGNhc2UgQ29udGVudEJveDoKICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlk
ZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUNvbnRlbnRCb3gpOwotICAgIGNhc2UgQmFzaWNTaGFwZTo6
UGFkZGluZ0JveDoKKyAgICBjYXNlIFBhZGRpbmdCb3g6CiAgICAgICAgIHJldHVybiBjc3NWYWx1
ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVQYWRkaW5nQm94KTsKLSAgICBj
YXNlIEJhc2ljU2hhcGU6OkJvcmRlckJveDoKKyAgICBjYXNlIEJvcmRlckJveDoKICAgICAgICAg
cmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUJvcmRl
ckJveCk7Ci0gICAgY2FzZSBCYXNpY1NoYXBlOjpNYXJnaW5Cb3g6CisgICAgY2FzZSBNYXJnaW5C
b3g6CiAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUo
Q1NTVmFsdWVNYXJnaW5Cb3gpOwotICAgIGNhc2UgQmFzaWNTaGFwZTo6Qm91bmRpbmdCb3g6Cisg
ICAgY2FzZSBCb3VuZGluZ0JveDoKICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0
ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUJvdW5kaW5nQm94KTsKLSAgICBjYXNlIEJhc2ljU2hh
cGU6Ok5vbmU6CisgICAgY2FzZSBCb3hNaXNzaW5nOgogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
ICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CiAKLUJhc2ljU2hhcGU6OlJlZmVyZW5jZUJveCBib3hGb3JWYWx1ZShjb25zdCBDU1NQcmltaXRp
dmVWYWx1ZSogdmFsdWUpCitMYXlvdXRCb3ggYm94Rm9yVmFsdWUoY29uc3QgQ1NTUHJpbWl0aXZl
VmFsdWUqIHZhbHVlKQogewogICAgIGlmICghdmFsdWUpCi0gICAgICAgIHJldHVybiBCYXNpY1No
YXBlOjpOb25lOworICAgICAgICByZXR1cm4gQm94TWlzc2luZzsKIAogICAgIHN3aXRjaCAodmFs
dWUtPmdldFZhbHVlSUQoKSkgewogICAgIGNhc2UgQ1NTVmFsdWVDb250ZW50Qm94OgotICAgICAg
ICByZXR1cm4gQmFzaWNTaGFwZTo6Q29udGVudEJveDsKKyAgICAgICAgcmV0dXJuIENvbnRlbnRC
b3g7CiAgICAgY2FzZSBDU1NWYWx1ZVBhZGRpbmdCb3g6Ci0gICAgICAgIHJldHVybiBCYXNpY1No
YXBlOjpQYWRkaW5nQm94OworICAgICAgICByZXR1cm4gUGFkZGluZ0JveDsKICAgICBjYXNlIENT
U1ZhbHVlQm9yZGVyQm94OgotICAgICAgICByZXR1cm4gQmFzaWNTaGFwZTo6Qm9yZGVyQm94Owor
ICAgICAgICByZXR1cm4gQm9yZGVyQm94OwogICAgIGNhc2UgQ1NTVmFsdWVNYXJnaW5Cb3g6Ci0g
ICAgICAgIHJldHVybiBCYXNpY1NoYXBlOjpNYXJnaW5Cb3g7CisgICAgICAgIHJldHVybiBNYXJn
aW5Cb3g7CiAgICAgY2FzZSBDU1NWYWx1ZUJvdW5kaW5nQm94OgotICAgICAgICByZXR1cm4gQmFz
aWNTaGFwZTo6Qm91bmRpbmdCb3g7CisgICAgICAgIHJldHVybiBCb3VuZGluZ0JveDsKICAgICBk
ZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIEJh
c2ljU2hhcGU6Ok5vbmU7CisgICAgICAgIHJldHVybiBCb3hNaXNzaW5nOwogICAgIH0KIH0KIApA
QCAtMjMwLDcgKzIzMCw3IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlRm9yQmFzaWNTaGFw
ZShjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIGNvbnN0IEJhc2ljU2hhCiAgICAgICAgIGJyZWFr
OwogICAgIH0KIAotICAgIGJhc2ljU2hhcGVWYWx1ZS0+c2V0Qm94KHZhbHVlRm9yQm94KGJhc2lj
U2hhcGUtPmJveCgpKSk7CisgICAgYmFzaWNTaGFwZVZhbHVlLT5zZXRMYXlvdXRCb3godmFsdWVG
b3JCb3goYmFzaWNTaGFwZS0+bGF5b3V0Qm94KCkpKTsKIAogICAgIHJldHVybiBwb29sLmNyZWF0
ZVZhbHVlKGJhc2ljU2hhcGVWYWx1ZS5yZWxlYXNlKCkpOwogfQpAQCAtNDYwLDcgKzQ2MCw3IEBA
IFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gYmFzaWNTaGFwZUZvclZhbHVlKGNvbnN0IFJlbmRlclN0
eWxlKiBzdHlsZSwgY29uc3QgUmVuZGVyCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGJh
c2ljU2hhcGUtPnNldEJveChib3hGb3JWYWx1ZShiYXNpY1NoYXBlVmFsdWUtPmJveCgpKSk7Cisg
ICAgYmFzaWNTaGFwZS0+c2V0TGF5b3V0Qm94KGJveEZvclZhbHVlKGJhc2ljU2hhcGVWYWx1ZS0+
bGF5b3V0Qm94KCkpKTsKIAogICAgIHJldHVybiBiYXNpY1NoYXBlLnJlbGVhc2UoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9CYXNpY1NoYXBlRnVuY3Rpb25zLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQmFzaWNTaGFwZUZ1bmN0aW9ucy5oCmluZGV4IGVlNTc3NTE5Yzk0NzEz
ZDlmZjM5MzRhYTgzNGY5MTc4YTBjZjg3OWQuLjk0MzU0YTBiMmZjZTMyZjcyNGY0ODYyNGNmZDcw
OGFlZjNhZGZjM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9CYXNpY1NoYXBlRnVu
Y3Rpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0Jhc2ljU2hhcGVGdW5jdGlvbnMuaApA
QCAtNDMsOCArNDMsOCBAQCBjbGFzcyBSZW5kZXJTdHlsZTsKIFBhc3NSZWZQdHI8Q1NTVmFsdWU+
IHZhbHVlRm9yQmFzaWNTaGFwZShjb25zdCBSZW5kZXJTdHlsZSosIGNvbnN0IEJhc2ljU2hhcGUq
KTsKIFBhc3NSZWZQdHI8QmFzaWNTaGFwZT4gYmFzaWNTaGFwZUZvclZhbHVlKGNvbnN0IFJlbmRl
clN0eWxlKiwgY29uc3QgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSwgY29uc3QgQ1NTQmFzaWNTaGFw
ZSopOwogCi1QYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiB2YWx1ZUZvckJveChCYXNpY1No
YXBlOjpSZWZlcmVuY2VCb3gpOwotQmFzaWNTaGFwZTo6UmVmZXJlbmNlQm94IGJveEZvclZhbHVl
KGNvbnN0IENTU1ByaW1pdGl2ZVZhbHVlKik7CitQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVl
PiB2YWx1ZUZvckJveChMYXlvdXRCb3gpOworTGF5b3V0Qm94IGJveEZvclZhbHVlKGNvbnN0IENT
U1ByaW1pdGl2ZVZhbHVlKik7CiAKIGZsb2F0IGZsb2F0VmFsdWVGb3JDZW50ZXJDb29yZGluYXRl
KGNvbnN0IEJhc2ljU2hhcGVDZW50ZXJDb29yZGluYXRlJiwgZmxvYXQpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NCYXNpY1NoYXBlcy5jcHAKaW5kZXggNGRjMjUxYzZiY2FmOTU2M2MzMjFlNmQ0MDYy
YzRhNmFiNWZmYmRiNi4uMzRhMDFiZTRkNDAzZTFjMTQzOTQ0ZDIwOTVkY2U5NWM5OTE5MjRiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFwZXMuY3BwCkBAIC03OCw3ICs3OCw3IEBAIFN0
cmluZyBDU1NCYXNpY1NoYXBlUmVjdGFuZ2xlOjpjc3NUZXh0KCkgY29uc3QKICAgICAgICAgbV9o
ZWlnaHQtPmNzc1RleHQoKSwKICAgICAgICAgbV9yYWRpdXNYLmdldCgpID8gbV9yYWRpdXNYLT5j
c3NUZXh0KCkgOiBTdHJpbmcoKSwKICAgICAgICAgbV9yYWRpdXNZLmdldCgpID8gbV9yYWRpdXNZ
LT5jc3NUZXh0KCkgOiBTdHJpbmcoKSwKLSAgICAgICAgbV9ib3ggPyBtX2JveC0+Y3NzVGV4dCgp
IDogU3RyaW5nKCkpOworICAgICAgICBtX2xheW91dEJveCA/IG1fbGF5b3V0Qm94LT5jc3NUZXh0
KCkgOiBTdHJpbmcoKSk7CiB9CiAKIGJvb2wgQ1NTQmFzaWNTaGFwZVJlY3RhbmdsZTo6ZXF1YWxz
KGNvbnN0IENTU0Jhc2ljU2hhcGUmIHNoYXBlKSBjb25zdApAQCAtOTMsNyArOTMsNyBAQCBib29s
IENTU0Jhc2ljU2hhcGVSZWN0YW5nbGU6OmVxdWFscyhjb25zdCBDU1NCYXNpY1NoYXBlJiBzaGFw
ZSkgY29uc3QKICAgICAgICAgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1faGVpZ2h0LCBvdGhlci5t
X2hlaWdodCkKICAgICAgICAgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fcmFkaXVzWCwgb3RoZXIu
bV9yYWRpdXNYKQogICAgICAgICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9yYWRpdXNZLCBvdGhl
ci5tX3JhZGl1c1kpCi0gICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX2JveCwgb3RoZXIu
bV9ib3gpOworICAgICAgICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9sYXlvdXRCb3gsIG90aGVy
Lm1fbGF5b3V0Qm94KTsKIH0KIAogc3RhdGljIFN0cmluZyBidWlsZENpcmNsZVN0cmluZyhjb25z
dCBTdHJpbmcmIHJhZGl1cywgY29uc3QgU3RyaW5nJiBjZW50ZXJYLCBjb25zdCBTdHJpbmcmIGNl
bnRlclksIGNvbnN0IFN0cmluZyYgYm94KQpAQCAtMTI4LDcgKzEyOCw3IEBAIFN0cmluZyBDU1NC
YXNpY1NoYXBlQ2lyY2xlOjpjc3NUZXh0KCkgY29uc3QKICAgICByZXR1cm4gYnVpbGRDaXJjbGVT
dHJpbmcobV9yYWRpdXMgPyBtX3JhZGl1cy0+Y3NzVGV4dCgpIDogU3RyaW5nKCksCiAgICAgICAg
IG1fY2VudGVyWCA/IG1fY2VudGVyWC0+Y3NzVGV4dCgpIDogU3RyaW5nKCksCiAgICAgICAgIG1f
Y2VudGVyWSA/IG1fY2VudGVyWS0+Y3NzVGV4dCgpIDogU3RyaW5nKCksCi0gICAgICAgIG1fYm94
ID8gbV9ib3gtPmNzc1RleHQoKSA6IFN0cmluZygpKTsKKyAgICAgICAgbV9sYXlvdXRCb3ggPyBt
X2xheW91dEJveC0+Y3NzVGV4dCgpIDogU3RyaW5nKCkpOwogfQogCiBib29sIENTU0Jhc2ljU2hh
cGVDaXJjbGU6OmVxdWFscyhjb25zdCBDU1NCYXNpY1NoYXBlJiBzaGFwZSkgY29uc3QKQEAgLTE0
MCw3ICsxNDAsNyBAQCBib29sIENTU0Jhc2ljU2hhcGVDaXJjbGU6OmVxdWFscyhjb25zdCBDU1NC
YXNpY1NoYXBlJiBzaGFwZSkgY29uc3QKICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlUHRyKG1f
Y2VudGVyWCwgb3RoZXIubV9jZW50ZXJYKQogICAgICAgICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIo
bV9jZW50ZXJZLCBvdGhlci5tX2NlbnRlclkpCiAgICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0
cihtX3JhZGl1cywgb3RoZXIubV9yYWRpdXMpCi0gICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0
cihtX2JveCwgb3RoZXIubV9ib3gpOworICAgICAgICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9s
YXlvdXRCb3gsIG90aGVyLm1fbGF5b3V0Qm94KTsKIH0KIAogc3RhdGljIFN0cmluZyBidWlsZERl
cHJlY2F0ZWRDaXJjbGVTdHJpbmcoY29uc3QgU3RyaW5nJiB4LCBjb25zdCBTdHJpbmcmIHksIGNv
bnN0IFN0cmluZyYgcmFkaXVzLCBjb25zdCBTdHJpbmcmIGJveCkKQEAgLTE2NCw3ICsxNjQsNyBA
QCBzdGF0aWMgU3RyaW5nIGJ1aWxkRGVwcmVjYXRlZENpcmNsZVN0cmluZyhjb25zdCBTdHJpbmcm
IHgsIGNvbnN0IFN0cmluZyYgeSwgY29ucwogCiBTdHJpbmcgQ1NTRGVwcmVjYXRlZEJhc2ljU2hh
cGVDaXJjbGU6OmNzc1RleHQoKSBjb25zdAogewotICAgIHJldHVybiBidWlsZERlcHJlY2F0ZWRD
aXJjbGVTdHJpbmcobV9jZW50ZXJYLT5jc3NUZXh0KCksIG1fY2VudGVyWS0+Y3NzVGV4dCgpLCBt
X3JhZGl1cy0+Y3NzVGV4dCgpLCBtX2JveCA/IG1fYm94LT5jc3NUZXh0KCkgOiBTdHJpbmcoKSk7
CisgICAgcmV0dXJuIGJ1aWxkRGVwcmVjYXRlZENpcmNsZVN0cmluZyhtX2NlbnRlclgtPmNzc1Rl
eHQoKSwgbV9jZW50ZXJZLT5jc3NUZXh0KCksIG1fcmFkaXVzLT5jc3NUZXh0KCksIG1fbGF5b3V0
Qm94ID8gbV9sYXlvdXRCb3gtPmNzc1RleHQoKSA6IFN0cmluZygpKTsKIH0KIAogYm9vbCBDU1NE
ZXByZWNhdGVkQmFzaWNTaGFwZUNpcmNsZTo6ZXF1YWxzKGNvbnN0IENTU0Jhc2ljU2hhcGUmIHNo
YXBlKSBjb25zdApAQCAtMTc2LDcgKzE3Niw3IEBAIGJvb2wgQ1NTRGVwcmVjYXRlZEJhc2ljU2hh
cGVDaXJjbGU6OmVxdWFscyhjb25zdCBDU1NCYXNpY1NoYXBlJiBzaGFwZSkgY29uc3QKICAgICBy
ZXR1cm4gY29tcGFyZUNTU1ZhbHVlUHRyKG1fY2VudGVyWCwgb3RoZXIubV9jZW50ZXJYKQogICAg
ICAgICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9jZW50ZXJZLCBvdGhlci5tX2NlbnRlclkpCiAg
ICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX3JhZGl1cywgb3RoZXIubV9yYWRpdXMpCi0g
ICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX2JveCwgb3RoZXIubV9ib3gpOworICAgICAg
ICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9sYXlvdXRCb3gsIG90aGVyLm1fbGF5b3V0Qm94KTsK
IH0KIAogc3RhdGljIFN0cmluZyBidWlsZEVsbGlwc2VTdHJpbmcoY29uc3QgU3RyaW5nJiByYWRp
dXNYLCBjb25zdCBTdHJpbmcmIHJhZGl1c1ksIGNvbnN0IFN0cmluZyYgY2VudGVyWCwgY29uc3Qg
U3RyaW5nJiBjZW50ZXJZLCBjb25zdCBTdHJpbmcmIGJveCkKQEAgLTIyMSw3ICsyMjEsNyBAQCBT
dHJpbmcgQ1NTQmFzaWNTaGFwZUVsbGlwc2U6OmNzc1RleHQoKSBjb25zdAogICAgICAgICBtX3Jh
ZGl1c1kgPyBtX3JhZGl1c1ktPmNzc1RleHQoKSA6IFN0cmluZygpLAogICAgICAgICBtX2NlbnRl
clggPyBtX2NlbnRlclgtPmNzc1RleHQoKSA6IFN0cmluZygpLAogICAgICAgICBtX2NlbnRlclkg
PyBtX2NlbnRlclktPmNzc1RleHQoKSA6IFN0cmluZygpLAotICAgICAgICBtX2JveCA/IG1fYm94
LT5jc3NUZXh0KCkgOiBTdHJpbmcoKSk7CisgICAgICAgIG1fbGF5b3V0Qm94ID8gbV9sYXlvdXRC
b3gtPmNzc1RleHQoKSA6IFN0cmluZygpKTsKIH0KIAogYm9vbCBDU1NCYXNpY1NoYXBlRWxsaXBz
ZTo6ZXF1YWxzKGNvbnN0IENTU0Jhc2ljU2hhcGUmIHNoYXBlKSBjb25zdApAQCAtMjM0LDcgKzIz
NCw3IEBAIGJvb2wgQ1NTQmFzaWNTaGFwZUVsbGlwc2U6OmVxdWFscyhjb25zdCBDU1NCYXNpY1No
YXBlJiBzaGFwZSkgY29uc3QKICAgICAgICAgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fY2VudGVy
WSwgb3RoZXIubV9jZW50ZXJZKQogICAgICAgICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9yYWRp
dXNYLCBvdGhlci5tX3JhZGl1c1gpCiAgICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX3Jh
ZGl1c1ksIG90aGVyLm1fcmFkaXVzWSkKLSAgICAgICAgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1f
Ym94LCBvdGhlci5tX2JveCk7CisgICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX2xheW91
dEJveCwgb3RoZXIubV9sYXlvdXRCb3gpOwogfQogCiBzdGF0aWMgU3RyaW5nIGJ1aWxkRGVwcmVj
YXRlZEVsbGlwc2VTdHJpbmcoY29uc3QgU3RyaW5nJiB4LCBjb25zdCBTdHJpbmcmIHksIGNvbnN0
IFN0cmluZyYgcmFkaXVzWCwgY29uc3QgU3RyaW5nJiByYWRpdXNZLCBjb25zdCBTdHJpbmcmIGJv
eCkKQEAgLTI2MCw3ICsyNjAsNyBAQCBzdGF0aWMgU3RyaW5nIGJ1aWxkRGVwcmVjYXRlZEVsbGlw
c2VTdHJpbmcoY29uc3QgU3RyaW5nJiB4LCBjb25zdCBTdHJpbmcmIHksIGNvbgogCiBTdHJpbmcg
Q1NTRGVwcmVjYXRlZEJhc2ljU2hhcGVFbGxpcHNlOjpjc3NUZXh0KCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gYnVpbGREZXByZWNhdGVkRWxsaXBzZVN0cmluZyhtX2NlbnRlclgtPmNzc1RleHQoKSwg
bV9jZW50ZXJZLT5jc3NUZXh0KCksIG1fcmFkaXVzWC0+Y3NzVGV4dCgpLCBtX3JhZGl1c1ktPmNz
c1RleHQoKSwgbV9ib3ggPyBtX2JveC0+Y3NzVGV4dCgpIDogU3RyaW5nKCkpOworICAgIHJldHVy
biBidWlsZERlcHJlY2F0ZWRFbGxpcHNlU3RyaW5nKG1fY2VudGVyWC0+Y3NzVGV4dCgpLCBtX2Nl
bnRlclktPmNzc1RleHQoKSwgbV9yYWRpdXNYLT5jc3NUZXh0KCksIG1fcmFkaXVzWS0+Y3NzVGV4
dCgpLCBtX2xheW91dEJveCA/IG1fbGF5b3V0Qm94LT5jc3NUZXh0KCkgOiBTdHJpbmcoKSk7CiB9
CiAKIGJvb2wgQ1NTRGVwcmVjYXRlZEJhc2ljU2hhcGVFbGxpcHNlOjplcXVhbHMoY29uc3QgQ1NT
QmFzaWNTaGFwZSYgc2hhcGUpIGNvbnN0CkBAIC0yNzMsNyArMjczLDcgQEAgYm9vbCBDU1NEZXBy
ZWNhdGVkQmFzaWNTaGFwZUVsbGlwc2U6OmVxdWFscyhjb25zdCBDU1NCYXNpY1NoYXBlJiBzaGFw
ZSkgY29uc3QKICAgICAgICAgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fY2VudGVyWSwgb3RoZXIu
bV9jZW50ZXJZKQogICAgICAgICAmJiBjb21wYXJlQ1NTVmFsdWVQdHIobV9yYWRpdXNYLCBvdGhl
ci5tX3JhZGl1c1gpCiAgICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX3JhZGl1c1ksIG90
aGVyLm1fcmFkaXVzWSkKLSAgICAgICAgJiYgY29tcGFyZUNTU1ZhbHVlUHRyKG1fYm94LCBvdGhl
ci5tX2JveCk7CisgICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVB0cihtX2xheW91dEJveCwgb3Ro
ZXIubV9sYXlvdXRCb3gpOwogfQogCiBzdGF0aWMgU3RyaW5nIGJ1aWxkUG9seWdvblN0cmluZyhj
b25zdCBXaW5kUnVsZSYgd2luZFJ1bGUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwb2ludHMsIGNv
bnN0IFN0cmluZyYgYm94KQpAQCAtMzMxLDcgKzMzMSw3IEBAIFN0cmluZyBDU1NCYXNpY1NoYXBl
UG9seWdvbjo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3Zh
bHVlcy5zaXplKCk7ICsraSkKICAgICAgICAgcG9pbnRzLmFwcGVuZChtX3ZhbHVlcy5hdChpKS0+
Y3NzVGV4dCgpKTsKIAotICAgIHJldHVybiBidWlsZFBvbHlnb25TdHJpbmcobV93aW5kUnVsZSwg
cG9pbnRzLCBtX2JveCA/IG1fYm94LT5jc3NUZXh0KCkgOiBTdHJpbmcoKSk7CisgICAgcmV0dXJu
IGJ1aWxkUG9seWdvblN0cmluZyhtX3dpbmRSdWxlLCBwb2ludHMsIG1fbGF5b3V0Qm94ID8gbV9s
YXlvdXRCb3gtPmNzc1RleHQoKSA6IFN0cmluZygpKTsKIH0KIAogYm9vbCBDU1NCYXNpY1NoYXBl
UG9seWdvbjo6ZXF1YWxzKGNvbnN0IENTU0Jhc2ljU2hhcGUmIHNoYXBlKSBjb25zdApAQCAtMzQw
LDcgKzM0MCw3IEBAIGJvb2wgQ1NTQmFzaWNTaGFwZVBvbHlnb246OmVxdWFscyhjb25zdCBDU1NC
YXNpY1NoYXBlJiBzaGFwZSkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgY29u
c3QgQ1NTQmFzaWNTaGFwZVBvbHlnb24mIHJocyA9IHN0YXRpY19jYXN0PGNvbnN0IENTU0Jhc2lj
U2hhcGVQb2x5Z29uJj4oc2hhcGUpOwotICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVQdHIobV9i
b3gsIHJocy5tX2JveCkKKyAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlUHRyKG1fbGF5b3V0Qm94
LCByaHMubV9sYXlvdXRCb3gpCiAgICAgICAgICYmIGNvbXBhcmVDU1NWYWx1ZVZlY3RvcjxDU1NQ
cmltaXRpdmVWYWx1ZT4obV92YWx1ZXMsIHJocy5tX3ZhbHVlcyk7CiB9CiAKQEAgLTM4Myw3ICsz
ODMsNyBAQCBTdHJpbmcgQ1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjpjc3NUZXh0KCkgY29u
c3QKICAgICAgICAgbV9sZWZ0LT5jc3NUZXh0KCksCiAgICAgICAgIG1fcmFkaXVzWC5nZXQoKSA/
IG1fcmFkaXVzWC0+Y3NzVGV4dCgpIDogU3RyaW5nKCksCiAgICAgICAgIG1fcmFkaXVzWS5nZXQo
KSA/IG1fcmFkaXVzWS0+Y3NzVGV4dCgpIDogU3RyaW5nKCksCi0gICAgICAgIG1fYm94ID8gbV9i
b3gtPmNzc1RleHQoKSA6IFN0cmluZygpKTsKKyAgICAgICAgbV9sYXlvdXRCb3ggPyBtX2xheW91
dEJveC0+Y3NzVGV4dCgpIDogU3RyaW5nKCkpOwogfQogCiBib29sIENTU0Jhc2ljU2hhcGVJbnNl
dFJlY3RhbmdsZTo6ZXF1YWxzKGNvbnN0IENTU0Jhc2ljU2hhcGUmIHNoYXBlKSBjb25zdApAQCAt
Mzk4LDcgKzM5OCw3IEBAIGJvb2wgQ1NTQmFzaWNTaGFwZUluc2V0UmVjdGFuZ2xlOjplcXVhbHMo
Y29uc3QgQ1NTQmFzaWNTaGFwZSYgc2hhcGUpIGNvbnN0CiAgICAgICAgICYmIGNvbXBhcmVDU1NW
YWx1ZVB0cihtX2xlZnQsIG90aGVyLm1fbGVmdCkKICAgICAgICAgJiYgY29tcGFyZUNTU1ZhbHVl
UHRyKG1fcmFkaXVzWCwgb3RoZXIubV9yYWRpdXNYKQogICAgICAgICAmJiBjb21wYXJlQ1NTVmFs
dWVQdHIobV9yYWRpdXNZLCBvdGhlci5tX3JhZGl1c1kpCi0gICAgICAgICYmIGNvbXBhcmVDU1NW
YWx1ZVB0cihtX2JveCwgb3RoZXIubV9ib3gpOworICAgICAgICAmJiBjb21wYXJlQ1NTVmFsdWVQ
dHIobV9sYXlvdXRCb3gsIG90aGVyLm1fbGF5b3V0Qm94KTsKIH0KIAogc3RhdGljIFN0cmluZyBi
dWlsZEluc2V0U3RyaW5nKGNvbnN0IFN0cmluZyYgdG9wLCBjb25zdCBTdHJpbmcmIHJpZ2h0LCBj
b25zdCBTdHJpbmcmIGJvdHRvbSwgY29uc3QgU3RyaW5nJiBsZWZ0LApAQCAtNTE0LDcgKzUxNCw3
IEBAIFN0cmluZyBDU1NCYXNpY1NoYXBlSW5zZXQ6OmNzc1RleHQoKSBjb25zdAogICAgICAgICBi
b3R0b21SaWdodFJhZGl1c0hlaWdodCwKICAgICAgICAgYm90dG9tTGVmdFJhZGl1c1dpZHRoLAog
ICAgICAgICBib3R0b21MZWZ0UmFkaXVzSGVpZ2h0LAotICAgICAgICBtX2JveCA/IG1fYm94LT5j
c3NUZXh0KCkgOiBTdHJpbmcoKSk7CisgICAgICAgIG1fbGF5b3V0Qm94ID8gbV9sYXlvdXRCb3gt
PmNzc1RleHQoKSA6IFN0cmluZygpKTsKIH0KIAogYm9vbCBDU1NCYXNpY1NoYXBlSW5zZXQ6OmVx
dWFscyhjb25zdCBDU1NCYXNpY1NoYXBlJiBzaGFwZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NCYXNpY1NoYXBlcy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jh
c2ljU2hhcGVzLmgKaW5kZXggMGJmZDFjYjBlNDdhODE1ZTk0OTUwODc0ZTY2ZGY1Y2QzOGRiOTg0
NC4uNDQxYTViNDY3YWZhMWQ0YTBjOGFiZTU5MGYxNjBhODZhYjU1OWE0OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hhcGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0Jhc2ljU2hhcGVzLmgKQEAgLTU1LDE1ICs1NSwxNSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBTdHJpbmcgY3NzVGV4dCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZXF1YWxz
KGNvbnN0IENTU0Jhc2ljU2hhcGUmKSBjb25zdCA9IDA7CiAKLSAgICBDU1NQcmltaXRpdmVWYWx1
ZSogYm94KCkgY29uc3QgeyByZXR1cm4gbV9ib3guZ2V0KCk7IH0KLSAgICB2b2lkIHNldEJveChQ
YXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBib3gpIHsgbV9ib3ggPSBib3g7IH0KKyAgICBD
U1NQcmltaXRpdmVWYWx1ZSogbGF5b3V0Qm94KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRCb3gu
Z2V0KCk7IH0KKyAgICB2b2lkIHNldExheW91dEJveChQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZh
bHVlPiBsYXlvdXRCb3gpIHsgbV9sYXlvdXRCb3ggPSBsYXlvdXRCb3g7IH0KIAogcHVibGljOgog
ICAgIHZpcnR1YWwgfkNTU0Jhc2ljU2hhcGUoKSB7IH0KIAogcHJvdGVjdGVkOgogICAgIENTU0Jh
c2ljU2hhcGUoKSB7IH0KLSAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fYm94OworICAg
IFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gbV9sYXlvdXRCb3g7CiB9OwogCiBjbGFzcyBDU1NC
YXNpY1NoYXBlUmVjdGFuZ2xlIDogcHVibGljIENTU0Jhc2ljU2hhcGUgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBmZmNm
ZWM3OWFiNzEwYzNjMTZjNWJmZTg2Y2M1YTg1ZjMzMmY1MDNiLi5kYmIxM2M1N2MxZDA3Y2JkYzJh
M2Q5Y2RiMzc3MmZhNGE2NTBlNDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMjg4NCw3ICsyODg0LDcgQEAgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZT4gQ29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZShDU1NQ
cm9wZXJ0eUlEIHByb3BlcnQKICAgICAgICAgICAgIGlmIChvcGVyYXRpb24tPnR5cGUoKSA9PSBD
bGlwUGF0aE9wZXJhdGlvbjo6U2hhcGUpIHsKICAgICAgICAgICAgICAgICBTaGFwZUNsaXBQYXRo
T3BlcmF0aW9uJiBzaGFwZU9wZXJhdGlvbiA9IHRvU2hhcGVDbGlwUGF0aE9wZXJhdGlvbigqb3Bl
cmF0aW9uKTsKICAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQodmFsdWVGb3JCYXNpY1NoYXBl
KHN0eWxlLmdldCgpLCBzaGFwZU9wZXJhdGlvbi5iYXNpY1NoYXBlKCkpKTsKLSAgICAgICAgICAg
ICAgICBpZiAoc2hhcGVPcGVyYXRpb24ucmVmZXJlbmNlQm94KCkgIT0gQmFzaWNTaGFwZTo6UmVm
ZXJlbmNlQm94OjpOb25lKQorICAgICAgICAgICAgICAgIGlmIChzaGFwZU9wZXJhdGlvbi5yZWZl
cmVuY2VCb3goKSAhPSBCb3hNaXNzaW5nKQogICAgICAgICAgICAgICAgICAgICBsaXN0LT5hcHBl
bmQodmFsdWVGb3JCb3goc2hhcGVPcGVyYXRpb24ucmVmZXJlbmNlQm94KCkpKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGlmIChvcGVyYXRpb24tPnR5cGUoKSA9PSBDbGlwUGF0aE9wZXJh
dGlvbjo6Qm94KSB7CkBAIC0yOTIyLDcgKzI5MjIsNyBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBD
b21wdXRlZFN0eWxlRXh0cmFjdG9yOjpwcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVy
dAogICAgICAgICAgICAgaWYgKCFzdHlsZS0+c2hhcGVJbnNpZGUoKSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9u
ZSk7CiAgICAgICAgICAgICBpZiAoc3R5bGUtPnNoYXBlSW5zaWRlKCktPnR5cGUoKSA9PSBTaGFw
ZVZhbHVlOjpCb3gpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yQm94KHN0eWxlLT5z
aGFwZUluc2lkZSgpLT5ib3goKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yQm94
KHN0eWxlLT5zaGFwZUluc2lkZSgpLT5sYXlvdXRCb3goKSk7CiAgICAgICAgICAgICBpZiAoc3R5
bGUtPnNoYXBlSW5zaWRlKCktPnR5cGUoKSA9PSBTaGFwZVZhbHVlOjpPdXRzaWRlKQogICAgICAg
ICAgICAgICAgIHJldHVybiBjc3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NT
VmFsdWVPdXRzaWRlU2hhcGUpOwogICAgICAgICAgICAgaWYgKHN0eWxlLT5zaGFwZUluc2lkZSgp
LT50eXBlKCkgPT0gU2hhcGVWYWx1ZTo6SW1hZ2UpIHsKQEAgLTI5MzYsNyArMjkzNiw3IEBAIFBh
c3NSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0b3I6OnByb3BlcnR5VmFsdWUo
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0CiAgICAgICAgICAgICBpZiAoIXN0eWxlLT5zaGFwZU91dHNp
ZGUoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRp
ZmllclZhbHVlKENTU1ZhbHVlTm9uZSk7CiAgICAgICAgICAgICBpZiAoc3R5bGUtPnNoYXBlT3V0
c2lkZSgpLT50eXBlKCkgPT0gU2hhcGVWYWx1ZTo6Qm94KQotICAgICAgICAgICAgICAgIHJldHVy
biB2YWx1ZUZvckJveChzdHlsZS0+c2hhcGVPdXRzaWRlKCktPmJveCgpKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gdmFsdWVGb3JCb3goc3R5bGUtPnNoYXBlT3V0c2lkZSgpLT5sYXlvdXRCb3go
KSk7CiAgICAgICAgICAgICBpZiAoc3R5bGUtPnNoYXBlT3V0c2lkZSgpLT50eXBlKCkgPT0gU2hh
cGVWYWx1ZTo6SW1hZ2UpIHsKICAgICAgICAgICAgICAgICBpZiAoc3R5bGUtPnNoYXBlT3V0c2lk
ZSgpLT5pbWFnZSgpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3R5bGUtPnNoYXBlT3V0
c2lkZSgpLT5pbWFnZSgpLT5jc3NWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRl
eCBhNTI3MzkwNGZlNTJhZGMyNWY3N2M2NTUxNDAxYTJiNDg4ZjMwYWFmLi42ODAyMTAxODZhNzdh
MzYyODY0OGI1YTI0M2U3ZDM3MjI4OWJlNDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApA
QCAtNTkwMyw3ICs1OTAzLDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJz
ZVNoYXBlUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wSWQpCiAgICAgfQogCiAgICAgaWYgKHNo
YXBlVmFsdWUgJiYga2V5d29yZFZhbHVlKQotICAgICAgICBzaGFwZVZhbHVlLT5zZXRCb3goa2V5
d29yZFZhbHVlLnJlbGVhc2UoKSk7CisgICAgICAgIHNoYXBlVmFsdWUtPnNldExheW91dEJveChr
ZXl3b3JkVmFsdWUucmVsZWFzZSgpKTsKIAogICAgIHJldHVybiBzaGFwZVZhbHVlID8gY3NzVmFs
dWVQb29sKCkuY3JlYXRlVmFsdWUoc2hhcGVWYWx1ZS5yZWxlYXNlKCkpIDoga2V5d29yZFZhbHVl
LnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVk
U3R5bGVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkU3R5bGVCdWls
ZGVyLmNwcAppbmRleCBiNGNmZGI0MzdmNjQ3YzIwNjA3ZWJhMmNmMTQyZTc2YzcyODQyMmQ4Li45
ZGZjYjgzZDRkMWM5NDYxZTQ1MmIxYTRhNDRkNWUwMzM4ZTVlNWEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZFN0eWxlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0RlcHJlY2F0ZWRTdHlsZUJ1aWxkZXIuY3BwCkBAIC0yMDYzLDcgKzIwNjMsNyBA
QCBwdWJsaWM6CiAgICAgICAgIH0KICAgICAgICAgaWYgKCF2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkK
ICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgQmFzaWNTaGFwZTo6UmVmZXJlbmNlQm94IHJl
ZmVyZW5jZUJveCA9IEJhc2ljU2hhcGU6OlJlZmVyZW5jZUJveDo6Tm9uZTsKKyAgICAgICAgTGF5
b3V0Qm94IHJlZmVyZW5jZUJveCA9IEJveE1pc3Npbmc7CiAgICAgICAgIFJlZlB0cjxDbGlwUGF0
aE9wZXJhdGlvbj4gb3BlcmF0aW9uOwogICAgICAgICBhdXRvJiB2YWx1ZUxpc3QgPSB0b0NTU1Zh
bHVlTGlzdCgqdmFsdWUpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdmFsdWVM
aXN0Lmxlbmd0aCgpOyArK2kpIHsKQEAgLTIwNzUsMTMgKzIwNzUsMTMgQEAgcHVibGljOgogICAg
ICAgICAgICAgICAgIHx8IHByaW1pdGl2ZVZhbHVlLmdldFZhbHVlSUQoKSA9PSBDU1NWYWx1ZVBh
ZGRpbmdCb3gKICAgICAgICAgICAgICAgICB8fCBwcmltaXRpdmVWYWx1ZS5nZXRWYWx1ZUlEKCkg
PT0gQ1NTVmFsdWVNYXJnaW5Cb3gKICAgICAgICAgICAgICAgICB8fCBwcmltaXRpdmVWYWx1ZS5n
ZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVCb3VuZGluZ0JveCkKLSAgICAgICAgICAgICAgICAmJiBy
ZWZlcmVuY2VCb3ggPT0gQmFzaWNTaGFwZTo6UmVmZXJlbmNlQm94OjpOb25lKQorICAgICAgICAg
ICAgICAgICYmIHJlZmVyZW5jZUJveCA9PSBCb3hNaXNzaW5nKQogICAgICAgICAgICAgICAgIHJl
ZmVyZW5jZUJveCA9IGJveEZvclZhbHVlKCZwcmltaXRpdmVWYWx1ZSk7CiAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmICghb3Bl
cmF0aW9uKSB7Ci0gICAgICAgICAgICBpZiAocmVmZXJlbmNlQm94ID09IEJhc2ljU2hhcGU6OlJl
ZmVyZW5jZUJveDo6Tm9uZSkKKyAgICAgICAgICAgIGlmIChyZWZlcmVuY2VCb3ggPT0gQm94TWlz
c2luZykKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBvcGVyYXRpb24gPSBC
b3hDbGlwUGF0aE9wZXJhdGlvbjo6Y3JlYXRlKHJlZmVyZW5jZUJveCk7CiAgICAgICAgIH0gZWxz
ZQpAQCAtMjExMCw3ICsyMTEwLDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgIHx8IHByaW1p
dGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NTVmFsdWVCb3JkZXJCb3gKICAgICAgICAgICAg
ICAgICB8fCBwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJRCgpID09IENTU1ZhbHVlUGFkZGluZ0Jv
eAogICAgICAgICAgICAgICAgIHx8IHByaW1pdGl2ZVZhbHVlLT5nZXRWYWx1ZUlEKCkgPT0gQ1NT
VmFsdWVNYXJnaW5Cb3gpCi0gICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+
c3R5bGUoKSwgU2hhcGVWYWx1ZTo6Y3JlYXRlQm94VmFsdWUoYm94Rm9yVmFsdWUocHJpbWl0aXZl
VmFsdWUpKSk7CisgICAgICAgICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUo
KSwgU2hhcGVWYWx1ZTo6Y3JlYXRlTGF5b3V0Qm94VmFsdWUoYm94Rm9yVmFsdWUocHJpbWl0aXZl
VmFsdWUpKSk7CiAgICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0VmFsdWVJ
RCgpID09IENTU1ZhbHVlT3V0c2lkZVNoYXBlKQogICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0
eWxlUmVzb2x2ZXItPnN0eWxlKCksIFNoYXBlVmFsdWU6OmNyZWF0ZU91dHNpZGVWYWx1ZSgpKTsK
ICAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc1NoYXBlKCkpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DbGlwUGF0aE9wZXJhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NsaXBQYXRoT3BlcmF0aW9uLmgKaW5kZXggMGEyOGFjMDE5
OTAyNWU5YjMwOTMxNTNlZDQyMmQxMGQyYTJlZjU0OS4uMWJiOWI5Mzg1OTgyYzFmNDQzMDhkNzNh
MjQ0ZmU1YTE5YWI5ODc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Ns
aXBQYXRoT3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NsaXBQYXRo
T3BlcmF0aW9uLmgKQEAgLTMyLDYgKzMyLDcgQEAKIAogI2luY2x1ZGUgIkJhc2ljU2hhcGVzLmgi
CiAjaW5jbHVkZSAiUGF0aC5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAj
aW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTExMyw4ICsxMTQsOCBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBwYXRoOwogICAgIH0KIAotICAgIHZvaWQgc2V0UmVmZXJlbmNlQm94KEJhc2lj
U2hhcGU6OlJlZmVyZW5jZUJveCByZWZlcmVuY2VCb3gpIHsgbV9yZWZlcmVuY2VCb3ggPSByZWZl
cmVuY2VCb3g7IH0KLSAgICBCYXNpY1NoYXBlOjpSZWZlcmVuY2VCb3ggcmVmZXJlbmNlQm94KCkg
Y29uc3QgeyByZXR1cm4gbV9yZWZlcmVuY2VCb3g7IH0KKyAgICB2b2lkIHNldFJlZmVyZW5jZUJv
eChMYXlvdXRCb3ggcmVmZXJlbmNlQm94KSB7IG1fcmVmZXJlbmNlQm94ID0gcmVmZXJlbmNlQm94
OyB9CisgICAgTGF5b3V0Qm94IHJlZmVyZW5jZUJveCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVmZXJl
bmNlQm94OyB9CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIG9wZXJhdG9yPT0oY29uc3Qg
Q2xpcFBhdGhPcGVyYXRpb24mIG8pIGNvbnN0IE9WRVJSSURFCkBAIC0xMjgsMTcgKzEyOSwxNyBA
QCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24oUGFzc1JlZlB0
cjxCYXNpY1NoYXBlPiBzaGFwZSkKICAgICAgICAgOiBDbGlwUGF0aE9wZXJhdGlvbihTaGFwZSkK
ICAgICAgICAgLCBtX3NoYXBlKHNoYXBlKQotICAgICAgICAsIG1fcmVmZXJlbmNlQm94KEJhc2lj
U2hhcGU6OlJlZmVyZW5jZUJveDo6Tm9uZSkKKyAgICAgICAgLCBtX3JlZmVyZW5jZUJveChCb3hN
aXNzaW5nKQogICAgIHsKICAgICB9CiAKICAgICBSZWZQdHI8QmFzaWNTaGFwZT4gbV9zaGFwZTsK
LSAgICBCYXNpY1NoYXBlOjpSZWZlcmVuY2VCb3ggbV9yZWZlcmVuY2VCb3g7CisgICAgTGF5b3V0
Qm94IG1fcmVmZXJlbmNlQm94OwogfTsKIAogY2xhc3MgQm94Q2xpcFBhdGhPcGVyYXRpb24gOiBw
dWJsaWMgQ2xpcFBhdGhPcGVyYXRpb24gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEJveENsaXBQYXRoT3BlcmF0aW9uPiBjcmVhdGUoQmFzaWNTaGFwZTo6UmVmZXJlbmNlQm94IHJl
ZmVyZW5jZUJveCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxCb3hDbGlwUGF0aE9wZXJhdGlvbj4g
Y3JlYXRlKExheW91dEJveCByZWZlcmVuY2VCb3gpCiAgICAgewogICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEJveENsaXBQYXRoT3BlcmF0aW9uKHJlZmVyZW5jZUJveCkpOwogICAgIH0KQEAg
LTE1MCw3ICsxNTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjYyMDUKICAgICAgICAgcmV0dXJuIHBhdGg7CiAgICAgfQot
ICAgIEJhc2ljU2hhcGU6OlJlZmVyZW5jZUJveCByZWZlcmVuY2VCb3goKSBjb25zdCB7IHJldHVy
biBtX3JlZmVyZW5jZUJveDsgfQorICAgIExheW91dEJveCByZWZlcmVuY2VCb3goKSBjb25zdCB7
IHJldHVybiBtX3JlZmVyZW5jZUJveDsgfQogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IENsaXBQYXRoT3BlcmF0aW9uJiBvKSBjb25zdCBPVkVSUklERQpAQCAt
MTYxLDEzICsxNjIsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIG1fcmVmZXJlbmNlQm94
ID09IG90aGVyLT5tX3JlZmVyZW5jZUJveDsKICAgICB9CiAKLSAgICBleHBsaWNpdCBCb3hDbGlw
UGF0aE9wZXJhdGlvbihCYXNpY1NoYXBlOjpSZWZlcmVuY2VCb3ggcmVmZXJlbmNlQm94KQorICAg
IGV4cGxpY2l0IEJveENsaXBQYXRoT3BlcmF0aW9uKExheW91dEJveCByZWZlcmVuY2VCb3gpCiAg
ICAgICAgIDogQ2xpcFBhdGhPcGVyYXRpb24oQm94KQogICAgICAgICAsIG1fcmVmZXJlbmNlQm94
KHJlZmVyZW5jZUJveCkKICAgICB7CiAgICAgfQogCi0gICAgQmFzaWNTaGFwZTo6UmVmZXJlbmNl
Qm94IG1fcmVmZXJlbmNlQm94OworICAgIExheW91dEJveCBtX3JlZmVyZW5jZUJveDsKIH07CiAK
ICNkZWZpbmUgQ0xJUF9QQVRIX09QRVJBVElPTl9DQVNUUyhUb1ZhbHVlVHlwZU5hbWUsIHByZWRp
Y2F0ZSkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmNwcAppbmRleCBi
ODU3ZTZiMTM5ZTNhNzE4YzhjYTljMmE0MTlhNzZlZWY3NGNiOGQ5Li43YmM3NDQ1MTkxYTNhZDk1
NzgwZDgwODMzNTcyZWY4OWJjNjFjNjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL1NoYXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hh
cGVzL1NoYXBlLmNwcApAQCAtMjk0LDcgKzI5NCw3IEBAIFBhc3NPd25QdHI8U2hhcGU+IFNoYXBl
OjpjcmVhdGVSYXN0ZXJTaGFwZShjb25zdCBTdHlsZUltYWdlKiBzdHlsZUltYWdlLCBmbG9hdCB0
CiAgICAgcmV0dXJuIHJhc3RlclNoYXBlLnJlbGVhc2UoKTsKIH0KIAotUGFzc093blB0cjxTaGFw
ZT4gU2hhcGU6OmNyZWF0ZUJveFNoYXBlKGNvbnN0IFJvdW5kZWRSZWN0JiByb3VuZGVkUmVjdCwg
V3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIExlbmd0aCBtYXJnaW4sIExlbmd0aCBwYWRkaW5nKQor
UGFzc093blB0cjxTaGFwZT4gU2hhcGU6OmNyZWF0ZUxheW91dEJveFNoYXBlKGNvbnN0IFJvdW5k
ZWRSZWN0JiByb3VuZGVkUmVjdCwgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIExlbmd0aCBtYXJn
aW4sIExlbmd0aCBwYWRkaW5nKQogewogICAgIEFTU0VSVChyb3VuZGVkUmVjdC5yZWN0KCkud2lk
dGgoKSA+PSAwICYmIHJvdW5kZWRSZWN0LnJlY3QoKS5oZWlnaHQoKSA+PSAwKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZS5oCmluZGV4IDM0NTM5NmM0NGE2MGNhN2UxZjIz
YzZlZGIwNzI1ZDMzN2FlN2YwZTMuLmNhYTBhYmQ3ZTYzNTE3ZWZkNWU2Y2YxYTcxOTFiMzk2OTY0
YTAxOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlLmgKQEAgLTY5LDcg
KzY5LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFBhc3NPd25QdHI8U2hhcGU+IGNyZWF0ZVNo
YXBlKGNvbnN0IEJhc2ljU2hhcGUqLCBjb25zdCBMYXlvdXRTaXplJiBsb2dpY2FsQm94U2l6ZSwg
V3JpdGluZ01vZGUsIExlbmd0aCBtYXJnaW4sIExlbmd0aCBwYWRkaW5nKTsKICAgICBzdGF0aWMg
UGFzc093blB0cjxTaGFwZT4gY3JlYXRlUmFzdGVyU2hhcGUoY29uc3QgU3R5bGVJbWFnZSosIGZs
b2F0IHRocmVzaG9sZCwgY29uc3QgTGF5b3V0U2l6ZSYgbG9naWNhbEJveFNpemUsIFdyaXRpbmdN
b2RlLCBMZW5ndGggbWFyZ2luLCBMZW5ndGggcGFkZGluZyk7Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8U2hhcGU+IGNyZWF0ZUJveFNoYXBlKGNvbnN0IFJvdW5kZWRSZWN0JiwgV3JpdGluZ01vZGUs
IExlbmd0aCBtYXJnaW4sIExlbmd0aCBwYWRkaW5nKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxT
aGFwZT4gY3JlYXRlTGF5b3V0Qm94U2hhcGUoY29uc3QgUm91bmRlZFJlY3QmLCBXcml0aW5nTW9k
ZSwgTGVuZ3RoIG1hcmdpbiwgTGVuZ3RoIHBhZGRpbmcpOwogCiAgICAgdmlydHVhbCB+U2hhcGUo
KSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFw
ZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8uY3Bw
CmluZGV4IDU2ZmViNGQzZDQzMDQ5OGFmZTA5Mzk5ZGEwZDg5ZmZjNmQwZDNjYzkuLmIxOTRiZDdh
OTBhNzI4YTdlZmM1NmY5ZjJkNjI5ZTZmYzljMWM3MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgY29uc3QgU2hh
cGUmIFNoYXBlSW5mbzxSZW5kZXJUeXBlPjo6Y29tcHV0ZWRTaGFwZSgpIGNvbnN0CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgU2hhcGVWYWx1ZTo6Qm94OiB7CiAgICAgICAgIGNvbnN0IFJvdW5k
ZWRSZWN0JiBzaGFwZVJlY3QgPSBtX3JlbmRlcmVyLnN0eWxlKCkuZ2V0Um91bmRlZEJvcmRlckZv
cihMYXlvdXRSZWN0KExheW91dFBvaW50KCksIG1fc2hhcGVMb2dpY2FsU2l6ZSksICYobV9yZW5k
ZXJlci52aWV3KCkpKTsKLSAgICAgICAgbV9zaGFwZSA9IFNoYXBlOjpjcmVhdGVCb3hTaGFwZShz
aGFwZVJlY3QsIHdyaXRpbmdNb2RlLCBtYXJnaW4sIHBhZGRpbmcpOworICAgICAgICBtX3NoYXBl
ID0gU2hhcGU6OmNyZWF0ZUxheW91dEJveFNoYXBlKHNoYXBlUmVjdCwgd3JpdGluZ01vZGUsIG1h
cmdpbiwgcGFkZGluZyk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIFNoYXBlVmFs
dWU6Ok91dHNpZGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVz
L1NoYXBlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluZm8u
aAppbmRleCAzZTI3ZGMzZTA2MjdkM2E3NzJkMWYyZmQ0MDY3OTFlMTI0NWRkNmYwLi5mNTcxZjI0
MmU2ZmVkMzUxNzE5Y2UyNjViODhhNzIzN2FmMTAxOTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zaGFwZXMvU2hhcGVJbmZvLmgKQEAgLTczLDI0ICs3MywyNCBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHNldFNoYXBlU2l6ZShMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5p
dCBsb2dpY2FsSGVpZ2h0KQogICAgIHsKLSAgICAgICAgQmFzaWNTaGFwZTo6UmVmZXJlbmNlQm94
IGJveCA9IHJlc29sdmVkQm94KCk7CisgICAgICAgIExheW91dEJveCBib3ggPSByZXNvbHZlZExh
eW91dEJveCgpOwogICAgICAgICBzd2l0Y2ggKGJveCkgewotICAgICAgICBjYXNlIEJhc2ljU2hh
cGU6Ok1hcmdpbkJveDoKKyAgICAgICAgY2FzZSBNYXJnaW5Cb3g6CiAgICAgICAgICAgICBsb2dp
Y2FsSGVpZ2h0ICs9IG1fcmVuZGVyZXIubWFyZ2luTG9naWNhbEhlaWdodCgpOwogICAgICAgICAg
ICAgbG9naWNhbFdpZHRoICs9IG1fcmVuZGVyZXIubWFyZ2luTG9naWNhbFdpZHRoKCk7CiAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBCYXNpY1NoYXBlOjpCb3JkZXJCb3g6CisgICAg
ICAgIGNhc2UgQm9yZGVyQm94OgogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQmFz
aWNTaGFwZTo6UGFkZGluZ0JveDoKKyAgICAgICAgY2FzZSBQYWRkaW5nQm94OgogICAgICAgICAg
ICAgbG9naWNhbEhlaWdodCAtPSBtX3JlbmRlcmVyLmJvcmRlckxvZ2ljYWxIZWlnaHQoKTsKICAg
ICAgICAgICAgIGxvZ2ljYWxXaWR0aCAtPSBtX3JlbmRlcmVyLmJvcmRlckxvZ2ljYWxXaWR0aCgp
OwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQmFzaWNTaGFwZTo6Q29udGVudEJv
eDoKKyAgICAgICAgY2FzZSBDb250ZW50Qm94OgogICAgICAgICAgICAgbG9naWNhbEhlaWdodCAt
PSBtX3JlbmRlcmVyLmJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgICAg
ICBsb2dpY2FsV2lkdGggLT0gbV9yZW5kZXJlci5ib3JkZXJBbmRQYWRkaW5nTG9naWNhbFdpZHRo
KCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBCYXNpY1NoYXBlOjpCb3VuZGlu
Z0JveDoKLSAgICAgICAgY2FzZSBCYXNpY1NoYXBlOjpOb25lOgorICAgICAgICBjYXNlIEJvdW5k
aW5nQm94OgorICAgICAgICBjYXNlIEJveE1pc3Npbmc6CiAgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0xNjEsNyArMTYx
LDcgQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICB9CiAKLSAgICB2aXJ0dWFsIEJhc2ljU2hhcGU6
OlJlZmVyZW5jZUJveCByZXNvbHZlZEJveCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIExheW91
dEJveCByZXNvbHZlZExheW91dEJveCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIExheW91dFJl
Y3QgY29tcHV0ZWRTaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIFNoYXBlVmFsdWUqIHNoYXBlVmFsdWUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGdldEludGVydmFscyhMYXlvdXRVbml0LCBMYXlvdXRVbml0LCBTZWdtZW50TGlzdCYpIGNvbnN0
ID0gMDsKQEAgLTE3MCwxNCArMTcwLDE0IEBAIHByb3RlY3RlZDoKIAogICAgIExheW91dFVuaXQg
bG9naWNhbFRvcE9mZnNldCgpIGNvbnN0CiAgICAgewotICAgICAgICBCYXNpY1NoYXBlOjpSZWZl
cmVuY2VCb3ggYm94ID0gcmVzb2x2ZWRCb3goKTsKKyAgICAgICAgTGF5b3V0Qm94IGJveCA9IHJl
c29sdmVkTGF5b3V0Qm94KCk7CiAgICAgICAgIHN3aXRjaCAoYm94KSB7Ci0gICAgICAgIGNhc2Ug
QmFzaWNTaGFwZTo6TWFyZ2luQm94OiByZXR1cm4gLW1fcmVuZGVyZXIubWFyZ2luQmVmb3JlKCk7
Ci0gICAgICAgIGNhc2UgQmFzaWNTaGFwZTo6Qm9yZGVyQm94OiByZXR1cm4gTGF5b3V0VW5pdCgp
OwotICAgICAgICBjYXNlIEJhc2ljU2hhcGU6OlBhZGRpbmdCb3g6IHJldHVybiBtX3JlbmRlcmVy
LmJvcmRlckJlZm9yZSgpOwotICAgICAgICBjYXNlIEJhc2ljU2hhcGU6OkNvbnRlbnRCb3g6IHJl
dHVybiBtX3JlbmRlcmVyLmJvcmRlckFuZFBhZGRpbmdCZWZvcmUoKTsKLSAgICAgICAgY2FzZSBC
YXNpY1NoYXBlOjpCb3VuZGluZ0JveDogYnJlYWs7Ci0gICAgICAgIGNhc2UgQmFzaWNTaGFwZTo6
Tm9uZTogYnJlYWs7CisgICAgICAgIGNhc2UgTWFyZ2luQm94OiByZXR1cm4gLW1fcmVuZGVyZXIu
bWFyZ2luQmVmb3JlKCk7CisgICAgICAgIGNhc2UgQm9yZGVyQm94OiByZXR1cm4gTGF5b3V0VW5p
dCgpOworICAgICAgICBjYXNlIFBhZGRpbmdCb3g6IHJldHVybiBtX3JlbmRlcmVyLmJvcmRlckJl
Zm9yZSgpOworICAgICAgICBjYXNlIENvbnRlbnRCb3g6IHJldHVybiBtX3JlbmRlcmVyLmJvcmRl
ckFuZFBhZGRpbmdCZWZvcmUoKTsKKyAgICAgICAgY2FzZSBCb3VuZGluZ0JveDogYnJlYWs7Cisg
ICAgICAgIGNhc2UgQm94TWlzc2luZzogYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBMYXlvdXRVbml0KCk7CkBAIC0xODcsMTQg
KzE4NywxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgewogICAgICAgICBpZiAobV9yZW5kZXJlci5pc1Jl
bmRlclJlZ2lvbigpKQogICAgICAgICAgICAgcmV0dXJuIExheW91dFVuaXQoKTsKLSAgICAgICAg
QmFzaWNTaGFwZTo6UmVmZXJlbmNlQm94IGJveCA9IHJlc29sdmVkQm94KCk7CisgICAgICAgIExh
eW91dEJveCBib3ggPSByZXNvbHZlZExheW91dEJveCgpOwogICAgICAgICBzd2l0Y2ggKGJveCkg
ewotICAgICAgICBjYXNlIEJhc2ljU2hhcGU6Ok1hcmdpbkJveDogcmV0dXJuIC1tX3JlbmRlcmVy
Lm1hcmdpblN0YXJ0KCk7Ci0gICAgICAgIGNhc2UgQmFzaWNTaGFwZTo6Qm9yZGVyQm94OiByZXR1
cm4gTGF5b3V0VW5pdCgpOwotICAgICAgICBjYXNlIEJhc2ljU2hhcGU6OlBhZGRpbmdCb3g6IHJl
dHVybiBtX3JlbmRlcmVyLmJvcmRlclN0YXJ0KCk7Ci0gICAgICAgIGNhc2UgQmFzaWNTaGFwZTo6
Q29udGVudEJveDogcmV0dXJuIG1fcmVuZGVyZXIuYm9yZGVyQW5kUGFkZGluZ1N0YXJ0KCk7Ci0g
ICAgICAgIGNhc2UgQmFzaWNTaGFwZTo6Qm91bmRpbmdCb3g6IGJyZWFrOwotICAgICAgICBjYXNl
IEJhc2ljU2hhcGU6Ok5vbmU6IGJyZWFrOworICAgICAgICBjYXNlIE1hcmdpbkJveDogcmV0dXJu
IC1tX3JlbmRlcmVyLm1hcmdpblN0YXJ0KCk7CisgICAgICAgIGNhc2UgQm9yZGVyQm94OiByZXR1
cm4gTGF5b3V0VW5pdCgpOworICAgICAgICBjYXNlIFBhZGRpbmdCb3g6IHJldHVybiBtX3JlbmRl
cmVyLmJvcmRlclN0YXJ0KCk7CisgICAgICAgIGNhc2UgQ29udGVudEJveDogcmV0dXJuIG1fcmVu
ZGVyZXIuYm9yZGVyQW5kUGFkZGluZ1N0YXJ0KCk7CisgICAgICAgIGNhc2UgQm91bmRpbmdCb3g6
IGJyZWFrOworICAgICAgICBjYXNlIEJveE1pc3Npbmc6IGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gTGF5b3V0VW5pdCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUlu
Zm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVJbnNpZGVJbmZvLmgK
aW5kZXggZWY4MmJhZmEyZDY2YmRjMWVjN2EwMTY1NGEzMjVlMjQwZTk5NTFlNi4uMjNjYjc3OTIy
ZGYxZTlhYzVhOGQxZjYxMjZjMjJjMGUyNmMxMGQzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3NoYXBlcy9TaGFwZUluc2lkZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlSW5zaWRlSW5mby5oCkBAIC0xMDcsMTIgKzEwNywxMiBA
QCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCBCYXNpY1NoYXBlOjpS
ZWZlcmVuY2VCb3ggcmVzb2x2ZWRCb3goKSBjb25zdCBPVkVSUklERQorICAgIHZpcnR1YWwgTGF5
b3V0Qm94IHJlc29sdmVkTGF5b3V0Qm94KCkgY29uc3QgT1ZFUlJJREUKICAgICB7Ci0gICAgICAg
IGlmIChzaGFwZVZhbHVlKCktPmJveCgpID09IEJhc2ljU2hhcGU6Ok5vbmUpCi0gICAgICAgICAg
ICByZXR1cm4gQmFzaWNTaGFwZTo6Q29udGVudEJveDsKKyAgICAgICAgaWYgKHNoYXBlVmFsdWUo
KS0+bGF5b3V0Qm94KCkgPT0gQm94TWlzc2luZykKKyAgICAgICAgICAgIHJldHVybiBDb250ZW50
Qm94OwogCi0gICAgICAgIHJldHVybiBzaGFwZVZhbHVlKCktPmJveCgpOworICAgICAgICByZXR1
cm4gc2hhcGVWYWx1ZSgpLT5sYXlvdXRCb3goKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5oCmluZGV4
IGZjZDYzYTI5ZDBmN2UwMGNmNWNhOTkzMzRhZmFjZjc3ZTQxNzhhMTUuLjcxYmQ4MmE1MjI3MDVl
MGM2M2RiMjI5YzQ2Nzg4ZjUzMzYyMGFlZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5oCkBAIC02MSwxNCArNjEsMTQgQEAgcHVi
bGljOgogICAgIH0KIAogcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgQmFzaWNTaGFwZTo6UmVmZXJl
bmNlQm94IHJlc29sdmVkQm94KCkgY29uc3QgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIExheW91dEJv
eCByZXNvbHZlZExheW91dEJveCgpIGNvbnN0IE9WRVJSSURFCiAgICAgewotICAgICAgICBpZiAo
c2hhcGVWYWx1ZSgpLT5ib3goKSA9PSBCYXNpY1NoYXBlOjpOb25lKSB7CisgICAgICAgIGlmIChz
aGFwZVZhbHVlKCktPmxheW91dEJveCgpID09IEJveE1pc3NpbmcpIHsKICAgICAgICAgICAgIGlm
IChzaGFwZVZhbHVlKCktPnR5cGUoKSA9PSBTaGFwZVZhbHVlOjpJbWFnZSkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gQmFzaWNTaGFwZTo6Q29udGVudEJveDsKLSAgICAgICAgICAgIHJldHVybiBC
YXNpY1NoYXBlOjpNYXJnaW5Cb3g7CisgICAgICAgICAgICAgICAgcmV0dXJuIENvbnRlbnRCb3g7
CisgICAgICAgICAgICByZXR1cm4gTWFyZ2luQm94OwogICAgICAgICB9Ci0gICAgICAgIHJldHVy
biBzaGFwZVZhbHVlKCktPmJveCgpOworICAgICAgICByZXR1cm4gc2hhcGVWYWx1ZSgpLT5sYXlv
dXRCb3goKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL0Jhc2ljU2hhcGVzLmNwcAppbmRleCA4YjhkZDQ0MzhjMWQ1MjU3Y2Q0N2VlZDE4OWNk
YjE2MTc4ZmEzZjhiLi40Y2FkMmU0NzAyODk1N2M0MThkNmJjMjAzNzQ1NzVkN2NiNDU4ODY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5jcHAKQEAg
LTQ2LDcgKzQ2LDcgQEAgYm9vbCBCYXNpY1NoYXBlOjpjYW5CbGVuZChjb25zdCBCYXNpY1NoYXBl
KiBvdGhlcikgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gQm90aCBzaGFw
ZXMgbXVzdCB1c2UgdGhlIHNhbWUgcmVmZXJlbmNlIGJveC4KLSAgICBpZiAoYm94KCkgIT0gb3Ro
ZXItPmJveCgpKQorICAgIGlmIChsYXlvdXRCb3goKSAhPSBvdGhlci0+bGF5b3V0Qm94KCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIEp1c3QgcG9seWdvbnMgd2l0aCBzYW1lIG51
bWJlciBvZiB2ZXJ0aWNlcyBjYW4gYmUgYW5pbWF0ZWQuCkBAIC03NSwxNCArNzUsMTQgQEAgYm9v
bCBCYXNpY1NoYXBlOjpjYW5CbGVuZChjb25zdCBCYXNpY1NoYXBlKiBvdGhlcikgY29uc3QKIAog
RmxvYXRTaXplIEJhc2ljU2hhcGU6OnJlZmVyZW5jZUJveFNpemUoY29uc3QgUmVuZGVyQm94JiBy
ZW5kZXJlcikgY29uc3QKIHsKLSAgICBzd2l0Y2ggKGJveCgpKSB7CisgICAgc3dpdGNoIChsYXlv
dXRCb3goKSkgewogICAgIGNhc2UgQ29udGVudEJveDoKICAgICAgICAgcmV0dXJuIHJlbmRlcmVy
LmNvbnRlbnRCb3hSZWN0KCkuc2l6ZSgpOwogICAgIGNhc2UgUGFkZGluZ0JveDoKICAgICAgICAg
cmV0dXJuIHJlbmRlcmVyLnBhZGRpbmdCb3hSZWN0KCkuc2l6ZSgpOwogICAgIGNhc2UgQm9yZGVy
Qm94OgogICAgICAgICByZXR1cm4gcmVuZGVyZXIuc2l6ZSgpOwotICAgIGNhc2UgTm9uZTogLy8g
SWYgPGJveD4gaXMgbm90IHN1cHBsaWVkLCB0aGVuIHRoZSByZWZlcmVuY2UgYm94IGRlZmF1bHRz
IHRvIG1hcmdpbi1ib3guCisgICAgY2FzZSBCb3hNaXNzaW5nOiAvLyBJZiA8Ym94PiBpcyBub3Qg
c3VwcGxpZWQsIHRoZW4gdGhlIHJlZmVyZW5jZSBib3ggZGVmYXVsdHMgdG8gbWFyZ2luLWJveC4K
ICAgICBjYXNlIE1hcmdpbkJveDoKICAgICAgICAgcmV0dXJuIEZsb2F0U2l6ZShyZW5kZXJlci5t
YXJnaW5MZWZ0KCkgKyByZW5kZXJlci53aWR0aCgpICsgcmVuZGVyZXIubWFyZ2luUmlnaHQoKSwK
ICAgICAgICAgICAgIHJlbmRlcmVyLm1hcmdpblRvcCgpICsgcmVuZGVyZXIuaGVpZ2h0KCkgKyBy
ZW5kZXJlci5tYXJnaW5Cb3R0b20oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvQmFzaWNTaGFwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9CYXNpY1NoYXBlcy5oCmluZGV4IGRjZjkzZmQ5YmNjYWM5OWYwMzEwZWQwNGQ1NjY3MWZiMTA2
NWYyODUuLjMxNjBhNGZhM2NiYmUzYmZmOTgxMGY5NGE0MTRjZTIyOGQ4ZGU1YWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9CYXNpY1NoYXBlcy5oCkBAIC0zMiw2ICszMiw3
IEBACiAKICNpbmNsdWRlICJMZW5ndGguaCIKICNpbmNsdWRlICJMZW5ndGhTaXplLmgiCisjaW5j
bHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlICJXaW5kUnVsZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtNTgs
MTUgKzU5LDYgQEAgcHVibGljOgogICAgICAgICBCYXNpY1NoYXBlSW5zZXRUeXBlCiAgICAgfTsK
IAotICAgIGVudW0gUmVmZXJlbmNlQm94IHsKLSAgICAgICAgTm9uZSwKLSAgICAgICAgQ29udGVu
dEJveCwKLSAgICAgICAgUGFkZGluZ0JveCwKLSAgICAgICAgQm9yZGVyQm94LAotICAgICAgICBN
YXJnaW5Cb3gsCi0gICAgICAgIEJvdW5kaW5nQm94Ci0gICAgfTsKLQogICAgIGJvb2wgY2FuQmxl
bmQoY29uc3QgQmFzaWNTaGFwZSopIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIHBhdGgoUGF0
aCYsIGNvbnN0IEZsb2F0UmVjdCYpID0gMDsKQEAgLTc1LDE5ICs2NywxOSBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0ID0gMDsKIAotICAgIFJlZmVyZW5jZUJveCBi
b3goKSBjb25zdCB7IHJldHVybiBtX2JveDsgfQotICAgIHZvaWQgc2V0Qm94KFJlZmVyZW5jZUJv
eCBib3gpIHsgbV9ib3ggPSBib3g7IH0KKyAgICBMYXlvdXRCb3ggbGF5b3V0Qm94KCkgY29uc3Qg
eyByZXR1cm4gbV9sYXlvdXRCb3g7IH0KKyAgICB2b2lkIHNldExheW91dEJveChMYXlvdXRCb3gg
bGF5b3V0Qm94KSB7IG1fbGF5b3V0Qm94ID0gbGF5b3V0Qm94OyB9CiAKIHByb3RlY3RlZDoKICAg
ICBCYXNpY1NoYXBlKCkKLSAgICA6IG1fYm94KE5vbmUpCisgICAgICAgIDogbV9sYXlvdXRCb3go
Qm94TWlzc2luZykKICAgICB7CiAgICAgfQogCiAgICAgRmxvYXRTaXplIHJlZmVyZW5jZUJveFNp
emUoY29uc3QgUmVuZGVyQm94JikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgUmVmZXJlbmNlQm94
IG1fYm94OworICAgIExheW91dEJveCBtX2xheW91dEJveDsKIH07CiAKIGNsYXNzIEJhc2ljU2hh
cGVSZWN0YW5nbGUgOiBwdWJsaWMgQmFzaWNTaGFwZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IGJmNzdmNGFi
YzAxYzRiZGVmNjZkNDE4NWE2MDhmZmYzZTgwZjdmMmUuLjhhZGQwOWMwYTJlZmU2NWY0NmJmNzIw
OWE0Nzk3MzZmNDlmNmRjNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCkBAIC01NDksNiArNTQ5LDggQEAgZW51bSBU
ZXh0SW5kZW50TGluZSB7IFRleHRJbmRlbnRGaXJzdExpbmUsIFRleHRJbmRlbnRFYWNoTGluZSB9
OwogZW51bSBUZXh0SW5kZW50VHlwZSB7IFRleHRJbmRlbnROb3JtYWwsIFRleHRJbmRlbnRIYW5n
aW5nIH07CiAjZW5kaWYKIAorZW51bSBMYXlvdXRCb3ggeyBCb3hNaXNzaW5nID0gMCwgTWFyZ2lu
Qm94LCBCb3JkZXJCb3gsIFBhZGRpbmdCb3gsIENvbnRlbnRCb3gsIEJvdW5kaW5nQm94IH07CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFJlbmRlclN0eWxlQ29uc3RhbnRz
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TaGFwZVZhbHVl
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU2hhcGVWYWx1ZS5oCmluZGV4IDA1
ZDMzMTFhMGU5YjBmMzRiZjliNWU1Y2I4ZDRiYjUwMWRiMWM0NmUuLjBjYzIyYzQxMTRlOTg1OTE0
ODI5YzNhYzllYTJmNGQ1MmQxMmU3OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TaGFwZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1NoYXBlVmFsdWUuaApAQCAtNTMsOSArNTMsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgU2hhcGVWYWx1ZShzaGFwZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFNoYXBlVmFsdWU+IGNyZWF0ZUJveFZhbHVlKEJhc2ljU2hhcGU6OlJlZmVyZW5j
ZUJveCBib3gpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcGVWYWx1ZT4gY3JlYXRlTGF5b3V0
Qm94VmFsdWUoTGF5b3V0Qm94IGxheW91dEJveCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgU2hhcGVWYWx1ZShib3gpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBT
aGFwZVZhbHVlKGxheW91dEJveCkpOwogICAgIH0KIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNo
YXBlVmFsdWU+IGNyZWF0ZU91dHNpZGVWYWx1ZSgpCkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoK
IAogICAgIFNoYXBlVmFsdWVUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KICAg
ICBCYXNpY1NoYXBlKiBzaGFwZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcGUuZ2V0KCk7IH0KLSAg
ICBCYXNpY1NoYXBlOjpSZWZlcmVuY2VCb3ggYm94KCkgY29uc3QgeyByZXR1cm4gbV9ib3g7IH0K
KyAgICBMYXlvdXRCb3ggbGF5b3V0Qm94KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRCb3g7IH0K
IAogICAgIFN0eWxlSW1hZ2UqIGltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZS5nZXQoKTsg
fQogICAgIGJvb2wgaXNJbWFnZVZhbGlkKCkgY29uc3QgeyByZXR1cm4gaW1hZ2UoKSAmJiBpbWFn
ZSgpLT5jYWNoZWRJbWFnZSgpICYmIGltYWdlKCktPmNhY2hlZEltYWdlKCktPmhhc0ltYWdlKCk7
IH0KQEAgLTg3LDMwICs4NywzMCBAQCBwcml2YXRlOgogICAgIFNoYXBlVmFsdWUoUGFzc1JlZlB0
cjxCYXNpY1NoYXBlPiBzaGFwZSkKICAgICAgICAgOiBtX3R5cGUoU2hhcGUpCiAgICAgICAgICwg
bV9zaGFwZShzaGFwZSkKLSAgICAgICAgLCBtX2JveChtX3NoYXBlLT5ib3goKSkKKyAgICAgICAg
LCBtX2xheW91dEJveChtX3NoYXBlLT5sYXlvdXRCb3goKSkKICAgICB7CiAgICAgfQogICAgIFNo
YXBlVmFsdWUoU2hhcGVWYWx1ZVR5cGUgdHlwZSkKICAgICAgICAgOiBtX3R5cGUodHlwZSkKLSAg
ICAgICAgLCBtX2JveChCYXNpY1NoYXBlOjpOb25lKQorICAgICAgICAsIG1fbGF5b3V0Qm94KEJv
eE1pc3NpbmcpCiAgICAgewogICAgIH0KICAgICBTaGFwZVZhbHVlKFBhc3NSZWZQdHI8U3R5bGVJ
bWFnZT4gaW1hZ2UpCiAgICAgICAgIDogbV90eXBlKEltYWdlKQogICAgICAgICAsIG1faW1hZ2Uo
aW1hZ2UpCi0gICAgICAgICwgbV9ib3goQmFzaWNTaGFwZTo6Tm9uZSkKKyAgICAgICAgLCBtX2xh
eW91dEJveChCb3hNaXNzaW5nKQogICAgIHsKICAgICB9Ci0gICAgU2hhcGVWYWx1ZShCYXNpY1No
YXBlOjpSZWZlcmVuY2VCb3ggYm94KQorICAgIFNoYXBlVmFsdWUoTGF5b3V0Qm94IGxheW91dEJv
eCkKICAgICAgICAgOiBtX3R5cGUoQm94KQotICAgICAgICAsIG1fYm94KGJveCkKKyAgICAgICAg
LCBtX2xheW91dEJveChsYXlvdXRCb3gpCiAgICAgewogICAgIH0KIAogICAgIFNoYXBlVmFsdWVU
eXBlIG1fdHlwZTsKICAgICBSZWZQdHI8QmFzaWNTaGFwZT4gbV9zaGFwZTsKICAgICBSZWZQdHI8
U3R5bGVJbWFnZT4gbV9pbWFnZTsKLSAgICBCYXNpY1NoYXBlOjpSZWZlcmVuY2VCb3ggbV9ib3g7
CisgICAgTGF5b3V0Qm94IG1fbGF5b3V0Qm94OwogfTsKIAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>