<?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>202614</bug_id>
          
          <creation_ts>2019-10-05 13:15:58 -0700</creation_ts>
          <short_desc>[LFC][Painting] Introduce Display::Painter</short_desc>
          <delta_ts>2019-10-06 06:58:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1577227</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-10-05 13:15:58 -0700</bug_when>
    <thetext>for testing purposes/WK1 only at this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577228</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-05 13:16:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/56010347&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577229</commentid>
    <comment_count>2</comment_count>
      <attachid>380288</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-10-05 13:19:42 -0700</bug_when>
    <thetext>Created attachment 380288
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577230</commentid>
    <comment_count>3</comment_count>
      <attachid>380289</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-10-05 13:30:05 -0700</bug_when>
    <thetext>Created attachment 380289
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577255</commentid>
    <comment_count>4</comment_count>
      <attachid>380289</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-06 06:58:32 -0700</bug_when>
    <thetext>Comment on attachment 380289
Patch

Clearing flags on attachment: 380289

Committed r250769: &lt;https://trac.webkit.org/changeset/250769&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1577256</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-06 06:58:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380288</attachid>
            <date>2019-10-05 13:19:42 -0700</date>
            <delta_ts>2019-10-05 13:30:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202614-20191005131941.patch</filename>
            <type>text/plain</type>
            <size>22227</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVjNDNkYTVkZTIxYmUw
