<?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>92810</bug_id>
          
          <creation_ts>2012-07-31 16:33:34 -0700</creation_ts>
          <short_desc>[chromium] Use skia directly in CCHeadsUpDisplayLayerImpl</short_desc>
          <delta_ts>2012-07-31 17:34:56 -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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>danakj</cc>
    
    <cc>enne</cc>
    
    <cc>nduca</cc>
    
    <cc>shawnsingh</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>683622</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-07-31 16:33:34 -0700</bug_when>
    <thetext>[chromium] Use skia directly in CCHeadsUpDisplayLayerImpl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683624</commentid>
    <comment_count>1</comment_count>
      <attachid>155673</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-07-31 16:35:02 -0700</bug_when>
    <thetext>Created attachment 155673
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683662</commentid>
    <comment_count>2</comment_count>
      <attachid>155673</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-07-31 17:12:00 -0700</bug_when>
    <thetext>Comment on attachment 155673
Patch

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

R=me, assuming you tested FPS and debug geometry manually.  It&apos;d be nice at some point to have automated HUD tests even if this is just a debug feature.

&gt; Source/WebCore/WebCore.gypi:-8268
&gt; -            &apos;platform/graphics/chromium/PlatformCanvas.cpp&apos;,
&gt; -            &apos;platform/graphics/chromium/PlatformCanvas.h&apos;,

&lt;3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683674</commentid>
    <comment_count>3</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-07-31 17:22:41 -0700</bug_when>
    <thetext>--show-fps-counter, --show-paint-rects and --show-composited-layer-tree appear to behave the same as before.  Automated tests of some form would be definitely be nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683688</commentid>
    <comment_count>4</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-07-31 17:34:56 -0700</bug_when>
    <thetext>Committed r124275: &lt;http://trac.webkit.org/changeset/124275&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155673</attachid>
            <date>2012-07-31 16:35:02 -0700</date>
            <delta_ts>2012-07-31 17:11:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92810-20120731163445.patch</filename>
            <type>text/plain</type>
            <size>24747</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MjY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTU5ZDM1OTc4M2FkZTM1
