<?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>136593</bug_id>
          
          <creation_ts>2014-09-05 16:47:54 -0700</creation_ts>
          <short_desc>PDFDocumentImage can permanently cache wrong-resolution bitmaps</short_desc>
          <delta_ts>2014-09-05 17:06:35 -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>PDF</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1033596</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-09-05 16:47:54 -0700</bug_when>
    <thetext>PDFDocumentImage has an optimization to use a cached bitmap if we&apos;re doing low-quality interpolation, which was intended to only occur during a live resize and when we were guaranteed to get a high-quality paint shortly afterwards.

However, on iOS there are some scenarios where we *always* use low-quality interpolation, and there are also CSS properties that allow content to specify that it always wants low-quality interpolation.

This results in caching the PDF at the initial scale it&apos;s rendered at, and never re-rendering.

We should only do this optimization if we&apos;re actually in a live resize, and will eventually get a high-quality paint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033601</commentid>
    <comment_count>1</comment_count>
      <attachid>237723</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-09-05 16:54:59 -0700</bug_when>
    <thetext>Created attachment 237723
crazy WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033603</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-09-05 17:06:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/18252268&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237723</attachid>
            <date>2014-09-05 16:54:59 -0700</date>
            <delta_ts>2014-09-05 16:54:59 -0700</delta_ts>
            <desc>crazy WIP patch</desc>
            <filename>lowquality.diff</filename>
            <type>text/plain</type>
            <size>32623</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBhOTkzMzQ3Li5iZGZlMjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00OTA4LDcgKzQ5MDgsNyBAQAogCQlCMkZBM0Ux
ODBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdab29tRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjJGQTNEMzAwQUI3NUE2RjAwMEU1QUM0IC8q
IEpTU1ZHWm9vbUV2ZW50LmNwcCAqLzsgfTsKIAkJQjJGQTNFMTkwQUI3NUE2RjAwMEU1QUM0IC8q
IEpTU1ZHWm9vbUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMkZBM0QzMTBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdab29tRXZlbnQuaCAqLzsg
fTsKIAkJQjUwRjVCODEwRTk2Q0Q5OTAwQUQ3MUE2IC8qIFdlYkNvcmVPYmpDRXh0cmFzLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjUwRjVCODAwRTk2
Q0Q5OTAwQUQ3MUE2IC8qIFdlYkNvcmVPYmpDRXh0cmFzLm1tICovOyBzZXR0aW5ncyA9IHtDT01Q
SUxFUl9GTEFHUyA9ICItV25vLWRlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIjsgfTsgfTsKLQkJQjUx
QTJGM0YxN0Q3RDNBRTAwNzI1MTdBIC8qIEltYWdlUXVhbGl0eUNvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1MUEyRjNFMTdEN0QzQTQw
MDcyNTE3QSAvKiBJbWFnZVF1YWxpdHlDb250cm9sbGVyLmggKi87IH07CisJCUI1MUEyRjNGMTdE
N0QzQUUwMDcyNTE3QSAvKiBJbWFnZVF1YWxpdHlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTFBMkYzRTE3RDdEM0E0MDA3MjUxN0Eg
LyogSW1hZ2VRdWFsaXR5Q29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUI1MUEyRjQxMTdEN0Q1REUwMDcyNTE3QSAvKiBJbWFnZVF1
YWxpdHlDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEI1MUEyRjQwMTdEN0Q1REEwMDcyNTE3QSAvKiBJbWFnZVF1YWxpdHlDb250cm9s
bGVyLmNwcCAqLzsgfTsKIAkJQjUyNUE5NjUxMUNBMjM0MDAwM0EyM0E4IC8qIEpTU1FMRXhjZXB0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTI1
QTk2MzExQ0EyMzQwMDAzQTIzQTggLyogSlNTUUxFeGNlcHRpb24uaCAqLzsgfTsKIAkJQjUyNUE5
NjYxMUNBMjM0MDAwM0EyM0E4IC8qIEpTU1FMRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEI1MjVBOTY0MTFDQTIzNDAwMDNBMjNBOCAv
KiBKU1NRTEV4Y2VwdGlvbi5jcHAgKi87IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZh
c0VsZW1lbnQuY3BwCmluZGV4IDY2MjFlYmEuLmU3MWYxNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCkBAIC0zNzEsNyArMzcxLDcgQEAgYm9vbCBIVE1MQ2Fu
dmFzRWxlbWVudDo6cGFpbnRzSW50b0NhbnZhc0J1ZmZlcigpIGNvbnN0CiB9CiAKIAotdm9pZCBI
VE1MQ2FudmFzRWxlbWVudDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBM
YXlvdXRSZWN0JiByLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSkKK3ZvaWQgSFRNTENhbnZhc0Vs
ZW1lbnQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UmVjdCYg
ciwgSW50ZXJwb2xhdGlvblF1YWxpdHlBZGp1c3RtZW50UmVhc29uIGludGVycG9sYXRpb25RdWFs
aXR5QWRqdXN0bWVudFJlYXNvbikKIHsKICAgICAvLyBDbGVhciB0aGUgZGlydHkgcmVjdAogICAg
IG1fZGlydHlSZWN0ID0gRmxvYXRSZWN0KCk7CkBAIC0zOTMsOSArMzkzLDkgQEAgdm9pZCBIVE1M
Q2FudmFzRWxlbWVudDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBMYXlv
dXRSZWN0JiByLCBib28KICNpZiBFTkFCTEUoQ1NTX0lNQUdFX09SSUVOVEFUSU9OKQogICAgICAg
ICAgICAgICAgIG9yaWVudGF0aW9uRGVzY3JpcHRpb24uc2V0SW1hZ2VPcmllbnRhdGlvbkVudW0o
cmVuZGVyZXIoKS0+c3R5bGUoKS5pbWFnZU9yaWVudGF0aW9uKCkpOwogI2VuZGlmIAotICAgICAg
ICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFnZShtX3ByZXNlbnRlZEltYWdlLmdldCgpLCBDb2xv
clNwYWNlRGV2aWNlUkdCLCBzbmFwcGVkSW50UmVjdChyKSwgSW1hZ2VQYWludGluZ09wdGlvbnMo
b3JpZW50YXRpb25EZXNjcmlwdGlvbiwgdXNlTG93UXVhbGl0eVNjYWxlKSk7CisgICAgICAgICAg
ICAgICAgY29udGV4dC0+ZHJhd0ltYWdlKG1fcHJlc2VudGVkSW1hZ2UuZ2V0KCksIENvbG9yU3Bh
Y2VEZXZpY2VSR0IsIHNuYXBwZWRJbnRSZWN0KHIpLCBJbWFnZVBhaW50aW5nT3B0aW9ucyhvcmll
bnRhdGlvbkRlc2NyaXB0aW9uLCBpbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb24p
KTsKICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmRyYXdJbWFn
ZUJ1ZmZlcihpbWFnZUJ1ZmZlciwgQ29sb3JTcGFjZURldmljZVJHQiwgc25hcHBlZEludFJlY3Qo
ciksIHVzZUxvd1F1YWxpdHlTY2FsZSk7CisgICAgICAgICAgICAgICAgY29udGV4dC0+ZHJhd0lt
YWdlQnVmZmVyKGltYWdlQnVmZmVyLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBzbmFwcGVkSW50UmVj
dChyKSwgaW50ZXJwb2xhdGlvblF1YWxpdHlBZGp1c3RtZW50UmVhc29uKTsKICAgICAgICAgfQog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5oCmluZGV4IGZmNjkz
YTEuLjg3MzJmMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmgKQEAg
LTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkhUTUxF
bGVtZW50LmgiCisjaW5jbHVkZSAiSW1hZ2VRdWFsaXR5Q29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkludFNpemUuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
QEAgLTEwNSw3ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWREcmF3KGNvbnN0IEZsb2F0
UmVjdCYpOwogICAgIHZvaWQgbm90aWZ5T2JzZXJ2ZXJzQ2FudmFzQ2hhbmdlZChjb25zdCBGbG9h
dFJlY3QmKTsKIAotICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0
UmVjdCYsIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxlID0gZmFsc2UpOworICAgIHZvaWQgcGFpbnQo
R3JhcGhpY3NDb250ZXh0KiwgY29uc3QgTGF5b3V0UmVjdCYsIEludGVycG9sYXRpb25RdWFsaXR5
QWRqdXN0bWVudFJlYXNvbiBpbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb24gPSBJ
bnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb246OkRlZmF1bHQpOwogCiAgICAgR3Jh
cGhpY3NDb250ZXh0KiBkcmF3aW5nQ29udGV4dCgpIGNvbnN0OwogICAgIEdyYXBoaWNzQ29udGV4
dCogZXhpc3RpbmdEcmF3aW5nQ29udGV4dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKaW5kZXggYjkzZGYzYy4u
YTI1NDhhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuY3BwCkBAIC03OSwyNSArNzksMzUgQEAgcHJpdmF0ZToKIAogY2xhc3Mg
SW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBJ
bnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIoR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0Nv
bnRleHQsIEludGVycG9sYXRpb25RdWFsaXR5IGludGVycG9sYXRpb25RdWFsaXR5VG9Vc2UpCisg
ICAgZXhwbGljaXQgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyKEdyYXBoaWNzQ29udGV4
dCYgZ3JhcGhpY3NDb250ZXh0LCBJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbnRlcnBvbGF0aW9uUXVh
bGl0eVRvVXNlLCBJbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb24gaW50ZXJwb2xh
dGlvblF1YWxpdHlBZGp1c3RtZW50UmVhc29uVG9Vc2UpCiAgICAgICAgIDogbV9ncmFwaGljc0Nv
bnRleHQoZ3JhcGhpY3NDb250ZXh0KQogICAgICAgICAsIG1fY3VycmVudEludGVycG9sYXRpb25R
dWFsaXR5KGdyYXBoaWNzQ29udGV4dC5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5KCkpCisgICAg
ICAgICwgbV9jdXJyZW50SW50ZXJwb2xhdGlvblF1YWxpdHlBZGp1c3RtZW50UmVhc29uKGdyYXBo
aWNzQ29udGV4dC5pbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb24oKSkKICAgICAg
ICAgLCBtX2ludGVycG9sYXRpb25RdWFsaXR5Q2hhbmdlZChtX2N1cnJlbnRJbnRlcnBvbGF0aW9u
UXVhbGl0eSAhPSBpbnRlcnBvbGF0aW9uUXVhbGl0eVRvVXNlKQorICAgICAgICAsIG1faW50ZXJw
b2xhdGlvblF1YWxpdHlBZGp1c3RtZW50UmVhc29uQ2hhbmdlZChtX2N1cnJlbnRJbnRlcnBvbGF0
aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb24gIT0gaW50ZXJwb2xhdGlvblF1YWxpdHlBZGp1c3Rt
ZW50UmVhc29uVG9Vc2UpCiAgICAgewogICAgICAgICBpZiAobV9pbnRlcnBvbGF0aW9uUXVhbGl0
eUNoYW5nZWQpCiAgICAgICAgICAgICBtX2dyYXBoaWNzQ29udGV4dC5zZXRJbWFnZUludGVycG9s
YXRpb25RdWFsaXR5KGludGVycG9sYXRpb25RdWFsaXR5VG9Vc2UpOworCisgICAgICAgIGlmICht
X2ludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbkNoYW5nZWQpCisgICAgICAgICAg
ICBtX2dyYXBoaWNzQ29udGV4dC5zZXRJbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFz
b24oaW50ZXJwb2xhdGlvblF1YWxpdHlBZGp1c3RtZW50UmVhc29uVG9Vc2UpOwogICAgIH0KIAog
ICAgIH5JbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIoKQogICAgIHsKICAgICAgICAgaWYg
KG1faW50ZXJwb2xhdGlvblF1YWxpdHlDaGFuZ2VkKQogICAgICAgICAgICAgbV9ncmFwaGljc0Nv
bnRleHQuc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShtX2N1cnJlbnRJbnRlcnBvbGF0aW9u
UXVhbGl0eSk7CisKKyAgICAgICAgaWYgKG1faW50ZXJwb2xhdGlvblF1YWxpdHlBZGp1c3RtZW50
UmVhc29uQ2hhbmdlZCkKKyAgICAgICAgICAgIG1fZ3JhcGhpY3NDb250ZXh0LnNldEludGVycG9s
YXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbihtX2N1cnJlbnRJbnRlcnBvbGF0aW9uUXVhbGl0
eUFkanVzdG1lbnRSZWFzb24pOwogICAgIH0KIAogcHJpdmF0ZToKICAgICBHcmFwaGljc0NvbnRl
eHQmIG1fZ3JhcGhpY3NDb250ZXh0OwogICAgIEludGVycG9sYXRpb25RdWFsaXR5IG1fY3VycmVu
dEludGVycG9sYXRpb25RdWFsaXR5OworICAgIEludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVu
dFJlYXNvbiBtX2N1cnJlbnRJbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb247CiAg
ICAgYm9vbCBtX2ludGVycG9sYXRpb25RdWFsaXR5Q2hhbmdlZDsKKyAgICBib29sIG1faW50ZXJw
b2xhdGlvblF1YWxpdHlBZGp1c3RtZW50UmVhc29uQ2hhbmdlZDsKIH07CiAKIEdyYXBoaWNzQ29u
dGV4dDo6R3JhcGhpY3NDb250ZXh0KFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KiBwbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dCkKQEAgLTU4Niw3ICs1OTYsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd0ltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdCBGbG9h
dAogICAgICAgICByZXR1cm47CiAKICAgICAvLyBGSVhNRSAoNDkwMDIpOiBTaG91bGQgYmUgSW50
ZXJwb2xhdGlvbkxvdwotICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFpbnRhaW5lciBpbnRlcnBv
bGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgaW1hZ2VQYWludGluZ09wdGlvbnMubV91
c2VMb3dRdWFsaXR5U2NhbGUgPyBJbnRlcnBvbGF0aW9uTm9uZSA6IGltYWdlSW50ZXJwb2xhdGlv
blF1YWxpdHkoKSk7CisgICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIGludGVycG9s
YXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKCp0aGlzLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2lu
dGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbiAhPSBJbnRlcnBvbGF0aW9uUXVhbGl0
eUFkanVzdG1lbnRSZWFzb246OkRlZmF1bHQgPyBJbnRlcnBvbGF0aW9uTm9uZSA6IGltYWdlSW50
ZXJwb2xhdGlvblF1YWxpdHkoKSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9pbnRlcnBvbGF0aW9u
UXVhbGl0eUFkanVzdG1lbnRSZWFzb24pOwogICAgIGltYWdlLT5kcmF3KHRoaXMsIGRlc3RpbmF0
aW9uLCBzb3VyY2UsIGNvbG9yU3BhY2UsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fY29tcG9zaXRl
T3BlcmF0b3IsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fYmxlbmRNb2RlLCBpbWFnZVBhaW50aW5n
T3B0aW9ucy5tX29yaWVudGF0aW9uRGVzY3JpcHRpb24pOwogfQogCkBAIC01OTYsNyArNjA2LDcg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdUaWxlZEltYWdlKEltYWdlKiBpbWFnZSwgQ29s
b3JTcGFjZSBjb2xvclNwYWNlLCBjb25zdAogICAgIGlmIChwYWludGluZ0Rpc2FibGVkKCkgfHwg
IWltYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50
YWluZXIgaW50ZXJwb2xhdGlvblF1YWxpdHlGb3JUaGlzU2NvcGUoKnRoaXMsIGltYWdlUGFpbnRp
bmdPcHRpb25zLm1fdXNlTG93UXVhbGl0eVNjYWxlID8gSW50ZXJwb2xhdGlvbkxvdyA6IGltYWdl
SW50ZXJwb2xhdGlvblF1YWxpdHkoKSk7CisgICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFp
bmVyIGludGVycG9sYXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKCp0aGlzLCBpbWFnZVBhaW50aW5n
T3B0aW9ucy5tX2ludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbiAhPSBJbnRlcnBv
bGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb246OkRlZmF1bHQgPyBJbnRlcnBvbGF0aW9uTG93
IDogaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSgpLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2lu
dGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbik7CiAgICAgaW1hZ2UtPmRyYXdUaWxl
ZCh0aGlzLCBkZXN0aW5hdGlvbiwgc291cmNlLCB0aWxlU2l6ZSwgY29sb3JTcGFjZSwgaW1hZ2VQ
YWludGluZ09wdGlvbnMubV9jb21wb3NpdGVPcGVyYXRvciwgaW1hZ2VQYWludGluZ09wdGlvbnMu
bV9ibGVuZE1vZGUpOwogfQogCkBAIC02MTIsNyArNjIyLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmRyYXdUaWxlZEltYWdlKEltYWdlKiBpbWFnZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlLCBj
b25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgSW50ZXJwb2xhdGlvblF1YWxpdHlN
YWludGFpbmVyIGludGVycG9sYXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKCp0aGlzLCBpbWFnZVBh
aW50aW5nT3B0aW9ucy5tX3VzZUxvd1F1YWxpdHlTY2FsZSA/IEludGVycG9sYXRpb25Mb3cgOiBp
bWFnZUludGVycG9sYXRpb25RdWFsaXR5KCkpOworICAgIEludGVycG9sYXRpb25RdWFsaXR5TWFp
bnRhaW5lciBpbnRlcnBvbGF0aW9uUXVhbGl0eUZvclRoaXNTY29wZSgqdGhpcywgaW1hZ2VQYWlu
dGluZ09wdGlvbnMubV9pbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb24gIT0gSW50
ZXJwb2xhdGlvblF1YWxpdHlBZGp1c3RtZW50UmVhc29uOjpEZWZhdWx0ID8gSW50ZXJwb2xhdGlv
bkxvdyA6IGltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoKSwgaW1hZ2VQYWludGluZ09wdGlvbnMu
bV9pbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb24pOwogICAgIGltYWdlLT5kcmF3
VGlsZWQodGhpcywgZGVzdGluYXRpb24sIHNvdXJjZSwgdGlsZVNjYWxlRmFjdG9yLCBoUnVsZSwg
dlJ1bGUsIGNvbG9yU3BhY2UsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fY29tcG9zaXRlT3BlcmF0
b3IpOwogfQogCkBAIC02MzYsOCArNjQ2LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdJ
bWFnZUJ1ZmZlcihJbWFnZUJ1ZmZlciogaW1hZ2UsIENvbG9yU3BhY2UgY29sb3JTcGFjZSwKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklYTUUgKDQ5MDAyKTogU2hvdWxkIGJlIEludGVycG9s
YXRpb25Mb3cKLSAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIgaW50ZXJwb2xhdGlv
blF1YWxpdHlGb3JUaGlzU2NvcGUoKnRoaXMsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fdXNlTG93
UXVhbGl0eVNjYWxlID8gSW50ZXJwb2xhdGlvbk5vbmUgOiBpbWFnZUludGVycG9sYXRpb25RdWFs
aXR5KCkpOwotICAgIGltYWdlLT5kcmF3KHRoaXMsIGNvbG9yU3BhY2UsIGRlc3RpbmF0aW9uLCBz
b3VyY2UsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fY29tcG9zaXRlT3BlcmF0b3IsIGltYWdlUGFp
bnRpbmdPcHRpb25zLm1fYmxlbmRNb2RlLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX3VzZUxvd1F1
YWxpdHlTY2FsZSk7CisgICAgSW50ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIGludGVycG9s
YXRpb25RdWFsaXR5Rm9yVGhpc1Njb3BlKCp0aGlzLCBpbWFnZVBhaW50aW5nT3B0aW9ucy5tX2lu
dGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbiAhPSBJbnRlcnBvbGF0aW9uUXVhbGl0
eUFkanVzdG1lbnRSZWFzb246OkRlZmF1bHQgPyBJbnRlcnBvbGF0aW9uTm9uZSA6IGltYWdlSW50
ZXJwb2xhdGlvblF1YWxpdHkoKSwgaW1hZ2VQYWludGluZ09wdGlvbnMubV9pbnRlcnBvbGF0aW9u
UXVhbGl0eUFkanVzdG1lbnRSZWFzb24pOworICAgIGltYWdlLT5kcmF3KHRoaXMsIGNvbG9yU3Bh
Y2UsIGRlc3RpbmF0aW9uLCBzb3VyY2UsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fY29tcG9zaXRl
T3BlcmF0b3IsIGltYWdlUGFpbnRpbmdPcHRpb25zLm1fYmxlbmRNb2RlLCBpbWFnZVBhaW50aW5n
T3B0aW9ucy5tX2ludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbik7CiB9CiAKIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpjbGlwKGNvbnN0IEludFJlY3QmIHJlY3QpCkBAIC05NjYsNCAr
OTc2LDE1IEBAIEZsb2F0UmVjdCBHcmFwaGljc0NvbnRleHQ6OmNvbXB1dGVMaW5lQm91bmRzQW5k
QW50aWFsaWFzaW5nTW9kZUZvclRleHQoY29uc3QgRmxvCiAgICAgcmV0dXJuIEZsb2F0UmVjdChv
cmlnaW4ueCgpLCBvcmlnaW4ueSgpLCB3aWR0aCwgdGhpY2tuZXNzKTsKIH0KIAorLy8gcmVuYW1l
IHRoZXNlCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0SW50ZXJwb2xhdGlvblF1YWxpdHlBZGp1
c3RtZW50UmVhc29uKEludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbiByZWFzb24p
Cit7CisgICAgbV9zdGF0ZS5pbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb24gPSBy
ZWFzb247Cit9CisKK0ludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbiBHcmFwaGlj
c0NvbnRleHQ6OmludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbigpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fc3RhdGUuaW50ZXJwb2xhdGlvblF1YWxpdHlBZGp1c3RtZW50UmVhc29u
OworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5oCmluZGV4IGM2Zjg2MWQuLjRmOTdlZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCkBAIC0xMTUsNiArMTE1
LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgSW50ZXJwb2xhdGlvbkhpZ2gKICAg
ICB9OwogCisgICAgZW51bSBjbGFzcyBJbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFz
b24geworICAgICAgICBEZWZhdWx0LAorICAgICAgICBJbkxpdmVSZXNpemUsCisgICAgICAgIEZv
cmNlZEJ5Q29udGVudCwKKyAgICAgICAgRm9yY2VkQnlWaWV3CisgICAgfTsKKwogICAgIHN0cnVj
dCBHcmFwaGljc0NvbnRleHRTdGF0ZSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlKCkK
ICAgICAgICAgICAgIDogc3Ryb2tlVGhpY2tuZXNzKDApCkBAIC0xMjksNiArMTM2LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgLCBzaGFkb3dDb2xvclNwYWNlKENvbG9yU3Bh
Y2VEZXZpY2VSR0IpCiAgICAgICAgICAgICAsIGNvbXBvc2l0ZU9wZXJhdG9yKENvbXBvc2l0ZVNv
dXJjZU92ZXIpCiAgICAgICAgICAgICAsIGJsZW5kTW9kZShCbGVuZE1vZGVOb3JtYWwpCisgICAg
ICAgICAgICAsIGludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbihJbnRlcnBvbGF0
aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb246OkRlZmF1bHQpCiAjaWYgUExBVEZPUk0oSU9TKQog
ICAgICAgICAgICAgLCBlbW9qaURyYXdpbmdFbmFibGVkKHRydWUpCiAjZW5kaWYKQEAgLTE3Myw2
ICsxODEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIENvbXBvc2l0ZU9wZXJhdG9y
IGNvbXBvc2l0ZU9wZXJhdG9yOwogICAgICAgICBCbGVuZE1vZGUgYmxlbmRNb2RlOwogCisgICAg
ICAgIEludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbiBpbnRlcnBvbGF0aW9uUXVh
bGl0eUFkanVzdG1lbnRSZWFzb247CisKICNpZiBQTEFURk9STShJT1MpCiAgICAgICAgIGJvb2wg
ZW1vamlEcmF3aW5nRW5hYmxlZCA6IDE7CiAjZW5kaWYKQEAgLTE4OCwzNCArMTk4LDM0IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICB9OwogCiAgICAgc3RydWN0IEltYWdlUGFpbnRpbmdPcHRp
b25zIHsKLSAgICAgICAgSW1hZ2VQYWludGluZ09wdGlvbnMoQ29tcG9zaXRlT3BlcmF0b3IgY29t
cG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VPdmVyLCBCbGVuZE1vZGUgYmxlbmRNb2Rl
ID0gQmxlbmRNb2RlTm9ybWFsLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gb3JpZW50YXRp
b25EZXNjcmlwdGlvbiA9IEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbigpLCBib29sIHVzZUxv
d1F1YWxpdHlTY2FsZSA9IGZhbHNlKQorICAgICAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyhDb21w
b3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciA9IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJs
ZW5kTW9kZSBibGVuZE1vZGUgPSBCbGVuZE1vZGVOb3JtYWwsIEltYWdlT3JpZW50YXRpb25EZXNj
cmlwdGlvbiBvcmllbnRhdGlvbkRlc2NyaXB0aW9uID0gSW1hZ2VPcmllbnRhdGlvbkRlc2NyaXB0
aW9uKCksIEludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbiBpbnRlcnBvbGF0aW9u
UXVhbGl0eUFkanVzdG1lbnRSZWFzb24gPSBJbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRS
ZWFzb246OkRlZmF1bHQpCiAgICAgICAgICAgICA6IG1fY29tcG9zaXRlT3BlcmF0b3IoY29tcG9z
aXRlT3BlcmF0b3IpCiAgICAgICAgICAgICAsIG1fYmxlbmRNb2RlKGJsZW5kTW9kZSkKICAgICAg
ICAgICAgICwgbV9vcmllbnRhdGlvbkRlc2NyaXB0aW9uKG9yaWVudGF0aW9uRGVzY3JpcHRpb24p
Ci0gICAgICAgICAgICAsIG1fdXNlTG93UXVhbGl0eVNjYWxlKHVzZUxvd1F1YWxpdHlTY2FsZSkK
KyAgICAgICAgICAgICwgbV9pbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb24oaW50
ZXJwb2xhdGlvblF1YWxpdHlBZGp1c3RtZW50UmVhc29uKQogICAgICAgICB7CiAgICAgICAgIH0K
IAotICAgICAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyhJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRp
b24gb3JpZW50YXRpb25EZXNjcmlwdGlvbiwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBmYWxz
ZSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IgPSBDb21wb3NpdGVTb3VyY2VP
dmVyLCBCbGVuZE1vZGUgYmxlbmRNb2RlID0gQmxlbmRNb2RlTm9ybWFsKQorICAgICAgICBJbWFn
ZVBhaW50aW5nT3B0aW9ucyhJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gb3JpZW50YXRpb25E
ZXNjcmlwdGlvbiwgSW50ZXJwb2xhdGlvblF1YWxpdHlBZGp1c3RtZW50UmVhc29uIGludGVycG9s
YXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbiA9IEludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0
bWVudFJlYXNvbjo6RGVmYXVsdCwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3Ig
PSBDb21wb3NpdGVTb3VyY2VPdmVyLCBCbGVuZE1vZGUgYmxlbmRNb2RlID0gQmxlbmRNb2RlTm9y
bWFsKQogICAgICAgICAgICAgOiBtX2NvbXBvc2l0ZU9wZXJhdG9yKGNvbXBvc2l0ZU9wZXJhdG9y
KQogICAgICAgICAgICAgLCBtX2JsZW5kTW9kZShibGVuZE1vZGUpCiAgICAgICAgICAgICAsIG1f
b3JpZW50YXRpb25EZXNjcmlwdGlvbihvcmllbnRhdGlvbkRlc2NyaXB0aW9uKQotICAgICAgICAg
ICAgLCBtX3VzZUxvd1F1YWxpdHlTY2FsZSh1c2VMb3dRdWFsaXR5U2NhbGUpCisgICAgICAgICAg
ICAsIG1faW50ZXJwb2xhdGlvblF1YWxpdHlBZGp1c3RtZW50UmVhc29uKGludGVycG9sYXRpb25R
dWFsaXR5QWRqdXN0bWVudFJlYXNvbikKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAg
SW1hZ2VQYWludGluZ09wdGlvbnMoYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUsIEltYWdlT3JpZW50
YXRpb25EZXNjcmlwdGlvbiBvcmllbnRhdGlvbkRlc2NyaXB0aW9uID0gSW1hZ2VPcmllbnRhdGlv
bkRlc2NyaXB0aW9uKCksIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wZXJhdG9yID0gQ29t
cG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlIGJsZW5kTW9kZSA9IEJsZW5kTW9kZU5vcm1hbCkK
KyAgICAgICAgSW1hZ2VQYWludGluZ09wdGlvbnMoSW50ZXJwb2xhdGlvblF1YWxpdHlBZGp1c3Rt
ZW50UmVhc29uIGludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbiwgSW1hZ2VPcmll
bnRhdGlvbkRlc2NyaXB0aW9uIG9yaWVudGF0aW9uRGVzY3JpcHRpb24gPSBJbWFnZU9yaWVudGF0
aW9uRGVzY3JpcHRpb24oKSwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IgPSBD
b21wb3NpdGVTb3VyY2VPdmVyLCBCbGVuZE1vZGUgYmxlbmRNb2RlID0gQmxlbmRNb2RlTm9ybWFs
KQogICAgICAgICAgICAgOiBtX2NvbXBvc2l0ZU9wZXJhdG9yKGNvbXBvc2l0ZU9wZXJhdG9yKQog
ICAgICAgICAgICAgLCBtX2JsZW5kTW9kZShibGVuZE1vZGUpCiAgICAgICAgICAgICAsIG1fb3Jp
ZW50YXRpb25EZXNjcmlwdGlvbihvcmllbnRhdGlvbkRlc2NyaXB0aW9uKQotICAgICAgICAgICAg
LCBtX3VzZUxvd1F1YWxpdHlTY2FsZSh1c2VMb3dRdWFsaXR5U2NhbGUpCisgICAgICAgICAgICAs
IG1faW50ZXJwb2xhdGlvblF1YWxpdHlBZGp1c3RtZW50UmVhc29uKGludGVycG9sYXRpb25RdWFs
aXR5QWRqdXN0bWVudFJlYXNvbikKICAgICAgICAgewogICAgICAgICB9CiAKICAgICAgICAgQ29t
cG9zaXRlT3BlcmF0b3IgbV9jb21wb3NpdGVPcGVyYXRvcjsKICAgICAgICAgQmxlbmRNb2RlIG1f
YmxlbmRNb2RlOwogICAgICAgICBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24gbV9vcmllbnRh
dGlvbkRlc2NyaXB0aW9uOwotICAgICAgICBib29sIG1fdXNlTG93UXVhbGl0eVNjYWxlOworICAg
ICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb24gbV9pbnRlcnBvbGF0aW9u
UXVhbGl0eUFkanVzdG1lbnRSZWFzb247CiAgICAgfTsKIAogICAgIGNsYXNzIEdyYXBoaWNzQ29u
dGV4dCB7CkBAIC0zMzYsNiArMzQ2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xh
dGlvblF1YWxpdHkpOwogICAgICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eSBpbWFnZUludGVycG9s
YXRpb25RdWFsaXR5KCkgY29uc3Q7CiAKKyAgICAgICAgdm9pZCBzZXRJbnRlcnBvbGF0aW9uUXVh
bGl0eUFkanVzdG1lbnRSZWFzb24oSW50ZXJwb2xhdGlvblF1YWxpdHlBZGp1c3RtZW50UmVhc29u
KTsKKyAgICAgICAgSW50ZXJwb2xhdGlvblF1YWxpdHlBZGp1c3RtZW50UmVhc29uIGludGVycG9s
YXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbigpIGNvbnN0OworCiAgICAgICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgY2xpcChjb25zdCBJbnRSZWN0Jik7CiAgICAgICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgY2xpcChjb25zdCBGbG9hdFJlY3QmKTsKICAgICAgICAgdm9pZCBjbGlwUm91bmRlZFJl
Y3QoY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggMTk1NTcxMi4uMTJiNGY3MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NUeXBlczNELmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5o
IgogI2luY2x1ZGUgIkltYWdlQnVmZmVyRGF0YS5oIgorI2luY2x1ZGUgIkltYWdlUXVhbGl0eUNv
bnRyb2xsZXIuaCIgLy8gTk8gUExaCiAjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgogI2luY2x1
ZGUgPHJ1bnRpbWUvVWludDhDbGFtcGVkQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgpAQCAtMTM4LDcgKzEzOSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICB2b2lkIGNsaXAoR3Jh
cGhpY3NDb250ZXh0KiwgY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAKLSAgICB2b2lkIGRyYXco
R3JhcGhpY3NDb250ZXh0KiwgQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0ID0gRmxvYXRSZWN0KDAsIDAsIC0xLCAtMSksIENvbXBv
c2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlID0gQmxlbmRNb2Rl
Tm9ybWFsLCBib29sIHVzZUxvd1F1YWxpdHlTY2FsZSA9IGZhbHNlKTsKKyAgICB2b2lkIGRyYXco
R3JhcGhpY3NDb250ZXh0KiwgQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0ID0gRmxvYXRSZWN0KDAsIDAsIC0xLCAtMSksIENvbXBv
c2l0ZU9wZXJhdG9yID0gQ29tcG9zaXRlU291cmNlT3ZlciwgQmxlbmRNb2RlID0gQmxlbmRNb2Rl
Tm9ybWFsLCBJbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb24gaW50ZXJwb2xhdGlv
blF1YWxpdHlBZGp1c3RtZW50UmVhc29uID0gSW50ZXJwb2xhdGlvblF1YWxpdHlBZGp1c3RtZW50
UmVhc29uOjpEZWZhdWx0KTsKICAgICB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCos
IGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJu
VHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgQ29sb3JTcGFjZSBzdHlsZUNvbG9y
U3BhY2UsIENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBCbGVu
ZE1vZGUgPSBCbGVuZE1vZGVOb3JtYWwpOwogCiAgICAgaW5saW5lIHZvaWQgZ2VuZXJpY0NvbnZl
cnRUb0x1bWluYW5jZU1hc2soKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAKaW5kZXggYzc2MTM4Ny4uYTFjYTFhZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJD
Ry5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZm
ZXJDRy5jcHAKQEAgLTI4NSw5ICsyODUsOSBAQCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gSW1hZ2VC
dWZmZXI6OmNvcHlOYXRpdmVJbWFnZShCYWNraW5nU3RvcmVDb3B5IGNvcHlCZWhhdmlvcgogICAg
IHJldHVybiBhZG9wdENGKGltYWdlKTsKIH0KIAotdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhdyhHcmFw
aGljc0NvbnRleHQqIGRlc3RDb250ZXh0LCBDb2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29u
c3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBDb21wb3Np
dGVPcGVyYXRvciBvcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSwgYm9vbCB1c2VMb3dRdWFsaXR5U2Nh
bGUpCit2b2lkIEltYWdlQnVmZmVyOjpkcmF3KEdyYXBoaWNzQ29udGV4dCogZGVzdENvbnRleHQs
IENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUg
YmxlbmRNb2RlLCBJbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb24gaW50ZXJwb2xh
dGlvblF1YWxpdHlBZGp1c3RtZW50UmVhc29uKQogewotICAgIFVOVVNFRF9QQVJBTSh1c2VMb3dR
dWFsaXR5U2NhbGUpOworICAgIFVOVVNFRF9QQVJBTShpbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVz
dG1lbnRSZWFzb24pOwogICAgIENvbG9yU3BhY2UgY29sb3JTcGFjZSA9IChkZXN0Q29udGV4dCA9
PSBtX2NvbnRleHQpID8gQ29sb3JTcGFjZURldmljZVJHQiA6IHN0eWxlQ29sb3JTcGFjZTsKIAog
ICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBpbWFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1BERkRvY3VtZW50SW1hZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKaW5kZXggNDAy
MmZhZC4uZDM4ZTliZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvUERGRG9jdW1lbnRJbWFnZS5jcHAKQEAgLTE0OCw4ICsxNDgsOSBAQCB2b2lk
IFBERkRvY3VtZW50SW1hZ2U6OnVwZGF0ZUNhY2hlZEltYWdlSWZOZWVkZWQoR3JhcGhpY3NDb250
ZXh0KiBjb250ZXh0LCBjb25zdAogICAgIC8vIHdlJ2xsIHJlcmVuZGVyIHdoZW4gd2UgZG8gdGhl
IHN1YnNlcXVlbnQgaGlnaC1xdWFsaXR5IHBhaW50LgogICAgIEludGVycG9sYXRpb25RdWFsaXR5
IGludGVycG9sYXRpb25RdWFsaXR5ID0gY29udGV4dC0+aW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0
eSgpOwogICAgIGJvb2wgdXNlTG93UXVhbGl0eUludGVycG9sYXRpb24gPSBpbnRlcnBvbGF0aW9u
UXVhbGl0eSA9PSBJbnRlcnBvbGF0aW9uTm9uZSB8fCBpbnRlcnBvbGF0aW9uUXVhbGl0eSA9PSBJ
bnRlcnBvbGF0aW9uTG93OworICAgIEludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNv
biBpbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb24gPSBjb250ZXh0LT5pbnRlcnBv
bGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb24oKTsKIAotICAgIGlmICghbV9jYWNoZWRJbWFn
ZUJ1ZmZlciB8fCAoIWNhY2hlUGFyYW1ldGVyc01hdGNoKGNvbnRleHQsIGRzdFJlY3QsIHNyY1Jl
Y3QpICYmICF1c2VMb3dRdWFsaXR5SW50ZXJwb2xhdGlvbikpIHsKKyAgICBpZiAoIW1fY2FjaGVk
SW1hZ2VCdWZmZXIgfHwgKCFjYWNoZVBhcmFtZXRlcnNNYXRjaChjb250ZXh0LCBkc3RSZWN0LCBz
cmNSZWN0KSAmJiAhKHVzZUxvd1F1YWxpdHlJbnRlcnBvbGF0aW9uICYmIGludGVycG9sYXRpb25R
dWFsaXR5QWRqdXN0bWVudFJlYXNvbiA9PSBJbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRS
ZWFzb246OkluTGl2ZVJlc2l6ZSkpKSB7CiAgICAgICAgIG1fY2FjaGVkSW1hZ2VCdWZmZXIgPSBj
b250ZXh0LT5jcmVhdGVDb21wYXRpYmxlQnVmZmVyKEZsb2F0UmVjdChlbmNsb3NpbmdJbnRSZWN0
KGRzdFJlY3QpKS5zaXplKCkpOwogICAgICAgICBpZiAoIW1fY2FjaGVkSW1hZ2VCdWZmZXIpCiAg
ICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SW1hZ2VRdWFsaXR5Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW1h
Z2VRdWFsaXR5Q29udHJvbGxlci5jcHAKaW5kZXggZTgyZWVkNi4uNDBlZWUzYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ltYWdlUXVhbGl0eUNvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbWFnZVF1YWxpdHlDb250cm9sbGVyLmNwcApA
QCAtOTksMTkgKzk5LDE5IEBAIHZvaWQgSW1hZ2VRdWFsaXR5Q29udHJvbGxlcjo6cmVzdGFydFRp
bWVyKCkKICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdChjTG93UXVhbGl0eVRpbWVUaHJlc2hvbGQp
OwogfQogCi1ib29sIEltYWdlUXVhbGl0eUNvbnRyb2xsZXI6OnNob3VsZFBhaW50QXRMb3dRdWFs
aXR5KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgUmVuZGVyQm94TW9kZWxPYmplY3QqIG9iamVj
dCwgSW1hZ2UqIGltYWdlLCBjb25zdCB2b2lkICpsYXllciwgY29uc3QgTGF5b3V0U2l6ZSYgc2l6
ZSkKK0ludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbiBJbWFnZVF1YWxpdHlDb250
cm9sbGVyOjpzaG91bGRQYWludEF0TG93UXVhbGl0eShHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IFJlbmRlckJveE1vZGVsT2JqZWN0KiBvYmplY3QsIEltYWdlKiBpbWFnZSwgY29uc3Qgdm9pZCAq
bGF5ZXIsIGNvbnN0IExheW91dFNpemUmIHNpemUpCiB7CiAgICAgLy8gSWYgdGhlIGltYWdlIGlz
IG5vdCBhIGJpdG1hcCBpbWFnZSwgdGhlbiBub25lIG9mIHRoaXMgaXMgcmVsZXZhbnQgYW5kIHdl
IGp1c3QgcGFpbnQgYXQgaGlnaAogICAgIC8vIHF1YWxpdHkuCiAgICAgaWYgKCFpbWFnZSB8fCAh
KGltYWdlLT5pc0JpdG1hcEltYWdlKCkgfHwgaW1hZ2UtPmlzUERGRG9jdW1lbnRJbWFnZSgpKSB8
fCBjb250ZXh0LT5wYWludGluZ0Rpc2FibGVkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbjo6RGVmYXVs
dDsKIAogICAgIHN3aXRjaCAob2JqZWN0LT5zdHlsZSgpLmltYWdlUmVuZGVyaW5nKCkpIHsKICAg
ICBjYXNlIEltYWdlUmVuZGVyaW5nT3B0aW1pemVTcGVlZDoKICAgICBjYXNlIEltYWdlUmVuZGVy
aW5nQ3Jpc3BFZGdlczoKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBJbnRl
cnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb246OkZvcmNlZEJ5Q29udGVudDsKICAgICBj
YXNlIEltYWdlUmVuZGVyaW5nT3B0aW1pemVRdWFsaXR5OgotICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb246OkRl
ZmF1bHQ7CiAgICAgY2FzZSBJbWFnZVJlbmRlcmluZ0F1dG86CiAgICAgICAgIGJyZWFrOwogICAg
IH0KQEAgLTE0MCwxMCArMTQwLDEwIEBAIGJvb2wgSW1hZ2VRdWFsaXR5Q29udHJvbGxlcjo6c2hv
dWxkUGFpbnRBdExvd1F1YWxpdHkoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBSCiAgICAgICAg
ICAgICBzZXQob2JqZWN0LCBpbm5lck1hcCwgbGF5ZXIsIHNpemUpOwogICAgICAgICAgICAgcmVz
dGFydFRpbWVyKCk7CiAgICAgICAgICAgICBtX2xpdmVSZXNpemVPcHRpbWl6YXRpb25Jc0FjdGl2
ZSA9IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBJ
bnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb246OkluTGl2ZVJlc2l6ZTsKICAgICAg
ICAgfQogICAgICAgICBpZiAobV9saXZlUmVzaXplT3B0aW1pemF0aW9uSXNBY3RpdmUpCi0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gSW50ZXJwb2xhdGlvblF1
YWxpdHlBZGp1c3RtZW50UmVhc29uOjpEZWZhdWx0OwogICAgIH0KIAogICAgIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgY3VycmVudFRyYW5zZm9ybSA9IGNvbnRleHQtPmdldENUTSgpOwpAQCAtMTUx
LDIxICsxNTEsMjEgQEAgYm9vbCBJbWFnZVF1YWxpdHlDb250cm9sbGVyOjpzaG91bGRQYWludEF0
TG93UXVhbGl0eShHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFIKICAgICBpZiAoIWNvbnRleHRJ
c1NjYWxlZCAmJiBzaXplID09IGltYWdlU2l6ZSkgewogICAgICAgICAvLyBUaGVyZSBpcyBubyBz
Y2FsZSBpbiBlZmZlY3QuIElmIHdlIGhhZCBhIHNjYWxlIGluIGVmZmVjdCBiZWZvcmUsIHdlIGNh
biBqdXN0IHJlbW92ZSB0aGlzIG9iamVjdCBmcm9tIHRoZSBsaXN0LgogICAgICAgICByZW1vdmVM
YXllcihvYmplY3QsIGlubmVyTWFwLCBsYXllcik7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbjo6RGVmYXVs
dDsKICAgICB9CiAKICAgICAvLyBUaGVyZSBpcyBubyBuZWVkIHRvIGhhc2ggc2NhbGVkIGltYWdl
cyB0aGF0IGFsd2F5cyB1c2UgbG93IHF1YWxpdHkgbW9kZSB3aGVuIHRoZSBwYWdlIGRlbWFuZHMg
aXQuIFRoaXMgaXMgdGhlIGlDaGF0IGNhc2UuCiAgICAgaWYgKG1fcmVuZGVyVmlldy5mcmFtZSgp
LnBhZ2UoKS0+aW5Mb3dRdWFsaXR5SW1hZ2VJbnRlcnBvbGF0aW9uTW9kZSgpKSB7CiAgICAgICAg
IGRvdWJsZSB0b3RhbFBpeGVscyA9IHN0YXRpY19jYXN0PGRvdWJsZT4oaW1hZ2UtPndpZHRoKCkp
ICogc3RhdGljX2Nhc3Q8ZG91YmxlPihpbWFnZS0+aGVpZ2h0KCkpOwogICAgICAgICBpZiAodG90
YWxQaXhlbHMgPiBjSW50ZXJwb2xhdGlvbkN1dG9mZikKLSAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNv
bjo6Rm9yY2VkQnlWaWV3OwogICAgIH0KIAogICAgIC8vIElmIGFuIGFuaW1hdGVkIHJlc2l6ZSBp
cyBhY3RpdmUsIHBhaW50IGluIGxvdyBxdWFsaXR5IGFuZCBraWNrIHRoZSB0aW1lciBhaGVhZC4K
ICAgICBpZiAobV9hbmltYXRlZFJlc2l6ZUlzQWN0aXZlKSB7CiAgICAgICAgIHNldChvYmplY3Qs
IGlubmVyTWFwLCBsYXllciwgc2l6ZSk7CiAgICAgICAgIHJlc3RhcnRUaW1lcigpOwotICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0
bWVudFJlYXNvbjo6SW5MaXZlUmVzaXplOwogICAgIH0KICAgICAvLyBJZiB0aGlzIGlzIHRoZSBm
aXJzdCB0aW1lIHJlc2l6aW5nIHRoaXMgaW1hZ2UsIG9yIGl0cyBzaXplIGlzIHRoZQogICAgIC8v
IHNhbWUgYXMgdGhlIGxhc3QgcmVzaXplLCBkcmF3IGF0IGhpZ2ggcmVzLCBidXQgcmVjb3JkIHRo
ZSBwYWludApAQCAtMTczLDEzICsxNzMsMTMgQEAgYm9vbCBJbWFnZVF1YWxpdHlDb250cm9sbGVy
OjpzaG91bGRQYWludEF0TG93UXVhbGl0eShHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIFIKICAg
ICBpZiAoaXNGaXJzdFJlc2l6ZSB8fCBvbGRTaXplID09IHNpemUpIHsKICAgICAgICAgcmVzdGFy
dFRpbWVyKCk7CiAgICAgICAgIHNldChvYmplY3QsIGlubmVyTWFwLCBsYXllciwgc2l6ZSk7Ci0g
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIEludGVycG9sYXRpb25RdWFsaXR5
QWRqdXN0bWVudFJlYXNvbjo6RGVmYXVsdDsKICAgICB9CiAgICAgLy8gSWYgdGhlIHRpbWVyIGlz
IG5vIGxvbmdlciBhY3RpdmUsIGRyYXcgYXQgaGlnaCBxdWFsaXR5IGFuZCBkb24ndAogICAgIC8v
IHNldCB0aGUgdGltZXIuCiAgICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZlKCkpIHsKICAgICAgICAg
cmVtb3ZlTGF5ZXIob2JqZWN0LCBpbm5lck1hcCwgbGF5ZXIpOwotICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIHJldHVybiBJbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb246
OkRlZmF1bHQ7CiAgICAgfQogICAgIC8vIFRoaXMgb2JqZWN0IGhhcyBiZWVuIHJlc2l6ZWQgdG8g
dHdvIGRpZmZlcmVudCBzaXplcyB3aGlsZSB0aGUgdGltZXIKICAgICAvLyBpcyBhY3RpdmUsIHNv
IGRyYXcgYXQgbG93IHF1YWxpdHksIHNldCB0aGUgZmxhZyBmb3IgYW5pbWF0ZWQgcmVzaXplcyBh
bmQKQEAgLTE4Nyw3ICsxODcsNyBAQCBib29sIEltYWdlUXVhbGl0eUNvbnRyb2xsZXI6OnNob3Vs
ZFBhaW50QXRMb3dRdWFsaXR5KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgUgogICAgIHNldChv
YmplY3QsIGlubmVyTWFwLCBsYXllciwgc2l6ZSk7CiAgICAgbV9hbmltYXRlZFJlc2l6ZUlzQWN0
aXZlID0gdHJ1ZTsKICAgICByZXN0YXJ0VGltZXIoKTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBy
ZXR1cm4gSW50ZXJwb2xhdGlvblF1YWxpdHlBZGp1c3RtZW50UmVhc29uOjpJbkxpdmVSZXNpemU7
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbWFnZVF1YWxp
dHlDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW1hZ2VRdWFsaXR5Q29u
dHJvbGxlci5oCmluZGV4IDQzMmQzNjEuLjEyNTc4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9JbWFnZVF1YWxpdHlDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0ltYWdlUXVhbGl0eUNvbnRyb2xsZXIuaApAQCAtMjYsMTMgKzI2LDEzIEBA
CiAjaWZuZGVmIEltYWdlUXVhbGl0eUNvbnRyb2xsZXJfaAogI2RlZmluZSBJbWFnZVF1YWxpdHlD
b250cm9sbGVyX2gKIAorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIlRp
bWVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBGcmFtZTsKLWNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEltYWdlOwogY2xh
c3MgTGF5b3V0U2l6ZTsKIGNsYXNzIFJlbmRlckJveE1vZGVsT2JqZWN0OwpAQCAtNDMsNyArNDMs
NyBAQCBjbGFzcyBJbWFnZVF1YWxpdHlDb250cm9sbGVyIHsKIHB1YmxpYzoKICAgICBleHBsaWNp
dCBJbWFnZVF1YWxpdHlDb250cm9sbGVyKGNvbnN0IFJlbmRlclZpZXcmKTsKIAotICAgIGJvb2wg
c2hvdWxkUGFpbnRBdExvd1F1YWxpdHkoR3JhcGhpY3NDb250ZXh0KiwgUmVuZGVyQm94TW9kZWxP
YmplY3QqLCBJbWFnZSosIGNvbnN0IHZvaWQqIGxheWVyLCBjb25zdCBMYXlvdXRTaXplJik7Cisg
ICAgSW50ZXJwb2xhdGlvblF1YWxpdHlBZGp1c3RtZW50UmVhc29uIHNob3VsZFBhaW50QXRMb3dR
dWFsaXR5KEdyYXBoaWNzQ29udGV4dCosIFJlbmRlckJveE1vZGVsT2JqZWN0KiwgSW1hZ2UqLCBj
b25zdCB2b2lkKiBsYXllciwgY29uc3QgTGF5b3V0U2l6ZSYpOwogICAgIHZvaWQgcmVuZGVyZXJX
aWxsQmVEZXN0cm95ZWQoUmVuZGVyQm94TW9kZWxPYmplY3QmIHJlbmRlcmVyKSB7IHJlbW92ZU9i
amVjdCgmcmVuZGVyZXIpOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAppbmRleCBiMWY3NTI1Li5kZjE2ZWNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5j
cHAKQEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgotI2luY2x1
ZGUgIkltYWdlUXVhbGl0eUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiUGF0aC5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCkBAIC0xNTUsNyArMTU0LDcgQEAg
dm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6c3VzcGVuZEFuaW1hdGlvbnMoZG91YmxlIHRpbWUp
CiAgICAgbGF5ZXIoKS0+YmFja2luZygpLT5zdXNwZW5kQW5pbWF0aW9ucyh0aW1lKTsKIH0KIAot
Ym9vbCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6c2hvdWxkUGFpbnRBdExvd1F1YWxpdHkoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBJbWFnZSogaW1hZ2UsIGNvbnN0IHZvaWQqIGxheWVyLCBjb25z
dCBMYXlvdXRTaXplJiBzaXplKQorSW50ZXJwb2xhdGlvblF1YWxpdHlBZGp1c3RtZW50UmVhc29u
IFJlbmRlckJveE1vZGVsT2JqZWN0OjpzaG91bGRQYWludEF0TG93UXVhbGl0eShHcmFwaGljc0Nv
bnRleHQqIGNvbnRleHQsIEltYWdlKiBpbWFnZSwgY29uc3Qgdm9pZCogbGF5ZXIsIGNvbnN0IExh
eW91dFNpemUmIHNpemUpCiB7CiAgICAgcmV0dXJuIHZpZXcoKS5pbWFnZVF1YWxpdHlDb250cm9s
bGVyKCkuc2hvdWxkUGFpbnRBdExvd1F1YWxpdHkoY29udGV4dCwgdGhpcywgaW1hZ2UsIGxheWVy
LCBzaXplKTsKIH0KQEAgLTg0MiwxMCArODQxLDEwIEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmpl
Y3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQoY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNv
CiAgICAgICAgICAgICBhdXRvIGNsaWVudEZvckJhY2tncm91bmRJbWFnZSA9IGJhY2tncm91bmRP
YmplY3QgPyBiYWNrZ3JvdW5kT2JqZWN0IDogdGhpczsKICAgICAgICAgICAgIFJlZlB0cjxJbWFn
ZT4gaW1hZ2UgPSBiZ0ltYWdlLT5pbWFnZShjbGllbnRGb3JCYWNrZ3JvdW5kSW1hZ2UsIGdlb21l
dHJ5LnRpbGVTaXplKCkpOwogICAgICAgICAgICAgY29udGV4dC0+c2V0RHJhd0x1bWluYW5jZU1h
c2soYmdMYXllci0+bWFza1NvdXJjZVR5cGUoKSA9PSBNYXNrTHVtaW5hbmNlKTsKLSAgICAgICAg
ICAgIGJvb2wgdXNlTG93UXVhbGl0eVNjYWxpbmcgPSBzaG91bGRQYWludEF0TG93UXVhbGl0eShj
b250ZXh0LCBpbWFnZS5nZXQoKSwgYmdMYXllciwgZ2VvbWV0cnkudGlsZVNpemUoKSk7CisgICAg
ICAgICAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb24gaW50ZXJwb2xhdGlv
blF1YWxpdHlBZGp1c3RtZW50UmVhc29uID0gc2hvdWxkUGFpbnRBdExvd1F1YWxpdHkoY29udGV4
dCwgaW1hZ2UuZ2V0KCksIGJnTGF5ZXIsIGdlb21ldHJ5LnRpbGVTaXplKCkpOwogICAgICAgICAg
ICAgaWYgKGltYWdlLmdldCgpKQogICAgICAgICAgICAgICAgIGltYWdlLT5zZXRTcGFjZVNpemUo
Z2VvbWV0cnkuc3BhY2VTaXplKCkpOwotICAgICAgICAgICAgY29udGV4dC0+ZHJhd1RpbGVkSW1h
Z2UoaW1hZ2UuZ2V0KCksIHN0eWxlKCkuY29sb3JTcGFjZSgpLCBnZW9tZXRyeS5kZXN0UmVjdCgp
LCBnZW9tZXRyeS5yZWxhdGl2ZVBoYXNlKCksIGdlb21ldHJ5LnRpbGVTaXplKCksIEltYWdlUGFp
bnRpbmdPcHRpb25zKGNvbXBvc2l0ZU9wLCBiZ0xheWVyLT5ibGVuZE1vZGUoKSwgSW1hZ2VPcmll
bnRhdGlvbkRlc2NyaXB0aW9uKCksIHVzZUxvd1F1YWxpdHlTY2FsaW5nKSk7CisgICAgICAgICAg
ICBjb250ZXh0LT5kcmF3VGlsZWRJbWFnZShpbWFnZS5nZXQoKSwgc3R5bGUoKS5jb2xvclNwYWNl
KCksIGdlb21ldHJ5LmRlc3RSZWN0KCksIGdlb21ldHJ5LnJlbGF0aXZlUGhhc2UoKSwgZ2VvbWV0
cnkudGlsZVNpemUoKSwgSW1hZ2VQYWludGluZ09wdGlvbnMoY29tcG9zaXRlT3AsIGJnTGF5ZXIt
PmJsZW5kTW9kZSgpLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24oKSwgaW50ZXJwb2xhdGlv
blF1YWxpdHlBZGp1c3RtZW50UmVhc29uKSk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKaW5kZXggYWNlODg4
NS4uNjhkMTg2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eE1vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1v
ZGVsT2JqZWN0LmgKQEAgLTI0LDYgKzI0LDcgQEAKICNpZm5kZWYgUmVuZGVyQm94TW9kZWxPYmpl
Y3RfaAogI2RlZmluZSBSZW5kZXJCb3hNb2RlbE9iamVjdF9oCiAKKyNpbmNsdWRlICJJbWFnZVF1
YWxpdHlDb250cm9sbGVyLmgiIC8vIHRoaXMgd291bGQgYmUgYSBkaXNhc3RlcgogI2luY2x1ZGUg
IkxheW91dFJlY3QuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllck1vZGVsT2JqZWN0LmgiCiAKQEAg
LTI2NCw3ICsyNjUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUm91bmRlZFJlY3QgYmFja2dyb3VuZFJv
dW5kZWRSZWN0QWRqdXN0ZWRGb3JCbGVlZEF2b2lkYW5jZShjb25zdCBHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBMYXlvdXRSZWN0JiwgQmFja2dyb3VuZEJsZWVkQXZvaWRhbmNlLCBJbmxpbmVGbG93
Qm94KiwgY29uc3QgTGF5b3V0U2l6ZSYsIGJvb2wgaW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSwgYm9v
bCBpbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSkgY29uc3Q7CiAgICAgTGF5b3V0UmVjdCBib3JkZXJJ
bm5lclJlY3RBZGp1c3RlZEZvckJsZWVkQXZvaWRhbmNlKGNvbnN0IEdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IExheW91dFJlY3QmLCBCYWNrZ3JvdW5kQmxlZWRBdm9pZGFuY2UpIGNvbnN0OwogCi0g
ICAgYm9vbCBzaG91bGRQYWludEF0TG93UXVhbGl0eShHcmFwaGljc0NvbnRleHQqLCBJbWFnZSos
IGNvbnN0IHZvaWQqLCBjb25zdCBMYXlvdXRTaXplJik7CisgICAgSW50ZXJwb2xhdGlvblF1YWxp
dHlBZGp1c3RtZW50UmVhc29uIHNob3VsZFBhaW50QXRMb3dRdWFsaXR5KEdyYXBoaWNzQ29udGV4
dCosIEltYWdlKiwgY29uc3Qgdm9pZCosIGNvbnN0IExheW91dFNpemUmKTsKIAogICAgIFJlbmRl
ckJveE1vZGVsT2JqZWN0KiBjb250aW51YXRpb24oKSBjb25zdDsKICAgICB2b2lkIHNldENvbnRp
bnVhdGlvbihSZW5kZXJCb3hNb2RlbE9iamVjdCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKaW5kZXggY2I5MjBhZi4uNzYwNWRhNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3Qu
Y3BwCkBAIC0yMTQsMTIgKzIxNCwxMiBAQCB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpwYWlu
dFNuYXBzaG90SW1hZ2UoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dAogICAgIGlm
IChhbGlnbmVkUmVjdC53aWR0aCgpIDw9IDAgfHwgYWxpZ25lZFJlY3QuaGVpZ2h0KCkgPD0gMCkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGluZyA9IHNob3Vs
ZFBhaW50QXRMb3dRdWFsaXR5KGNvbnRleHQsIGltYWdlLCBpbWFnZSwgYWxpZ25lZFJlY3Quc2l6
ZSgpKTsKKyAgICBJbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb24gaW50ZXJwb2xh
dGlvblF1YWxpdHlBZGp1c3RtZW50UmVhc29uID0gc2hvdWxkUGFpbnRBdExvd1F1YWxpdHkoY29u
dGV4dCwgaW1hZ2UsIGltYWdlLCBhbGlnbmVkUmVjdC5zaXplKCkpOwogICAgIEltYWdlT3JpZW50
YXRpb25EZXNjcmlwdGlvbiBvcmllbnRhdGlvbkRlc2NyaXB0aW9uKHNob3VsZFJlc3BlY3RJbWFn
ZU9yaWVudGF0aW9uKCkpOwogI2lmIEVOQUJMRShDU1NfSU1BR0VfT1JJRU5UQVRJT04pCiAgICAg
b3JpZW50YXRpb25EZXNjcmlwdGlvbi5zZXRJbWFnZU9yaWVudGF0aW9uRW51bShzdHlsZSgpLmlt
YWdlT3JpZW50YXRpb24oKSk7CiAjZW5kaWYKLSAgICBjb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2Us
IHN0eWxlKCkuY29sb3JTcGFjZSgpLCBhbGlnbmVkUmVjdCwgSW1hZ2VQYWludGluZ09wdGlvbnMo
b3JpZW50YXRpb25EZXNjcmlwdGlvbiwgdXNlTG93UXVhbGl0eVNjYWxpbmcpKTsKKyAgICBjb250
ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UsIHN0eWxlKCkuY29sb3JTcGFjZSgpLCBhbGlnbmVkUmVjdCwg
SW1hZ2VQYWludGluZ09wdGlvbnMob3JpZW50YXRpb25EZXNjcmlwdGlvbiwgaW50ZXJwb2xhdGlv
blF1YWxpdHlBZGp1c3RtZW50UmVhc29uKSk7CiB9CiAKIHZvaWQgUmVuZGVyRW1iZWRkZWRPYmpl
Y3Q6OnBhaW50Q29udGVudHMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50
JiBwYWludE9mZnNldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJIVE1MQ2FudmFzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2Fu
dmFzLmNwcAppbmRleCBlNDJmZThkLi40NzUwNTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwCkBAIC04NSw3ICs4NSw3IEBAIHZvaWQgUmVuZGVy
SFRNTENhbnZhczo6cGFpbnRSZXBsYWNlZChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5
b3V0UG9pbnQmIHBhCiAgICAgfQogCiAgICAgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUgPSBzdHls
ZSgpLmltYWdlUmVuZGVyaW5nKCkgPT0gSW1hZ2VSZW5kZXJpbmdDcmlzcEVkZ2VzIHx8IHN0eWxl
KCkuaW1hZ2VSZW5kZXJpbmcoKSA9PSBJbWFnZVJlbmRlcmluZ09wdGltaXplU3BlZWQ7Ci0gICAg
Y2FudmFzRWxlbWVudCgpLnBhaW50KGNvbnRleHQsIHBhaW50UmVjdCwgdXNlTG93UXVhbGl0eVNj
YWxlKTsKKyAgICBjYW52YXNFbGVtZW50KCkucGFpbnQoY29udGV4dCwgcGFpbnRSZWN0LCB1c2VM
b3dRdWFsaXR5U2NhbGUgPyBJbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb246OkZv
cmNlZEJ5Q29udGVudCA6IEludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbjo6RGVm
YXVsdCk7CiB9CiAKIHZvaWQgUmVuZGVySFRNTENhbnZhczo6Y2FudmFzU2l6ZUNoYW5nZWQoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggZDYxNTVmYy4uMGVh
MTVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC01NjMs
MTMgKzU2MywxMyBAQCB2b2lkIFJlbmRlckltYWdlOjpwYWludEludG9SZWN0KEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQogICAgIEhUTUxJbWFnZUVsZW1l
bnQqIGltYWdlRWx0ID0gKGVsZW1lbnQoKSAmJiBpc0hUTUxJbWFnZUVsZW1lbnQoZWxlbWVudCgp
KSkgPyB0b0hUTUxJbWFnZUVsZW1lbnQoZWxlbWVudCgpKSA6IDA7CiAgICAgQ29tcG9zaXRlT3Bl
cmF0b3IgY29tcG9zaXRlT3BlcmF0b3IgPSBpbWFnZUVsdCA/IGltYWdlRWx0LT5jb21wb3NpdGVP
cGVyYXRvcigpIDogQ29tcG9zaXRlU291cmNlT3ZlcjsKICAgICBJbWFnZSogaW1hZ2UgPSBpbWFn
ZVJlc291cmNlKCkuaW1hZ2UoKS5nZXQoKTsKLSAgICBib29sIHVzZUxvd1F1YWxpdHlTY2FsaW5n
ID0gc2hvdWxkUGFpbnRBdExvd1F1YWxpdHkoY29udGV4dCwgaW1hZ2UsIGltYWdlLCBMYXlvdXRT
aXplKHJlY3Quc2l6ZSgpKSk7CisgICAgSW50ZXJwb2xhdGlvblF1YWxpdHlBZGp1c3RtZW50UmVh
c29uIGludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbiA9IHNob3VsZFBhaW50QXRM
b3dRdWFsaXR5KGNvbnRleHQsIGltYWdlLCBpbWFnZSwgTGF5b3V0U2l6ZShyZWN0LnNpemUoKSkp
OwogICAgIEltYWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbiBvcmllbnRhdGlvbkRlc2NyaXB0aW9u
KHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKCkpOwogI2lmIEVOQUJMRShDU1NfSU1BR0Vf
T1JJRU5UQVRJT04pCiAgICAgb3JpZW50YXRpb25EZXNjcmlwdGlvbi5zZXRJbWFnZU9yaWVudGF0
aW9uRW51bShzdHlsZSgpLmltYWdlT3JpZW50YXRpb24oKSk7CiAjZW5kaWYKICAgICBjb250ZXh0
LT5kcmF3SW1hZ2UoaW1hZ2VSZXNvdXJjZSgpLmltYWdlKHJlY3Qud2lkdGgoKSwgcmVjdC5oZWln
aHQoKSkuZ2V0KCksIHN0eWxlKCkuY29sb3JTcGFjZSgpLCByZWN0LAotICAgICAgICBJbWFnZVBh
aW50aW5nT3B0aW9ucyhjb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlTm9ybWFsLCBvcmllbnRh
dGlvbkRlc2NyaXB0aW9uLCB1c2VMb3dRdWFsaXR5U2NhbGluZykpOworICAgICAgICBJbWFnZVBh
aW50aW5nT3B0aW9ucyhjb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlTm9ybWFsLCBvcmllbnRh
dGlvbkRlc2NyaXB0aW9uLCBpbnRlcnBvbGF0aW9uUXVhbGl0eUFkanVzdG1lbnRSZWFzb24pKTsK
IH0KIAogYm9vbCBSZW5kZXJJbWFnZTo6Ym94U2hhZG93U2hvdWxkQmVBcHBsaWVkVG9CYWNrZ3Jv
dW5kKEJhY2tncm91bmRCbGVlZEF2b2lkYW5jZSBibGVlZEF2b2lkYW5jZSwgSW5saW5lRmxvd0Jv
eCopIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25h
cHNob3R0ZWRQbHVnSW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBz
aG90dGVkUGx1Z0luLmNwcAppbmRleCA3OTc4ZmUyLi5kNDMwZmJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKQEAgLTEz
NSwxMyArMTM1LDEzIEBAIHZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OnBhaW50U25hcHNo
b3QoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvCiAgICAgaWYgKGFsaWduZWRS
ZWN0LndpZHRoKCkgPD0gMCB8fCBhbGlnbmVkUmVjdC5oZWlnaHQoKSA8PSAwKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBib29sIHVzZUxvd1F1YWxpdHlTY2FsaW5nID0gc2hvdWxkUGFpbnRBdExv
d1F1YWxpdHkoY29udGV4dCwgaW1hZ2UsIGltYWdlLCBhbGlnbmVkUmVjdC5zaXplKCkpOworICAg
IEludGVycG9sYXRpb25RdWFsaXR5QWRqdXN0bWVudFJlYXNvbiBpbnRlcnBvbGF0aW9uUXVhbGl0
eUFkanVzdG1lbnRSZWFzb24gPSBzaG91bGRQYWludEF0TG93UXVhbGl0eShjb250ZXh0LCBpbWFn
ZSwgaW1hZ2UsIGFsaWduZWRSZWN0LnNpemUoKSk7CiAKICAgICBJbWFnZU9yaWVudGF0aW9uRGVz
Y3JpcHRpb24gb3JpZW50YXRpb25EZXNjcmlwdGlvbihzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRh
dGlvbigpKTsKICNpZiBFTkFCTEUoQ1NTX0lNQUdFX09SSUVOVEFUSU9OKQogICAgIG9yaWVudGF0
aW9uRGVzY3JpcHRpb24uc2V0SW1hZ2VPcmllbnRhdGlvbkVudW0oc3R5bGUoKS5pbWFnZU9yaWVu
dGF0aW9uKCkpOwogI2VuZGlmCi0gICAgY29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLCBzdHlsZSgp
LmNvbG9yU3BhY2UoKSwgYWxpZ25lZFJlY3QsIEltYWdlUGFpbnRpbmdPcHRpb25zKG9yaWVudGF0
aW9uRGVzY3JpcHRpb24sIHVzZUxvd1F1YWxpdHlTY2FsaW5nKSk7CisgICAgY29udGV4dC0+ZHJh
d0ltYWdlKGltYWdlLCBzdHlsZSgpLmNvbG9yU3BhY2UoKSwgYWxpZ25lZFJlY3QsIEltYWdlUGFp
bnRpbmdPcHRpb25zKG9yaWVudGF0aW9uRGVzY3JpcHRpb24sIGludGVycG9sYXRpb25RdWFsaXR5
QWRqdXN0bWVudFJlYXNvbikpOwogfQogCiBDdXJzb3JEaXJlY3RpdmUgUmVuZGVyU25hcHNob3R0
ZWRQbHVnSW46OmdldEN1cnNvcihjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQsIEN1cnNvciYgb3Zl
cnJpZGVDdXJzb3IpIGNvbnN0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>