ODIwYmMxYmM3NWM4YjE3ZjNiY2U4MzNkMC4uMWI0ZGY2MzlhYzcxYThlY2IwNWZkOGRmNWVmMzQ3
MWQwMzJiN2NlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE5LTEwLTA1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bUGFpbnRpbmddIElu
dHJvZHVjZSBEaXNwbGF5OjpQYWludGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDI2MTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2MDEwMzQ3
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERpc3Bs
YXk6OlBhaW50ZXIgaXMgcmVzcG9uc2libGUgZm9yIHJlbmRlcmluZyB0aGUgbm9kZXMgaW4gdGhl
IGRpc3BsYXkgdHJlZS4gVGVzdGluZyBwdXJwb3Nlcy9XSzEgb25seSBhdCB0aGlzIHBvaW50Lgor
CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGxheW91dC9MYXlvdXRDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6aW5pdGlhbGl6ZUxheW91dFN0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6cnVuTGF5b3V0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6cnVuTGF5b3V0QW5kVmVyaWZ5KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6cnVuTGF5b3V0QW5kUGFpbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250ZXh0OjpydW4pOiBEZWxldGVkLgorICAg
ICAgICAqIGxheW91dC9MYXlvdXRDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L0xheW91dFN0
YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OkxheW91dFN0
YXRlKToKKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0U3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6TGF5b3V0U3RhdGU6OnJvb3QgY29uc3QpOgorICAgICAgICAqIGxheW91dC9WZXJp
ZmljYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250ZXh0Ojp2
ZXJpZnlBbmRPdXRwdXRNaXNtYXRjaGluZ0xheW91dFRyZWUpOgorICAgICAgICAqIGxheW91dC9k
aXNwbGF5dHJlZS9EaXNwbGF5UGFpbnRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheTo6UGFpbnRlcjo6cGFpbnQpOgorICAgICAgICAqIGxheW91dC9kaXNwbGF5dHJlZS9E
aXNwbGF5UGFpbnRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlv
dXRUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OnByaW50TGF5b3V0
VHJlZUZvckxpdmVEb2N1bWVudHMpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogcGFn
ZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxheW91dFVz
aW5nRm9ybWF0dGluZ0NvbnRleHQpOgorCiAyMDE5LTEwLTA0ICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgogCiAgICAgICAgIENoYW5nZSAiSW52YWxpZFN0YXRlRXJyb3IiIHRvICJO
b3RTdXBwb3J0ZWRFcnJvciIgZm9yIGF0dGFjaFNoYWRvdygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDJj
YzY1Yjk3ZjM5M2ZiMjU1ZmNlM2Q1NjU3YWNhMTdlODgxYjQ3ODYuLjRhODEwOTI0ZGU3NDMyZmZm
ZTYxMmNmNWVkZDZkMWZhYjYxMzU3MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNDE1LDYgKzE0MTUs
NyBAQCBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmNwcAogbGF5
b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcAogbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja0ludmFsaWRhdGlvbi5jcHAKIGxheW91dC9kaXNwbGF5dHJlZS9EaXNw
bGF5Qm94LmNwcAorbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlQYWludGVyLmNwcAogbGF5b3V0
L2Zsb2F0cy9GbG9hdEF2b2lkZXIuY3BwCiBsYXlvdXQvZmxvYXRzL0Zsb2F0Qm94LmNwcAogbGF5
b3V0L2Zsb2F0cy9GbG9hdGluZ0NvbnRleHQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2M0MDI2MDhiYzllYmEyZTc2NDIx
YjNhZjhiM2YzNTliYTIzNjhiOC4uODNjOWVjN2Q4ZmUwNDYzZDA1MWQ1MGZlNzY5YzM5OTg2Njcx
NTkzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMjAwNyw2ICsyMDA3LDcgQEAKIAkJNkYyNkJCNkMyMzM0M0U2RjAwMkYyQkVB
IC8qIExheW91dENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDZGMjZCQjZCMjMzNDNFNUIwMDJGMkJFQSAvKiBMYXlvdXRDb250ZXh0LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkYyNkVCNDgy
MzQwMDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVMYXlvdXQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGMjZFQjQ2MjM0MDA0QTUwMDY5MDZFMiAvKiBJ
bmxpbmVMaW5lTGF5b3V0LmggKi87IH07CiAJCTZGM0UxRjYyMjEzNjE0MjAwMEE2NUEwOCAvKiBG
bG9hdEJveC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkYzRTFGNjEyMTM2MTQxNzAwQTY1QTA4IC8qIEZsb2F0Qm94LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNkY3Nzg2ODgyMzQ5MUFEODAwNEQ5NjM2
IC8qIERpc3BsYXlQYWludGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2Rjc3ODY4NzIzNDkxQUQ3MDA0RDk2MzYgLyogRGlzcGxheVBhaW50ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RjdDQTND
NjIwOEMyOTU3MDAyRjI5QUIgLyogTGF5b3V0U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGN0NBM0M0MjA4QzI5NTYwMDJGMjlBQiAvKiBMYXlv
dXRTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTZGN0NBM0NBMjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY3Q0EzQzgy
MDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkY5OTVBMTYxQTcwNzU2MjAw
QTczNUY0IC8qIFdlYkdMU3luYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNkY5OTVBMTQxQTcwNzU2MjAwQTczNUY0IC8qIFdlYkdMU3luYy5oICovOyB9
OwpAQCAtOTE3Nyw2ICs5MTc4LDggQEAKIAkJNkY0QTVCRDUyMkY5RjE2QjAwQTgwRjI1IC8qIExh
eW91dFBoYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheW91dFBoYXNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY1QjdFQUEyMzAwQTc5RTAwNjdEOUMzIC8qIFRhYmxl
R3JpZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWJsZUdyaWQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk2RjczOTE4QzIxMDZDRUREMDA2QUYyNjIgLyogTGF5b3V0VW5pdHMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0VW5pdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNkY3Nzg2ODUyMzQ5MUFDNjAwNEQ5NjM2IC8qIERpc3BsYXlQYWludGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IERpc3BsYXlQYWludGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNkY3Nzg2ODcyMzQ5MUFENzAwNEQ5NjM2IC8qIERpc3BsYXlQYWludGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlQYWludGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGN0NBM0M0MjA4QzI5NTYwMDJGMjlBQiAvKiBMYXlvdXRT
dGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2RjdDQTNDNTIwOEMyOTU2MDAyRjI5QUIgLyogTGF5b3V0U3RhdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0U3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2RjdDQTNDODIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NTEzLDYgKzE2NTE2LDggQEAKIAkJCWNoaWxkcmVuID0g
KAogCQkJCTExOTlGQTVBMjA4RTNDN0YwMDIzNThDQyAvKiBEaXNwbGF5Qm94LmNwcCAqLywKIAkJ
CQkxMTk5RkE1OTIwOEUzQzdGMDAyMzU4Q0MgLyogRGlzcGxheUJveC5oICovLAorCQkJCTZGNzc4
Njg1MjM0OTFBQzYwMDREOTYzNiAvKiBEaXNwbGF5UGFpbnRlci5jcHAgKi8sCisJCQkJNkY3Nzg2
ODcyMzQ5MUFENzAwNEQ5NjM2IC8qIERpc3BsYXlQYWludGVyLmggKi8sCiAJCQkJNkZEOUNENTIy
MjdFMjFDODAwRTUzOTU3IC8qIERpc3BsYXlSZWN0LmggKi8sCiAJCQkJNkZDRTFBMTgyMjYxOEFC
MzAwNEYwMzQzIC8qIERpc3BsYXlSdW4uaCAqLywKIAkJCSk7CkBAIC0yOTExMyw2ICsyOTExOCw3
IEBACiAJCQkJMEZFNUZCRDUxQzNERDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0SXRlbXMuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQ3MUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlz
dFJlY29yZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1RkJEOTFDM0RENTFFMDAwN0EyQ0Eg
LyogRGlzcGxheUxpc3RSZXBsYXllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkY3Nzg2ODgyMzQ5
MUFEODAwNEQ5NjM2IC8qIERpc3BsYXlQYWludGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RkQ5
Q0Q1NDIyN0UyMUM4MDBFNTM5NTcgLyogRGlzcGxheVJlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQ5QUYyRDY5MTQ0MzVEMDUwMDE2QTc4NCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJEMjlFQ0M2MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVz
aE1vbml0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91
dENvbnRleHQuY3BwCmluZGV4IDA4ZThlZDAxYjM5M2JlMDNkY2U4Mzg3ZDU5NjMyYWU4ZjdhMWM2
ZTMuLjMzOGVkNWEzOTMzZDZjYjIwY2I5ZmZkZmY1MmUzZDcyYmE4ZjUwNjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJCbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIkJsb2NrSW52YWxpZGF0aW9uLmgi
CiAjaW5jbHVkZSAiRGlzcGxheUJveC5oIgorI2luY2x1ZGUgIkRpc3BsYXlQYWludGVyLmgiCiAj
aW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJJbmxpbmVGb3Jt
YXR0aW5nU3RhdGUuaCIKICNpbmNsdWRlICJJbmxpbmVJbnZhbGlkYXRpb24uaCIKQEAgLTExNyw3
ICsxMTgsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9ybWF0dGluZ0NvbnRleHQ+IExheW91dENvbnRl
eHQ6OmNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGNvbnN0CiAgICAgQ1JBU0goKTsKIH0KIAotdm9p
ZCBMYXlvdXRDb250ZXh0OjpydW4oY29uc3QgUmVuZGVyVmlldyYgcmVuZGVyVmlldykKK3N0YXRp
YyB2b2lkIGluaXRpYWxpemVMYXlvdXRTdGF0ZShMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNv
bnN0IFJlbmRlclZpZXcmIHJlbmRlclZpZXcpCiB7CiAgICAgYXV0byBxdWlya3NNb2RlID0gWyZd
IHsKICAgICAgICAgYXV0byYgZG9jdW1lbnQgPSByZW5kZXJWaWV3LmRvY3VtZW50KCk7CkBAIC0x
MjgsMzUgKzEyOSw1NCBAQCB2b2lkIExheW91dENvbnRleHQ6OnJ1bihjb25zdCBSZW5kZXJWaWV3
JiByZW5kZXJWaWV3KQogICAgICAgICByZXR1cm4gTGF5b3V0U3RhdGU6OlF1aXJrc01vZGU6Ok5v
OwogICAgIH07CiAKLSAgICBhdXRvIGluaXRpYWxDb250YWluaW5nQmxvY2sgPSBUcmVlQnVpbGRl
cjo6Y3JlYXRlTGF5b3V0VHJlZShyZW5kZXJWaWV3KTsKLQotICAgIGF1dG8gbGF5b3V0U3RhdGUg
PSBMYXlvdXRTdGF0ZSB7IH07CiAgICAgbGF5b3V0U3RhdGUuc2V0UXVpcmtzTW9kZShxdWlya3NN
b2RlKCkpOwotICAgIGxheW91dFN0YXRlLmNyZWF0ZUZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRp
bmdSb290SWZOZWVkZWQoKmluaXRpYWxDb250YWluaW5nQmxvY2spOwogCi0gICAgYXV0byBsYXlv
dXRDb250ZXh0ID0gTGF5b3V0Q29udGV4dChsYXlvdXRTdGF0ZSk7CisgICAgYXV0byYgbGF5b3V0
Um9vdCA9IGxheW91dFN0YXRlLnJvb3QoKTsKKyAgICBsYXlvdXRTdGF0ZS5jcmVhdGVGb3JtYXR0
aW5nU3RhdGVGb3JGb3JtYXR0aW5nUm9vdElmTmVlZGVkKGxheW91dFJvb3QpOworICAgIC8vIE5v
dCBlZmZpY2llbnQsIGJ1dCB0aGlzIGlzIHRlbXBvcmFyeSBhbnl3YXkuCisgICAgLy8gQ29sbGVj
dCB0aGUgb3V0LW9mLWZsb3cgZGVzY2VuZGFudHMgYXQgdGhlIGZvcm1hdHRpbmcgcm9vdCBsZXZl
bCAoYXMgb3Bwb3NlZCB0byBhdCB0aGUgY29udGFpbmluZyBibG9jayBsZXZlbCwgdGhvdWdoIHRo
ZXkgbWlnaHQgYmUgdGhlIHNhbWUpLgorICAgIGZvciAoYXV0byYgZGVzY2VuZGFudCA6IGRlc2Nl
bmRhbnRzT2ZUeXBlPEJveD4obGF5b3V0Um9vdCkpIHsKKyAgICAgICAgaWYgKCFkZXNjZW5kYW50
LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IGF1dG8mIGZvcm1hdHRpbmdTdGF0ZSA9IGxheW91dFN0YXRlLmNyZWF0ZUZvcm1hdHRpbmdTdGF0
ZUZvckZvcm1hdHRpbmdSb290SWZOZWVkZWQoZGVzY2VuZGFudC5mb3JtYXR0aW5nQ29udGV4dFJv
b3QoKSk7CisgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRPdXRPZkZsb3dCb3goZGVzY2VuZGFu
dCk7CisgICAgfQorfQogCi0gICAgYXV0byYgZGlzcGxheUJveCA9IGxheW91dFN0YXRlLmRpc3Bs
YXlCb3hGb3JMYXlvdXRCb3goKmluaXRpYWxDb250YWluaW5nQmxvY2spOwordm9pZCBMYXlvdXRD
b250ZXh0OjpydW5MYXlvdXQoTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKQoreworICAgIGF1dG8m
IGxheW91dFJvb3QgPSBsYXlvdXRTdGF0ZS5yb290KCk7CisgICAgYXV0byYgZGlzcGxheUJveCA9
IGxheW91dFN0YXRlLmRpc3BsYXlCb3hGb3JMYXlvdXRCb3gobGF5b3V0Um9vdCk7CiAgICAgZGlz
cGxheUJveC5zZXRIb3Jpem9udGFsTWFyZ2luKHsgfSk7CiAgICAgZGlzcGxheUJveC5zZXRIb3Jp
em9udGFsQ29tcHV0ZWRNYXJnaW4oeyB9KTsKICAgICBkaXNwbGF5Qm94LnNldFZlcnRpY2FsTWFy
Z2luKHsgfSk7CiAgICAgZGlzcGxheUJveC5zZXRCb3JkZXIoeyB9KTsKICAgICBkaXNwbGF5Qm94
LnNldFBhZGRpbmcoeyB9KTsKICAgICBkaXNwbGF5Qm94LnNldFRvcExlZnQoeyB9KTsKLSAgICBk
aXNwbGF5Qm94LnNldENvbnRlbnRCb3hIZWlnaHQoTGF5b3V0VW5pdChpbml0aWFsQ29udGFpbmlu
Z0Jsb2NrLT5zdHlsZSgpLmxvZ2ljYWxIZWlnaHQoKS52YWx1ZSgpKSk7Ci0gICAgZGlzcGxheUJv
eC5zZXRDb250ZW50Qm94V2lkdGgoTGF5b3V0VW5pdChpbml0aWFsQ29udGFpbmluZ0Jsb2NrLT5z
dHlsZSgpLmxvZ2ljYWxXaWR0aCgpLnZhbHVlKCkpKTsKKyAgICBkaXNwbGF5Qm94LnNldENvbnRl
bnRCb3hIZWlnaHQoTGF5b3V0VW5pdChsYXlvdXRSb290LnN0eWxlKCkubG9naWNhbEhlaWdodCgp
LnZhbHVlKCkpKTsKKyAgICBkaXNwbGF5Qm94LnNldENvbnRlbnRCb3hXaWR0aChMYXlvdXRVbml0
KGxheW91dFJvb3Quc3R5bGUoKS5sb2dpY2FsV2lkdGgoKS52YWx1ZSgpKSk7CiAKLSAgICAvLyBO
b3QgZWZmaWNpZW50LCBidXQgdGhpcyBpcyB0ZW1wb3JhcnkgYW55d2F5LgotICAgIC8vIENvbGxl
Y3QgdGhlIG91dC1vZi1mbG93IGRlc2NlbmRhbnRzIGF0IHRoZSBmb3JtYXR0aW5nIHJvb3QgbGV2
ZWwgKGFzIG9wcG9zZWQgdG8gYXQgdGhlIGNvbnRhaW5pbmcgYmxvY2sgbGV2ZWwsIHRob3VnaCB0
aGV5IG1pZ2h0IGJlIHRoZSBzYW1lKS4KLSAgICBmb3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNj
ZW5kYW50c09mVHlwZTxCb3g+KCppbml0aWFsQ29udGFpbmluZ0Jsb2NrKSkgewotICAgICAgICBp
ZiAoIWRlc2NlbmRhbnQuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCi0gICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlID0gbGF5b3V0U3RhdGUuY3JlYXRl
Rm9ybWF0dGluZ1N0YXRlRm9yRm9ybWF0dGluZ1Jvb3RJZk5lZWRlZChkZXNjZW5kYW50LmZvcm1h
dHRpbmdDb250ZXh0Um9vdCgpKTsKLSAgICAgICAgZm9ybWF0dGluZ1N0YXRlLmFkZE91dE9mRmxv
d0JveChkZXNjZW5kYW50KTsKLSAgICB9Ci0gICAgbGF5b3V0Q29udGV4dC5tYXJrTmVlZHNVcGRh
dGUoKmluaXRpYWxDb250YWluaW5nQmxvY2spOworICAgIGF1dG8gbGF5b3V0Q29udGV4dCA9IExh
eW91dENvbnRleHQobGF5b3V0U3RhdGUpOworICAgIGxheW91dENvbnRleHQubWFya05lZWRzVXBk
YXRlKGxheW91dFJvb3QpOwogICAgIGxheW91dENvbnRleHQubGF5b3V0KCk7Ci0gICAgTGF5b3V0
Q29udGV4dDo6dmVyaWZ5QW5kT3V0cHV0TWlzbWF0Y2hpbmdMYXlvdXRUcmVlKGxheW91dFN0YXRl
LCByZW5kZXJWaWV3LCAqaW5pdGlhbENvbnRhaW5pbmdCbG9jayk7Cit9CisKK3ZvaWQgTGF5b3V0
Q29udGV4dDo6cnVuTGF5b3V0QW5kVmVyaWZ5KGNvbnN0IFJlbmRlclZpZXcmIHJlbmRlclZpZXcp
Cit7CisgICAgYXV0byBpbml0aWFsQ29udGFpbmluZ0Jsb2NrID0gVHJlZUJ1aWxkZXI6OmNyZWF0
ZUxheW91dFRyZWUocmVuZGVyVmlldyk7CisgICAgYXV0byBsYXlvdXRTdGF0ZSA9IExheW91dFN0
YXRlIHsgKmluaXRpYWxDb250YWluaW5nQmxvY2sgfTsKKyAgICBpbml0aWFsaXplTGF5b3V0U3Rh
dGUobGF5b3V0U3RhdGUsIHJlbmRlclZpZXcpOworICAgIHJ1bkxheW91dChsYXlvdXRTdGF0ZSk7
CisgICAgTGF5b3V0Q29udGV4dDo6dmVyaWZ5QW5kT3V0cHV0TWlzbWF0Y2hpbmdMYXlvdXRUcmVl
KGxheW91dFN0YXRlLCByZW5kZXJWaWV3KTsKK30KKwordm9pZCBMYXlvdXRDb250ZXh0OjpydW5M
YXlvdXRBbmRQYWludChjb25zdCBSZW5kZXJWaWV3JiByZW5kZXJWaWV3LCBHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQpCit7CisgICAgYXV0byBpbml0aWFsQ29udGFpbmluZ0Jsb2NrID0gVHJlZUJ1
aWxkZXI6OmNyZWF0ZUxheW91dFRyZWUocmVuZGVyVmlldyk7CisgICAgYXV0byBsYXlvdXRTdGF0
ZSA9IExheW91dFN0YXRlIHsgKmluaXRpYWxDb250YWluaW5nQmxvY2sgfTsKKyAgICBpbml0aWFs
aXplTGF5b3V0U3RhdGUobGF5b3V0U3RhdGUsIHJlbmRlclZpZXcpOworICAgIHJ1bkxheW91dChs
YXlvdXRTdGF0ZSk7CisgICAgRGlzcGxheTo6UGFpbnRlcjo6cGFpbnQobGF5b3V0U3RhdGUsIGNv
bnRleHQpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0
Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuaAppbmRleCBj
OTFkNmVjMTY5NjlkZjVlZDFlYTUxNmNiM2RmY2UzZTA2NjZiNjNmLi5hZDllZTc1YmM2ZmJhYWZk
NDAxOWYzMzU5ZTgzYTBiOTdkNmU3OTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvTGF5b3V0Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250
ZXh0LmgKQEAgLTUyLDggKzUyLDkgQEAgY2xhc3MgRm9ybWF0dGluZ0NvbnRleHQ7CiBjbGFzcyBM
YXlvdXRDb250ZXh0IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKExheW91dENvbnRleHQp
OwogcHVibGljOgotICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgdGVtcG9yYXJ5IGVudHJ5IHBvaW50
IGZvciBMRkMgbGF5b3V0LgotICAgIHN0YXRpYyB2b2lkIHJ1bihjb25zdCBSZW5kZXJWaWV3Jik7
CisgICAgLy8gRklYTUU6IFRoZXNlIGFyZSB0ZW1wb3JhcnkgZW50cnkgcG9pbnRzIGZvciBMRkMg
bGF5b3V0LgorICAgIHN0YXRpYyB2b2lkIHJ1bkxheW91dEFuZFZlcmlmeShjb25zdCBSZW5kZXJW
aWV3Jik7CisgICAgc3RhdGljIHZvaWQgcnVuTGF5b3V0QW5kUGFpbnQoY29uc3QgUmVuZGVyVmll
dyYsIEdyYXBoaWNzQ29udGV4dCYpOwogCiAgICAgTGF5b3V0Q29udGV4dChMYXlvdXRTdGF0ZSYp
OwogICAgIHZvaWQgbGF5b3V0KCk7CkBAIC03MSwxMyArNzIsMTQgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxGb3JtYXR0aW5nQ29udGV4dD4gY3JlYXRlRm9ybWF0dGlu
Z0NvbnRleHQoY29uc3QgQ29udGFpbmVyJiBmb3JtYXR0aW5nQ29udGV4dFJvb3QsIExheW91dFN0
YXRlJik7CiAKLSAgICAvLyBGb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5Ci0gICAgc3RhdGljIHZv
aWQgdmVyaWZ5QW5kT3V0cHV0TWlzbWF0Y2hpbmdMYXlvdXRUcmVlKGNvbnN0IExheW91dFN0YXRl
JiwgY29uc3QgUmVuZGVyVmlldyYsIGNvbnN0IENvbnRhaW5lciYgaW5pdGlhbENvbnRhaW5pbmdC
bG9jayk7Ci0KIHByaXZhdGU6CiAgICAgdm9pZCBsYXlvdXRGb3JtYXR0aW5nQ29udGV4dFN1YnRy
ZWUoY29uc3QgQ29udGFpbmVyJik7CiAgICAgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgeyBy
ZXR1cm4gbV9sYXlvdXRTdGF0ZTsgfQogCisgICAgLy8gRm9yIHRlc3RpbmcgcHVycG9zZXMgb25s
eQorICAgIHN0YXRpYyB2b2lkIHZlcmlmeUFuZE91dHB1dE1pc21hdGNoaW5nTGF5b3V0VHJlZShj
b25zdCBMYXlvdXRTdGF0ZSYsIGNvbnN0IFJlbmRlclZpZXcmKTsKKyAgICBzdGF0aWMgdm9pZCBy
dW5MYXlvdXQoTGF5b3V0U3RhdGUmKTsKKwogICAgIExheW91dFN0YXRlJiBtX2xheW91dFN0YXRl
OwogICAgIFdlYWtIYXNoU2V0PGNvbnN0IENvbnRhaW5lcj4gbV9mb3JtYXR0aW5nQ29udGV4dFJv
b3RMaXN0Rm9yTGF5b3V0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9M
YXlvdXRTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuY3BwCmlu
ZGV4IGFkZjFhYmJkNzgyYTQ1NGRjYmI1ZjZkZWEzZGU1ODFkMGJkZWI3YmEuLjZmYjFmNGFlOGVm
NDVjY2Q3YzRkNzEzMjQ2OTdmMjdhNmE5ZmVhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91
dFN0YXRlLmNwcApAQCAtMzgsNiArMzgsMTMgQEAgbmFtZXNwYWNlIExheW91dCB7CiAKIFdURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChMYXlvdXRTdGF0ZSk7CiAKK0xheW91dFN0YXRlOjpMYXlv
dXRTdGF0ZShjb25zdCBDb250YWluZXImIHJvb3QpCisgICAgOiBtX3Jvb3QobWFrZVdlYWtQdHIo
cm9vdCkpCit7CisgICAgLy8gSXQgbWFrZXMgYWJzb2x1dGVseSBubyBzZW5zZSB0byBjb25zdHJ1
Y3QgYSBkZWRpY2F0ZWQgbGF5b3V0IHN0YXRlIGZvciBhIG5vbi1mb3JtYXR0aW5nIGNvbnRleHQg
cm9vdCAoaXQgd291bGQgYmUgYSBuby1vcCkuCisgICAgQVNTRVJUKHJvb3QuZXN0YWJsaXNoZXNG
b3JtYXR0aW5nQ29udGV4dCgpKTsKK30KKwogRGlzcGxheTo6Qm94JiBMYXlvdXRTdGF0ZTo6ZGlz
cGxheUJveEZvckxheW91dEJveChjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gKm1fbGF5b3V0VG9EaXNwbGF5Qm94LmVuc3VyZSgmbGF5b3V0Qm94LCBbJmxheW91dEJv
eF0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmggYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuaAppbmRleCA5ZDEwNjgwM2I3NjFkODgw
ODNmYjA1ZWUyOGVlNzQ5OGRiMTZjZmVhLi5jYTFiNzVmNTExZmE2MDFiMmJmZjQyZDEwMDMxMjVh
OTJiN2M1ZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuaApAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
ICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OSw2ICs1MCw3IEBAIGNsYXNzIEZvcm1hdHRpbmdT
dGF0ZTsKIGNsYXNzIExheW91dFN0YXRlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKExh
eW91dFN0YXRlKTsKIHB1YmxpYzoKKyAgICBMYXlvdXRTdGF0ZShjb25zdCBDb250YWluZXImIHJv
b3QpOwogCiAgICAgRm9ybWF0dGluZ1N0YXRlJiBjcmVhdGVGb3JtYXR0aW5nU3RhdGVGb3JGb3Jt
YXR0aW5nUm9vdElmTmVlZGVkKGNvbnN0IENvbnRhaW5lciYgZm9ybWF0dGluZ0NvbnRleHRSb290
KTsKICAgICBGb3JtYXR0aW5nU3RhdGUmIGVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKGNvbnN0
IENvbnRhaW5lciYgZm9ybWF0dGluZ1Jvb3QpIGNvbnN0OwpAQCAtNjksNyArNzEsMTAgQEAgcHVi
bGljOgogICAgIGJvb2wgaW5MaW1pdGVkUXVpcmtzTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcXVp
cmtzTW9kZSA9PSBRdWlya3NNb2RlOjpMaW1pdGVkOyB9CiAgICAgYm9vbCBpbk5vUXVpcmtzTW9k
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcXVpcmtzTW9kZSA9PSBRdWlya3NNb2RlOjpObzsgfQogCisg
ICAgY29uc3QgQ29udGFpbmVyJiByb290KCkgY29uc3QgeyByZXR1cm4gKm1fcm9vdDsgfQorCiBw
cml2YXRlOgorICAgIFdlYWtQdHI8Y29uc3QgQ29udGFpbmVyPiBtX3Jvb3Q7CiAgICAgSGFzaE1h
cDxjb25zdCBDb250YWluZXIqLCBzdGQ6OnVuaXF1ZV9wdHI8Rm9ybWF0dGluZ1N0YXRlPj4gbV9m
b3JtYXR0aW5nU3RhdGVzOwogI2lmbmRlZiBOREVCVUcKICAgICBIYXNoU2V0PGNvbnN0IEZvcm1h
dHRpbmdDb250ZXh0Kj4gbV9mb3JtYXR0aW5nQ29udGV4dExpc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9WZXJpZmljYXRpb24uY3BwCmluZGV4IDBhYmRjZmU2ZGQ3NDZkOTUwZWVmZmExMjAyZTc4OGYz
ODhiMzIyNjAuLjJmNTZmNjJkYWVhYWIzYTk3ZDE0YmE3NGE1YzcwZjJhNDBjNTRlMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9WZXJpZmljYXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9WZXJpZmljYXRpb24uY3BwCkBAIC0zMjQsMTUgKzMyNCwxNiBAQCBz
dGF0aWMgYm9vbCB2ZXJpZnlBbmRPdXRwdXRTdWJ0cmVlKFRleHRTdHJlYW0mIHN0cmVhbSwgY29u
c3QgTGF5b3V0U3RhdGUmIGNvbnRleAogICAgIHJldHVybiBtaXNtdGFjaGluZ0dlb21ldHJ5Owog
fQogCi12b2lkIExheW91dENvbnRleHQ6OnZlcmlmeUFuZE91dHB1dE1pc21hdGNoaW5nTGF5b3V0
VHJlZShjb25zdCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNvbnN0IFJlbmRlclZpZXcmIHJl
bmRlclZpZXcsIGNvbnN0IENvbnRhaW5lciYgaW5pdGlhbENvbnRhaW5pbmdCbG9jaykKK3ZvaWQg
TGF5b3V0Q29udGV4dDo6dmVyaWZ5QW5kT3V0cHV0TWlzbWF0Y2hpbmdMYXlvdXRUcmVlKGNvbnN0
IExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgY29uc3QgUmVuZGVyVmlldyYgcmVuZGVyVmlldykK
IHsKICAgICBUZXh0U3RyZWFtIHN0cmVhbTsKLSAgICBhdXRvIG1pc21hdGNoaW5nR2VvbWV0cnkg
PSB2ZXJpZnlBbmRPdXRwdXRTdWJ0cmVlKHN0cmVhbSwgbGF5b3V0U3RhdGUsIHJlbmRlclZpZXcs
IGluaXRpYWxDb250YWluaW5nQmxvY2spOworICAgIGF1dG8mIGxheW91dFJvb3QgPSBsYXlvdXRT
dGF0ZS5yb290KCk7CisgICAgYXV0byBtaXNtYXRjaGluZ0dlb21ldHJ5ID0gdmVyaWZ5QW5kT3V0
cHV0U3VidHJlZShzdHJlYW0sIGxheW91dFN0YXRlLCByZW5kZXJWaWV3LCBsYXlvdXRSb290KTsK
ICAgICBpZiAoIW1pc21hdGNoaW5nR2VvbWV0cnkpCiAgICAgICAgIHJldHVybjsKICNpZiBFTkFC
TEUoVFJFRV9ERUJVR0dJTkcpCiAgICAgc2hvd1JlbmRlclRyZWUoJnJlbmRlclZpZXcpOwotICAg
IHNob3dMYXlvdXRUcmVlKGluaXRpYWxDb250YWluaW5nQmxvY2ssICZsYXlvdXRTdGF0ZSk7Cisg
ICAgc2hvd0xheW91dFRyZWUobGF5b3V0Um9vdCwgJmxheW91dFN0YXRlKTsKICNlbmRpZgogICAg
IFdURkxvZ0Fsd2F5cygiJXMiLCBzdHJlYW0ucmVsZWFzZSgpLnV0ZjgoKS5kYXRhKCkpOwogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Rpc3BsYXl0cmVlL0Rpc3BsYXlQYWludGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9k
aXNwbGF5dHJlZS9EaXNwbGF5UGFpbnRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjE5ZDUxYzRmZjY4Yjk0
YTc1MWJjYmFhNzkyNWVlZWJjYjMxNzRjNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5UGFpbnRlci5jcHAKQEAgLTAsMCArMSw0NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEaXNwbGF5UGFp
bnRlci5oIgorCisjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisKKyNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJMYXlvdXRTdGF0ZS5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgRGlzcGxheSB7CisKK3ZvaWQgUGFpbnRlcjo6cGFp
bnQoY29uc3QgTGF5b3V0OjpMYXlvdXRTdGF0ZSYsIEdyYXBoaWNzQ29udGV4dCYpCit7Cit9CisK
K30KK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxh
eXRyZWUvRGlzcGxheVBhaW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJl
ZS9EaXNwbGF5UGFpbnRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkOTFhZTlmMDVhMjM2Y2FkNGUzZjk4ZWY2
NjdhYzA1OGI3ODI4OGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
ZGlzcGxheXRyZWUvRGlzcGxheVBhaW50ZXIuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CisKK25hbWVz
cGFjZSBMYXlvdXQgeworY2xhc3MgTGF5b3V0U3RhdGU7Cit9CisKK25hbWVzcGFjZSBEaXNwbGF5
IHsKKworY2xhc3MgUGFpbnRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgcGFpbnQoY29u
c3QgTGF5b3V0OjpMYXlvdXRTdGF0ZSYsIEdyYXBoaWNzQ29udGV4dCYpOworfTsKKworfQorfQor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlv
dXRUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlv
dXRUcmVlQnVpbGRlci5jcHAKaW5kZXggNzEwMjJlOGE0M2UwNzU5MjJiM2NiZGVhZTU5ZTFhZGFi
YjE2MjhhZi4uNTNhNGU2MzRiNWIzNmI2YjcxMzNkMzE3YTMxYThiMzkzMWJmMWIwYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWls
ZGVyLmNwcApAQCAtMzY2LDcgKzM2Niw3IEBAIHZvaWQgcHJpbnRMYXlvdXRUcmVlRm9yTGl2ZURv
Y3VtZW50cygpCiAgICAgICAgIC8vIEZJWE1FOiBOZWVkIHRvIGZpbmQgYSB3YXkgdG8gb3V0cHV0
IGdlb21ldHJ5IHdpdGhvdXQgbGF5b3V0IGNvbnRleHQuCiAgICAgICAgIGF1dG8mIHJlbmRlclZp
ZXcgPSAqZG9jdW1lbnQtPnJlbmRlclZpZXcoKTsKICAgICAgICAgYXV0byBpbml0aWFsQ29udGFp
bmluZ0Jsb2NrID0gVHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dFRyZWUocmVuZGVyVmlldyk7Ci0g
ICAgICAgIGF1dG8gbGF5b3V0U3RhdGUgPSBMYXlvdXRTdGF0ZSB7IH07CisgICAgICAgIGF1dG8g
bGF5b3V0U3RhdGUgPSBMYXlvdXRTdGF0ZSB7ICppbml0aWFsQ29udGFpbmluZ0Jsb2NrIH07CiAg
ICAgICAgIGxheW91dFN0YXRlLnNldFF1aXJrc01vZGUocmVuZGVyVmlldy5kb2N1bWVudCgpLmlu
TGltaXRlZFF1aXJrc01vZGUoKSA/IExheW91dFN0YXRlOjpRdWlya3NNb2RlOjpMaW1pdGVkIDog
KHJlbmRlclZpZXcuZG9jdW1lbnQoKS5pblF1aXJrc01vZGUoKSA/IExheW91dFN0YXRlOjpRdWly
a3NNb2RlOjpZZXMgOiBMYXlvdXRTdGF0ZTo6UXVpcmtzTW9kZTo6Tm8pKTsKICAgICAgICAgTGF5
b3V0Q29udGV4dChsYXlvdXRTdGF0ZSkubGF5b3V0KCk7CiAgICAgICAgIHNob3dMYXlvdXRUcmVl
KCppbml0aWFsQ29udGFpbmluZ0Jsb2NrLCAmbGF5b3V0U3RhdGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCmluZGV4IGZlYTg4MGQzOGRkMmIwOGI3YzQ3NDhiNjkzMjg1ZTMxMTIwZTFhOWEu
LjgzMWUyMTZmMjVlOWM2YTk4MGI2YmEzNGE1MGEzNGMzMzM0MzcwZjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTEyOCw2ICsxMjgsMTAgQEAKICNpbmNsdWRlICJMb2NhbERlZmF1
bHRTeXN0ZW1BcHBlYXJhbmNlLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShMQVlPVVRfRk9STUFU
VElOR19DT05URVhUKQorI2luY2x1ZGUgIkxheW91dENvbnRleHQuaCIKKyNlbmRpZgorCiAjZGVm
aW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoZm10LCAuLi4pIFJFTEVBU0VfTE9HX0lGKGZyYW1l
KCkucGFnZSgpICYmIGZyYW1lKCkucGFnZSgpLT5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwg
TGF5b3V0LCAiJXAgLSBGcmFtZVZpZXc6OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MTI3LDYgKzQxMzEsMTEgQEAgdm9pZCBGcmFtZVZpZXc6
OnBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBk
aXJ0eVJlY3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmxheW91dEZvcm1hdHRpbmdDb250ZXh0RW5hYmxl
ZCgpKSB7CisgICAgICAgIExheW91dDo6TGF5b3V0Q29udGV4dDo6cnVuTGF5b3V0QW5kUGFpbnQo
KnJlbmRlclZpZXcsIGNvbnRleHQpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYg
KCFsYXlvdXRDb250ZXh0KCkuaW5QYWludGFibGVTdGF0ZSgpKQogICAgICAgICByZXR1cm47CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCmluZGV4
IGM5Yjk0MmViZjAzYTNhMjM4NDI2OTMzNTJiZGI5Y2FmNDgyMDJmMTIuLjMyMmY2Nzk3Yjk0NmQx
ZGM5Y2Q1OGY4Mjg4NjBkYmFkY2JkNzFmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcApAQCAtNTQsNyArNTQsNyBAQCBzdGF0aWMgdm9pZCBs
YXlvdXRVc2luZ0Zvcm1hdHRpbmdDb250ZXh0KGNvbnN0IFJlbmRlclZpZXcmIHJlbmRlclZpZXcp
CiB7CiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmxh
eW91dEZvcm1hdHRpbmdDb250ZXh0RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47Ci0gICAgTGF5
b3V0OjpMYXlvdXRDb250ZXh0OjpydW4ocmVuZGVyVmlldyk7CisgICAgTGF5b3V0OjpMYXlvdXRD
b250ZXh0OjpydW5MYXlvdXRBbmRWZXJpZnkocmVuZGVyVmlldyk7CiB9IAogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380289</attachid>
            <date>2019-10-05 13:30:05 -0700</date>
            <delta_ts>2019-10-06 06:58:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-202614-20191005133004.patch</filename>
            <type>text/plain</type>
            <size>22274</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVjNDNkYTVkZTIxYmUw
ODIwYmMxYmM3NWM4YjE3ZjNiY2U4MzNkMC4uMWI0ZGY2MzlhYzcxYThlY2IwNWZkOGRmNWVmMzQ3
MWQwMzJiN2NlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE5LTEwLTA1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bUGFpbnRpbmddIElu
dHJvZHVjZSBEaXNwbGF5OjpQYWludGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDI2MTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU2MDEwMzQ3
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERpc3Bs
YXk6OlBhaW50ZXIgaXMgcmVzcG9uc2libGUgZm9yIHJlbmRlcmluZyB0aGUgbm9kZXMgaW4gdGhl
IGRpc3BsYXkgdHJlZS4gVGVzdGluZyBwdXJwb3Nlcy9XSzEgb25seSBhdCB0aGlzIHBvaW50Lgor
CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGxheW91dC9MYXlvdXRDb250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6aW5pdGlhbGl6ZUxheW91dFN0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6cnVuTGF5b3V0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6cnVuTGF5b3V0QW5kVmVyaWZ5KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6TGF5b3V0Q29udGV4dDo6cnVuTGF5b3V0QW5kUGFpbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250ZXh0OjpydW4pOiBEZWxldGVkLgorICAg
ICAgICAqIGxheW91dC9MYXlvdXRDb250ZXh0Lmg6CisgICAgICAgICogbGF5b3V0L0xheW91dFN0
YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6TGF5b3V0U3RhdGU6OkxheW91dFN0
YXRlKToKKyAgICAgICAgKiBsYXlvdXQvTGF5b3V0U3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6TGF5b3V0U3RhdGU6OnJvb3QgY29uc3QpOgorICAgICAgICAqIGxheW91dC9WZXJp
ZmljYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpMYXlvdXRDb250ZXh0Ojp2
ZXJpZnlBbmRPdXRwdXRNaXNtYXRjaGluZ0xheW91dFRyZWUpOgorICAgICAgICAqIGxheW91dC9k
aXNwbGF5dHJlZS9EaXNwbGF5UGFpbnRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheTo6UGFpbnRlcjo6cGFpbnQpOgorICAgICAgICAqIGxheW91dC9kaXNwbGF5dHJlZS9E
aXNwbGF5UGFpbnRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlv
dXRUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OnByaW50TGF5b3V0
VHJlZUZvckxpdmVEb2N1bWVudHMpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cGFpbnRDb250ZW50cyk6CisgICAgICAgICogcGFn
ZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxheW91dFVz
aW5nRm9ybWF0dGluZ0NvbnRleHQpOgorCiAyMDE5LTEwLTA0ICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgogCiAgICAgICAgIENoYW5nZSAiSW52YWxpZFN0YXRlRXJyb3IiIHRvICJO
b3RTdXBwb3J0ZWRFcnJvciIgZm9yIGF0dGFjaFNoYWRvdygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDJj
YzY1Yjk3ZjM5M2ZiMjU1ZmNlM2Q1NjU3YWNhMTdlODgxYjQ3ODYuLjRhODEwOTI0ZGU3NDMyZmZm
ZTYxMmNmNWVkZDZkMWZhYjYxMzU3MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNDE1LDYgKzE0MTUs
NyBAQCBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmNwcAogbGF5
b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcAogbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja0ludmFsaWRhdGlvbi5jcHAKIGxheW91dC9kaXNwbGF5dHJlZS9EaXNw
bGF5Qm94LmNwcAorbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlQYWludGVyLmNwcAogbGF5b3V0
L2Zsb2F0cy9GbG9hdEF2b2lkZXIuY3BwCiBsYXlvdXQvZmxvYXRzL0Zsb2F0Qm94LmNwcAogbGF5
b3V0L2Zsb2F0cy9GbG9hdGluZ0NvbnRleHQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2M0MDI2MDhiYzllYmEyZTc2NDIx
YjNhZjhiM2YzNTliYTIzNjhiOC4uODNjOWVjN2Q4ZmUwNDYzZDA1MWQ1MGZlNzY5YzM5OTg2Njcx
NTkzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMjAwNyw2ICsyMDA3LDcgQEAKIAkJNkYyNkJCNkMyMzM0M0U2RjAwMkYyQkVB
IC8qIExheW91dENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDZGMjZCQjZCMjMzNDNFNUIwMDJGMkJFQSAvKiBMYXlvdXRDb250ZXh0LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkYyNkVCNDgy
MzQwMDRBNTAwNjkwNkUyIC8qIElubGluZUxpbmVMYXlvdXQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGMjZFQjQ2MjM0MDA0QTUwMDY5MDZFMiAvKiBJ
bmxpbmVMaW5lTGF5b3V0LmggKi87IH07CiAJCTZGM0UxRjYyMjEzNjE0MjAwMEE2NUEwOCAvKiBG
bG9hdEJveC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NkYzRTFGNjEyMTM2MTQxNzAwQTY1QTA4IC8qIEZsb2F0Qm94LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNkY3Nzg2ODgyMzQ5MUFEODAwNEQ5NjM2
IC8qIERpc3BsYXlQYWludGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2Rjc3ODY4NzIzNDkxQUQ3MDA0RDk2MzYgLyogRGlzcGxheVBhaW50ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RjdDQTND
NjIwOEMyOTU3MDAyRjI5QUIgLyogTGF5b3V0U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGN0NBM0M0MjA4QzI5NTYwMDJGMjlBQiAvKiBMYXlv
dXRTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTZGN0NBM0NBMjA4QzJCMkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY3Q0EzQzgy
MDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkY5OTVBMTYxQTcwNzU2MjAw
QTczNUY0IC8qIFdlYkdMU3luYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNkY5OTVBMTQxQTcwNzU2MjAwQTczNUY0IC8qIFdlYkdMU3luYy5oICovOyB9
OwpAQCAtOTE3Nyw2ICs5MTc4LDggQEAKIAkJNkY0QTVCRDUyMkY5RjE2QjAwQTgwRjI1IC8qIExh
eW91dFBoYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheW91dFBoYXNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY1QjdFQUEyMzAwQTc5RTAwNjdEOUMzIC8qIFRhYmxl
R3JpZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWJsZUdyaWQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk2RjczOTE4QzIxMDZDRUREMDA2QUYyNjIgLyogTGF5b3V0VW5pdHMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0VW5pdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNkY3Nzg2ODUyMzQ5MUFDNjAwNEQ5NjM2IC8qIERpc3BsYXlQYWludGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IERpc3BsYXlQYWludGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNkY3Nzg2ODcyMzQ5MUFENzAwNEQ5NjM2IC8qIERpc3BsYXlQYWludGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlQYWludGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGN0NBM0M0MjA4QzI5NTYwMDJGMjlBQiAvKiBMYXlvdXRT
dGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2RjdDQTNDNTIwOEMyOTU2MDAyRjI5QUIgLyogTGF5b3V0U3RhdGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0U3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2RjdDQTNDODIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NTEzLDYgKzE2NTE2LDggQEAKIAkJCWNoaWxkcmVuID0g
KAogCQkJCTExOTlGQTVBMjA4RTNDN0YwMDIzNThDQyAvKiBEaXNwbGF5Qm94LmNwcCAqLywKIAkJ
CQkxMTk5RkE1OTIwOEUzQzdGMDAyMzU4Q0MgLyogRGlzcGxheUJveC5oICovLAorCQkJCTZGNzc4
Njg1MjM0OTFBQzYwMDREOTYzNiAvKiBEaXNwbGF5UGFpbnRlci5jcHAgKi8sCisJCQkJNkY3Nzg2
ODcyMzQ5MUFENzAwNEQ5NjM2IC8qIERpc3BsYXlQYWludGVyLmggKi8sCiAJCQkJNkZEOUNENTIy
MjdFMjFDODAwRTUzOTU3IC8qIERpc3BsYXlSZWN0LmggKi8sCiAJCQkJNkZDRTFBMTgyMjYxOEFC
MzAwNEYwMzQzIC8qIERpc3BsYXlSdW4uaCAqLywKIAkJCSk7CkBAIC0yOTExMyw2ICsyOTExOCw3
IEBACiAJCQkJMEZFNUZCRDUxQzNERDUxRTAwMDdBMkNBIC8qIERpc3BsYXlMaXN0SXRlbXMuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQ3MUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlz
dFJlY29yZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1RkJEOTFDM0RENTFFMDAwN0EyQ0Eg
LyogRGlzcGxheUxpc3RSZXBsYXllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkY3Nzg2ODgyMzQ5
MUFEODAwNEQ5NjM2IC8qIERpc3BsYXlQYWludGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RkQ5
Q0Q1NDIyN0UyMUM4MDBFNTM5NTcgLyogRGlzcGxheVJlY3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQ5QUYyRDY5MTQ0MzVEMDUwMDE2QTc4NCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJEMjlFQ0M2MTkyRUNDODMwMDk4NEI3OCAvKiBEaXNwbGF5UmVmcmVz
aE1vbml0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L0xheW91dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91
dENvbnRleHQuY3BwCmluZGV4IDA4ZThlZDAxYjM5M2JlMDNkY2U4Mzg3ZDU5NjMyYWU4ZjdhMWM2
ZTMuLjMzOGVkNWEzOTMzZDZjYjIwY2I5ZmZkZmY1MmUzZDcyYmE4ZjUwNjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJCbG9ja0Zvcm1hdHRpbmdTdGF0ZS5oIgogI2luY2x1ZGUgIkJsb2NrSW52YWxpZGF0aW9uLmgi
CiAjaW5jbHVkZSAiRGlzcGxheUJveC5oIgorI2luY2x1ZGUgIkRpc3BsYXlQYWludGVyLmgiCiAj
aW5jbHVkZSAiSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJJbmxpbmVGb3Jt
YXR0aW5nU3RhdGUuaCIKICNpbmNsdWRlICJJbmxpbmVJbnZhbGlkYXRpb24uaCIKQEAgLTExNyw3
ICsxMTgsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9ybWF0dGluZ0NvbnRleHQ+IExheW91dENvbnRl
eHQ6OmNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KGNvbnN0CiAgICAgQ1JBU0goKTsKIH0KIAotdm9p
ZCBMYXlvdXRDb250ZXh0OjpydW4oY29uc3QgUmVuZGVyVmlldyYgcmVuZGVyVmlldykKK3N0YXRp
YyB2b2lkIGluaXRpYWxpemVMYXlvdXRTdGF0ZShMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNv
bnN0IFJlbmRlclZpZXcmIHJlbmRlclZpZXcpCiB7CiAgICAgYXV0byBxdWlya3NNb2RlID0gWyZd
IHsKICAgICAgICAgYXV0byYgZG9jdW1lbnQgPSByZW5kZXJWaWV3LmRvY3VtZW50KCk7CkBAIC0x
MjgsMzUgKzEyOSw1NCBAQCB2b2lkIExheW91dENvbnRleHQ6OnJ1bihjb25zdCBSZW5kZXJWaWV3
JiByZW5kZXJWaWV3KQogICAgICAgICByZXR1cm4gTGF5b3V0U3RhdGU6OlF1aXJrc01vZGU6Ok5v
OwogICAgIH07CiAKLSAgICBhdXRvIGluaXRpYWxDb250YWluaW5nQmxvY2sgPSBUcmVlQnVpbGRl
cjo6Y3JlYXRlTGF5b3V0VHJlZShyZW5kZXJWaWV3KTsKLQotICAgIGF1dG8gbGF5b3V0U3RhdGUg
PSBMYXlvdXRTdGF0ZSB7IH07CiAgICAgbGF5b3V0U3RhdGUuc2V0UXVpcmtzTW9kZShxdWlya3NN
b2RlKCkpOwotICAgIGxheW91dFN0YXRlLmNyZWF0ZUZvcm1hdHRpbmdTdGF0ZUZvckZvcm1hdHRp
bmdSb290SWZOZWVkZWQoKmluaXRpYWxDb250YWluaW5nQmxvY2spOwogCi0gICAgYXV0byBsYXlv
dXRDb250ZXh0ID0gTGF5b3V0Q29udGV4dChsYXlvdXRTdGF0ZSk7CisgICAgYXV0byYgbGF5b3V0
Um9vdCA9IGxheW91dFN0YXRlLnJvb3QoKTsKKyAgICBsYXlvdXRTdGF0ZS5jcmVhdGVGb3JtYXR0
aW5nU3RhdGVGb3JGb3JtYXR0aW5nUm9vdElmTmVlZGVkKGxheW91dFJvb3QpOworICAgIC8vIE5v
dCBlZmZpY2llbnQsIGJ1dCB0aGlzIGlzIHRlbXBvcmFyeSBhbnl3YXkuCisgICAgLy8gQ29sbGVj
dCB0aGUgb3V0LW9mLWZsb3cgZGVzY2VuZGFudHMgYXQgdGhlIGZvcm1hdHRpbmcgcm9vdCBsZXZl
bCAoYXMgb3Bwb3NlZCB0byBhdCB0aGUgY29udGFpbmluZyBibG9jayBsZXZlbCwgdGhvdWdoIHRo
ZXkgbWlnaHQgYmUgdGhlIHNhbWUpLgorICAgIGZvciAoYXV0byYgZGVzY2VuZGFudCA6IGRlc2Nl
bmRhbnRzT2ZUeXBlPEJveD4obGF5b3V0Um9vdCkpIHsKKyAgICAgICAgaWYgKCFkZXNjZW5kYW50
LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IGF1dG8mIGZvcm1hdHRpbmdTdGF0ZSA9IGxheW91dFN0YXRlLmNyZWF0ZUZvcm1hdHRpbmdTdGF0
ZUZvckZvcm1hdHRpbmdSb290SWZOZWVkZWQoZGVzY2VuZGFudC5mb3JtYXR0aW5nQ29udGV4dFJv
b3QoKSk7CisgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5hZGRPdXRPZkZsb3dCb3goZGVzY2VuZGFu
dCk7CisgICAgfQorfQogCi0gICAgYXV0byYgZGlzcGxheUJveCA9IGxheW91dFN0YXRlLmRpc3Bs
YXlCb3hGb3JMYXlvdXRCb3goKmluaXRpYWxDb250YWluaW5nQmxvY2spOwordm9pZCBMYXlvdXRD
b250ZXh0OjpydW5MYXlvdXQoTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKQoreworICAgIGF1dG8m
IGxheW91dFJvb3QgPSBsYXlvdXRTdGF0ZS5yb290KCk7CisgICAgYXV0byYgZGlzcGxheUJveCA9
IGxheW91dFN0YXRlLmRpc3BsYXlCb3hGb3JMYXlvdXRCb3gobGF5b3V0Um9vdCk7CiAgICAgZGlz
cGxheUJveC5zZXRIb3Jpem9udGFsTWFyZ2luKHsgfSk7CiAgICAgZGlzcGxheUJveC5zZXRIb3Jp
em9udGFsQ29tcHV0ZWRNYXJnaW4oeyB9KTsKICAgICBkaXNwbGF5Qm94LnNldFZlcnRpY2FsTWFy
Z2luKHsgfSk7CiAgICAgZGlzcGxheUJveC5zZXRCb3JkZXIoeyB9KTsKICAgICBkaXNwbGF5Qm94
LnNldFBhZGRpbmcoeyB9KTsKICAgICBkaXNwbGF5Qm94LnNldFRvcExlZnQoeyB9KTsKLSAgICBk
aXNwbGF5Qm94LnNldENvbnRlbnRCb3hIZWlnaHQoTGF5b3V0VW5pdChpbml0aWFsQ29udGFpbmlu
Z0Jsb2NrLT5zdHlsZSgpLmxvZ2ljYWxIZWlnaHQoKS52YWx1ZSgpKSk7Ci0gICAgZGlzcGxheUJv
eC5zZXRDb250ZW50Qm94V2lkdGgoTGF5b3V0VW5pdChpbml0aWFsQ29udGFpbmluZ0Jsb2NrLT5z
dHlsZSgpLmxvZ2ljYWxXaWR0aCgpLnZhbHVlKCkpKTsKKyAgICBkaXNwbGF5Qm94LnNldENvbnRl
bnRCb3hIZWlnaHQoTGF5b3V0VW5pdChsYXlvdXRSb290LnN0eWxlKCkubG9naWNhbEhlaWdodCgp
LnZhbHVlKCkpKTsKKyAgICBkaXNwbGF5Qm94LnNldENvbnRlbnRCb3hXaWR0aChMYXlvdXRVbml0
KGxheW91dFJvb3Quc3R5bGUoKS5sb2dpY2FsV2lkdGgoKS52YWx1ZSgpKSk7CiAKLSAgICAvLyBO
b3QgZWZmaWNpZW50LCBidXQgdGhpcyBpcyB0ZW1wb3JhcnkgYW55d2F5LgotICAgIC8vIENvbGxl
Y3QgdGhlIG91dC1vZi1mbG93IGRlc2NlbmRhbnRzIGF0IHRoZSBmb3JtYXR0aW5nIHJvb3QgbGV2
ZWwgKGFzIG9wcG9zZWQgdG8gYXQgdGhlIGNvbnRhaW5pbmcgYmxvY2sgbGV2ZWwsIHRob3VnaCB0
aGV5IG1pZ2h0IGJlIHRoZSBzYW1lKS4KLSAgICBmb3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNj
ZW5kYW50c09mVHlwZTxCb3g+KCppbml0aWFsQ29udGFpbmluZ0Jsb2NrKSkgewotICAgICAgICBp
ZiAoIWRlc2NlbmRhbnQuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCi0gICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgYXV0byYgZm9ybWF0dGluZ1N0YXRlID0gbGF5b3V0U3RhdGUuY3JlYXRl
Rm9ybWF0dGluZ1N0YXRlRm9yRm9ybWF0dGluZ1Jvb3RJZk5lZWRlZChkZXNjZW5kYW50LmZvcm1h
dHRpbmdDb250ZXh0Um9vdCgpKTsKLSAgICAgICAgZm9ybWF0dGluZ1N0YXRlLmFkZE91dE9mRmxv
d0JveChkZXNjZW5kYW50KTsKLSAgICB9Ci0gICAgbGF5b3V0Q29udGV4dC5tYXJrTmVlZHNVcGRh
dGUoKmluaXRpYWxDb250YWluaW5nQmxvY2spOworICAgIGF1dG8gbGF5b3V0Q29udGV4dCA9IExh
eW91dENvbnRleHQobGF5b3V0U3RhdGUpOworICAgIGxheW91dENvbnRleHQubWFya05lZWRzVXBk
YXRlKGxheW91dFJvb3QpOwogICAgIGxheW91dENvbnRleHQubGF5b3V0KCk7Ci0gICAgTGF5b3V0
Q29udGV4dDo6dmVyaWZ5QW5kT3V0cHV0TWlzbWF0Y2hpbmdMYXlvdXRUcmVlKGxheW91dFN0YXRl
LCByZW5kZXJWaWV3LCAqaW5pdGlhbENvbnRhaW5pbmdCbG9jayk7Cit9CisKK3ZvaWQgTGF5b3V0
Q29udGV4dDo6cnVuTGF5b3V0QW5kVmVyaWZ5KGNvbnN0IFJlbmRlclZpZXcmIHJlbmRlclZpZXcp
Cit7CisgICAgYXV0byBpbml0aWFsQ29udGFpbmluZ0Jsb2NrID0gVHJlZUJ1aWxkZXI6OmNyZWF0
ZUxheW91dFRyZWUocmVuZGVyVmlldyk7CisgICAgYXV0byBsYXlvdXRTdGF0ZSA9IExheW91dFN0
YXRlIHsgKmluaXRpYWxDb250YWluaW5nQmxvY2sgfTsKKyAgICBpbml0aWFsaXplTGF5b3V0U3Rh
dGUobGF5b3V0U3RhdGUsIHJlbmRlclZpZXcpOworICAgIHJ1bkxheW91dChsYXlvdXRTdGF0ZSk7
CisgICAgTGF5b3V0Q29udGV4dDo6dmVyaWZ5QW5kT3V0cHV0TWlzbWF0Y2hpbmdMYXlvdXRUcmVl
KGxheW91dFN0YXRlLCByZW5kZXJWaWV3KTsKK30KKwordm9pZCBMYXlvdXRDb250ZXh0OjpydW5M
YXlvdXRBbmRQYWludChjb25zdCBSZW5kZXJWaWV3JiByZW5kZXJWaWV3LCBHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQpCit7CisgICAgYXV0byBpbml0aWFsQ29udGFpbmluZ0Jsb2NrID0gVHJlZUJ1
aWxkZXI6OmNyZWF0ZUxheW91dFRyZWUocmVuZGVyVmlldyk7CisgICAgYXV0byBsYXlvdXRTdGF0
ZSA9IExheW91dFN0YXRlIHsgKmluaXRpYWxDb250YWluaW5nQmxvY2sgfTsKKyAgICBpbml0aWFs
aXplTGF5b3V0U3RhdGUobGF5b3V0U3RhdGUsIHJlbmRlclZpZXcpOworICAgIHJ1bkxheW91dChs
YXlvdXRTdGF0ZSk7CisgICAgRGlzcGxheTo6UGFpbnRlcjo6cGFpbnQobGF5b3V0U3RhdGUsIGNv
bnRleHQpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0
Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dENvbnRleHQuaAppbmRleCBj
OTFkNmVjMTY5NjlkZjVlZDFlYTUxNmNiM2RmY2UzZTA2NjZiNjNmLi5hZDllZTc1YmM2ZmJhYWZk
NDAxOWYzMzU5ZTgzYTBiOTdkNmU3OTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvTGF5b3V0Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRDb250
ZXh0LmgKQEAgLTUyLDggKzUyLDkgQEAgY2xhc3MgRm9ybWF0dGluZ0NvbnRleHQ7CiBjbGFzcyBM
YXlvdXRDb250ZXh0IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKExheW91dENvbnRleHQp
OwogcHVibGljOgotICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgdGVtcG9yYXJ5IGVudHJ5IHBvaW50
IGZvciBMRkMgbGF5b3V0LgotICAgIHN0YXRpYyB2b2lkIHJ1bihjb25zdCBSZW5kZXJWaWV3Jik7
CisgICAgLy8gRklYTUU6IFRoZXNlIGFyZSB0ZW1wb3JhcnkgZW50cnkgcG9pbnRzIGZvciBMRkMg
bGF5b3V0LgorICAgIHN0YXRpYyB2b2lkIHJ1bkxheW91dEFuZFZlcmlmeShjb25zdCBSZW5kZXJW
aWV3Jik7CisgICAgc3RhdGljIHZvaWQgcnVuTGF5b3V0QW5kUGFpbnQoY29uc3QgUmVuZGVyVmll
dyYsIEdyYXBoaWNzQ29udGV4dCYpOwogCiAgICAgTGF5b3V0Q29udGV4dChMYXlvdXRTdGF0ZSYp
OwogICAgIHZvaWQgbGF5b3V0KCk7CkBAIC03MSwxMyArNzIsMTQgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxGb3JtYXR0aW5nQ29udGV4dD4gY3JlYXRlRm9ybWF0dGlu
Z0NvbnRleHQoY29uc3QgQ29udGFpbmVyJiBmb3JtYXR0aW5nQ29udGV4dFJvb3QsIExheW91dFN0
YXRlJik7CiAKLSAgICAvLyBGb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5Ci0gICAgc3RhdGljIHZv
aWQgdmVyaWZ5QW5kT3V0cHV0TWlzbWF0Y2hpbmdMYXlvdXRUcmVlKGNvbnN0IExheW91dFN0YXRl
JiwgY29uc3QgUmVuZGVyVmlldyYsIGNvbnN0IENvbnRhaW5lciYgaW5pdGlhbENvbnRhaW5pbmdC
bG9jayk7Ci0KIHByaXZhdGU6CiAgICAgdm9pZCBsYXlvdXRGb3JtYXR0aW5nQ29udGV4dFN1YnRy
ZWUoY29uc3QgQ29udGFpbmVyJik7CiAgICAgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgeyBy
ZXR1cm4gbV9sYXlvdXRTdGF0ZTsgfQogCisgICAgLy8gRm9yIHRlc3RpbmcgcHVycG9zZXMgb25s
eQorICAgIHN0YXRpYyB2b2lkIHZlcmlmeUFuZE91dHB1dE1pc21hdGNoaW5nTGF5b3V0VHJlZShj
b25zdCBMYXlvdXRTdGF0ZSYsIGNvbnN0IFJlbmRlclZpZXcmKTsKKyAgICBzdGF0aWMgdm9pZCBy
dW5MYXlvdXQoTGF5b3V0U3RhdGUmKTsKKwogICAgIExheW91dFN0YXRlJiBtX2xheW91dFN0YXRl
OwogICAgIFdlYWtIYXNoU2V0PGNvbnN0IENvbnRhaW5lcj4gbV9mb3JtYXR0aW5nQ29udGV4dFJv
b3RMaXN0Rm9yTGF5b3V0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9M
YXlvdXRTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuY3BwCmlu
ZGV4IGFkZjFhYmJkNzgyYTQ1NGRjYmI1ZjZkZWEzZGU1ODFkMGJkZWI3YmEuLjZmYjFmNGFlOGVm
NDVjY2Q3YzRkNzEzMjQ2OTdmMjdhNmE5ZmVhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9MYXlvdXRTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91
dFN0YXRlLmNwcApAQCAtMzgsNiArMzgsMTMgQEAgbmFtZXNwYWNlIExheW91dCB7CiAKIFdURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChMYXlvdXRTdGF0ZSk7CiAKK0xheW91dFN0YXRlOjpMYXlv
dXRTdGF0ZShjb25zdCBDb250YWluZXImIHJvb3QpCisgICAgOiBtX3Jvb3QobWFrZVdlYWtQdHIo
cm9vdCkpCit7CisgICAgLy8gSXQgbWFrZXMgYWJzb2x1dGVseSBubyBzZW5zZSB0byBjb25zdHJ1
Y3QgYSBkZWRpY2F0ZWQgbGF5b3V0IHN0YXRlIGZvciBhIG5vbi1mb3JtYXR0aW5nIGNvbnRleHQg
cm9vdCAoaXQgd291bGQgYmUgYSBuby1vcCkuCisgICAgQVNTRVJUKHJvb3QuZXN0YWJsaXNoZXNG
b3JtYXR0aW5nQ29udGV4dCgpKTsKK30KKwogRGlzcGxheTo6Qm94JiBMYXlvdXRTdGF0ZTo6ZGlz
cGxheUJveEZvckxheW91dEJveChjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gKm1fbGF5b3V0VG9EaXNwbGF5Qm94LmVuc3VyZSgmbGF5b3V0Qm94LCBbJmxheW91dEJv
eF0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFN0YXRlLmggYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuaAppbmRleCA5ZDEwNjgwM2I3NjFkODgw
ODNmYjA1ZWUyOGVlNzQ5OGRiMTZjZmVhLi5jYTFiNzVmNTExZmE2MDFiMmJmZjQyZDEwMDMxMjVh
OTJiN2M1ZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0U3RhdGUuaApAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
ICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OSw2ICs1MCw3IEBAIGNsYXNzIEZvcm1hdHRpbmdT
dGF0ZTsKIGNsYXNzIExheW91dFN0YXRlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKExh
eW91dFN0YXRlKTsKIHB1YmxpYzoKKyAgICBMYXlvdXRTdGF0ZShjb25zdCBDb250YWluZXImIHJv
b3QpOwogCiAgICAgRm9ybWF0dGluZ1N0YXRlJiBjcmVhdGVGb3JtYXR0aW5nU3RhdGVGb3JGb3Jt
YXR0aW5nUm9vdElmTmVlZGVkKGNvbnN0IENvbnRhaW5lciYgZm9ybWF0dGluZ0NvbnRleHRSb290
KTsKICAgICBGb3JtYXR0aW5nU3RhdGUmIGVzdGFibGlzaGVkRm9ybWF0dGluZ1N0YXRlKGNvbnN0
IENvbnRhaW5lciYgZm9ybWF0dGluZ1Jvb3QpIGNvbnN0OwpAQCAtNjksNyArNzEsMTAgQEAgcHVi
bGljOgogICAgIGJvb2wgaW5MaW1pdGVkUXVpcmtzTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fcXVp
cmtzTW9kZSA9PSBRdWlya3NNb2RlOjpMaW1pdGVkOyB9CiAgICAgYm9vbCBpbk5vUXVpcmtzTW9k
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcXVpcmtzTW9kZSA9PSBRdWlya3NNb2RlOjpObzsgfQogCisg
ICAgY29uc3QgQ29udGFpbmVyJiByb290KCkgY29uc3QgeyByZXR1cm4gKm1fcm9vdDsgfQorCiBw
cml2YXRlOgorICAgIFdlYWtQdHI8Y29uc3QgQ29udGFpbmVyPiBtX3Jvb3Q7CiAgICAgSGFzaE1h
cDxjb25zdCBDb250YWluZXIqLCBzdGQ6OnVuaXF1ZV9wdHI8Rm9ybWF0dGluZ1N0YXRlPj4gbV9m
b3JtYXR0aW5nU3RhdGVzOwogI2lmbmRlZiBOREVCVUcKICAgICBIYXNoU2V0PGNvbnN0IEZvcm1h
dHRpbmdDb250ZXh0Kj4gbV9mb3JtYXR0aW5nQ29udGV4dExpc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9WZXJpZmljYXRpb24uY3BwCmluZGV4IDBhYmRjZmU2ZGQ3NDZkOTUwZWVmZmExMjAyZTc4OGYz
ODhiMzIyNjAuLjJmNTZmNjJkYWVhYWIzYTk3ZDE0YmE3NGE1YzcwZjJhNDBjNTRlMzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9WZXJpZmljYXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9WZXJpZmljYXRpb24uY3BwCkBAIC0zMjQsMTUgKzMyNCwxNiBAQCBz
dGF0aWMgYm9vbCB2ZXJpZnlBbmRPdXRwdXRTdWJ0cmVlKFRleHRTdHJlYW0mIHN0cmVhbSwgY29u
c3QgTGF5b3V0U3RhdGUmIGNvbnRleAogICAgIHJldHVybiBtaXNtdGFjaGluZ0dlb21ldHJ5Owog
fQogCi12b2lkIExheW91dENvbnRleHQ6OnZlcmlmeUFuZE91dHB1dE1pc21hdGNoaW5nTGF5b3V0
VHJlZShjb25zdCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNvbnN0IFJlbmRlclZpZXcmIHJl
bmRlclZpZXcsIGNvbnN0IENvbnRhaW5lciYgaW5pdGlhbENvbnRhaW5pbmdCbG9jaykKK3ZvaWQg
TGF5b3V0Q29udGV4dDo6dmVyaWZ5QW5kT3V0cHV0TWlzbWF0Y2hpbmdMYXlvdXRUcmVlKGNvbnN0
IExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgY29uc3QgUmVuZGVyVmlldyYgcmVuZGVyVmlldykK
IHsKICAgICBUZXh0U3RyZWFtIHN0cmVhbTsKLSAgICBhdXRvIG1pc21hdGNoaW5nR2VvbWV0cnkg
PSB2ZXJpZnlBbmRPdXRwdXRTdWJ0cmVlKHN0cmVhbSwgbGF5b3V0U3RhdGUsIHJlbmRlclZpZXcs
IGluaXRpYWxDb250YWluaW5nQmxvY2spOworICAgIGF1dG8mIGxheW91dFJvb3QgPSBsYXlvdXRT
dGF0ZS5yb290KCk7CisgICAgYXV0byBtaXNtYXRjaGluZ0dlb21ldHJ5ID0gdmVyaWZ5QW5kT3V0
cHV0U3VidHJlZShzdHJlYW0sIGxheW91dFN0YXRlLCByZW5kZXJWaWV3LCBsYXlvdXRSb290KTsK
ICAgICBpZiAoIW1pc21hdGNoaW5nR2VvbWV0cnkpCiAgICAgICAgIHJldHVybjsKICNpZiBFTkFC
TEUoVFJFRV9ERUJVR0dJTkcpCiAgICAgc2hvd1JlbmRlclRyZWUoJnJlbmRlclZpZXcpOwotICAg
IHNob3dMYXlvdXRUcmVlKGluaXRpYWxDb250YWluaW5nQmxvY2ssICZsYXlvdXRTdGF0ZSk7Cisg
ICAgc2hvd0xheW91dFRyZWUobGF5b3V0Um9vdCwgJmxheW91dFN0YXRlKTsKICNlbmRpZgogICAg
IFdURkxvZ0Fsd2F5cygiJXMiLCBzdHJlYW0ucmVsZWFzZSgpLnV0ZjgoKS5kYXRhKCkpOwogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Rpc3BsYXl0cmVlL0Rpc3BsYXlQYWludGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9k
aXNwbGF5dHJlZS9EaXNwbGF5UGFpbnRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjE5ZDUxYzRmZjY4Yjk0
YTc1MWJjYmFhNzkyNWVlZWJjYjMxNzRjNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5UGFpbnRlci5jcHAKQEAgLTAsMCArMSw0NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEaXNwbGF5UGFp
bnRlci5oIgorCisjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisKKyNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJMYXlvdXRTdGF0ZS5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgRGlzcGxheSB7CisKK3ZvaWQgUGFpbnRlcjo6cGFp
bnQoY29uc3QgTGF5b3V0OjpMYXlvdXRTdGF0ZSYsIEdyYXBoaWNzQ29udGV4dCYpCit7Cit9CisK
K30KK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxh
eXRyZWUvRGlzcGxheVBhaW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJl
ZS9EaXNwbGF5UGFpbnRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkOTFhZTlmMDVhMjM2Y2FkNGUzZjk4ZWY2
NjdhYzA1OGI3ODI4OGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
ZGlzcGxheXRyZWUvRGlzcGxheVBhaW50ZXIuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CisKK25hbWVz
cGFjZSBMYXlvdXQgeworY2xhc3MgTGF5b3V0U3RhdGU7Cit9CisKK25hbWVzcGFjZSBEaXNwbGF5
IHsKKworY2xhc3MgUGFpbnRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIHZvaWQgcGFpbnQoY29u
c3QgTGF5b3V0OjpMYXlvdXRTdGF0ZSYsIEdyYXBoaWNzQ29udGV4dCYpOworfTsKKworfQorfQor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlv
dXRUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlv
dXRUcmVlQnVpbGRlci5jcHAKaW5kZXggNzEwMjJlOGE0M2UwNzU5MjJiM2NiZGVhZTU5ZTFhZGFi
YjE2MjhhZi4uNTNhNGU2MzRiNWIzNmI2YjcxMzNkMzE3YTMxYThiMzkzMWJmMWIwYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWls
ZGVyLmNwcApAQCAtMzY2LDcgKzM2Niw3IEBAIHZvaWQgcHJpbnRMYXlvdXRUcmVlRm9yTGl2ZURv
Y3VtZW50cygpCiAgICAgICAgIC8vIEZJWE1FOiBOZWVkIHRvIGZpbmQgYSB3YXkgdG8gb3V0cHV0
IGdlb21ldHJ5IHdpdGhvdXQgbGF5b3V0IGNvbnRleHQuCiAgICAgICAgIGF1dG8mIHJlbmRlclZp
ZXcgPSAqZG9jdW1lbnQtPnJlbmRlclZpZXcoKTsKICAgICAgICAgYXV0byBpbml0aWFsQ29udGFp
bmluZ0Jsb2NrID0gVHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dFRyZWUocmVuZGVyVmlldyk7Ci0g
ICAgICAgIGF1dG8gbGF5b3V0U3RhdGUgPSBMYXlvdXRTdGF0ZSB7IH07CisgICAgICAgIGF1dG8g
bGF5b3V0U3RhdGUgPSBMYXlvdXRTdGF0ZSB7ICppbml0aWFsQ29udGFpbmluZ0Jsb2NrIH07CiAg
ICAgICAgIGxheW91dFN0YXRlLnNldFF1aXJrc01vZGUocmVuZGVyVmlldy5kb2N1bWVudCgpLmlu
TGltaXRlZFF1aXJrc01vZGUoKSA/IExheW91dFN0YXRlOjpRdWlya3NNb2RlOjpMaW1pdGVkIDog
KHJlbmRlclZpZXcuZG9jdW1lbnQoKS5pblF1aXJrc01vZGUoKSA/IExheW91dFN0YXRlOjpRdWly
a3NNb2RlOjpZZXMgOiBMYXlvdXRTdGF0ZTo6UXVpcmtzTW9kZTo6Tm8pKTsKICAgICAgICAgTGF5
b3V0Q29udGV4dChsYXlvdXRTdGF0ZSkubGF5b3V0KCk7CiAgICAgICAgIHNob3dMYXlvdXRUcmVl
KCppbml0aWFsQ29udGFpbmluZ0Jsb2NrLCAmbGF5b3V0U3RhdGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCmluZGV4IGZlYTg4MGQzOGRkMmIwOGI3YzQ3NDhiNjkzMjg1ZTMxMTIwZTFhOWEu
LmQ3MmJhN2VmN2QxMGE5NDMzZjY4ZDcyYTc0NWY4Y2M0MWE4ZDlkMWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTEyOCw2ICsxMjgsMTAgQEAKICNpbmNsdWRlICJMb2NhbERlZmF1
bHRTeXN0ZW1BcHBlYXJhbmNlLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShMQVlPVVRfRk9STUFU
VElOR19DT05URVhUKQorI2luY2x1ZGUgIkxheW91dENvbnRleHQuaCIKKyNlbmRpZgorCiAjZGVm
aW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoZm10LCAuLi4pIFJFTEVBU0VfTE9HX0lGKGZyYW1l
KCkucGFnZSgpICYmIGZyYW1lKCkucGFnZSgpLT5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwg
TGF5b3V0LCAiJXAgLSBGcmFtZVZpZXc6OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MTI3LDYgKzQxMzEsMTMgQEAgdm9pZCBGcmFtZVZpZXc6
OnBhaW50Q29udGVudHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBk
aXJ0eVJlY3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorI2lmIEVOQUJMRShMQVlPVVRfRk9S
TUFUVElOR19DT05URVhUKQorICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRG
ZWF0dXJlcygpLmxheW91dEZvcm1hdHRpbmdDb250ZXh0RW5hYmxlZCgpKSB7CisgICAgICAgIExh
eW91dDo6TGF5b3V0Q29udGV4dDo6cnVuTGF5b3V0QW5kUGFpbnQoKnJlbmRlclZpZXcsIGNvbnRl
eHQpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKICAgICBpZiAoIWxheW91dENv
bnRleHQoKS5pblBhaW50YWJsZVN0YXRlKCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKaW5kZXggYzliOTQyZWJm
MDNhM2EyMzg0MjY5MzM1MmJkYjljYWY0ODIwMmYxMi4uMzIyZjY3OTdiOTQ2ZDFkYzljZDU4Zjgy
ODg2MGRiYWRjYmQ3MWY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXdMYXlvdXRDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xh
eW91dENvbnRleHQuY3BwCkBAIC01NCw3ICs1NCw3IEBAIHN0YXRpYyB2b2lkIGxheW91dFVzaW5n
Rm9ybWF0dGluZ0NvbnRleHQoY29uc3QgUmVuZGVyVmlldyYgcmVuZGVyVmlldykKIHsKICAgICBp
ZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkubGF5b3V0Rm9ybWF0
dGluZ0NvbnRleHRFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBMYXlvdXQ6OkxheW91
dENvbnRleHQ6OnJ1bihyZW5kZXJWaWV3KTsKKyAgICBMYXlvdXQ6OkxheW91dENvbnRleHQ6OnJ1
bkxheW91dEFuZFZlcmlmeShyZW5kZXJWaWV3KTsKIH0gCiAjZW5kaWYKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>