ZWM0NDQ4YjJlZWU5YzE4NjBhMjJmMjkzNi4uN2Y3ODYzMmM0ZDExZGZjM2E4ZDY3ZmVkNjE4OWIz
NjI2YWY5ODMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDEyLTA3LTMxICBKYW1l
cyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW2Nocm9taXVtXSBV
c2Ugc2tpYSBkaXJlY3RseSBpbiBDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjgxMAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBjaHJvbWl1bSBjb21wb3Np
dG9yIEhVRCBkb2Vzbid0IG5lZWQgdG8gdXNlIGEgZnVsbCBHcmFwaGljc0NvbnRleHQvZXRjLCBh
bGwgaXQgZHJhd3MgYXJlIHJlY3RhbmdsZXMgYW5kIGEKKyAgICAgICAgc2ltcGxlIHN0cm9rZWQg
cGF0aC4gVGhpcyBkcmF3cyB0aGUgSFVEIHdpdGggc3RyYWlnaHQgc2tpYSBjYWxscyBhbmQgcmVt
b3ZlcyB0aGUgbm93IHVubmVjZXNzYXJ5IFBsYXRmb3JtQ2FudmFzCisgICAgICAgIHdyYXBwZXIu
CisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vUGxhdGZvcm1DYW52YXMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1BsYXRmb3JtQ2FudmFzLmg6IFJlbW92ZWQuCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGb250QXRsYXMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q0NGb250QXRsYXM6OmRyYXdUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0ZvbnRBdGxhcy5oOgorICAgICAgICAoQ0NGb250QXRsYXMpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXlM
YXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NIZWFkc1VwRGlzcGxheUxheWVySW1w
bDo6d2lsbERyYXcpOgorICAgICAgICAoV2ViQ29yZTo6Q0NIZWFkc1VwRGlzcGxheUxheWVySW1w
bDo6ZHJhd0h1ZENvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkNDSGVhZHNVcERpc3BsYXlM
YXllckltcGw6OmRyYXdGUFNDb3VudGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNDSGVhZHNVcERp
c3BsYXlMYXllckltcGw6OmRyYXdGUFNDb3VudGVyVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpD
Q0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsOjpkcmF3RGVidWdSZWN0cyk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NIZWFkc1VwRGlzcGxheUxheWVySW1wbC5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisKKzIwMTItMDctMzEgIEphbWVzIFJvYmluc29uICA8amFtZXNy
QGNocm9taXVtLm9yZz4KKwogICAgICAgICBbY2hyb21pdW1dIFJFR1JFU1NJT04ocjEyMzY0NCkg
Q29tcG9zaXRvciBIVUQgY3Jhc2hlcyBpbW1lZGlhdGVseSB3aXRoIC0tc2hvdy1wYWludC1yZWN0
cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI3NzUK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDgwZTM2M2MyZjBjNDhiN2JjNjk5OGJiYjI4NWY1MGNjYmNk
YmE3M2EuLmJkMDk4YWUyMWI2ZmE3NDE3M2Y1ZDcxMDhlOWE5NDE2MjMyZGNmY2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTgyNjQsOCArODI2NCw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0dXJlU3ViSW1hZ2UuY3BwJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVTdWJJbWFnZS5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyLmgn
LAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsYXRmb3JtQ2FudmFz
LmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGxhdGZvcm1D
YW52YXMuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGxhdGZv
cm1Db2xvci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Qcm9n
cmFtQmluZGluZy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L1Byb2dyYW1CaW5kaW5nLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vUGxhdGZvcm1DYW52YXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGxhdGZvcm1DYW52YXMuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3YTFmMTE3ZDNhNTQyNzViZTI2OWI5MDRlYjUxNjlmMjBiYjNkZmRm
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsYXRmb3JtQ2FudmFzLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDEwOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
Ci0jaW5jbHVkZSAiUGxhdGZvcm1DYW52YXMuaCIKLQotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgotCi0jaW5jbHVkZSAiTmF0aXZlSW1hZ2VTa2lhLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1D
b250ZXh0U2tpYS5oIgotI2luY2x1ZGUgIlNrQ29sb3JQcml2LmgiCi0jaW5jbHVkZSAic2tpYS9l
eHQvcGxhdGZvcm1fY2FudmFzLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUGxhdGZvcm1D
YW52YXM6OlBsYXRmb3JtQ2FudmFzKCkKLSAgICA6IG1fb3BhcXVlKGZhbHNlKQotewotfQotCi1Q
bGF0Zm9ybUNhbnZhczo6flBsYXRmb3JtQ2FudmFzKCkKLXsKLX0KLQotdm9pZCBQbGF0Zm9ybUNh
bnZhczo6cmVzaXplKGNvbnN0IEludFNpemUmIHNpemUpCi17Ci0gICAgaWYgKG1fc2l6ZSA9PSBz
aXplKQotICAgICAgICByZXR1cm47Ci0gICAgbV9zaXplID0gc2l6ZTsKLSAgICBjcmVhdGVCYWNr
aW5nQ2FudmFzKCk7Ci19Ci0KLXZvaWQgUGxhdGZvcm1DYW52YXM6OnNldE9wYXF1ZShib29sIG9w
YXF1ZSkKLXsKLSAgICBpZiAob3BhcXVlID09IG1fb3BhcXVlKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBtX29wYXF1ZSA9IG9wYXF1ZTsKLSAgICBjcmVhdGVCYWNraW5nQ2FudmFzKCk7Ci19Ci0K
LXZvaWQgUGxhdGZvcm1DYW52YXM6OmNyZWF0ZUJhY2tpbmdDYW52YXMoKQotewotICAgIGlmICht
X3NpemUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3NraWFDYW52YXMgPSBh
ZG9wdFB0cihza2lhOjpDcmVhdGVCaXRtYXBDYW52YXMobV9zaXplLndpZHRoKCksIG1fc2l6ZS5o
ZWlnaHQoKSwgbV9vcGFxdWUpKTsKLX0KLQotUGxhdGZvcm1DYW52YXM6OkF1dG9Mb2NrZXI6OkF1
dG9Mb2NrZXIoUGxhdGZvcm1DYW52YXMqIGNhbnZhcykKLSAgICA6IG1fY2FudmFzKGNhbnZhcykK
LXsKLSAgICBpZiAobV9jYW52YXMtPm1fc2tpYUNhbnZhcykgewotICAgICAgICBtX2JpdG1hcCA9
ICZtX2NhbnZhcy0+bV9za2lhQ2FudmFzLT5nZXREZXZpY2UoKS0+YWNjZXNzQml0bWFwKGZhbHNl
KTsKLSAgICAgICAgbV9iaXRtYXAtPmxvY2tQaXhlbHMoKTsKLSAgICB9IGVsc2UKLSAgICAgICAg
bV9iaXRtYXAgPSAwOwotfQotCi1QbGF0Zm9ybUNhbnZhczo6QXV0b0xvY2tlcjo6fkF1dG9Mb2Nr
ZXIoKQotewotICAgIGlmIChtX2JpdG1hcCkKLSAgICAgICAgbV9iaXRtYXAtPnVubG9ja1BpeGVs
cygpOwotfQotCi1jb25zdCB1aW50OF90KiBQbGF0Zm9ybUNhbnZhczo6QXV0b0xvY2tlcjo6cGl4
ZWxzKCkgY29uc3QKLXsKLSAgICBpZiAobV9iaXRtYXAgJiYgbV9iaXRtYXAtPmNvbmZpZygpID09
IFNrQml0bWFwOjprQVJHQl84ODg4X0NvbmZpZykKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PGNvbnN0IHVpbnQ4X3QqPihtX2JpdG1hcC0+Z2V0UGl4ZWxzKCkpOwotICAgIHJldHVybiAwOwot
fQotCi1QbGF0Zm9ybUNhbnZhczo6UGFpbnRlcjo6UGFpbnRlcihQbGF0Zm9ybUNhbnZhcyogY2Fu
dmFzLCBQbGF0Zm9ybUNhbnZhczo6UGFpbnRlcjo6VGV4dE9wdGlvbiBvcHRpb24pCi17Ci0gICAg
bV9za2lhQ29udGV4dCA9IGFkb3B0UHRyKG5ldyBQbGF0Zm9ybUNvbnRleHRTa2lhKGNhbnZhcy0+
bV9za2lhQ2FudmFzLmdldCgpKSk7Ci0KLSAgICBtX2NvbnRleHQgPSBhZG9wdFB0cihuZXcgR3Jh
cGhpY3NDb250ZXh0KHJlaW50ZXJwcmV0X2Nhc3Q8UGxhdGZvcm1HcmFwaGljc0NvbnRleHQqPiht
X3NraWFDb250ZXh0LmdldCgpKSkpOwotICAgIGNvbnRleHQoKS0+c2F2ZSgpOwotfQotCi1QbGF0
Zm9ybUNhbnZhczo6UGFpbnRlcjo6flBhaW50ZXIoKQotewotICAgIGNvbnRleHQoKS0+cmVzdG9y
ZSgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUNhbnZhcy5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGxhdGZvcm1DYW52YXMuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODY1ZjNkNTIxYTQxMDJjZjkyODRhNjNiYTgxNmRi
MWJlZjk5NDM1My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUNhbnZh
cy5oCisrKyAvZGV2L251bGwKQEAgLTEsOTUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUGxhdGZv
cm1DYW52YXNfaAotI2RlZmluZSBQbGF0Zm9ybUNhbnZhc19oCi0KLSNpbmNsdWRlICJJbnRTaXpl
LmgiCi0jaW5jbHVkZSA8c3RkaW50Lmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0j
aW5jbHVkZSA8d3RmL093blB0ci5oPgotCi1jbGFzcyBTa0JpdG1hcDsKLWNsYXNzIFNrQ2FudmFz
OwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEdyYXBoaWNzQ29udGV4dDsKLWNsYXNz
IFBsYXRmb3JtQ29udGV4dFNraWE7Ci0KLS8vIEEgMkQgYnVmZmVyIG9mIHBpeGVscyB3aXRoIGFu
IGFzc29jaWF0ZWQgR3JhcGhpY3NDb250ZXh0LgotY2xhc3MgUGxhdGZvcm1DYW52YXMgewotICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFBsYXRmb3JtQ2FudmFzKTsKLXB1YmxpYzoKLSAgICBQbGF0
Zm9ybUNhbnZhcygpOwotICAgIH5QbGF0Zm9ybUNhbnZhcygpOwotCi0gICAgLy8gU2NvcGVkIGxv
Y2sgY2xhc3MgdG8gZ2V0IHRlbXBvcmFyeSBhY2Nlc3MgdG8gdGhpcyBjYW52YXMncyBwaXhlbHMu
Ci0gICAgY2xhc3MgQXV0b0xvY2tlciB7Ci0gICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1
dG9Mb2NrZXIpOwotICAgIHB1YmxpYzoKLSAgICAgICAgZXhwbGljaXQgQXV0b0xvY2tlcihQbGF0
Zm9ybUNhbnZhcyopOwotICAgICAgICB+QXV0b0xvY2tlcigpOwotCi0gICAgICAgIGNvbnN0IHVp
bnQ4X3QqIHBpeGVscygpIGNvbnN0OwotICAgIHByaXZhdGU6Ci0gICAgICAgIFBsYXRmb3JtQ2Fu
dmFzKiBtX2NhbnZhczsKLSAgICAgICAgY29uc3QgU2tCaXRtYXAqIG1fYml0bWFwOwotICAgIH07
Ci0KLSAgICAvLyBTY29wZWQgbG9jayBjbGFzcyB0byBnZXQgdGVtcG9yYXJ5IGFjY2VzcyB0byBw
YWludCBpbnRvIHRoaXMgY2FudmFzLgotICAgIGNsYXNzIFBhaW50ZXIgewotICAgICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShQYWludGVyKTsKLSAgICBwdWJsaWM6Ci0gICAgICAgIGVudW0gVGV4
dE9wdGlvbiB7IEdyYXlzY2FsZVRleHQsIFN1YnBpeGVsVGV4dCB9OwotCi0gICAgICAgIFBhaW50
ZXIoUGxhdGZvcm1DYW52YXMqLCBUZXh0T3B0aW9uKTsKLSAgICAgICAgLy8gRGVzdHJ1Y3RvciBy
ZXN0b3JlcyBjYW52YXMgY29udGV4dCB0byBwcmUtY29uc3RydWN0aW9uIHN0YXRlLgotICAgICAg
ICB+UGFpbnRlcigpOwotCi0gICAgICAgIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCgpIGNvbnN0
IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQotICAgICAgICBQbGF0Zm9ybUNvbnRleHRTa2lh
KiBza2lhQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fc2tpYUNvbnRleHQuZ2V0KCk7IH0KLSAg
ICBwcml2YXRlOgotICAgICAgICBPd25QdHI8R3JhcGhpY3NDb250ZXh0PiBtX2NvbnRleHQ7Ci0g
ICAgICAgIE93blB0cjxQbGF0Zm9ybUNvbnRleHRTa2lhPiBtX3NraWFDb250ZXh0OwotICAgIH07
Ci0KLSAgICB2b2lkIHJlc2l6ZShjb25zdCBJbnRTaXplJik7Ci0gICAgSW50U2l6ZSBzaXplKCkg
Y29uc3QgeyByZXR1cm4gbV9zaXplOyB9Ci0KLSAgICB2b2lkIHNldE9wYXF1ZShib29sKTsKLSAg
ICBib29sIG9wYXF1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb3BhcXVlOyB9Ci0KLXByaXZhdGU6Ci0g
ICAgdm9pZCBjcmVhdGVCYWNraW5nQ2FudmFzKCk7Ci0KLSAgICBPd25QdHI8U2tDYW52YXM+IG1f
c2tpYUNhbnZhczsKLSAgICBJbnRTaXplIG1fc2l6ZTsKLSAgICBib29sIG1fb3BhcXVlOwotfTsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRm9udEF0bGFzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRm9udEF0bGFzLmNw
cAppbmRleCBjZTdkN2M3MGQ1NTQwODJkMTk5Nzc1MWNlZGI5YmE5ZjdjMWY5MDZkLi45MWM4MTky
NmZmNTRjYWFmOGFhMjE0MGJhNmQ2NjkzZjQxMTliMTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZvbnRBdGxhcy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGb250QXRsYXMu
Y3BwCkBAIC0xMzAsNyArMTMwLDcgQEAgdm9pZCBDQ0ZvbnRBdGxhczo6aW5pdGlhbGl6ZSgpCiAg
ICAgZ2VuZXJhdGVBdGxhc0ZvckZvbnQoYXRsYXNDb250ZXh0LCBmb250RGVzY3JpcHRpb24sIENv
bG9yKDI1NSwgMCwgMCksIEludFBvaW50KDAsIGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVs
U2l6ZSgpKSwgbV9hc2NpaVRvUmVjdFRhYmxlKTsKIH0KIAotdm9pZCBDQ0ZvbnRBdGxhczo6ZHJh
d1RleHQoR3JhcGhpY3NDb250ZXh0KiB0YXJnZXRDb250ZXh0LCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IEludFBvaW50JiBkZXN0UG9zaXRpb24sIGNvbnN0IEludFNpemUmIGNsaXApIGNvbnN0
Cit2b2lkIENDRm9udEF0bGFzOjpkcmF3VGV4dChTa0NhbnZhcyogY2FudmFzLCBjb25zdCBTdHJp
bmcmIHRleHQsIGNvbnN0IEludFBvaW50JiBkZXN0UG9zaXRpb24sIGNvbnN0IEludFNpemUmIGNs
aXApIGNvbnN0CiB7CiAgICAgQVNTRVJUKENDUHJveHk6OmlzSW1wbFRocmVhZCgpKTsKICAgICBB
U1NFUlQobV9hdGxhcyk7CkBAIC0xMzgsOSArMTM4LDEzIEBAIHZvaWQgQ0NGb250QXRsYXM6OmRy
YXdUZXh0KEdyYXBoaWNzQ29udGV4dCogdGFyZ2V0Q29udGV4dCwgY29uc3QgU3RyaW5nJiB0ZXh0
LCBjCiAgICAgVmVjdG9yPFN0cmluZz4gbGluZXM7CiAgICAgdGV4dC5zcGxpdCgnXG4nLCBsaW5l
cyk7CiAKKyAgICBQbGF0Zm9ybUNvbnRleHRTa2lhIHBsYXRmb3JtQ29udGV4dChjYW52YXMpOwor
ICAgIHBsYXRmb3JtQ29udGV4dC5zZXREcmF3aW5nVG9JbWFnZUJ1ZmZlcih0cnVlKTsKKyAgICBH
cmFwaGljc0NvbnRleHQgY29udGV4dCgmcGxhdGZvcm1Db250ZXh0KTsKKwogICAgIEludFBvaW50
IHBvc2l0aW9uID0gZGVzdFBvc2l0aW9uOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlu
ZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgZHJhd09uZUxpbmVPZlRleHRJbnRlcm5hbCh0YXJn
ZXRDb250ZXh0LCBsaW5lc1tpXSwgcG9zaXRpb24pOworICAgICAgICBkcmF3T25lTGluZU9mVGV4
dEludGVybmFsKCZjb250ZXh0LCBsaW5lc1tpXSwgcG9zaXRpb24pOwogICAgICAgICBwb3NpdGlv
bi5zZXRZKHBvc2l0aW9uLnkoKSArIG1fZm9udEhlaWdodCk7CiAgICAgICAgIGlmIChwb3NpdGlv
bi55KCkgPiBjbGlwLmhlaWdodCgpKQogICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGb250QXRsYXMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDRm9udEF0
bGFzLmgKaW5kZXggY2NhM2ExY2U1MDZkNTVjNzM4ZGVjMDk1NzM2ZTM0NWExMjAzY2ExYS4uOGJk
Nzc3ZTkwMjZhOWE5NzFkMzJkZWI2ZTI4NGM3Y2VhMWMxOTUyYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NGb250QXRsYXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0ZvbnRBdGxh
cy5oCkBAIC0zMiw2ICszMiw4IEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorY2xhc3MgU2tDYW52YXM7CisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29sb3I7CkBAIC02MCw3ICs2Miw3IEBAIHB1YmxpYzoKICAg
ICAvLyAtIEludFNpemUgY2xpcCBpcyB1c2VkIHRvIGF2b2lkIHdhc3RpbmcgdGltZSBkcmF3aW5n
IHRoaW5ncyB0aGF0IGFyZSBvdXRzaWRlIHRoZQogICAgIC8vICAgdGFyZ2V0IGNhbnZhcyBib3Vu
ZHMuCiAgICAgLy8gLSBTaG91bGQgb25seSBiZSBjYWxsZWQgb25seSBvbiB0aGUgaW1wbCB0aHJl
YWQuCi0gICAgdm9pZCBkcmF3VGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBTdHJpbmcmIHRl
eHQsIGNvbnN0IEludFBvaW50JiBkZXN0UG9zaXRpb24sIGNvbnN0IEludFNpemUmIGNsaXApIGNv
bnN0OworICAgIHZvaWQgZHJhd1RleHQoU2tDYW52YXMqLCBjb25zdCBTdHJpbmcmIHRleHQsIGNv
bnN0IEludFBvaW50JiBkZXN0UG9zaXRpb24sIGNvbnN0IEludFNpemUmIGNsaXApIGNvbnN0Owog
CiAgICAgLy8gRHJhd3MgdGhlIGVudGlyZSBhdGxhcyBhdCB0aGUgc3BlY2lmaWVkIHBvc2l0aW9u
LCBqdXN0IGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuCiAgICAgdm9pZCBkcmF3RGVidWdBdGxhcyhH
cmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRQb2ludCYgZGVzdFBvc2l0aW9uKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
SGVhZHNVcERpc3BsYXlMYXllckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NIZWFkc1VwRGlzcGxheUxheWVySW1wbC5jcHAKaW5kZXggMDY2
ZmRjODRkZGUxNmM4MGQxZDQzNzQ0N2M5MmQ3ZTJhNmE5Zjg4Mi4uMDg0YzliMDE5NWEzZjQ4YTAy
NzcxMjVkYjIwMWI2NTYwYTI5NzA4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NIZWFkc1VwRGlzcGxheUxheWVySW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NIZWFkc1Vw
RGlzcGxheUxheWVySW1wbC5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJFeHRlbnNp
b25zM0RDaHJvbWl1bS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVk
ZSAiTGF5ZXJSZW5kZXJlckNocm9taXVtLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1DYW52YXMuaCIK
ICNpbmNsdWRlICJjYy9DQ0RlYnVnUmVjdEhpc3RvcnkuaCIKICNpbmNsdWRlICJjYy9DQ0ZvbnRB
dGxhcy5oIgogI2luY2x1ZGUgImNjL0NDRnJhbWVSYXRlQ291bnRlci5oIgpAQCAtNjksMTkgKzY4
LDE1IEBAIHZvaWQgQ0NIZWFkc1VwRGlzcGxheUxheWVySW1wbDo6d2lsbERyYXcoQ0NSZXNvdXJj
ZVByb3ZpZGVyKiByZXNvdXJjZVByb3ZpZGVyKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBS
ZW5kZXIgcGl4ZWxzIGludG8gdGhlIHRleHR1cmUuCi0gICAgUGxhdGZvcm1DYW52YXMgY2FudmFz
OwotICAgIGNhbnZhcy5yZXNpemUoYm91bmRzKCkpOwotICAgIHsKLSAgICAgICAgUGxhdGZvcm1D
YW52YXM6OlBhaW50ZXIgcGFpbnRlcigmY2FudmFzLCBQbGF0Zm9ybUNhbnZhczo6UGFpbnRlcjo6
R3JheXNjYWxlVGV4dCk7Ci0gICAgICAgIHBhaW50ZXIuY29udGV4dCgpLT5jbGVhclJlY3QoRmxv
YXRSZWN0KDAsIDAsIGJvdW5kcygpLndpZHRoKCksIGJvdW5kcygpLmhlaWdodCgpKSk7Ci0gICAg
ICAgIGRyYXdIdWRDb250ZW50cyhwYWludGVyLmNvbnRleHQoKSk7Ci0gICAgfQorICAgIE93blB0
cjxTa0NhbnZhcz4gY2FudmFzID0gYWRvcHRQdHIoc2tpYTo6Q3JlYXRlQml0bWFwQ2FudmFzKGJv
dW5kcygpLndpZHRoKCksIGJvdW5kcygpLmhlaWdodCgpLCBmYWxzZSAvKiBvcGFxdWUgKi8pKTsK
KyAgICBkcmF3SHVkQ29udGVudHMoY2FudmFzLmdldCgpKTsKIAotICAgIHsKLSAgICAgICAgUGxh
dGZvcm1DYW52YXM6OkF1dG9Mb2NrZXIgbG9ja2VyKCZjYW52YXMpOwotICAgICAgICBJbnRSZWN0
IGxheWVyUmVjdChJbnRQb2ludCgpLCBib3VuZHMoKSk7Ci0gICAgICAgIHJlc291cmNlUHJvdmlk
ZXItPnVwbG9hZChtX2h1ZFRleHR1cmUtPmlkKCksIGxvY2tlci5waXhlbHMoKSwgbGF5ZXJSZWN0
LCBsYXllclJlY3QsIGxheWVyUmVjdCk7Ci0gICAgfQorICAgIGNvbnN0IFNrQml0bWFwKiBiaXRt
YXAgPSAmY2FudmFzLT5nZXREZXZpY2UoKS0+YWNjZXNzQml0bWFwKGZhbHNlKTsKKyAgICBTa0F1
dG9Mb2NrUGl4ZWxzIGxvY2tlcigqYml0bWFwKTsKKworICAgIEludFJlY3QgbGF5ZXJSZWN0KElu
dFBvaW50KCksIGJvdW5kcygpKTsKKyAgICBBU1NFUlQoYml0bWFwLT5jb25maWcoKSA9PSBTa0Jp
dG1hcDo6a0FSR0JfODg4OF9Db25maWcpOworICAgIHJlc291cmNlUHJvdmlkZXItPnVwbG9hZCht
X2h1ZFRleHR1cmUtPmlkKCksIHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3QqPihiaXRtYXAtPmdl
dFBpeGVscygpKSwgbGF5ZXJSZWN0LCBsYXllclJlY3QsIGxheWVyUmVjdCk7CiB9CiAKIHZvaWQg
Q0NIZWFkc1VwRGlzcGxheUxheWVySW1wbDo6YXBwZW5kUXVhZHMoQ0NRdWFkU2luayYgcXVhZExp
c3QsIGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiBzaGFyZWRRdWFkU3RhdGUsIGJvb2wmKQpAQCAt
MTE0LDEzICsxMDksMTQgQEAgdm9pZCBDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsOjpkaWRMb3Nl
Q29udGV4dCgpCiAgICAgbV9odWRUZXh0dXJlLT5sZWFrKCk7CiB9CiAKLXZvaWQgQ0NIZWFkc1Vw
RGlzcGxheUxheWVySW1wbDo6ZHJhd0h1ZENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCkKK3ZvaWQgQ0NIZWFkc1VwRGlzcGxheUxheWVySW1wbDo6ZHJhd0h1ZENvbnRlbnRzKFNrQ2Fu
dmFzKiBjYW52YXMpCiB7CiAgICAgY29uc3QgQ0NMYXllclRyZWVTZXR0aW5ncyYgc2V0dGluZ3Mg
PSBsYXllclRyZWVIb3N0SW1wbCgpLT5zZXR0aW5ncygpOwogCiAgICAgaWYgKHNldHRpbmdzLnNo
b3dQbGF0Zm9ybUxheWVyVHJlZSkgewotICAgICAgICBjb250ZXh0LT5zZXRGaWxsQ29sb3IoQ29s
b3IoMCwgMCwgMCwgMTkyKSwgQ29sb3JTcGFjZURldmljZVJHQik7Ci0gICAgICAgIGNvbnRleHQt
PmZpbGxSZWN0KEZsb2F0UmVjdCgwLCAwLCBib3VuZHMoKS53aWR0aCgpLCBib3VuZHMoKS5oZWln
aHQoKSkpOworICAgICAgICBTa1BhaW50IHBhaW50OworICAgICAgICBwYWludC5zZXRDb2xvcihT
a0NvbG9yU2V0QVJHQigxOTIsIDAsIDAsIDApKTsKKyAgICAgICAgY2FudmFzLT5kcmF3UmVjdChT
a1JlY3Q6Ok1ha2VYWVdIKDAsIDAsIGJvdW5kcygpLndpZHRoKCksIGJvdW5kcygpLmhlaWdodCgp
KSwgcGFpbnQpOwogICAgIH0KIAogICAgIGludCBmcHNDb3VudGVySGVpZ2h0ID0gNDA7CkBAIC0x
MzMsNDAgKzEyOSwzOSBAQCB2b2lkIENDSGVhZHNVcERpc3BsYXlMYXllckltcGw6OmRyYXdIdWRD
b250ZW50cyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpCiAgICAgICAgIHBsYXRmb3JtTGF5ZXJU
cmVlVG9wID0gMDsKIAogICAgIGlmIChzZXR0aW5ncy5zaG93RlBTQ291bnRlcikKLSAgICAgICAg
ZHJhd0ZQU0NvdW50ZXIoY29udGV4dCwgbGF5ZXJUcmVlSG9zdEltcGwoKS0+ZnBzQ291bnRlcigp
LCBmcHNDb3VudGVyVG9wLCBmcHNDb3VudGVySGVpZ2h0KTsKKyAgICAgICAgZHJhd0ZQU0NvdW50
ZXIoY2FudmFzLCBsYXllclRyZWVIb3N0SW1wbCgpLT5mcHNDb3VudGVyKCksIGZwc0NvdW50ZXJU
b3AsIGZwc0NvdW50ZXJIZWlnaHQpOwogCiAgICAgaWYgKHNldHRpbmdzLnNob3dQbGF0Zm9ybUxh
eWVyVHJlZSAmJiBtX2ZvbnRBdGxhcykgewogICAgICAgICBTdHJpbmcgbGF5ZXJUcmVlID0gbGF5
ZXJUcmVlSG9zdEltcGwoKS0+bGF5ZXJUcmVlQXNUZXh0KCk7Ci0gICAgICAgIG1fZm9udEF0bGFz
LT5kcmF3VGV4dChjb250ZXh0LCBsYXllclRyZWUsIEludFBvaW50KDIsIHBsYXRmb3JtTGF5ZXJU
cmVlVG9wKSwgYm91bmRzKCkpOworICAgICAgICBtX2ZvbnRBdGxhcy0+ZHJhd1RleHQoY2FudmFz
LCBsYXllclRyZWUsIEludFBvaW50KDIsIHBsYXRmb3JtTGF5ZXJUcmVlVG9wKSwgYm91bmRzKCkp
OwogICAgIH0KIAogICAgIGlmIChzZXR0aW5ncy5zaG93RGVidWdSZWN0cygpKQotICAgICAgICBk
cmF3RGVidWdSZWN0cyhjb250ZXh0LCBsYXllclRyZWVIb3N0SW1wbCgpLT5kZWJ1Z1JlY3RIaXN0
b3J5KCkpOworICAgICAgICBkcmF3RGVidWdSZWN0cyhjYW52YXMsIGxheWVyVHJlZUhvc3RJbXBs
KCktPmRlYnVnUmVjdEhpc3RvcnkoKSk7CiB9CiAKLXZvaWQgQ0NIZWFkc1VwRGlzcGxheUxheWVy
SW1wbDo6ZHJhd0ZQU0NvdW50ZXIoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBDQ0ZyYW1lUmF0
ZUNvdW50ZXIqIGZwc0NvdW50ZXIsIGludCB0b3AsIGludCBoZWlnaHQpCit2b2lkIENDSGVhZHNV
cERpc3BsYXlMYXllckltcGw6OmRyYXdGUFNDb3VudGVyKFNrQ2FudmFzKiBjYW52YXMsIENDRnJh
bWVSYXRlQ291bnRlciogZnBzQ291bnRlciwgaW50IHRvcCwgaW50IGhlaWdodCkKIHsKICAgICBm
bG9hdCB0ZXh0V2lkdGggPSAxNzA7IC8vIHNvIHRleHQgZml0cyBvbiBsaW51eC4KICAgICBmbG9h
dCBncmFwaFdpZHRoID0gZnBzQ291bnRlci0+dGltZVN0YW1wSGlzdG9yeVNpemUoKTsKIAogICAg
IC8vIERyYXcgdGhlIEZQUyB0ZXh0LgotICAgIGRyYXdGUFNDb3VudGVyVGV4dChjb250ZXh0LCBm
cHNDb3VudGVyLCB0b3AsIHRleHRXaWR0aCwgaGVpZ2h0KTsKKyAgICBkcmF3RlBTQ291bnRlclRl
eHQoY2FudmFzLCBmcHNDb3VudGVyLCB0b3AsIHRleHRXaWR0aCwgaGVpZ2h0KTsKIAogICAgIC8v
IERyYXcgRlBTIGdyYXBoLgogICAgIGNvbnN0IGRvdWJsZSBsb0ZQUyA9IDA7CiAgICAgY29uc3Qg
ZG91YmxlIGhpRlBTID0gODA7Ci0gICAgY29udGV4dC0+c2V0U3Ryb2tlU3R5bGUoU29saWRTdHJv
a2UpOwotICAgIGNvbnRleHQtPnNldEZpbGxDb2xvcihDb2xvcigxNTQsIDIwNSwgNTApLCBDb2xv
clNwYWNlRGV2aWNlUkdCKTsKLSAgICBjb250ZXh0LT5maWxsUmVjdChGbG9hdFJlY3QoMiArIHRl
eHRXaWR0aCwgdG9wLCBncmFwaFdpZHRoLCBoZWlnaHQgLyAyKSk7Ci0gICAgY29udGV4dC0+c2V0
RmlsbENvbG9yKENvbG9yKDI1NSwgMjUwLCAyMDUpLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAg
ICBjb250ZXh0LT5maWxsUmVjdChGbG9hdFJlY3QoMiArIHRleHRXaWR0aCwgdG9wICsgaGVpZ2h0
IC8gMiwgZ3JhcGhXaWR0aCwgaGVpZ2h0IC8gMikpOwotICAgIGNvbnRleHQtPnNldFN0cm9rZUNv
bG9yKENvbG9yKDI1NSwgMCwgMCksIENvbG9yU3BhY2VEZXZpY2VSR0IpOwotICAgIGNvbnRleHQt
PnNldEZpbGxDb2xvcihDb2xvcigyNTUsIDAsIDApLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAg
ICBTa1BhaW50IHBhaW50OworICAgIHBhaW50LnNldENvbG9yKFNrQ29sb3JTZXRSR0IoMTU0LCAy
MDUsIDUwKSk7CisgICAgY2FudmFzLT5kcmF3UmVjdChTa1JlY3Q6Ok1ha2VYWVdIKDIgKyB0ZXh0
V2lkdGgsIHRvcCwgZ3JhcGhXaWR0aCwgaGVpZ2h0IC8gMiksIHBhaW50KTsKKworICAgIHBhaW50
LnNldENvbG9yKFNrQ29sb3JTZXRSR0IoMjU1LCAyNTAsIDIwNSkpOworICAgIGNhbnZhcy0+ZHJh
d1JlY3QoU2tSZWN0OjpNYWtlWFlXSCgyICsgdGV4dFdpZHRoLCB0b3AgKyBoZWlnaHQgLyAyLCBn
cmFwaFdpZHRoLCBoZWlnaHQgLyAyKSwgcGFpbnQpOwogCiAgICAgaW50IGdyYXBoTGVmdCA9IHN0
YXRpY19jYXN0PGludD4odGV4dFdpZHRoICsgMyk7Ci0gICAgSW50UG9pbnQgcHJldigtMSwgMCk7
CiAgICAgaW50IHggPSAwOwogICAgIGRvdWJsZSBoID0gc3RhdGljX2Nhc3Q8ZG91YmxlPihoZWln
aHQgLSAyKTsKKyAgICBTa1BhdGggcGF0aDsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IGZwc0Nv
dW50ZXItPnRpbWVTdGFtcEhpc3RvcnlTaXplKCkgLSAxOyArK2kpIHsKICAgICAgICAgaW50IGog
PSBpICsgMTsKICAgICAgICAgZG91YmxlIGRlbHRhID0gZnBzQ291bnRlci0+dGltZVN0YW1wT2ZS
ZWNlbnRGcmFtZShqKSAtIGZwc0NvdW50ZXItPnRpbWVTdGFtcE9mUmVjZW50RnJhbWUoaSk7CkBA
IC0xODgsNzMgKzE4Myw4NCBAQCB2b2lkIENDSGVhZHNVcERpc3BsYXlMYXllckltcGw6OmRyYXdG
UFNDb3VudGVyKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgQ0NGcmFtZQogCiAgICAgICAgIC8v
IFBsb3QgdGhpcyBkYXRhIHBvaW50LgogICAgICAgICBJbnRQb2ludCBjdXIoZ3JhcGhMZWZ0ICsg
eCwgMSArIHRvcCArIHAqaCk7Ci0gICAgICAgIGlmIChwcmV2LngoKSAhPSAtMSkKLSAgICAgICAg
ICAgIGNvbnRleHQtPmRyYXdMaW5lKHByZXYsIGN1cik7Ci0gICAgICAgIHByZXYgPSBjdXI7Cisg
ICAgICAgIGlmIChwYXRoLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHBhdGgubW92ZVRvKGN1cik7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHBhdGgubGluZVRvKGN1cik7CiAgICAgICAgIHgg
Kz0gMTsKICAgICB9CisgICAgcGFpbnQuc2V0Q29sb3IoU0tfQ29sb3JSRUQpOworICAgIHBhaW50
LnNldFN0eWxlKFNrUGFpbnQ6OmtTdHJva2VfU3R5bGUpOworICAgIHBhaW50LnNldFN0cm9rZVdp
ZHRoKDEpOworICAgIHBhaW50LnNldEFudGlBbGlhcyh0cnVlKTsKKyAgICBjYW52YXMtPmRyYXdQ
YXRoKHBhdGgsIHBhaW50KTsKIH0KIAotdm9pZCBDQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBsOjpk
cmF3RlBTQ291bnRlclRleHQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBDQ0ZyYW1lUmF0ZUNv
dW50ZXIqIGZwc0NvdW50ZXIsIGludCB0b3AsIGludCB3aWR0aCwgaW50IGhlaWdodCkKK3ZvaWQg
Q0NIZWFkc1VwRGlzcGxheUxheWVySW1wbDo6ZHJhd0ZQU0NvdW50ZXJUZXh0KFNrQ2FudmFzKiBj
YW52YXMsIENDRnJhbWVSYXRlQ291bnRlciogZnBzQ291bnRlciwgaW50IHRvcCwgaW50IHdpZHRo
LCBpbnQgaGVpZ2h0KQogewogICAgIGRvdWJsZSBhdmVyYWdlRlBTLCBzdGREZXZpYXRpb247CiAg
ICAgZnBzQ291bnRlci0+Z2V0QXZlcmFnZUZQU0FuZFN0YW5kYXJkRGV2aWF0aW9uKGF2ZXJhZ2VG
UFMsIHN0ZERldmlhdGlvbik7CiAKICAgICAvLyBEcmF3IGJhY2tncm91bmQuCi0gICAgY29udGV4
dC0+c2V0RmlsbENvbG9yKENvbG9yKDAsIDAsIDAsIDI1NSksIENvbG9yU3BhY2VEZXZpY2VSR0Ip
OwotICAgIGNvbnRleHQtPmZpbGxSZWN0KEZsb2F0UmVjdCgyLCB0b3AsIHdpZHRoLCBoZWlnaHQp
KTsKKyAgICBTa1BhaW50IHBhaW50OworICAgIHBhaW50LnNldENvbG9yKFNLX0NvbG9yQkxBQ0sp
OworICAgIGNhbnZhcy0+ZHJhd1JlY3QoU2tSZWN0OjpNYWtlWFlXSCgyLCB0b3AsIHdpZHRoLCBo
ZWlnaHQpLCBwYWludCk7CiAKICAgICAvLyBEcmF3IEZQUyB0ZXh0LgogICAgIGlmIChtX2ZvbnRB
dGxhcykKLSAgICAgICAgbV9mb250QXRsYXMtPmRyYXdUZXh0KGNvbnRleHQsIFN0cmluZzo6Zm9y
bWF0KCJGUFM6ICU0LjFmICsvLSAlMy4xZiIsIGF2ZXJhZ2VGUFMsIHN0ZERldmlhdGlvbiksIElu
dFBvaW50KDEwLCBoZWlnaHQgLyAzKSwgSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSk7CisgICAgICAg
IG1fZm9udEF0bGFzLT5kcmF3VGV4dChjYW52YXMsIFN0cmluZzo6Zm9ybWF0KCJGUFM6ICU0LjFm
ICsvLSAlMy4xZiIsIGF2ZXJhZ2VGUFMsIHN0ZERldmlhdGlvbiksIEludFBvaW50KDEwLCBoZWln
aHQgLyAzKSwgSW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSk7CiB9CiAKLXZvaWQgQ0NIZWFkc1VwRGlz
cGxheUxheWVySW1wbDo6ZHJhd0RlYnVnUmVjdHMoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBD
Q0RlYnVnUmVjdEhpc3RvcnkqIGRlYnVnUmVjdEhpc3RvcnkpCit2b2lkIENDSGVhZHNVcERpc3Bs
YXlMYXllckltcGw6OmRyYXdEZWJ1Z1JlY3RzKFNrQ2FudmFzKiBjYW52YXMsIENDRGVidWdSZWN0
SGlzdG9yeSogZGVidWdSZWN0SGlzdG9yeSkKIHsKICAgICBjb25zdCBWZWN0b3I8Q0NEZWJ1Z1Jl
Y3Q+JiBkZWJ1Z1JlY3RzID0gZGVidWdSZWN0SGlzdG9yeS0+ZGVidWdSZWN0cygpOworCiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBkZWJ1Z1JlY3RzLnNpemUoKTsgKytpKSB7CisgICAgICAg
IFNrQ29sb3Igc3Ryb2tlQ29sb3IgPSAwOworICAgICAgICBTa0NvbG9yIGZpbGxDb2xvciA9IDA7
CiAKLSAgICAgICAgaWYgKGRlYnVnUmVjdHNbaV0udHlwZSA9PSBQYWludFJlY3RUeXBlKSB7Cisg
ICAgICAgIHN3aXRjaCAoZGVidWdSZWN0c1tpXS50eXBlKSB7CisgICAgICAgIGNhc2UgUGFpbnRS
ZWN0VHlwZToKICAgICAgICAgICAgIC8vIFBhaW50IHJlY3RzIGluIHJlZAotICAgICAgICAgICAg
Y29udGV4dC0+c2V0U3Ryb2tlQ29sb3IoQ29sb3IoMjU1LCAwLCAwLCAyNTUpLCBDb2xvclNwYWNl
RGV2aWNlUkdCKTsKLSAgICAgICAgICAgIGNvbnRleHQtPmZpbGxSZWN0KGRlYnVnUmVjdHNbaV0u
cmVjdCwgQ29sb3IoMjU1LCAwLCAwLCAzMCksIENvbG9yU3BhY2VEZXZpY2VSR0IpOwotICAgICAg
ICAgICAgY29udGV4dC0+c3Ryb2tlUmVjdChkZWJ1Z1JlY3RzW2ldLnJlY3QsIDIuMCk7Ci0gICAg
ICAgIH0KLQotICAgICAgICBpZiAoZGVidWdSZWN0c1tpXS50eXBlID09IFByb3BlcnR5Q2hhbmdl
ZFJlY3RUeXBlKSB7CisgICAgICAgICAgICBzdHJva2VDb2xvciA9IFNrQ29sb3JTZXRBUkdCKDI1
NSwgMjU1LCAwLCAwKTsKKyAgICAgICAgICAgIGZpbGxDb2xvciA9IFNrQ29sb3JTZXRBUkdCKDMw
LCAyNTUsIDAsIDApOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUHJvcGVydHlD
aGFuZ2VkUmVjdFR5cGU6CiAgICAgICAgICAgICAvLyBQcm9wZXJ0eS1jaGFuZ2VkIHJlY3RzIGlu
IGJsdWUKLSAgICAgICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKENvbG9yKDAsIDAsIDI1
NSwgMjU1KSwgQ29sb3JTcGFjZURldmljZVJHQik7Ci0gICAgICAgICAgICBjb250ZXh0LT5maWxs
UmVjdChkZWJ1Z1JlY3RzW2ldLnJlY3QsIENvbG9yKDAsIDAsIDI1NSwgMzApLCBDb2xvclNwYWNl
RGV2aWNlUkdCKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnN0cm9rZVJlY3QoZGVidWdSZWN0c1tp
XS5yZWN0LCAyLjApOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGRlYnVnUmVjdHNbaV0udHlw
ZSA9PSBTdXJmYWNlRGFtYWdlUmVjdFR5cGUpIHsKKyAgICAgICAgICAgIHN0cm9rZUNvbG9yID0g
U2tDb2xvclNldEFSR0IoMjU1LCAyNTUsIDAsIDApOworICAgICAgICAgICAgZmlsbENvbG9yID0g
U2tDb2xvclNldEFSR0IoMzAsIDAsIDAsIDI1NSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBTdXJmYWNlRGFtYWdlUmVjdFR5cGU6CiAgICAgICAgICAgICAvLyBTdXJmYWNlIGRh
bWFnZSByZWN0cyBpbiB5ZWxsb3ctb3JhbmdlCi0gICAgICAgICAgICBjb250ZXh0LT5zZXRTdHJv
a2VDb2xvcihDb2xvcigyMDAsIDEwMCwgMCwgMjU1KSwgQ29sb3JTcGFjZURldmljZVJHQik7Ci0g
ICAgICAgICAgICBjb250ZXh0LT5maWxsUmVjdChkZWJ1Z1JlY3RzW2ldLnJlY3QsIENvbG9yKDIw
MCwgMTAwLCAwLCAzMCksIENvbG9yU3BhY2VEZXZpY2VSR0IpOwotICAgICAgICAgICAgY29udGV4
dC0+c3Ryb2tlUmVjdChkZWJ1Z1JlY3RzW2ldLnJlY3QsIDIuMCk7Ci0gICAgICAgIH0KLQotICAg
ICAgICBpZiAoZGVidWdSZWN0c1tpXS50eXBlID09IFJlcGxpY2FTY3JlZW5TcGFjZVJlY3RUeXBl
KSB7CisgICAgICAgICAgICBzdHJva2VDb2xvciA9IFNrQ29sb3JTZXRBUkdCKDI1NSwgMjAwLCAx
MDAsIDApOworICAgICAgICAgICAgZmlsbENvbG9yID0gU2tDb2xvclNldEFSR0IoMzAsIDIwMCwg
MTAwLCAwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIFJlcGxpY2FTY3JlZW5T
cGFjZVJlY3RUeXBlOgogICAgICAgICAgICAgLy8gU2NyZWVuIHNwYWNlIHJlY3RzIGluIGdyZWVu
LgotICAgICAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3IoQ29sb3IoMTAwLCAyMDAsIDAs
IDI1NSksIENvbG9yU3BhY2VEZXZpY2VSR0IpOwotICAgICAgICAgICAgY29udGV4dC0+ZmlsbFJl
Y3QoZGVidWdSZWN0c1tpXS5yZWN0LCBDb2xvcigxMDAsIDIwMCwgMCwgMzApLCBDb2xvclNwYWNl
RGV2aWNlUkdCKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnN0cm9rZVJlY3QoZGVidWdSZWN0c1tp
XS5yZWN0LCAyLjApOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGRlYnVnUmVjdHNbaV0udHlw
ZSA9PSBTY3JlZW5TcGFjZVJlY3RUeXBlKSB7CisgICAgICAgICAgICBzdHJva2VDb2xvciA9IFNr
Q29sb3JTZXRBUkdCKDI1NSwgMTAwLCAyMDAsIDApOworICAgICAgICAgICAgZmlsbENvbG9yID0g
U2tDb2xvclNldEFSR0IoMzAsIDEwMCwgMjAwLCAwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIFNjcmVlblNwYWNlUmVjdFR5cGU6CiAgICAgICAgICAgICAvLyBTY3JlZW4gc3Bh
Y2UgcmVjdHMgaW4gcHVycGxlLgotICAgICAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3Io
Q29sb3IoMTAwLCAwLCAyMDAsIDI1NSksIENvbG9yU3BhY2VEZXZpY2VSR0IpOwotICAgICAgICAg
ICAgY29udGV4dC0+ZmlsbFJlY3QoZGVidWdSZWN0c1tpXS5yZWN0LCBDb2xvcigxMDAsIDAsIDIw
MCwgMTApLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnN0cm9r
ZVJlY3QoZGVidWdSZWN0c1tpXS5yZWN0LCAyLjApOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYg
KGRlYnVnUmVjdHNbaV0udHlwZSA9PSBPY2NsdWRpbmdSZWN0VHlwZSkgeworICAgICAgICAgICAg
c3Ryb2tlQ29sb3IgPSBTa0NvbG9yU2V0QVJHQigyNTUsIDEwMCwgMCwgMjAwKTsKKyAgICAgICAg
ICAgIGZpbGxDb2xvciA9IFNrQ29sb3JTZXRBUkdCKDEwLCAxMDAsIDAsIDIwMCk7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBPY2NsdWRpbmdSZWN0VHlwZToKICAgICAgICAgICAg
IC8vIE9jY2x1ZGluZyByZWN0cyBpbiBhIHJlZGRpc2ggY29sb3IuCi0gICAgICAgICAgICBjb250
ZXh0LT5zZXRTdHJva2VDb2xvcihDb2xvcigyMDAsIDAsIDEwMCwgMjU1KSwgQ29sb3JTcGFjZURl
dmljZVJHQik7Ci0gICAgICAgICAgICBjb250ZXh0LT5maWxsUmVjdChkZWJ1Z1JlY3RzW2ldLnJl
Y3QsIENvbG9yKDIwMCwgMCwgMTAwLCAxMCksIENvbG9yU3BhY2VEZXZpY2VSR0IpOwotICAgICAg
ICAgICAgY29udGV4dC0+c3Ryb2tlUmVjdChkZWJ1Z1JlY3RzW2ldLnJlY3QsIDIuMCk7CisgICAg
ICAgICAgICBzdHJva2VDb2xvciA9IFNrQ29sb3JTZXRBUkdCKDI1NSwgMjAwLCAwLCAxMDApOwor
ICAgICAgICAgICAgZmlsbENvbG9yID0gU2tDb2xvclNldEFSR0IoMTAsIDIwMCwgMCwgMTAwKTsK
KyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisKKyAgICAgICAgU2tSZWN0IHJlY3QgPSBk
ZWJ1Z1JlY3RzW2ldLnJlY3Q7CisgICAgICAgIFNrUGFpbnQgcGFpbnQ7CisgICAgICAgIHBhaW50
LnNldENvbG9yKGZpbGxDb2xvcik7CisgICAgICAgIGNhbnZhcy0+ZHJhd1JlY3QocmVjdCwgcGFp
bnQpOworCisgICAgICAgIHBhaW50LnNldENvbG9yKHN0cm9rZUNvbG9yKTsKKyAgICAgICAgcGFp
bnQuc2V0U3R5bGUoU2tQYWludDo6a1N0cm9rZV9TdHlsZSk7CisgICAgICAgIHBhaW50LnNldFN0
cm9rZVdpZHRoKDIpOworICAgICAgICBjYW52YXMtPmRyYXdSZWN0KHJlY3QsIHBhaW50KTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXlMYXllckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXlMYXllckltcGwuaApp
bmRleCA3ODM3OGE1ZmU5ZWVlMDUxMTY5YzY5YTA4N2IyNjM0NjAxNzdhNTBmLi5iMjdmODY0YzJh
ODY3MDIyMzliNDVmMmU2Yjk1ZGY5ZTk3YTVlYWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0hlYWRzVXBEaXNwbGF5TGF5ZXJJbXBs
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NI
ZWFkc1VwRGlzcGxheUxheWVySW1wbC5oCkBAIC0yOSwxMiArMjksMTMgQEAKICNpbmNsdWRlICJj
Yy9DQ0xheWVySW1wbC5oIgogI2luY2x1ZGUgImNjL0NDU2NvcGVkVGV4dHVyZS5oIgogCitjbGFz
cyBTa0NhbnZhczsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDQ0RlYnVnUmVjdEhp
c3Rvcnk7CiBjbGFzcyBDQ0ZvbnRBdGxhczsKIGNsYXNzIENDRnJhbWVSYXRlQ291bnRlcjsKLWNs
YXNzIEdyYXBoaWNzQ29udGV4dDsKIAogY2xhc3MgQ0NIZWFkc1VwRGlzcGxheUxheWVySW1wbCA6
IHB1YmxpYyBDQ0xheWVySW1wbCB7CiBwdWJsaWM6CkBAIC01NywxMCArNTgsMTAgQEAgcHJpdmF0
ZToKIAogICAgIHZpcnR1YWwgY29uc3QgY2hhciogbGF5ZXJUeXBlQXNTdHJpbmcoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiAiSGVhZHNVcERpc3BsYXlMYXllciI7IH0KIAotICAgIHZvaWQgZHJh
d0h1ZENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCopOwotICAgIHZvaWQgZHJhd0ZQU0NvdW50ZXIo
R3JhcGhpY3NDb250ZXh0KiwgQ0NGcmFtZVJhdGVDb3VudGVyKiwgaW50IHRvcCwgaW50IGhlaWdo
dCk7Ci0gICAgdm9pZCBkcmF3RlBTQ291bnRlclRleHQoR3JhcGhpY3NDb250ZXh0KiwgQ0NGcmFt
ZVJhdGVDb3VudGVyKiwgaW50IHRvcCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKLSAgICB2b2lk
IGRyYXdEZWJ1Z1JlY3RzKEdyYXBoaWNzQ29udGV4dCosIENDRGVidWdSZWN0SGlzdG9yeSopOwor
ICAgIHZvaWQgZHJhd0h1ZENvbnRlbnRzKFNrQ2FudmFzKik7CisgICAgdm9pZCBkcmF3RlBTQ291
bnRlcihTa0NhbnZhcyosIENDRnJhbWVSYXRlQ291bnRlciosIGludCB0b3AsIGludCBoZWlnaHQp
OworICAgIHZvaWQgZHJhd0ZQU0NvdW50ZXJUZXh0KFNrQ2FudmFzKiwgQ0NGcmFtZVJhdGVDb3Vu
dGVyKiwgaW50IHRvcCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAgICB2b2lkIGRyYXdEZWJ1
Z1JlY3RzKFNrQ2FudmFzKiwgQ0NEZWJ1Z1JlY3RIaXN0b3J5Kik7CiAKICAgICBPd25QdHI8Q0NG
b250QXRsYXM+IG1fZm9udEF0bGFzOwogICAgIE93blB0cjxDQ1Njb3BlZFRleHR1cmU+IG1faHVk
VGV4dHVyZTsK
</data>
<flag name="review"
          id="165181"
          type_id="1"
          status="+"
          setter="enne"
    />
          </attachment>
      

    </bug>

</bugzilla>