<?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>85030</bug_id>
          
          <creation_ts>2012-04-26 22:29:02 -0700</creation_ts>
          <short_desc>[chromium] Separate IOSurface layer type from texture layers</short_desc>
          <delta_ts>2012-04-27 20:37:36 -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>abarth</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>611246</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-26 22:29:02 -0700</bug_when>
    <thetext>[chromium] Separate IOSurface layer type from texture layers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611248</commentid>
    <comment_count>1</comment_count>
      <attachid>139133</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-26 22:32:19 -0700</bug_when>
    <thetext>Created attachment 139133
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611251</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-26 22:34:39 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611252</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-26 22:35:01 -0700</bug_when>
    <thetext>Attachment 139133 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/Platform/ChangeLog&apos;, u&apos;Source/Platf...&quot; exit_code: 1
Source/WebKit/chromium/src/WebIOSurfaceLayer.cpp:28:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>611671</commentid>
    <comment_count>4</comment_count>
      <attachid>139133</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-04-27 10:53:18 -0700</bug_when>
    <thetext>Comment on attachment 139133
Patch

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

R=me.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:52
&gt; +    // FIXME: it seems there is no layer renderer / GraphicsContext3D available here. Ideally we
&gt; +    // would like to delete m_ioSurfaceTextureId.

This feels kind of like a job for TextureManager/ManagedTexture, but those classes aren&apos;t quite smart enough to handle IO surface textures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612120</commentid>
    <comment_count>5</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-27 20:37:05 -0700</bug_when>
    <thetext>It&apos;s a &quot;normal&quot; texture, just needs a deleteTexture() call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612121</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-27 20:37:36 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/115509</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139133</attachid>
            <date>2012-04-26 22:32:19 -0700</date>
            <delta_ts>2012-04-27 10:53:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85030-20120426223218.patch</filename>
            <type>text/plain</type>
            <size>53123</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBmOGIzZmJhNDI2YTUy
ZWJjNGIwNzRlOTM3MzRlYzM4ZjdkZjdkZWE5Li5lZDk2ODFkOTdlNmI4NGZiNmNlMDBhMWRlNzRh
YzE0YTAxYjE1ZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMi0wNC0yNiAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gU2VwYXJhdGUgSU9TdXJmYWNlIGxheWVyIHR5cGUgZnJvbSB0ZXh0dXJlIGxheWVycworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUwMzAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGEgbmV3IGxh
eWVyIHR5cGUgZm9yIElPU3VyZmFjZSBiYWNrZWQgbGF5ZXJzLCBpbnN0ZWFkIG9mIHNoYXJpbmcg
dGhhdCBmdW5jdGlvbmFsaXR5IGluCisgICAgICAgIFdlYkV4dGVybmFsVGV4dHVyZUxheWVyLiBJ
T1N1cmZhY2UgYmFja2VkIGxheWVycyBkbyBub3Qgc2hhcmUgYW55IG90aGVyIHByb3BlcnRpZXMg
d2l0aCBleHRlcm5hbCB0ZXh0dXJlIGxheWVycy4KKworICAgICAgICAqIFBsYXRmb3JtLmd5cGk6
CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmg6Cisg
ICAgICAgIChXZWJFeHRlcm5hbFRleHR1cmVMYXllcik6CisgICAgICAgICogY2hyb21pdW0vcHVi
bGljL1dlYklPU3VyZmFjZUxheWVyLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChXZWJJT1N1cmZhY2VMYXllcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YklPU3VyZmFjZUxheWVyOjpXZWJJT1N1cmZhY2VMYXllcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YklPU3VyZmFjZUxheWVyOjp+V2ViSU9TdXJmYWNlTGF5ZXIpOgorCiAyMDEyLTA0LTI1ICBEYW5h
IEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmVt
b3ZlIGd1YXJkZWQgdmlydHVhbCBtZXRob2RzIGZyb20gV2ViRmlsdGVyT3BlcmF0aW9uIEFQSQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGMzMjdiMGI5ZTM3MTVmYzk1OWFkYjVmYjkxN2ViNzRjNjQ3N2I2YzQuLjE4
MjMyYjE3YTRkOWViNWM5MTE1NjZlYmM3ZWVhZWRjZjczNzA5OGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw2NCBAQAorMjAxMi0wNC0yNiAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gU2VwYXJhdGUgSU9TdXJmYWNlIGxheWVyIHR5cGUg
ZnJvbSB0ZXh0dXJlIGxheWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODUwMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRzIGEgbmV3IGxheWVyIHR5cGUgZm9yIElPU3VyZmFjZSBsYXllcnMgYW5k
IHBpcGVzIHRocm91Z2ggYSBzZXBhcmF0ZSBwYXRoIHRocm91Z2ggdG8gcmVuZGVyaW5nLiBJT1N1
cmZhY2UKKyAgICAgICAgbGF5ZXJzIGFyZSB2ZXJ5IHNpbXBsZSAtIHRoZXkgaGF2ZSBhbiBJT1N1
cmZhY2UgaWQgYW5kIHNpemUsIG5vdGhpbmcgZWxzZS4gQWxsIElPU3VyZmFjZSBsYXllcnMgYXJl
ICJmbGlwcGVkIiBpbgorICAgICAgICBvdXIgdGVybWlub2xvZ3kuCisKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSU9TdXJmYWNl
TGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OklPU3VyZmFjZUxheWVyQ2hyb21pdW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJT1N1
cmZhY2VMYXllckNocm9taXVtOjpJT1N1cmZhY2VMYXllckNocm9taXVtKToKKyAgICAgICAgKFdl
YkNvcmU6OklPU3VyZmFjZUxheWVyQ2hyb21pdW06On5JT1N1cmZhY2VMYXllckNocm9taXVtKToK
KyAgICAgICAgKFdlYkNvcmU6OklPU3VyZmFjZUxheWVyQ2hyb21pdW06OnNldElPU3VyZmFjZVBy
b3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlTGF5ZXJDaHJvbWl1bTo6Y3Jl
YXRlQ0NMYXllckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlTGF5ZXJDaHJvbWl1
bTo6ZHJhd3NDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklPU3VyZmFjZUxheWVyQ2hyb21p
dW06OnB1c2hQcm9wZXJ0aWVzVG8pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0lPU3VyZmFjZUxheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoSU9TdXJmYWNlTGF5ZXJDaHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0lPU3VyZmFjZVF1YWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtOjpjbGVhbnVwU2hhcmVkT2JqZWN0cyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmg6Cisg
ICAgICAgIChMYXllclJlbmRlcmVyQ2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1RleHR1cmVMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlRleHR1cmVMYXllckNocm9taXVtOjpUZXh0dXJlTGF5ZXJDaHJvbWl1bSk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0dXJlTGF5ZXJDaHJvbWl1bTo6ZHJhd3NDb250ZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlRleHR1cmVMYXllckNocm9taXVtOjpwdXNoUHJvcGVydGllc1RvKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTGF5ZXJDaHJvbWl1bS5oOgorICAg
ICAgICAoVGV4dHVyZUxheWVyQ2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDSU9TdXJmYWNlRHJhd1F1YWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q0NJT1N1cmZhY2VEcmF3UXVhZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNDSU9TdXJm
YWNlRHJhd1F1YWQ6OkNDSU9TdXJmYWNlRHJhd1F1YWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDSU9TdXJmYWNlRHJhd1F1YWQuaDoKKyAgICAgICAgKENDSU9T
dXJmYWNlRHJhd1F1YWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDSU9TdXJmYWNlTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6Q0NJT1N1cmZhY2VMYXllckltcGw6OkNDSU9TdXJmYWNlTGF5ZXJJbXBsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNDSU9TdXJmYWNlTGF5ZXJJbXBsOjp+Q0NJT1N1cmZhY2VMYXllcklt
cGwpOgorICAgICAgICAoV2ViQ29yZTo6Q0NJT1N1cmZhY2VMYXllckltcGw6OndpbGxEcmF3KToK
KyAgICAgICAgKFdlYkNvcmU6OkNDSU9TdXJmYWNlTGF5ZXJJbXBsOjphcHBlbmRRdWFkcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ0lPU3VyZmFjZUxheWVySW1wbDo6ZHVtcExheWVyUHJvcGVydGll
cyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0lPU3VyZmFjZUxheWVySW1wbDo6ZGlkTG9zZUNvbnRl
eHQpOgorICAgICAgICAoV2ViQ29yZTo6Q0NJT1N1cmZhY2VMYXllckltcGw6OnNldElPU3VyZmFj
ZVByb3BlcnRpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
SU9TdXJmYWNlTGF5ZXJJbXBsLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENDSU9T
dXJmYWNlTGF5ZXJJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkNDSU9TdXJmYWNlTGF5ZXJJbXBs
OjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4
dHVyZUxheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVMYXllckltcGw6
OkNDVGV4dHVyZUxheWVySW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVMYXllcklt
cGw6On5DQ1RleHR1cmVMYXllckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6Q0NUZXh0dXJlTGF5
ZXJJbXBsOjphcHBlbmRRdWFkcyk6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVMYXllcklt
cGw6OmRpZExvc2VDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RleHR1cmVMYXllckltcGwuaDoKKyAgICAgICAgKENDVGV4dHVyZUxheWVySW1wbCk6
CisKIDIwMTItMDQtMjQgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbY2hyb21pdW1dIE1vdmUgUHJvZ3JhbUJpbmRpbmcgZGVmaW5pdGlvbnMgdG8gTGF5
ZXJSZW5kZXJlckNocm9taXVtIGFuZCBub3JtYWxpemUgbmFtaW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDY2YjQ3NWYwODNmYmU5YTIzZjg5OTBkNWUxNjcxMTcwMzM1YjY3ODcuLjBl
MWMwMTg3ZTdhYjA5YjRmNmY4NDFlODExODEwODA1OWIyMzJmNGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTItMDQtMjYgIEphbWVzIFJvYmluc29uICA8
amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIFNlcGFyYXRlIElPU3Vy
ZmFjZSBsYXllciB0eXBlIGZyb20gdGV4dHVyZSBsYXllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1MDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIFdlYlBsdWdpbkNvbnRhaW5lckltcGwg
dG8gc3VwcG9ydCBoYXZpbmcgZWl0aGVyIGEgdGV4dHVyZSBvciBJT1N1cmZhY2UgbGF5ZXIgKGJ1
dCBuZXZlciBib3RoKSBkZXBlbmRpbmcKKyAgICAgICAgb24gdGhlIHBsdWdpbidzIGNvbnRlbnRz
LgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBzcmMvV2ViRXh0ZXJuYWxUZXh0
dXJlTGF5ZXIuY3BwOgorICAgICAgICAqIHNyYy9XZWJJT1N1cmZhY2VMYXllci5jcHA6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJT1N1cmZhY2VMYXllcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViSU9TdXJmYWNlTGF5ZXI6OnNldElPU3VyZmFjZVByb3Bl
cnRpZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJJT1N1cmZhY2VMYXllcjo6V2ViSU9TdXJmYWNl
TGF5ZXIpOgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c2V0QmFja2luZ1RleHR1cmVJZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6OnNldEJhY2tpbmdJT1N1
cmZhY2VJZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6OmNvbW1p
dEJhY2tpbmdUZXh0dXJlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVySW1w
bDo6c2V0T3BhcXVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6
cGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6
OldlYlBsdWdpbkNvbnRhaW5lckltcGwpOgorICAgICAgICAqIHNyYy9XZWJQbHVnaW5Db250YWlu
ZXJJbXBsLmg6CisgICAgICAgIChXZWJQbHVnaW5Db250YWluZXJJbXBsKToKKwogMjAxMi0wNC0y
NCAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJv
bWl1bV0gTW92ZSBQcm9ncmFtQmluZGluZyBkZWZpbml0aW9ucyB0byBMYXllclJlbmRlcmVyQ2hy
b21pdW0gYW5kIG5vcm1hbGl6ZSBuYW1pbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9Q
bGF0Zm9ybS5neXBpIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKaW5kZXggNjM3NjE0
MGU1ZDllOTlmMDYxZTFhNzMyZjAyNzMyMjU5ODAwY2I1OS4uNzdkN2FhMDZkNTRlMjljZTVlMzEx
YjFjNjA4MzA4YjIyN2I1MzNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL1BsYXRmb3Jt
Lmd5cGkKKysrIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKQEAgLTU1LDYgKzU1LDcg
QEAKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViSFRUUExvYWRJbmZvLmgnLAogICAg
ICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yLmgnLAog
ICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJJQ0VPcHRpb25zLmgnLAorICAgICAgICAg
ICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJJT1N1cmZhY2VMYXllci5oJywKICAgICAgICAgICAgICdj
aHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGlj
L1dlYkxheWVyVHJlZVZpZXcuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkxh
eWVyVHJlZVZpZXdDbGllbnQuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21p
dW0vcHVibGljL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmgKaW5kZXggODMzMzBkMzNjMDUy
YjE5ODE4NWU5NjRlYjEyMzg5M2UyMGY3MzM5Yy4uMGIzNGEyZDMyMzk4ZWQ2NzViMDk4YjI3YTk5
ZjBlYzgzYjEzOTk5NCAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1Ymxp
Yy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuaApAQCAtNTMsMTAgKzUzLDYgQEAgcHVi
bGljOgogICAgIC8vIGNvbXBvc2l0b3IgY29udGV4dC4KICAgICBXRUJLSVRfRVhQT1JUIHZvaWQg
c2V0VGV4dHVyZUlkKHVuc2lnbmVkKTsKIAotICAgIC8vIFNldHMgdGhlIElPIHN1cmZhY2UgaWQg
dGhhdCByZXByZXNlbnRzIHRoaXMgbGF5ZXIuIHNldFRleHR1cmVJZCgpIGFuZCBzZXRJT1N1cmZh
Y2VQcm9wZXJ0aWVzKCkgYXJlIG11dHVhbGx5Ci0gICAgLy8gZXhjbHVzaXZlIC0gYSBsYXllciBj
YW4gYmUgZWl0aGVyIGJhY2tlZCBieSBhIHRleHR1cmUgb3IgYW4gSU8gc3VyZmFjZSwgYnV0IG5v
dCBib3RoLgotICAgIFdFQktJVF9FWFBPUlQgdm9pZCBzZXRJT1N1cmZhY2VQcm9wZXJ0aWVzKGNv
bnN0IFdlYlNpemUmLCB1bnNpZ25lZCBpb1N1cmZhY2VJZCk7Ci0KICAgICAvLyBTZXRzIHdoZXRo
ZXIgb3Igbm90IHRoZSB0ZXh0dXJlIHNob3VsZCBiZSBmbGlwcGVkIGluIHRoZSBZIGRpcmVjdGlv
biB3aGVuCiAgICAgLy8gcmVuZGVyZWQuCiAgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldEZsaXBw
ZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dl
YklPU3VyZmFjZUxheWVyLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYklP
U3VyZmFjZUxheWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzdhNGM2NzkyYzFjNzZlZWNjMGM2MGMwZjNmYzlk
MGVhM2QzMzliYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9w
dWJsaWMvV2ViSU9TdXJmYWNlTGF5ZXIuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBXZWJJT1N1cmZhY2VMYXllcl9oCisjZGVmaW5lIFdlYklPU3VyZmFjZUxheWVyX2gKKworI2lu
Y2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYkxheWVyLmgiCisjaW5jbHVkZSAiV2Vi
U2l6ZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBJT1N1cmZhY2VMYXllckNocm9t
aXVtOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gVGhpcyBjbGFzcyByZXByZXNlbnRz
IGEgbGF5ZXIgdGhhdCByZW5kZXJzIGFuIGV4dGVybmFsbHkgbWFuYWdlZCBJT1N1cmZhY2UuCitj
bGFzcyBXZWJJT1N1cmZhY2VMYXllciA6IHB1YmxpYyBXZWJMYXllciB7CitwdWJsaWM6CisgICAg
V0VCS0lUX0VYUE9SVCBzdGF0aWMgV2ViSU9TdXJmYWNlTGF5ZXIgY3JlYXRlKCk7CisKKyAgICBX
ZWJJT1N1cmZhY2VMYXllcigpIHsgfQorICAgIHZpcnR1YWwgfldlYklPU3VyZmFjZUxheWVyKCkg
eyB9CisKKyAgICAvLyBTZXRzIHRoZSBJTyBzdXJmYWNlIGlkIHRoYXQgcmVwcmVzZW50cyB0aGlz
IGxheWVyJ3MgY29udGVudHMuCisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNldElPU3VyZmFjZVBy
b3BlcnRpZXModW5zaWduZWQgaW9TdXJmYWNlSWQsIFdlYlNpemUpOworCitwcml2YXRlOgorI2lm
IFdFQktJVF9JTVBMRU1FTlRBVElPTgorICAgIGV4cGxpY2l0IFdlYklPU3VyZmFjZUxheWVyKFBh
c3NSZWZQdHI8V2ViQ29yZTo6SU9TdXJmYWNlTGF5ZXJDaHJvbWl1bT4pOworI2VuZGlmCit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYklPU3VyZmFjZUxheWVyX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCBmMTM3OThjZmE5YjFiNzIyZDI2ZDQ0MGJiNzM0NTNkMTA1MDc4
MmE5Li5hZDI1N2QwYTM2NGM3MmJkYTRiYzExMWFhZmU1Mzg0YTFlN2VhMGQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC0zNTQ2LDYgKzM1NDYsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0dseXBoUGFnZVRyZWVOb2RlQ2hyb21pdW1XaW4uY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3Bw
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVy
Q2hyb21pdW0uaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSU9T
dXJmYWNlTGF5ZXJDaHJvbWl1bS5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0lPU3VyZmFjZUxheWVyQ2hyb21pdW0uaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNvbkNocm9taXVtQW5kcm9pZC5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlQnVmZmVyRGF0YVNraWEuaCcs
CkBAIC0zNTU4LDQ1ICszNTYwLDQ1IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vTGF5ZXJQYWludGVyQ2hyb21pdW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmgnLAot
ICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL01hbmFnZWRUZXh0dXJlLmNw
cCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTWFuYWdlZFRleHR1
cmUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJUZXh0
dXJlU3ViSW1hZ2UuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9MYXllclRleHR1cmVTdWJJbWFnZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllclRleHR1cmVVcGRhdGVyLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL01hbmFnZWRUZXh0dXJlLmNwcCcsCisgICAgICAgICAgICAncGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTWFuYWdlZFRleHR1cmUuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTWVkaWFQbGF5ZXJQcml2YXRlQ2hyb21pdW0uaCcs
Ci0gICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2Nyb2xsYmFyTGF5ZXJD
aHJvbWl1bS5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Nj
cm9sbGJhckxheWVyQ2hyb21pdW0uaCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vU29saWRDb2xvckxheWVyQ2hyb21pdW0uY3BwJywKLSAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Tb2xpZENvbG9yTGF5ZXJDaHJvbWl1bS5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9ybUNhbnZhcy5jcHAnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsYXRmb3JtQ2FudmFzLmgn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsYXRmb3JtQ29sb3Iu
aCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGxhdGZvcm1JY29u
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1BsYXRmb3JtSW1h
Z2UuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9QbGF0Zm9y
bUltYWdlLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1
cmVMYXllckNocm9taXVtLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vUHJvZ3JhbUJpbmRpbmcuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9Qcm9ncmFtQmluZGluZy5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SYXRlTGltaXRlci5jcHAnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JhdGVMaW1pdGVyLmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5jcHAnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1
bS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TY3JvbGxiYXJM
YXllckNocm9taXVtLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vU2Nyb2xsYmFyTGF5ZXJDaHJvbWl1bS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9TaGFkZXJDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1NoYWRlckNocm9taXVtLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1NpbXBsZUZvbnREYXRhQ2hyb21pdW1XaW4uY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ta1BpY3R1cmVDYW52YXNMYXll
clRleHR1cmVVcGRhdGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vU2tQaWN0dXJlQ2FudmFzTGF5ZXJUZXh0dXJlVXBkYXRlci5oJywKLSAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UcmFja2luZ1RleHR1cmVBbGxvY2F0b3IuY3Bw
JywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UcmFja2luZ1RleHR1
cmVBbGxvY2F0b3IuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
U29saWRDb2xvckxheWVyQ2hyb21pdW0uY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9Tb2xpZENvbG9yTGF5ZXJDaHJvbWl1bS5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlQ29waWVyLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZUNvcGllci5oJywKKyAgICAgICAg
ICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTGF5ZXJDaHJvbWl1bS5jcHAn
LAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVMYXllckNo
cm9taXVtLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1
cmVNYW5hZ2VyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
VGV4dHVyZU1hbmFnZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVGV4dHVyZVVwbG9hZGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vVGV4dHVyZVVwbG9hZGVyLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5oJywKKyAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UcmFja2luZ1RleHR1cmVBbGxvY2F0b3IuY3Bw
JywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UcmFja2luZ1RleHR1
cmVBbGxvY2F0b3IuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
VHJhbnNwYXJlbmN5V2luLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVHJhbnNwYXJlbmN5V2luLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1RyZWVTeW5jaHJvbml6ZXIuY3BwJywKQEAgLTM2MzksNiArMzY0MSw4IEBACiAg
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NIZWFkc1VwRGlzcGxh
eS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0lPU3Vy
ZmFjZURyYXdRdWFkLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NJT1N1cmZhY2VEcmF3UXVhZC5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0lPU3VyZmFjZUxheWVySW1wbC5jcHAnLAorICAgICAgICAgICAg
J3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSU9TdXJmYWNlTGF5ZXJJbXBsLmgnLAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSW5wdXRIYW5kbGVy
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDS2V5ZnJh
bWVkQW5pbWF0aW9uQ3VydmUuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0tleWZyYW1lZEFuaW1hdGlvbkN1cnZlLmgnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSU9TdXJmYWNlTGF5ZXJDaHJv
bWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JT1N1
cmZhY2VMYXllckNocm9taXVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjZkNmM4MmM4Mzg1MjkzMWM5YmU1
NWI3ZWFmODBiYzcwNjk5YjkwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSU9TdXJmYWNlTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTAs
MCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisg
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKKworI2luY2x1ZGUgIklPU3VyZmFjZUxheWVyQ2hyb21pdW0uaCIK
KworI2luY2x1ZGUgImNjL0NDSU9TdXJmYWNlTGF5ZXJJbXBsLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworUGFzc1JlZlB0cjxJT1N1cmZhY2VMYXllckNocm9taXVtPiBJT1N1cmZhY2VMYXll
ckNocm9taXVtOjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSU9TdXJmYWNl
TGF5ZXJDaHJvbWl1bSgpKTsKK30KKworSU9TdXJmYWNlTGF5ZXJDaHJvbWl1bTo6SU9TdXJmYWNl
TGF5ZXJDaHJvbWl1bSgpCisgICAgOiBMYXllckNocm9taXVtKCkKKyAgICAsIG1faW9TdXJmYWNl
SWQoMCkKK3sKK30KKworSU9TdXJmYWNlTGF5ZXJDaHJvbWl1bTo6fklPU3VyZmFjZUxheWVyQ2hy
b21pdW0oKQoreworfQorCit2b2lkIElPU3VyZmFjZUxheWVyQ2hyb21pdW06OnNldElPU3VyZmFj
ZVByb3BlcnRpZXModWludDMyX3QgaW9TdXJmYWNlSWQsIGNvbnN0IEludFNpemUmIHNpemUpCit7
CisgICAgbV9pb1N1cmZhY2VJZCA9IGlvU3VyZmFjZUlkOworICAgIG1faW9TdXJmYWNlU2l6ZSA9
IHNpemU7CisgICAgc2V0TmVlZHNDb21taXQoKTsKK30KKworUGFzc093blB0cjxDQ0xheWVySW1w
bD4gSU9TdXJmYWNlTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlQ0NMYXllckltcGwoKQoreworICAgIHJl
dHVybiBDQ0lPU3VyZmFjZUxheWVySW1wbDo6Y3JlYXRlKG1fbGF5ZXJJZCk7Cit9CisKK2Jvb2wg
SU9TdXJmYWNlTGF5ZXJDaHJvbWl1bTo6ZHJhd3NDb250ZW50KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9pb1N1cmZhY2VJZCAmJiBMYXllckNocm9taXVtOjpkcmF3c0NvbnRlbnQoKTsKK30KKwor
dm9pZCBJT1N1cmZhY2VMYXllckNocm9taXVtOjpwdXNoUHJvcGVydGllc1RvKENDTGF5ZXJJbXBs
KiBsYXllcikKK3sKKyAgICBMYXllckNocm9taXVtOjpwdXNoUHJvcGVydGllc1RvKGxheWVyKTsK
KworICAgIENDSU9TdXJmYWNlTGF5ZXJJbXBsKiB0ZXh0dXJlTGF5ZXIgPSBzdGF0aWNfY2FzdDxD
Q0lPU3VyZmFjZUxheWVySW1wbCo+KGxheWVyKTsKKyAgICB0ZXh0dXJlTGF5ZXItPnNldElPU3Vy
ZmFjZVByb3BlcnRpZXMobV9pb1N1cmZhY2VJZCwgbV9pb1N1cmZhY2VTaXplKTsKK30KKworfQor
I2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0lPU3VyZmFjZUxheWVyQ2hyb21p
dW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0lPU3VyZmFj
ZUxheWVyQ2hyb21pdW0uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xN2Y5NDNiZmM2OGJkNDQ1NmFiYmZlYjI2MzEw
ZWQ5NTZhNjc4MDM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vSU9TdXJmYWNlTGF5ZXJDaHJvbWl1bS5oCkBAIC0wLDAgKzEsNTkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisKKyNpZm5kZWYgSU9TdXJmYWNlTGF5ZXJDaHJvbWl1bV9oCisjZGVmaW5lIElP
U3VyZmFjZUxheWVyQ2hyb21pdW1faAorCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQorCisjaW5jbHVkZSAiTGF5ZXJDaHJvbWl1bS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIElPU3VyZmFjZUxheWVyQ2hyb21pdW0gOiBwdWJsaWMgTGF5ZXJDaHJvbWl1bSB7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SU9TdXJmYWNlTGF5ZXJDaHJvbWl1bT4gY3Jl
YXRlKCk7CisgICAgdmlydHVhbCB+SU9TdXJmYWNlTGF5ZXJDaHJvbWl1bSgpOworCisgICAgdm9p
ZCBzZXRJT1N1cmZhY2VQcm9wZXJ0aWVzKHVpbnQzMl90IGlvU3VyZmFjZUlkLCBjb25zdCBJbnRT
aXplJik7CisKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8Q0NMYXllckltcGw+IGNyZWF0ZUNDTGF5
ZXJJbXBsKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGRyYXdzQ29udGVudCgpIGNvbnN0
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwdXNoUHJvcGVydGllc1RvKENDTGF5ZXJJbXBs
KikgT1ZFUlJJREU7CisKK3Byb3RlY3RlZDoKKyAgICBJT1N1cmZhY2VMYXllckNocm9taXVtKCk7
CisKK3ByaXZhdGU6CisKKyAgICB1aW50MzJfdCBtX2lvU3VyZmFjZUlkOworICAgIEludFNpemUg
bV9pb1N1cmZhY2VTaXplOworfTsKKworfQorI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01Q
T1NJVElORykKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcApp
bmRleCAwYWZjYWU4MmI4MGQzYWY3ZTg0NTNiMTMzZTE2YjIyMmE3MGJiMjk0Li44YTJhZmQxYzEy
NTM5OWQ1M2NhMWVkZjcyNGU2ODJiOGRiYTFmYWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVy
ZXJDaHJvbWl1bS5jcHAKQEAgLTEwMjMsMTAgKzEwMjMsNyBAQCB2b2lkIExheWVyUmVuZGVyZXJD
aHJvbWl1bTo6ZHJhd0lPU3VyZmFjZVF1YWQoY29uc3QgQ0NJT1N1cmZhY2VEcmF3UXVhZCogcXVh
ZCkKIHsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkpOwogICAgIFRleFRyYW5z
Zm9ybVRleHR1cmVQcm9ncmFtQmluZGluZyBiaW5kaW5nOwotICAgIGlmIChxdWFkLT5mbGlwcGVk
KCkpCi0gICAgICAgIGJpbmRpbmcuc2V0KHRleHR1cmVJT1N1cmZhY2VQcm9ncmFtRmxpcCgpKTsK
LSAgICBlbHNlCi0gICAgICAgIGJpbmRpbmcuc2V0KHRleHR1cmVJT1N1cmZhY2VQcm9ncmFtKCkp
OworICAgIGJpbmRpbmcuc2V0KHRleHR1cmVJT1N1cmZhY2VQcm9ncmFtKCkpOwogCiAgICAgR0xD
KGNvbnRleHQoKSwgY29udGV4dCgpLT51c2VQcm9ncmFtKGJpbmRpbmcucHJvZ3JhbUlkKSk7CiAg
ICAgR0xDKGNvbnRleHQoKSwgY29udGV4dCgpLT51bmlmb3JtMWkoYmluZGluZy5zYW1wbGVyTG9j
YXRpb24sIDApKTsKQEAgLTE1NjcsMTcgKzE1NjQsNiBAQCBjb25zdCBMYXllclJlbmRlcmVyQ2hy
b21pdW06OlRleHR1cmVJT1N1cmZhY2VQcm9ncmFtKiBMYXllclJlbmRlcmVyQ2hyb21pdW06OnRl
eAogICAgIHJldHVybiBtX3RleHR1cmVJT1N1cmZhY2VQcm9ncmFtLmdldCgpOwogfQogCi1jb25z
dCBMYXllclJlbmRlcmVyQ2hyb21pdW06OlRleHR1cmVJT1N1cmZhY2VQcm9ncmFtRmxpcCogTGF5
ZXJSZW5kZXJlckNocm9taXVtOjp0ZXh0dXJlSU9TdXJmYWNlUHJvZ3JhbUZsaXAoKQotewotICAg
IGlmICghbV90ZXh0dXJlSU9TdXJmYWNlUHJvZ3JhbUZsaXApCi0gICAgICAgIG1fdGV4dHVyZUlP
U3VyZmFjZVByb2dyYW1GbGlwID0gYWRvcHRQdHIobmV3IFRleHR1cmVJT1N1cmZhY2VQcm9ncmFt
RmxpcChtX2NvbnRleHQuZ2V0KCkpKTsKLSAgICBpZiAoIW1fdGV4dHVyZUlPU3VyZmFjZVByb2dy
YW1GbGlwLT5pbml0aWFsaXplZCgpKSB7Ci0gICAgICAgIFRSQUNFX0VWRU5UKCJMYXllclJlbmRl
cmVyQ2hyb21pdW06OnRleHR1cmVJT1N1cmZhY2VQcm9ncmFtRmxpcDo6aW5pdGlhbGl6ZSIsIHRo
aXMsIDApOwotICAgICAgICBtX3RleHR1cmVJT1N1cmZhY2VQcm9ncmFtRmxpcC0+aW5pdGlhbGl6
ZShtX2NvbnRleHQuZ2V0KCkpOwotICAgIH0KLSAgICByZXR1cm4gbV90ZXh0dXJlSU9TdXJmYWNl
UHJvZ3JhbUZsaXAuZ2V0KCk7Ci19Ci0KIGNvbnN0IExheWVyUmVuZGVyZXJDaHJvbWl1bTo6Vmlk
ZW9ZVVZQcm9ncmFtKiBMYXllclJlbmRlcmVyQ2hyb21pdW06OnZpZGVvWVVWUHJvZ3JhbSgpCiB7
CiAgICAgaWYgKCFtX3ZpZGVvWVVWUHJvZ3JhbSkKQEAgLTE2MzYsOCArMTYyMiw2IEBAIHZvaWQg
TGF5ZXJSZW5kZXJlckNocm9taXVtOjpjbGVhbnVwU2hhcmVkT2JqZWN0cygpCiAgICAgICAgIG1f
dGV4dHVyZVByb2dyYW1GbGlwLT5jbGVhbnVwKG1fY29udGV4dC5nZXQoKSk7CiAgICAgaWYgKG1f
dGV4dHVyZUlPU3VyZmFjZVByb2dyYW0pCiAgICAgICAgIG1fdGV4dHVyZUlPU3VyZmFjZVByb2dy
YW0tPmNsZWFudXAobV9jb250ZXh0LmdldCgpKTsKLSAgICBpZiAobV90ZXh0dXJlSU9TdXJmYWNl
UHJvZ3JhbUZsaXApCi0gICAgICAgIG1fdGV4dHVyZUlPU3VyZmFjZVByb2dyYW1GbGlwLT5jbGVh
bnVwKG1fY29udGV4dC5nZXQoKSk7CiAKICAgICBpZiAobV92aWRlb1lVVlByb2dyYW0pCiAgICAg
ICAgIG1fdmlkZW9ZVVZQcm9ncmFtLT5jbGVhbnVwKG1fY29udGV4dC5nZXQoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRl
cmVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCmluZGV4IGFjZTUwODQxYzQzNzZjM2VjYTQ5ODE3Zjc2
OWJkMGNhMmIxMjBmNjAuLjQ0YmYyOGQ5NDgyOGI3ZmMxZmFmZGQ4YjljZjlmZGY5NGY4YTEyOWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyUmVuZGVyZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5oCkBAIC0yMjMsOCArMjIzLDcgQEAg
cHJpdmF0ZToKICAgICAvLyBUZXh0dXJlIHNoYWRlcnMuCiAgICAgdHlwZWRlZiBQcm9ncmFtQmlu
ZGluZzxWZXJ0ZXhTaGFkZXJQb3NUZXhUcmFuc2Zvcm0sIEZyYWdtZW50U2hhZGVyUkdCQVRleEFs
cGhhPiBUZXh0dXJlUHJvZ3JhbTsKICAgICB0eXBlZGVmIFByb2dyYW1CaW5kaW5nPFZlcnRleFNo
YWRlclBvc1RleFRyYW5zZm9ybSwgRnJhZ21lbnRTaGFkZXJSR0JBVGV4RmxpcEFscGhhPiBUZXh0
dXJlUHJvZ3JhbUZsaXA7Ci0gICAgdHlwZWRlZiBQcm9ncmFtQmluZGluZzxWZXJ0ZXhTaGFkZXJQ
b3NUZXhUcmFuc2Zvcm0sIEZyYWdtZW50U2hhZGVyUkdCQVRleFJlY3RBbHBoYT4gVGV4dHVyZUlP
U3VyZmFjZVByb2dyYW07Ci0gICAgdHlwZWRlZiBQcm9ncmFtQmluZGluZzxWZXJ0ZXhTaGFkZXJQ
b3NUZXhUcmFuc2Zvcm0sIEZyYWdtZW50U2hhZGVyUkdCQVRleFJlY3RGbGlwQWxwaGE+IFRleHR1
cmVJT1N1cmZhY2VQcm9ncmFtRmxpcDsKKyAgICB0eXBlZGVmIFByb2dyYW1CaW5kaW5nPFZlcnRl
eFNoYWRlclBvc1RleFRyYW5zZm9ybSwgRnJhZ21lbnRTaGFkZXJSR0JBVGV4UmVjdEZsaXBBbHBo
YT4gVGV4dHVyZUlPU3VyZmFjZVByb2dyYW07CiAKICAgICAvLyBWaWRlbyBzaGFkZXJzLgogICAg
IHR5cGVkZWYgUHJvZ3JhbUJpbmRpbmc8VmVydGV4U2hhZGVyVmlkZW9UcmFuc2Zvcm0sIEZyYWdt
ZW50U2hhZGVyT0VTSW1hZ2VFeHRlcm5hbD4gVmlkZW9TdHJlYW1UZXh0dXJlUHJvZ3JhbTsKQEAg
LTI1Myw3ICsyNTIsNiBAQCBwcml2YXRlOgogICAgIGNvbnN0IFRleHR1cmVQcm9ncmFtKiB0ZXh0
dXJlUHJvZ3JhbSgpOwogICAgIGNvbnN0IFRleHR1cmVQcm9ncmFtRmxpcCogdGV4dHVyZVByb2dy
YW1GbGlwKCk7CiAgICAgY29uc3QgVGV4dHVyZUlPU3VyZmFjZVByb2dyYW0qIHRleHR1cmVJT1N1
cmZhY2VQcm9ncmFtKCk7Ci0gICAgY29uc3QgVGV4dHVyZUlPU3VyZmFjZVByb2dyYW1GbGlwKiB0
ZXh0dXJlSU9TdXJmYWNlUHJvZ3JhbUZsaXAoKTsKIAogICAgIGNvbnN0IFZpZGVvWVVWUHJvZ3Jh
bSogdmlkZW9ZVVZQcm9ncmFtKCk7CiAgICAgY29uc3QgVmlkZW9TdHJlYW1UZXh0dXJlUHJvZ3Jh
bSogdmlkZW9TdHJlYW1UZXh0dXJlUHJvZ3JhbSgpOwpAQCAtMjc4LDcgKzI3Niw2IEBAIHByaXZh
dGU6CiAgICAgT3duUHRyPFRleHR1cmVQcm9ncmFtPiBtX3RleHR1cmVQcm9ncmFtOwogICAgIE93
blB0cjxUZXh0dXJlUHJvZ3JhbUZsaXA+IG1fdGV4dHVyZVByb2dyYW1GbGlwOwogICAgIE93blB0
cjxUZXh0dXJlSU9TdXJmYWNlUHJvZ3JhbT4gbV90ZXh0dXJlSU9TdXJmYWNlUHJvZ3JhbTsKLSAg
ICBPd25QdHI8VGV4dHVyZUlPU3VyZmFjZVByb2dyYW1GbGlwPiBtX3RleHR1cmVJT1N1cmZhY2VQ
cm9ncmFtRmxpcDsKIAogICAgIE93blB0cjxWaWRlb1lVVlByb2dyYW0+IG1fdmlkZW9ZVVZQcm9n
cmFtOwogICAgIE93blB0cjxWaWRlb1N0cmVhbVRleHR1cmVQcm9ncmFtPiBtX3ZpZGVvU3RyZWFt
VGV4dHVyZVByb2dyYW07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9UZXh0dXJlTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UZXh0dXJlTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXgg
OTc2N2UzZTlkNjI0NjZjMGNhNzhlMmQ4NzFjYTc2ZjhkMjhkMTg3NC4uYjBhMWVjNGM2NTNiZjY1
NzNlMTU1YzRjMjI0Y2EzYzVlMjY1YThiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVMYXllckNocm9t
aXVtLmNwcApAQCAtNDksNyArNDksNiBAQCBUZXh0dXJlTGF5ZXJDaHJvbWl1bTo6VGV4dHVyZUxh
eWVyQ2hyb21pdW0oVGV4dHVyZUxheWVyQ2hyb21pdW1DbGllbnQqIGNsaWVudCkKICAgICAsIG1f
cmF0ZUxpbWl0Q29udGV4dChmYWxzZSkKICAgICAsIG1fY29udGV4dExvc3QoZmFsc2UpCiAgICAg
LCBtX3RleHR1cmVJZCgwKQotICAgICwgbV9pb1N1cmZhY2VJZCgwKQogewogfQogCkBAIC05Niwx
MyArOTUsNiBAQCB2b2lkIFRleHR1cmVMYXllckNocm9taXVtOjpzZXRUZXh0dXJlSWQodW5zaWdu
ZWQgaWQpCiAgICAgc2V0TmVlZHNDb21taXQoKTsKIH0KIAotdm9pZCBUZXh0dXJlTGF5ZXJDaHJv
bWl1bTo6c2V0SU9TdXJmYWNlUHJvcGVydGllcyhpbnQgd2lkdGgsIGludCBoZWlnaHQsIHVpbnQz
Ml90IGlvU3VyZmFjZUlkKQotewotICAgIG1faW9TdXJmYWNlU2l6ZSA9IEludFNpemUod2lkdGgs
IGhlaWdodCk7Ci0gICAgbV9pb1N1cmZhY2VJZCA9IGlvU3VyZmFjZUlkOwotICAgIHNldE5lZWRz
Q29tbWl0KCk7Ci19Ci0KIHZvaWQgVGV4dHVyZUxheWVyQ2hyb21pdW06OnNldE5lZWRzRGlzcGxh
eVJlY3QoY29uc3QgRmxvYXRSZWN0JiBkaXJ0eVJlY3QpCiB7CiAgICAgTGF5ZXJDaHJvbWl1bTo6
c2V0TmVlZHNEaXNwbGF5UmVjdChkaXJ0eVJlY3QpOwpAQCAtMTEzLDcgKzEwNSw3IEBAIHZvaWQg
VGV4dHVyZUxheWVyQ2hyb21pdW06OnNldE5lZWRzRGlzcGxheVJlY3QoY29uc3QgRmxvYXRSZWN0
JiBkaXJ0eVJlY3QpCiAKIGJvb2wgVGV4dHVyZUxheWVyQ2hyb21pdW06OmRyYXdzQ29udGVudCgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIChtX2NsaWVudCB8fCBtX3RleHR1cmVJZCB8fCBtX2lvU3Vy
ZmFjZUlkKSAmJiAhbV9jb250ZXh0TG9zdCAmJiBMYXllckNocm9taXVtOjpkcmF3c0NvbnRlbnQo
KTsKKyAgICByZXR1cm4gKG1fY2xpZW50IHx8IG1fdGV4dHVyZUlkKSAmJiAhbV9jb250ZXh0TG9z
dCAmJiBMYXllckNocm9taXVtOjpkcmF3c0NvbnRlbnQoKTsKIH0KIAogdm9pZCBUZXh0dXJlTGF5
ZXJDaHJvbWl1bTo6dXBkYXRlKENDVGV4dHVyZVVwZGF0ZXImIHVwZGF0ZXIsIGNvbnN0IENDT2Nj
bHVzaW9uVHJhY2tlciopCkBAIC0xMzUsNyArMTI3LDYgQEAgdm9pZCBUZXh0dXJlTGF5ZXJDaHJv
bWl1bTo6cHVzaFByb3BlcnRpZXNUbyhDQ0xheWVySW1wbCogbGF5ZXIpCiAgICAgdGV4dHVyZUxh
eWVyLT5zZXRVVlJlY3QobV91dlJlY3QpOwogICAgIHRleHR1cmVMYXllci0+c2V0UHJlbXVsdGlw
bGllZEFscGhhKG1fcHJlbXVsdGlwbGllZEFscGhhKTsKICAgICB0ZXh0dXJlTGF5ZXItPnNldFRl
eHR1cmVJZChtX3RleHR1cmVJZCk7Ci0gICAgdGV4dHVyZUxheWVyLT5zZXRJT1N1cmZhY2VQcm9w
ZXJ0aWVzKG1faW9TdXJmYWNlU2l6ZSwgbV9pb1N1cmZhY2VJZCk7CiB9CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1cmVMYXll
ckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9U
ZXh0dXJlTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDI0ZjVhYzU5NDEyN2EzNDBjMjkzMWQxZjQ2MTAw
MTgxYmU4M2ZhMGIuLmEzMDYwMTJmMGFlYjc3MDJjYTM4MjIzOWRhMWM1YTk1NDNjMDg3MmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RleHR1
cmVMYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vVGV4dHVyZUxheWVyQ2hyb21pdW0uaApAQCAtNzcsOSArNzcsNiBAQCBwdWJsaWM6
CiAgICAgLy8gQ29kZSBwYXRoIGZvciBwbHVnaW5zIHdoaWNoIHN1cHBseSB0aGVpciBvd24gdGV4
dHVyZSBJRC4KICAgICB2b2lkIHNldFRleHR1cmVJZCh1bnNpZ25lZCk7CiAKLSAgICAvLyBDb2Rl
IHBhdGggZm9yIHBsdWdpbnMgd2hpY2ggcmVuZGVyIHZpYSBhbiBJT1N1cmZhY2UuCi0gICAgdm9p
ZCBzZXRJT1N1cmZhY2VQcm9wZXJ0aWVzKGludCB3aWR0aCwgaW50IGhlaWdodCwgdWludDMyX3Qg
aW9TdXJmYWNlSWQpOwotCiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheVJlY3QoY29u
c3QgRmxvYXRSZWN0JikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIGJvb2wgZHJhd3NDb250ZW50
KCkgY29uc3QgT1ZFUlJJREU7CkBAIC05OSw5ICs5Niw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2NvbnRleHRMb3N0OwogCiAgICAgdW5zaWduZWQgbV90ZXh0dXJlSWQ7Ci0KLSAgICBJbnRTaXpl
IG1faW9TdXJmYWNlU2l6ZTsKLSAgICB1aW50MzJfdCBtX2lvU3VyZmFjZUlkOwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NJT1N1cmZhY2VEcmF3UXVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0lPU3VyZmFjZURyYXdRdWFkLmNwcAppbmRleCBlOWNmYzdiZTQ1ZmJh
Mjk2MzdlM2YzNDI2NDYyMGMzZjJjNmE5YWM0Li4yZmRiNGVmY2JhYWM2MDAyMzJkZWU0YzRiMjZj
MDk4OTZmMzM1ZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0lPU3VyZmFjZURyYXdRdWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0lPU3VyZmFjZURyYXdRdWFkLmNwcApA
QCAtMjksMTQgKzI5LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc093blB0cjxD
Q0lPU3VyZmFjZURyYXdRdWFkPiBDQ0lPU3VyZmFjZURyYXdRdWFkOjpjcmVhdGUoY29uc3QgQ0NT
aGFyZWRRdWFkU3RhdGUqIHNoYXJlZFF1YWRTdGF0ZSwgY29uc3QgSW50UmVjdCYgcXVhZFJlY3Qs
IGJvb2wgZmxpcHBlZCwgY29uc3QgSW50U2l6ZSYgaW9TdXJmYWNlU2l6ZSwgdW5zaWduZWQgaW9T
dXJmYWNlVGV4dHVyZUlkKQorUGFzc093blB0cjxDQ0lPU3VyZmFjZURyYXdRdWFkPiBDQ0lPU3Vy
ZmFjZURyYXdRdWFkOjpjcmVhdGUoY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUqIHNoYXJlZFF1YWRT
dGF0ZSwgY29uc3QgSW50UmVjdCYgcXVhZFJlY3QsIGNvbnN0IEludFNpemUmIGlvU3VyZmFjZVNp
emUsIHVuc2lnbmVkIGlvU3VyZmFjZVRleHR1cmVJZCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IENDSU9TdXJmYWNlRHJhd1F1YWQoc2hhcmVkUXVhZFN0YXRlLCBxdWFkUmVjdCwgZmxpcHBl
ZCwgaW9TdXJmYWNlU2l6ZSwgaW9TdXJmYWNlVGV4dHVyZUlkKSk7CisgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBDQ0lPU3VyZmFjZURyYXdRdWFkKHNoYXJlZFF1YWRTdGF0ZSwgcXVhZFJlY3QsIGlv
U3VyZmFjZVNpemUsIGlvU3VyZmFjZVRleHR1cmVJZCkpOwogfQogCi1DQ0lPU3VyZmFjZURyYXdR
dWFkOjpDQ0lPU3VyZmFjZURyYXdRdWFkKGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiBzaGFyZWRR
dWFkU3RhdGUsIGNvbnN0IEludFJlY3QmIHF1YWRSZWN0LCBib29sIGZsaXBwZWQsIGNvbnN0IElu
dFNpemUmIGlvU3VyZmFjZVNpemUsIHVuc2lnbmVkIGlvU3VyZmFjZVRleHR1cmVJZCkKK0NDSU9T
dXJmYWNlRHJhd1F1YWQ6OkNDSU9TdXJmYWNlRHJhd1F1YWQoY29uc3QgQ0NTaGFyZWRRdWFkU3Rh
dGUqIHNoYXJlZFF1YWRTdGF0ZSwgY29uc3QgSW50UmVjdCYgcXVhZFJlY3QsIGNvbnN0IEludFNp
emUmIGlvU3VyZmFjZVNpemUsIHVuc2lnbmVkIGlvU3VyZmFjZVRleHR1cmVJZCkKICAgICA6IEND
RHJhd1F1YWQoc2hhcmVkUXVhZFN0YXRlLCBDQ0RyYXdRdWFkOjpJT1N1cmZhY2VDb250ZW50LCBx
dWFkUmVjdCkKLSAgICAsIG1fZmxpcHBlZChmbGlwcGVkKQogICAgICwgbV9pb1N1cmZhY2VTaXpl
KGlvU3VyZmFjZVNpemUpCiAgICAgLCBtX2lvU3VyZmFjZVRleHR1cmVJZChpb1N1cmZhY2VUZXh0
dXJlSWQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0lPU3VyZmFjZURyYXdRdWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0lPU3VyZmFjZURyYXdRdWFkLmgKaW5kZXggNTFiNTlj
NTFmM2FiYmIzNmIzNGRhMDNlMTFjMjk3NjZlNTVhYzFmOC4uMjdmODYzZWU2MTMwYzA4YzUyNTMy
M2EyMjE1ZDM0MWY5OWU4YmEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NJT1N1cmZhY2VEcmF3UXVhZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSU9TdXJmYWNlRHJhd1F1YWQu
aApAQCAtMzQsMTYgKzM0LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENDSU9TdXJm
YWNlRHJhd1F1YWQgOiBwdWJsaWMgQ0NEcmF3UXVhZCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoQ0NJT1N1cmZhY2VEcmF3UXVhZCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8
Q0NJT1N1cmZhY2VEcmF3UXVhZD4gY3JlYXRlKGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiwgY29u
c3QgSW50UmVjdCYsIGJvb2wgZmxpcHBlZCwgY29uc3QgSW50U2l6ZSYgaW9TdXJmYWNlU2l6ZSwg
dW5zaWduZWQgaW9TdXJmYWNlVGV4dHVyZUlkKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxDQ0lP
U3VyZmFjZURyYXdRdWFkPiBjcmVhdGUoY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUqLCBjb25zdCBJ
bnRSZWN0JiwgY29uc3QgSW50U2l6ZSYgaW9TdXJmYWNlU2l6ZSwgdW5zaWduZWQgaW9TdXJmYWNl
VGV4dHVyZUlkKTsKIAotICAgIGJvb2wgZmxpcHBlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmxpcHBl
ZDsgfQogICAgIGNvbnN0IEludFNpemUmIGlvU3VyZmFjZVNpemUoKSBjb25zdCB7IHJldHVybiBt
X2lvU3VyZmFjZVNpemU7IH0KICAgICB1bnNpZ25lZCBpb1N1cmZhY2VUZXh0dXJlSWQoKSBjb25z
dCB7IHJldHVybiBtX2lvU3VyZmFjZVRleHR1cmVJZDsgfQogCiBwcml2YXRlOgotICAgIENDSU9T
dXJmYWNlRHJhd1F1YWQoY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUqLCBjb25zdCBJbnRSZWN0Jiwg
Ym9vbCBmbGlwcGVkLCBjb25zdCBJbnRTaXplJiBpb1N1cmZhY2VTaXplLCB1bnNpZ25lZCBpb1N1
cmZhY2VUZXh0dXJlSWQpOworICAgIENDSU9TdXJmYWNlRHJhd1F1YWQoY29uc3QgQ0NTaGFyZWRR
dWFkU3RhdGUqLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50U2l6ZSYgaW9TdXJmYWNlU2l6ZSwg
dW5zaWduZWQgaW9TdXJmYWNlVGV4dHVyZUlkKTsKIAotICAgIGJvb2wgbV9mbGlwcGVkOwogICAg
IEludFNpemUgbV9pb1N1cmZhY2VTaXplOwogICAgIHVuc2lnbmVkIG1faW9TdXJmYWNlVGV4dHVy
ZUlkOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDSU9TdXJmYWNlTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSU9TdXJmYWNlTGF5ZXJJbXBsLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zMWNjMjVlZTcwODViNTQxMWVhNGIxYzYxMmFhNzBjZmMzOTk1MTAzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NJ
T1N1cmZhY2VMYXllckltcGwuY3BwCkBAIC0wLDAgKzEsMTE5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorCisjaW5jbHVk
ZSAiY2MvQ0NJT1N1cmZhY2VMYXllckltcGwuaCIKKworI2luY2x1ZGUgIkV4dGVuc2lvbnMzRENo
cm9taXVtLmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKKyNpbmNsdWRlICJMYXll
clJlbmRlcmVyQ2hyb21pdW0uaCIKKyNpbmNsdWRlICJjYy9DQ0lPU3VyZmFjZURyYXdRdWFkLmgi
CisjaW5jbHVkZSAiY2MvQ0NQcm94eS5oIgorI2luY2x1ZGUgImNjL0NDUXVhZEN1bGxlci5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NDSU9TdXJmYWNlTGF5ZXJJbXBsOjpDQ0lPU3VyZmFj
ZUxheWVySW1wbChpbnQgaWQpCisgICAgOiBDQ0xheWVySW1wbChpZCkKKyAgICAsIG1faW9TdXJm
YWNlSWQoMCkKKyAgICAsIG1faW9TdXJmYWNlQ2hhbmdlZChmYWxzZSkKKyAgICAsIG1faW9TdXJm
YWNlVGV4dHVyZUlkKDApCit7Cit9CisKK0NDSU9TdXJmYWNlTGF5ZXJJbXBsOjp+Q0NJT1N1cmZh
Y2VMYXllckltcGwoKQoreworICAgIC8vIEZJWE1FOiBpdCBzZWVtcyB0aGVyZSBpcyBubyBsYXll
ciByZW5kZXJlciAvIEdyYXBoaWNzQ29udGV4dDNEIGF2YWlsYWJsZSBoZXJlLiBJZGVhbGx5IHdl
CisgICAgLy8gd291bGQgbGlrZSB0byBkZWxldGUgbV9pb1N1cmZhY2VUZXh0dXJlSWQuCisgICAg
bV9pb1N1cmZhY2VUZXh0dXJlSWQgPSAwOworfQorCit2b2lkIENDSU9TdXJmYWNlTGF5ZXJJbXBs
Ojp3aWxsRHJhdyhMYXllclJlbmRlcmVyQ2hyb21pdW0qIGxheWVyUmVuZGVyZXIpCit7CisgICAg
aWYgKG1faW9TdXJmYWNlQ2hhbmdlZCkgeworICAgICAgICBHcmFwaGljc0NvbnRleHQzRCogY29u
dGV4dCA9IGxheWVyUmVuZGVyZXItPmNvbnRleHQoKTsKKyAgICAgICAgRXh0ZW5zaW9uczNEQ2hy
b21pdW0qIGV4dGVuc2lvbnMgPSBzdGF0aWNfY2FzdDxFeHRlbnNpb25zM0RDaHJvbWl1bSo+KGNv
bnRleHQtPmdldEV4dGVuc2lvbnMoKSk7CisgICAgICAgIEFTU0VSVChleHRlbnNpb25zLT5zdXBw
b3J0cygiR0xfQ0hST01JVU1faW9zdXJmYWNlIikpOworICAgICAgICBBU1NFUlQoZXh0ZW5zaW9u
cy0+c3VwcG9ydHMoIkdMX0FSQl90ZXh0dXJlX3JlY3RhbmdsZSIpKTsKKworICAgICAgICBpZiAo
IW1faW9TdXJmYWNlVGV4dHVyZUlkKQorICAgICAgICAgICAgbV9pb1N1cmZhY2VUZXh0dXJlSWQg
PSBjb250ZXh0LT5jcmVhdGVUZXh0dXJlKCk7CisKKyAgICAgICAgR0xDKGNvbnRleHQsIGNvbnRl
eHQtPmFjdGl2ZVRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkUwKSk7CisgICAgICAg
IEdMQyhjb250ZXh0LCBjb250ZXh0LT5iaW5kVGV4dHVyZShFeHRlbnNpb25zM0Q6OlRFWFRVUkVf
UkVDVEFOR0xFX0FSQiwgbV9pb1N1cmZhY2VUZXh0dXJlSWQpKTsKKyAgICAgICAgR0xDKGNvbnRl
eHQsIGNvbnRleHQtPnRleFBhcmFtZXRlcmkoRXh0ZW5zaW9uczNEOjpURVhUVVJFX1JFQ1RBTkdM
RV9BUkIsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01JTl9GSUxURVIsIEdyYXBoaWNzQ29u
dGV4dDNEOjpMSU5FQVIpKTsKKyAgICAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnRleFBhcmFt
ZXRlcmkoRXh0ZW5zaW9uczNEOjpURVhUVVJFX1JFQ1RBTkdMRV9BUkIsIEdyYXBoaWNzQ29udGV4
dDNEOjpURVhUVVJFX01BR19GSUxURVIsIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpKTsKKyAg
ICAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnRleFBhcmFtZXRlcmkoRXh0ZW5zaW9uczNEOjpU
RVhUVVJFX1JFQ1RBTkdMRV9BUkIsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfUywg
R3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpKTsKKyAgICAgICAgR0xDKGNvbnRleHQs
IGNvbnRleHQtPnRleFBhcmFtZXRlcmkoRXh0ZW5zaW9uczNEOjpURVhUVVJFX1JFQ1RBTkdMRV9B
UkIsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dSQVBfVCwgR3JhcGhpY3NDb250ZXh0M0Q6
OkNMQU1QX1RPX0VER0UpKTsKKyAgICAgICAgZXh0ZW5zaW9ucy0+dGV4SW1hZ2VJT1N1cmZhY2Uy
RENIUk9NSVVNKEV4dGVuc2lvbnMzRDo6VEVYVFVSRV9SRUNUQU5HTEVfQVJCLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9pb1N1cmZhY2VTaXplLndp
ZHRoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
X2lvU3VyZmFjZVNpemUuaGVpZ2h0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtX2lvU3VyZmFjZUlkLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMCk7CisgICAgICAgIC8vIERvIG5vdCBjaGVjayBmb3Ig
ZXJyb3IgY29uZGl0aW9ucy4gdGV4SW1hZ2VJT1N1cmZhY2UyRENIUk9NSVVNIGlzIHN1cHBvc2Vk
IHRvIGhvbGQgb24gdG8KKyAgICAgICAgLy8gdGhlIGxhc3QgZ29vZCBJT1N1cmZhY2UgaWYgdGhl
IG5ldyBvbmUgaXMgYWxyZWFkeSBjbG9zZWQuIFRoaXMgaXMgb25seSBhIHBvc3NpYmlsaXR5Cisg
ICAgICAgIC8vIGR1cmluZyBsaXZlIHJlc2l6aW5nIG9mIHBsdWdpbnMuIEhvd2V2ZXIsIGl0IHNl
ZW1zIHRoYXQgdGhpcyBpcyBub3Qgc3VmZmljaWVudCB0bworICAgICAgICAvLyBjb21wbGV0ZWx5
IGd1YXJkIGFnYWluc3QgZ2FyYmFnZSBiZWluZyBkcmF3bi4gSWYgdGhpcyBpcyBmb3VuZCB0byBi
ZSBhIHNpZ25pZmljYW50IGlzc3VlLAorICAgICAgICAvLyBpdCBtYXkgYmUgbmVjZXNzYXJ5IHRv
IGV4cGxpY2l0bHkgdGVsbCB0aGUgZW1iZWRkZXIgd2hlbiB0byBmcmVlIHRoZSBzdXJmYWNlcyBp
dCBoYXMKKyAgICAgICAgLy8gYWxsb2NhdGVkLgorICAgICAgICBtX2lvU3VyZmFjZUNoYW5nZWQg
PSBmYWxzZTsKKyAgICB9Cit9CisKK3ZvaWQgQ0NJT1N1cmZhY2VMYXllckltcGw6OmFwcGVuZFF1
YWRzKENDUXVhZEN1bGxlciYgcXVhZExpc3QsIGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiBzaGFy
ZWRRdWFkU3RhdGUsIGJvb2wmKQoreworICAgIEludFJlY3QgcXVhZFJlY3QoSW50UG9pbnQoKSwg
Ym91bmRzKCkpOworICAgIHF1YWRMaXN0LmFwcGVuZChDQ0lPU3VyZmFjZURyYXdRdWFkOjpjcmVh
dGUoc2hhcmVkUXVhZFN0YXRlLCBxdWFkUmVjdCwgbV9pb1N1cmZhY2VTaXplLCBtX2lvU3VyZmFj
ZVRleHR1cmVJZCkpOworfQorCit2b2lkIENDSU9TdXJmYWNlTGF5ZXJJbXBsOjpkdW1wTGF5ZXJQ
cm9wZXJ0aWVzKFRleHRTdHJlYW0mIHRzLCBpbnQgaW5kZW50KSBjb25zdAoreworICAgIHdyaXRl
SW5kZW50KHRzLCBpbmRlbnQpOworICAgIHRzIDw8ICJpb3N1cmZhY2UgaWQ6ICIgPDwgbV9pb1N1
cmZhY2VJZCA8PCAiIHRleHR1cmUgaWQ6ICIgPDwgbV9pb1N1cmZhY2VUZXh0dXJlSWQ7CisgICAg
Q0NMYXllckltcGw6OmR1bXBMYXllclByb3BlcnRpZXModHMsIGluZGVudCk7Cit9CisKK3ZvaWQg
Q0NJT1N1cmZhY2VMYXllckltcGw6OmRpZExvc2VDb250ZXh0KCkKK3sKKyAgICAvLyBXZSBkb24n
dCBoYXZlIGEgdmFsaWQgdGV4dHVyZSBJRCBpbiB0aGUgbmV3IGNvbnRleHQ7IGhvd2V2ZXIsCisg
ICAgLy8gdGhlIElPU3VyZmFjZSBpcyBzdGlsbCB2YWxpZC4KKyAgICBtX2lvU3VyZmFjZVRleHR1
cmVJZCA9IDA7CisgICAgbV9pb1N1cmZhY2VDaGFuZ2VkID0gdHJ1ZTsKK30KKwordm9pZCBDQ0lP
U3VyZmFjZUxheWVySW1wbDo6c2V0SU9TdXJmYWNlUHJvcGVydGllcyh1bnNpZ25lZCBpb1N1cmZh
Y2VJZCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAobV9pb1N1cmZhY2VJZCAhPSBp
b1N1cmZhY2VJZCkKKyAgICAgICAgbV9pb1N1cmZhY2VDaGFuZ2VkID0gdHJ1ZTsKKworICAgIG1f
aW9TdXJmYWNlSWQgPSBpb1N1cmZhY2VJZDsKKyAgICBtX2lvU3VyZmFjZVNpemUgPSBzaXplOwor
fQorfQorCisjZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NJT1N1cmZh
Y2VMYXllckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDSU9TdXJmYWNlTGF5ZXJJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQ2NjQ5NmUxMTUxNTc4YjFk
NWUzZWY1ZDUyNjU2YjYwYzgyZTdjYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSU9TdXJmYWNlTGF5ZXJJbXBsLmgKQEAg
LTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
CisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ0NJT1N1cmZhY2VMYXllckltcGxfaAorI2Rl
ZmluZSBDQ0lPU3VyZmFjZUxheWVySW1wbF9oCisKKyNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5j
bHVkZSAiY2MvQ0NMYXllckltcGwuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBD
Q0lPU3VyZmFjZUxheWVySW1wbCA6IHB1YmxpYyBDQ0xheWVySW1wbCB7CitwdWJsaWM6CisgICAg
c3RhdGljIFBhc3NPd25QdHI8Q0NJT1N1cmZhY2VMYXllckltcGw+IGNyZWF0ZShpbnQgaWQpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENDSU9TdXJmYWNlTGF5ZXJJbXBsKGlk
KSk7CisgICAgfQorICAgIHZpcnR1YWwgfkNDSU9TdXJmYWNlTGF5ZXJJbXBsKCk7CisKKyAgICB2
b2lkIHNldElPU3VyZmFjZVByb3BlcnRpZXModW5zaWduZWQgaW9TdXJmYWNlSWQsIGNvbnN0IElu
dFNpemUmKTsKKworICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRRdWFkcyhDQ1F1YWRDdWxsZXImLCBj
b25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSosIGJvb2wmIGhhZE1pc3NpbmdUaWxlcykgT1ZFUlJJREU7
CisKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbERyYXcoTGF5ZXJSZW5kZXJlckNocm9taXVtKikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZExvc2VDb250ZXh0KCkgT1ZFUlJJREU7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgZHVtcExheWVyUHJvcGVydGllcyhUZXh0U3RyZWFtJiwgaW50IGluZGVu
dCkgY29uc3QgT1ZFUlJJREU7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgQ0NJT1N1cmZhY2VM
YXllckltcGwoaW50KTsKKworICAgIHZpcnR1YWwgY29uc3QgY2hhciogbGF5ZXJUeXBlQXNTdHJp
bmcoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAiSU9TdXJmYWNlTGF5ZXIiOyB9CisKKyAgICB1
bnNpZ25lZCBtX2lvU3VyZmFjZUlkOworICAgIEludFNpemUgbV9pb1N1cmZhY2VTaXplOworICAg
IGJvb2wgbV9pb1N1cmZhY2VDaGFuZ2VkOworICAgIHVuc2lnbmVkIG1faW9TdXJmYWNlVGV4dHVy
ZUlkOworfTsKKworfQorCisjZW5kaWYgLy8gQ0NJT1N1cmZhY2VMYXllckltcGxfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0
dXJlTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVGV4dHVyZUxheWVySW1wbC5jcHAKaW5kZXggYjg4MWExZTlkY2MxODliNzUxMTg5
MmEwMTZlNjJhZGU3NjIzMDQ3Ny4uNDRkOWZmMzk1ZjFlODQ4YTM3MWM3OTMzYmQ4YjY4MDlmNmU5
OTI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUZXh0dXJlTGF5ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVMYXllckltcGwuY3BwCkBAIC00NSw2MCAr
NDUsMTcgQEAgQ0NUZXh0dXJlTGF5ZXJJbXBsOjpDQ1RleHR1cmVMYXllckltcGwoaW50IGlkKQog
ICAgICwgbV9wcmVtdWx0aXBsaWVkQWxwaGEodHJ1ZSkKICAgICAsIG1fZmxpcHBlZCh0cnVlKQog
ICAgICwgbV91dlJlY3QoMCwgMCwgMSwgMSkKLSAgICAsIG1faW9TdXJmYWNlSWQoMCkKLSAgICAs
IG1faW9TdXJmYWNlQ2hhbmdlZChmYWxzZSkKLSAgICAsIG1faW9TdXJmYWNlVGV4dHVyZUlkKDAp
CiB7CiB9CiAKIENDVGV4dHVyZUxheWVySW1wbDo6fkNDVGV4dHVyZUxheWVySW1wbCgpCiB7Ci0g
ICAgLy8gRklYTUU6IGl0IHNlZW1zIHRoZXJlIGlzIG5vIGxheWVyIHJlbmRlcmVyIC8gR3JhcGhp
Y3NDb250ZXh0M0QgYXZhaWxhYmxlIGhlcmUuIElkZWFsbHkgd2UKLSAgICAvLyB3b3VsZCBsaWtl
IHRvIGRlbGV0ZSBtX2lvU3VyZmFjZVRleHR1cmVJZC4KLSAgICBtX2lvU3VyZmFjZVRleHR1cmVJ
ZCA9IDA7Ci19Ci0KLXZvaWQgQ0NUZXh0dXJlTGF5ZXJJbXBsOjp3aWxsRHJhdyhMYXllclJlbmRl
cmVyQ2hyb21pdW0qIGxheWVyUmVuZGVyZXIpCi17Ci0gICAgQ0NMYXllckltcGw6OndpbGxEcmF3
KGxheWVyUmVuZGVyZXIpOwotCi0gICAgaWYgKG1faW9TdXJmYWNlQ2hhbmdlZCkgewotICAgICAg
ICBHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCA9IGxheWVyUmVuZGVyZXItPmNvbnRleHQoKTsK
LSAgICAgICAgRXh0ZW5zaW9uczNEQ2hyb21pdW0qIGV4dGVuc2lvbnMgPSBzdGF0aWNfY2FzdDxF
eHRlbnNpb25zM0RDaHJvbWl1bSo+KGNvbnRleHQtPmdldEV4dGVuc2lvbnMoKSk7Ci0gICAgICAg
IEFTU0VSVChleHRlbnNpb25zLT5zdXBwb3J0cygiR0xfQ0hST01JVU1faW9zdXJmYWNlIikpOwot
ICAgICAgICBBU1NFUlQoZXh0ZW5zaW9ucy0+c3VwcG9ydHMoIkdMX0FSQl90ZXh0dXJlX3JlY3Rh
bmdsZSIpKTsKLQotICAgICAgICBpZiAoIW1faW9TdXJmYWNlVGV4dHVyZUlkKQotICAgICAgICAg
ICAgbV9pb1N1cmZhY2VUZXh0dXJlSWQgPSBjb250ZXh0LT5jcmVhdGVUZXh0dXJlKCk7Ci0KLSAg
ICAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPmFjdGl2ZVRleHR1cmUoR3JhcGhpY3NDb250ZXh0
M0Q6OlRFWFRVUkUwKSk7Ci0gICAgICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT5iaW5kVGV4dHVy
ZShFeHRlbnNpb25zM0Q6OlRFWFRVUkVfUkVDVEFOR0xFX0FSQiwgbV9pb1N1cmZhY2VUZXh0dXJl
SWQpKTsKLSAgICAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnRleFBhcmFtZXRlcmkoRXh0ZW5z
aW9uczNEOjpURVhUVVJFX1JFQ1RBTkdMRV9BUkIsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJF
X01JTl9GSUxURVIsIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5FQVIpKTsKLSAgICAgICAgR0xDKGNv
bnRleHQsIGNvbnRleHQtPnRleFBhcmFtZXRlcmkoRXh0ZW5zaW9uczNEOjpURVhUVVJFX1JFQ1RB
TkdMRV9BUkIsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX01BR19GSUxURVIsIEdyYXBoaWNz
Q29udGV4dDNEOjpMSU5FQVIpKTsKLSAgICAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnRleFBh
cmFtZXRlcmkoRXh0ZW5zaW9uczNEOjpURVhUVVJFX1JFQ1RBTkdMRV9BUkIsIEdyYXBoaWNzQ29u
dGV4dDNEOjpURVhUVVJFX1dSQVBfUywgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0Up
KTsKLSAgICAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPnRleFBhcmFtZXRlcmkoRXh0ZW5zaW9u
czNEOjpURVhUVVJFX1JFQ1RBTkdMRV9BUkIsIEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX1dS
QVBfVCwgR3JhcGhpY3NDb250ZXh0M0Q6OkNMQU1QX1RPX0VER0UpKTsKLSAgICAgICAgZXh0ZW5z
aW9ucy0+dGV4SW1hZ2VJT1N1cmZhY2UyRENIUk9NSVVNKEV4dGVuc2lvbnMzRDo6VEVYVFVSRV9S
RUNUQU5HTEVfQVJCLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbV9pb1N1cmZhY2VTaXplLndpZHRoKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX2lvU3VyZmFjZVNpemUuaGVpZ2h0KCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2lvU3VyZmFjZUlkLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7Ci0gICAg
ICAgIC8vIERvIG5vdCBjaGVjayBmb3IgZXJyb3IgY29uZGl0aW9ucy4gdGV4SW1hZ2VJT1N1cmZh
Y2UyRENIUk9NSVVNIGlzIHN1cHBvc2VkIHRvIGhvbGQgb24gdG8KLSAgICAgICAgLy8gdGhlIGxh
c3QgZ29vZCBJT1N1cmZhY2UgaWYgdGhlIG5ldyBvbmUgaXMgYWxyZWFkeSBjbG9zZWQuIFRoaXMg
aXMgb25seSBhIHBvc3NpYmlsaXR5Ci0gICAgICAgIC8vIGR1cmluZyBsaXZlIHJlc2l6aW5nIG9m
IHBsdWdpbnMuIEhvd2V2ZXIsIGl0IHNlZW1zIHRoYXQgdGhpcyBpcyBub3Qgc3VmZmljaWVudCB0
bwotICAgICAgICAvLyBjb21wbGV0ZWx5IGd1YXJkIGFnYWluc3QgZ2FyYmFnZSBiZWluZyBkcmF3
bi4gSWYgdGhpcyBpcyBmb3VuZCB0byBiZSBhIHNpZ25pZmljYW50IGlzc3VlLAotICAgICAgICAv
LyBpdCBtYXkgYmUgbmVjZXNzYXJ5IHRvIGV4cGxpY2l0bHkgdGVsbCB0aGUgZW1iZWRkZXIgd2hl
biB0byBmcmVlIHRoZSBzdXJmYWNlcyBpdCBoYXMKLSAgICAgICAgLy8gYWxsb2NhdGVkLgotICAg
ICAgICBtX2lvU3VyZmFjZUNoYW5nZWQgPSBmYWxzZTsKLSAgICB9CiB9CiAKIHZvaWQgQ0NUZXh0
dXJlTGF5ZXJJbXBsOjphcHBlbmRRdWFkcyhDQ1F1YWRDdWxsZXImIHF1YWRMaXN0LCBjb25zdCBD
Q1NoYXJlZFF1YWRTdGF0ZSogc2hhcmVkUXVhZFN0YXRlLCBib29sJikKIHsKICAgICBJbnRSZWN0
IHF1YWRSZWN0KEludFBvaW50KCksIGJvdW5kcygpKTsKLSAgICBpZiAobV90ZXh0dXJlSWQpCi0g
ICAgICAgIHF1YWRMaXN0LmFwcGVuZChDQ1RleHR1cmVEcmF3UXVhZDo6Y3JlYXRlKHNoYXJlZFF1
YWRTdGF0ZSwgcXVhZFJlY3QsIG1fdGV4dHVyZUlkLCBtX3ByZW11bHRpcGxpZWRBbHBoYSwgbV91
dlJlY3QsIG1fZmxpcHBlZCkpOwotICAgIGVsc2UgaWYgKG1faW9TdXJmYWNlVGV4dHVyZUlkKQot
ICAgICAgICBxdWFkTGlzdC5hcHBlbmQoQ0NJT1N1cmZhY2VEcmF3UXVhZDo6Y3JlYXRlKHNoYXJl
ZFF1YWRTdGF0ZSwgcXVhZFJlY3QsIG1fZmxpcHBlZCwgbV9pb1N1cmZhY2VTaXplLCBtX2lvU3Vy
ZmFjZVRleHR1cmVJZCkpOworICAgIHF1YWRMaXN0LmFwcGVuZChDQ1RleHR1cmVEcmF3UXVhZDo6
Y3JlYXRlKHNoYXJlZFF1YWRTdGF0ZSwgcXVhZFJlY3QsIG1fdGV4dHVyZUlkLCBtX3ByZW11bHRp
cGxpZWRBbHBoYSwgbV91dlJlY3QsIG1fZmxpcHBlZCkpOwogfQogCiB2b2lkIENDVGV4dHVyZUxh
eWVySW1wbDo6ZHVtcExheWVyUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgaW50IGluZGVudCkg
Y29uc3QKQEAgLTExMSwyMiArNjgsOCBAQCB2b2lkIENDVGV4dHVyZUxheWVySW1wbDo6ZHVtcExh
eWVyUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywgaW50IGluZGVudCkgY29uc3QKIHZvaWQgQ0NU
ZXh0dXJlTGF5ZXJJbXBsOjpkaWRMb3NlQ29udGV4dCgpCiB7CiAgICAgbV90ZXh0dXJlSWQgPSAw
OwotICAgIGlmIChtX2lvU3VyZmFjZUlkKSB7Ci0gICAgICAgIC8vIFdlIGRvbid0IGhhdmUgYSB2
YWxpZCB0ZXh0dXJlIElEIGluIHRoZSBuZXcgY29udGV4dDsgaG93ZXZlciwKLSAgICAgICAgLy8g
dGhlIElPU3VyZmFjZSBpcyBzdGlsbCB2YWxpZC4KLSAgICAgICAgbV9pb1N1cmZhY2VUZXh0dXJl
SWQgPSAwOwotICAgICAgICBtX2lvU3VyZmFjZUNoYW5nZWQgPSB0cnVlOwotICAgIH0KIH0KIAot
dm9pZCBDQ1RleHR1cmVMYXllckltcGw6OnNldElPU3VyZmFjZVByb3BlcnRpZXMoY29uc3QgSW50
U2l6ZSYgc2l6ZSwgdW5zaWduZWQgaW9TdXJmYWNlSWQpCi17Ci0gICAgaWYgKG1faW9TdXJmYWNl
SWQgIT0gaW9TdXJmYWNlSWQpCi0gICAgICAgIG1faW9TdXJmYWNlQ2hhbmdlZCA9IHRydWU7Ci0K
LSAgICBtX2lvU3VyZmFjZVNpemUgPSBzaXplOwotICAgIG1faW9TdXJmYWNlSWQgPSBpb1N1cmZh
Y2VJZDsKLX0KIH0KIAogI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VGV4dHVyZUxheWVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUZXh0dXJlTGF5ZXJJbXBsLmgKaW5kZXggZWM1YzA0ZmQ1YzRiNGUwMzAyN2M2
OWFlNDA3ODRhYjI1MDQ5YjFjMC4uNGFiZGI1MWZmOTI5OTM5MzE4MDk5Y2ZkYzhhMGRkNTFmZmU2
ZmNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUZXh0dXJlTGF5ZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlTGF5ZXJJbXBsLmgKQEAgLTQwLDcgKzQwLDYg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGFwcGVuZFF1YWRzKENDUXVhZEN1bGxlciYs
IGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiwgYm9vbCYgaGFkTWlzc2luZ1RpbGVzKSBPVkVSUklE
RTsKIAotICAgIHZpcnR1YWwgdm9pZCB3aWxsRHJhdyhMYXllclJlbmRlcmVyQ2hyb21pdW0qKSBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZUNvbnRleHQoKSBPVkVSUklERTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBkdW1wTGF5ZXJQcm9wZXJ0aWVzKFRleHRTdHJlYW0mLCBpbnQgaW5k
ZW50KSBjb25zdCBPVkVSUklERTsKQEAgLTUwLDggKzQ5LDYgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0UHJlbXVsdGlwbGllZEFscGhhKGJvb2wgcHJlbXVsdGlwbGllZEFscGhhKSB7IG1fcHJlbXVs
dGlwbGllZEFscGhhID0gcHJlbXVsdGlwbGllZEFscGhhOyB9CiAgICAgdm9pZCBzZXRGbGlwcGVk
KGJvb2wgZmxpcHBlZCkgeyBtX2ZsaXBwZWQgPSBmbGlwcGVkOyB9CiAgICAgdm9pZCBzZXRVVlJl
Y3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KSB7IG1fdXZSZWN0ID0gcmVjdDsgfQotICAgIHZvaWQg
c2V0SU9TdXJmYWNlUHJvcGVydGllcyhjb25zdCBJbnRTaXplJiwgdW5zaWduZWQgaW9TdXJmYWNl
SWQpOwotCiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ0NUZXh0dXJlTGF5ZXJJbXBsKGludCk7
CkBAIC02MiwxMiArNTksNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wcmVtdWx0aXBsaWVkQWxw
aGE7CiAgICAgYm9vbCBtX2ZsaXBwZWQ7CiAgICAgRmxvYXRSZWN0IG1fdXZSZWN0OwotCi0gICAg
Ly8gSW50ZXJuYWxzIGZvciBJT1N1cmZhY2UtYmFja2VkIHRleHR1cmVzLgotICAgIHVuc2lnbmVk
IG1faW9TdXJmYWNlSWQ7Ci0gICAgSW50U2l6ZSBtX2lvU3VyZmFjZVNpemU7Ci0gICAgYm9vbCBt
X2lvU3VyZmFjZUNoYW5nZWQ7Ci0gICAgdW5zaWduZWQgbV9pb1N1cmZhY2VUZXh0dXJlSWQ7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggNzkyYjNhZmU1Mjk2YmY2NjFm
MzU2YjA4NTdkZjE2MmIyN2UzMzliNi4uNDU1M2YyZTJkMzA1NjNhOTc1ZWM0MmRmNjYxMTVkMTNl
NzQxMWRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtNTc4LDYgKzU3OCw3IEBA
CiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuaCcsCiAgICAgICAg
ICAgICAgICAgJ3NyYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwuY3BwJywKICAgICAg
ICAgICAgICAgICAnc3JjL1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5oJywKKyAgICAg
ICAgICAgICAgICAnc3JjL1dlYklPU3VyZmFjZUxheWVyLmNwcCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9XZWJJbWFnZUNHLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJbWFnZURlY29k
ZXIuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkltYWdlU2tpYS5jcHAnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIu
Y3BwCmluZGV4IGQyNDM5ZTg4ZDJkMGMxOTU1YzViOGFkNDc3NTgxMmIwM2YzOTZiODUuLjhmN2I1
OGE5ZDFlYTUxZTg3Y2U4ODhhMTNmZTYwMDRiMmY1Yjk2ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5jcHAKQEAgLTQ2
LDExICs0Niw2IEBAIHZvaWQgV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXI6OnNldFRleHR1cmVJZCh1
bnNpZ25lZCBpZCkKICAgICB1bndyYXA8VGV4dHVyZUxheWVyQ2hyb21pdW0+KCktPnNldFRleHR1
cmVJZChpZCk7CiB9CiAKLXZvaWQgV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXI6OnNldElPU3VyZmFj
ZVByb3BlcnRpZXMoY29uc3QgV2ViU2l6ZSYgc2l6ZSwgdW5zaWduZWQgaW9TdXJmYWNlSWQpCi17
Ci0gICAgdW53cmFwPFRleHR1cmVMYXllckNocm9taXVtPigpLT5zZXRJT1N1cmZhY2VQcm9wZXJ0
aWVzKHNpemUud2lkdGgsIHNpemUuaGVpZ2h0LCBpb1N1cmZhY2VJZCk7Ci19Ci0KIHZvaWQgV2Vi
RXh0ZXJuYWxUZXh0dXJlTGF5ZXI6OnNldEZsaXBwZWQoYm9vbCBmbGlwcGVkKQogewogICAgIHVu
d3JhcDxUZXh0dXJlTGF5ZXJDaHJvbWl1bT4oKS0+c2V0RmxpcHBlZChmbGlwcGVkKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklPU3VyZmFjZUxheWVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklPU3VyZmFjZUxheWVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43N2RiMGM4Nzc3N2ZmYjQ1ZmM4M2JjOTkwZDVlZGY5MjU0ZmI4NTEyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSU9TdXJmYWNlTGF5ZXIuY3Bw
CkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSA8
cHVibGljL1dlYklPU3VyZmFjZUxheWVyLmg+CisKKyNpbmNsdWRlICJJT1N1cmZhY2VMYXllckNo
cm9taXVtLmgiCisjaW5jbHVkZSA8cHVibGljL1dlYlNpemUuaD4KKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJJT1N1cmZhY2VMYXllciBXZWJJ
T1N1cmZhY2VMYXllcjo6Y3JlYXRlKCkKK3sKKyAgICBSZWZQdHI8SU9TdXJmYWNlTGF5ZXJDaHJv
bWl1bT4gbGF5ZXIgPSBJT1N1cmZhY2VMYXllckNocm9taXVtOjpjcmVhdGUoKTsKKyAgICBsYXll
ci0+c2V0SXNEcmF3YWJsZSh0cnVlKTsKKyAgICByZXR1cm4gV2ViSU9TdXJmYWNlTGF5ZXIobGF5
ZXIucmVsZWFzZSgpKTsKK30KKwordm9pZCBXZWJJT1N1cmZhY2VMYXllcjo6c2V0SU9TdXJmYWNl
UHJvcGVydGllcyh1bnNpZ25lZCBpb1N1cmZhY2VJZCwgV2ViU2l6ZSBzaXplKQoreworICAgIHVu
d3JhcDxJT1N1cmZhY2VMYXllckNocm9taXVtPigpLT5zZXRJT1N1cmZhY2VQcm9wZXJ0aWVzKGlv
U3VyZmFjZUlkLCBzaXplKTsKK30KKworV2ViSU9TdXJmYWNlTGF5ZXI6OldlYklPU3VyZmFjZUxh
eWVyKFBhc3NSZWZQdHI8SU9TdXJmYWNlTGF5ZXJDaHJvbWl1bT4gbGF5ZXIpCisgICAgOiBXZWJM
YXllcihsYXllcikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCmluZGV4
IDJhNDYyMjQzMDRhNzdlOGE2MjExYWQzNTUwMTUxMWY4ZGEzOWY3MTUuLmE0YTU4NWI5NmJiYzFj
ZjFkM2M2ODVmNGI4OGRjMThjYTkyMTYwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCkBAIC0zMzksNyArMzM5LDEx
IEBAIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c2V0QmFja2luZ1RleHR1cmVJZCh1bnNp
Z25lZCB0ZXh0dXJlSWQpCiAgICAgaWYgKG1fdGV4dHVyZUlkID09IHRleHR1cmVJZCkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgbV9sYXllci5zZXRUZXh0dXJlSWQodGV4dHVyZUlkKTsKKyAgICBB
U1NFUlQobV9pb1N1cmZhY2VMYXllci5pc051bGwoKSk7CisKKyAgICBpZiAobV90ZXh0dXJlTGF5
ZXIuaXNOdWxsKCkpCisgICAgICAgIG1fdGV4dHVyZUxheWVyID0gV2ViRXh0ZXJuYWxUZXh0dXJl
TGF5ZXI6OmNyZWF0ZSgpOworICAgIG1fdGV4dHVyZUxheWVyLnNldFRleHR1cmVJZCh0ZXh0dXJl
SWQpOwogCiAgICAgLy8gSWYgYW55b25lIG9mIHRoZSBJRHMgaXMgemVybyB3ZSBuZWVkIHRvIHN3
aXRjaCBiZXR3ZWVuIGhhcmR3YXJlCiAgICAgLy8gYW5kIHNvZnR3YXJlIGNvbXBvc2l0aW5nLiBU
aGlzIGlzIGRvbmUgYnkgdHJpZ2dlcmluZyBhIHN0eWxlIHJlY2FsYwpAQCAtMzU1LDExICszNTks
MTUgQEAgdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpzZXRCYWNraW5nSU9TdXJmYWNlSWQo
aW50IHdpZHRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50IGhlaWdodCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVpbnQzMl90IGlvU3VyZmFjZUlkKQogewotI2lmIE9TKERBUldJTikgJiYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJ
VElORykKICAgICBpZiAoaW9TdXJmYWNlSWQgPT0gbV9pb1N1cmZhY2VJZCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgbV9sYXllci5zZXRJT1N1cmZhY2VQcm9wZXJ0aWVzKFdlYlNpemUod2lkdGgs
IGhlaWdodCksIGlvU3VyZmFjZUlkKTsKKyAgICBBU1NFUlQobV90ZXh0dXJlTGF5ZXIuaXNOdWxs
KCkpOworCisgICAgaWYgKG1faW9TdXJmYWNlTGF5ZXIuaXNOdWxsKCkpCisgICAgICAgIG1faW9T
dXJmYWNlTGF5ZXIgPSBXZWJJT1N1cmZhY2VMYXllcjo6Y3JlYXRlKCk7CisgICAgbV9pb1N1cmZh
Y2VMYXllci5zZXRJT1N1cmZhY2VQcm9wZXJ0aWVzKGlvU3VyZmFjZUlkLCBXZWJTaXplKHdpZHRo
LCBoZWlnaHQpKTsKIAogICAgIC8vIElmIGFueW9uZSBvZiB0aGUgSURzIGlzIHplcm8gd2UgbmVl
ZCB0byBzd2l0Y2ggYmV0d2VlbiBoYXJkd2FyZQogICAgIC8vIGFuZCBzb2Z0d2FyZSBjb21wb3Np
dGluZy4gVGhpcyBpcyBkb25lIGJ5IHRyaWdnZXJpbmcgYSBzdHlsZSByZWNhbGMKQEAgLTM3NCw4
ICszODIsMTEgQEAgdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpzZXRCYWNraW5nSU9TdXJm
YWNlSWQoaW50IHdpZHRoLAogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpjb21taXRCYWNr
aW5nVGV4dHVyZSgpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlm
ICghbV9sYXllci5pc051bGwoKSkKLSAgICAgICAgbV9sYXllci5pbnZhbGlkYXRlKCk7CisgICAg
aWYgKCFtX3RleHR1cmVMYXllci5pc051bGwoKSkKKyAgICAgICAgbV90ZXh0dXJlTGF5ZXIuaW52
YWxpZGF0ZSgpOworCisgICAgaWYgKCFtX2lvU3VyZmFjZUxheWVyLmlzTnVsbCgpKQorICAgICAg
ICBtX2lvU3VyZmFjZUxheWVyLmludmFsaWRhdGUoKTsKICNlbmRpZgogfQogCkBAIC00NDIsOCAr
NDUzLDExIEBAIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6em9vbUxldmVsQ2hhbmdlZChk
b3VibGUgem9vbUxldmVsKQogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpzZXRPcGFxdWUo
Ym9vbCBvcGFxdWUpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIGlm
ICghbV9sYXllci5pc051bGwoKSkKLSAgICAgICAgbV9sYXllci5zZXRPcGFxdWUob3BhcXVlKTsK
KyAgICBpZiAoIW1fdGV4dHVyZUxheWVyLmlzTnVsbCgpKQorICAgICAgICBtX3RleHR1cmVMYXll
ci5zZXRPcGFxdWUob3BhcXVlKTsKKworICAgIGlmICghbV9pb1N1cmZhY2VMYXllci5pc051bGwo
KSkKKyAgICAgICAgbV9pb1N1cmZhY2VMYXllci5zZXRPcGFxdWUob3BhcXVlKTsKICNlbmRpZgog
fQogCkBAIC01MTgsNyArNTMyLDExIEBAIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6d2ls
bERlc3Ryb3lQbHVnaW5Mb2FkT2JzZXJ2ZXIoV2ViUGx1Z2luTG9hZE9ic2VydmVyCiAjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogV2ViQ29yZTo6TGF5ZXJDaHJvbWl1bSogV2ViUGx1
Z2luQ29udGFpbmVySW1wbDo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICht
X3RleHR1cmVJZCB8fCBtX2lvU3VyZmFjZUlkKSA/IG1fbGF5ZXIudW53cmFwPExheWVyQ2hyb21p
dW0+KCkgOiAwOworICAgIGlmIChtX3RleHR1cmVJZCkKKyAgICAgICAgcmV0dXJuIG1fdGV4dHVy
ZUxheWVyLnVud3JhcDxMYXllckNocm9taXVtPigpOworICAgIGlmIChtX2lvU3VyZmFjZUlkKQor
ICAgICAgICByZXR1cm4gbV9pb1N1cmZhY2VMYXllci51bndyYXA8TGF5ZXJDaHJvbWl1bT4oKTsK
KyAgICByZXR1cm4gMDsKIH0KICNlbmRpZgogCkBAIC01NTgsNyArNTc2LDYgQEAgV2ViUGx1Z2lu
Q29udGFpbmVySW1wbDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbChXZWJDb3JlOjpIVE1MUGx1Z0lu
RWxlbWVudCogZWxlbWUKICAgICAsIG1fZWxlbWVudChlbGVtZW50KQogICAgICwgbV93ZWJQbHVn
aW4od2ViUGx1Z2luKQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICAsIG1f
bGF5ZXIoV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXI6OmNyZWF0ZSgpKQogICAgICwgbV90ZXh0dXJl
SWQoMCkKICAgICAsIG1faW9TdXJmYWNlSWQoMCkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCmluZGV4IGU3ZDJhNjUy
ZDVmNDZmMzVkZGMwN2U1MThmMjA1OGU3MDhhOTExNDQuLjA0ODc4NDU1YzhjYjY1ZTUzZGRmYTdk
MGY0ZmNiZDc3NDlhYzcxNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJX
aWRnZXQuaCIKIAogI2luY2x1ZGUgPHB1YmxpYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5oPgor
I2luY2x1ZGUgPHB1YmxpYy9XZWJJT1N1cmZhY2VMYXllci5oPgogI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KQEAgLTE3Myw5ICsxNzQsMTMgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8V2ViUGx1Z2luTG9h
ZE9ic2VydmVyKj4gbV9wbHVnaW5Mb2FkT2JzZXJ2ZXJzOwogCiAjaWYgVVNFKEFDQ0VMRVJBVEVE
X0NPTVBPU0lUSU5HKQotICAgIFdlYkV4dGVybmFsVGV4dHVyZUxheWVyIG1fbGF5ZXI7CisgICAg
Ly8gQSBjb21wb3NpdGVkIHBsdWdpbiB3aWxsIGVpdGhlciBoYXZlIG5vIGNvbXBvc2l0ZWQgbGF5
ZXIsIGEgdGV4dHVyZSBsYXllciwgb3IgYW4gSU9TdXJmYWNlIGxheWVyLgorICAgIC8vIEl0IHdp
bGwgbmV2ZXIgaGF2ZSBib3RoIGEgdGV4dHVyZSBhbmQgSU9TdXJmYWNlIG91dHB1dC4KICAgICB1
bnNpZ25lZCBtX3RleHR1cmVJZDsKKyAgICBXZWJFeHRlcm5hbFRleHR1cmVMYXllciBtX3RleHR1
cmVMYXllcjsKKwogICAgIHVuc2lnbmVkIG1faW9TdXJmYWNlSWQ7CisgICAgV2ViSU9TdXJmYWNl
TGF5ZXIgbV9pb1N1cmZhY2VMYXllcjsKICNlbmRpZgogCiAgICAgLy8gVGhlIGFzc29jaWF0ZWQg
c2Nyb2xsYmFyIGdyb3VwIG9iamVjdCwgY3JlYXRlZCBsYXppbHkuIFVzZWQgZm9yIFBlcHBlcgo=
</data>
<flag name="review"
          id="144695"
          type_id="1"
          status="+"
          setter="enne"
    />
          </attachment>
      

    </bug>

</bugzilla>