<?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>146381</bug_id>
          
          <creation_ts>2015-06-27 00:52:05 -0700</creation_ts>
          <short_desc>Cannot open font panel in Safari</short_desc>
          <delta_ts>2018-10-04 13:20:19 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>enrica</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1105154</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-06-27 00:52:05 -0700</bug_when>
    <thetext>Reproduction steps:
1. Open any page with contenteditable=true (e.g. simple-rte.rniwa.com) on Safari 8 or on ToT spade build
2. Select some text
3. Open context menu
4. Font &gt; Show Fonts

Expected result:
Font panel opens

Actual result:
Nothing happens.

&lt;rdar://problem/21577518&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105156</commentid>
    <comment_count>1</comment_count>
      <attachid>255694</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-06-27 00:56:31 -0700</bug_when>
    <thetext>Created attachment 255694
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1105157</commentid>
    <comment_count>2</comment_count>
      <attachid>255694</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-06-27 00:56:45 -0700</bug_when>
    <thetext>Comment on attachment 255694
Fixes the bug

Oops, wrong bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>255694</attachid>
            <date>2015-06-27 00:56:31 -0700</date>
            <delta_ts>2015-06-28 17:48:58 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>fix146381.patch</filename>
            <type>text/plain</type>
            <size>28398</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NjAyMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE1LTA2LTI3ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEZvbnQgcGFuZWwgZG9lc24ndCBn
ZXQgdXBkYXRlZCB3aGVuIGJvbGRpbmcgdGV4dCB2aWEgY21kK2IgaW4gTWFpbCBvbiBPUyBYCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDYzNzkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgYnVnIHdh
cyBjYXVzZWQgYnkgV2ViS2l0IG5vdCB1cGRhdGluZyB0aGUgZm9udCBwYW5lbCB3aGVuIHRoZSB0
eXBpbmcgc3R5bGUgY2hhbmdlcy4KKyAgICAgICAgVGhlcmUgd2FzIGFsc28gYSBidWcgdGhhdCBX
ZWJLaXQgbmV2ZXIgdXBkYXRlZCBmb250IGF0dHJpYnV0ZXMgb24gT1MgWC4KKworICAgICAgICBG
aXhlZCB0aGUgYnVncyBieSBhbHdheXMgdXBkYXRpbmcgdGhlIGZvbnQgcGFuZWwgYWZ0ZXIgYXBw
bHlpbmcgc3R5bGUgaW5zdGVhZCBvZiBvbmx5CisgICAgICAgIHdoZW4gdGhlIHNlbGVjdGlvbiBj
aGFuZ2VzIGFuZCBzZXR0aW5nIHRoZSBmb250IGF0dHJpYnV0ZXMuCisKKyAgICAgICAgSSB0cmll
ZCByZWFsbHkgaGFkIHRvIHdyaXRlIGEgV2ViS2l0IEFQSSB0ZXN0IGJ1dCBJIGNvdWxkbid0IGdl
dCBpdCB0byB3b3JrIHNvIHRoZXJlIGFyZQorICAgICAgICBubyBuZXcgdGVzdHMgOigKKworICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBlZGl0
aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmFwcGx5U3R5bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzaG91bGRBcHBseVN0eWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvcjo6YXBwbHlQYXJhZ3JhcGhTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3I6OmFwcGx5U3R5bGVUb1NlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OmFwcGx5UGFyYWdyYXBoU3R5bGVUb1NlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3I6OnNlbGVjdGlvblN0YXJ0SGFzU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpk
b2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnN0eWxlRm9yU2VsZWN0aW9uU3Rh
cnQpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgICogZWRp
dGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3I6OnN0eWxlRm9yU2VsZWN0aW9uU3RhcnQpOiBNb3ZlZCBmcm9tIEVkaXRvci5jcHAKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRvcjo6Z2V0VGV4dERlY29yYXRpb25BdHRyaWJ1dGVzUmVzcGVjdGlu
Z1R5cGluZ1N0eWxlKTogRXh0cmFjdGVkIGZyb20gaU9TJ3MKKyAgICAgICAgZm9udEF0dHJpYnV0
ZXNGb3JTZWxlY3Rpb25TdGFydCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgKiBlZGl0aW5nL2lv
cy9FZGl0b3JJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmZvbnRBdHRyaWJ1dGVz
Rm9yU2VsZWN0aW9uU3RhcnQpOgorICAgICAgICAqIGVkaXRpbmcvbWFjL0VkaXRvck1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Zm9udEF0dHJpYnV0ZXNGb3JTZWxlY3Rpb25TdGFy
dCk6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAqIHBhZ2UvRWRp
dG9yQ2xpZW50Lmg6CisKIDIwMTUtMDYtMjcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1NPVVBdIEltcGxlbWVudCBXZWJDb3JlOjpQ
dWJsaWNTdWZmaXggZm9yIHNvdXAgYW5kIGVuYWJsZSBQVUJMSUNfU1VGRklYX0xJU1QgZm9yIEdU
SysKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDE4NjAyMSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzc4NCw2ICszNzg0LDcg
QEAKIAkJOUI0MTcwNjQxMjU2NjJCMzAwNkIyOEZDIC8qIEFwcGx5QmxvY2tFbGVtZW50Q29tbWFu
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI0MTcw
NjIxMjU2NjJCMzAwNkIyOEZDIC8qIEFwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5oICovOyB9Owog
CQk5QjQxNzA2NTEyNTY2MkIzMDA2QjI4RkMgLyogQXBwbHlCbG9ja0VsZW1lbnRDb21tYW5kLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCNDE3MDYz
MTI1NjYyQjMwMDZCMjhGQyAvKiBBcHBseUJsb2NrRWxlbWVudENvbW1hbmQuY3BwICovOyB9Owog
CQk5QjUwQjFERTE3Q0Q0QzBGMDA4N0Y2M0MgLyogRm9ybU5hbWVkSXRlbS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUI1MEIxREMxN0NENEMwRjAwODdG
NjNDIC8qIEZvcm1OYW1lZEl0ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk5QjU1RUVFOTFCM0U4ODk4MDA1MzQyQkMgLyogRWRpdG9yQ29jb2Eu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjU1RUVF
ODFCM0U4ODk4MDA1MzQyQkMgLyogRWRpdG9yQ29jb2EubW0gKi87IH07CiAJCTlCNkM0MTUzMTM0
NDk0OTAwMDA4NUI2MiAvKiBTdHJpbmdXaXRoRGlyZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QjZDNDE1MjEzNDQ5NDkwMDAwODVCNjIgLyog
U3RyaW5nV2l0aERpcmVjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTlCQTI3M0Y0MTcyMjA2QkIwMDk3Q0U0NyAvKiBMb2dpY2FsU2VsZWN0
aW9uT2Zmc2V0Q2FjaGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5QkEyNzNGMzE3MjIwNkJCMDA5N0NFNDcgLyogTG9naWNhbFNlbGVjdGlvbk9mZnNl
dENhY2hlcy5oICovOyB9OwogCQk5QkFCNkM2QzEyNTUwNjMxMDAxNjI2RDQgLyogRWRpdGluZ1N0
eWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QkFC
NkM2QTEyNTUwNjMxMDAxNjI2RDQgLyogRWRpdGluZ1N0eWxlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExMTA4LDYgKzExMTA5LDcgQEAKIAkJ
OUI0MTcwNjIxMjU2NjJCMzAwNkIyOEZDIC8qIEFwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBseUJsb2NrRWxlbWVudENvbW1hbmQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUI0MTcwNjMxMjU2NjJCMzAwNkIyOEZD
IC8qIEFwcGx5QmxvY2tFbGVtZW50Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBBcHBseUJsb2NrRWxlbWVudENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5QjUwQjFEQzE3Q0Q0QzBGMDA4N0Y2M0MgLyogRm9ybU5hbWVkSXRl
bS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtTmFtZWRJdGVtLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCNTVFRUU4MUIzRTg4OTgwMDUzNDJCQyAvKiBF
ZGl0b3JDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEVk
aXRvckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5QjZDNDE1MjEzNDQ5
NDkwMDAwODVCNjIgLyogU3RyaW5nV2l0aERpcmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTdHJpbmdXaXRoRGlyZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTlCQTI3M0YzMTcyMjA2QkIwMDk3Q0U0NyAvKiBMb2dpY2FsU2VsZWN0aW9uT2Zm
c2V0Q2FjaGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvZ2ljYWxTZWxl
Y3Rpb25PZmZzZXRDYWNoZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJBQjZD
NkExMjU1MDYzMTAwMTYyNkQ0IC8qIEVkaXRpbmdTdHlsZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBFZGl0aW5nU3R5bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE3MTYwLDYgKzE3MTYyLDcgQEAKIAkJN0MzRTUxMDcxOERGOEYxMjAwQzExMkY3IC8qIGNv
Y29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk5QjU1
RUVFODFCM0U4ODk4MDA1MzQyQkMgLyogRWRpdG9yQ29jb2EubW0gKi8sCiAJCQkJN0MzRTUxMDgx
OERGOEYzNTAwQzExMkY3IC8qIEhUTUxDb252ZXJ0ZXIuaCAqLywKIAkJCQk3QzNFNTEwOTE4REY4
RjM1MDBDMTEyRjcgLyogSFRNTENvbnZlcnRlci5tbSAqLywKIAkJCSk7CkBAIC0yOTYxMSw2ICsy
OTYxNCw3IEBACiAJCQkJRkU5RTg5RkIxNkUyREMwNTAwQTkwOEY4IC8qIE9yaWdpbkxvY2suY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRkQ1ODFGQUUxNTIwRjkxRjAwM0E3QTc1IC8qIE9zY2lsbGF0
b3JOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMEQ1NzM2MEE1Qzc3RkUwMDdFREQ0QyAv
KiBPdmVyZmxvd0V2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTlCNTVFRUU5MUIzRTg4OTgw
MDUzNDJCQyAvKiBFZGl0b3JDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTY1RkVBODY5MDk4
MzNBREUwMEJFRDRBQiAvKiBQYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0NzdFNzc2MEJG
NDEzNEEwMDE1Mjg3MiAvKiBQYWdlQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q1RTVC
NjExQTE1RjE1NjAwMEM2MDlFIC8qIFBhZ2VDb25maWd1cmF0aW9uLmNwcCBpbiBTb3VyY2VzICov
LApJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gMTg2MDIxKQorKysg
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04ODQs
OCArODg0LDcgQEAKIHsKICAgICBzd2l0Y2ggKG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9u
KCkuc2VsZWN0aW9uVHlwZSgpKSB7CiAgICAgY2FzZSBWaXNpYmxlU2VsZWN0aW9uOjpOb1NlbGVj
dGlvbjoKLSAgICAgICAgLy8gZG8gbm90aGluZwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgVmlzaWJsZVNlbGVjdGlvbjo6Q2FyZXRTZWxlY3Rpb246CiAgICAgICAg
IGNvbXB1dGVBbmRTZXRUeXBpbmdTdHlsZShFZGl0aW5nU3R5bGU6OmNyZWF0ZShzdHlsZSksIGVk
aXRpbmdBY3Rpb24pOwogICAgICAgICBicmVhazsKQEAgLTg5NCwxNCArODkzLDE0IEBACiAgICAg
ICAgICAgICBhcHBseUNvbW1hbmQoQXBwbHlTdHlsZUNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgp
LCBFZGl0aW5nU3R5bGU6OmNyZWF0ZShzdHlsZSkucHRyKCksIGVkaXRpbmdBY3Rpb24pKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQorICAgIGNsaWVudCgpLT5kaWRBcHBseVN0eWxlKCk7CiB9CiAK
IHZvaWQgRWRpdG9yOjphcHBseVN0eWxlKFJlZlB0cjxFZGl0aW5nU3R5bGU+JiYgc3R5bGUsIEVk
aXRBY3Rpb24gZWRpdGluZ0FjdGlvbikKIHsKICAgICBzd2l0Y2ggKG1fZnJhbWUuc2VsZWN0aW9u
KCkuc2VsZWN0aW9uKCkuc2VsZWN0aW9uVHlwZSgpKSB7CiAgICAgY2FzZSBWaXNpYmxlU2VsZWN0
aW9uOjpOb1NlbGVjdGlvbjoKLSAgICAgICAgLy8gZG8gbm90aGluZwotICAgICAgICBicmVhazsK
KyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgVmlzaWJsZVNlbGVjdGlvbjo6Q2FyZXRTZWxlY3Rp
b246CiAgICAgICAgIGNvbXB1dGVBbmRTZXRUeXBpbmdTdHlsZSgqc3R5bGUsIGVkaXRpbmdBY3Rp
b24pOwogICAgICAgICBicmVhazsKQEAgLTkxMCw2ICs5MDksNyBAQAogICAgICAgICAgICAgYXBw
bHlDb21tYW5kKEFwcGx5U3R5bGVDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgc3R5bGUuZ2V0
KCksIGVkaXRpbmdBY3Rpb24pKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQorICAgIGNsaWVudCgp
LT5kaWRBcHBseVN0eWxlKCk7CiB9CiAgICAgCiBib29sIEVkaXRvcjo6c2hvdWxkQXBwbHlTdHls
ZShTdHlsZVByb3BlcnRpZXMqIHN0eWxlLCBSYW5nZSogcmFuZ2UpCkBAIC05MjEsMTQgKzkyMSwx
NCBAQAogewogICAgIHN3aXRjaCAobV9mcmFtZS5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS5zZWxl
Y3Rpb25UeXBlKCkpIHsKICAgICBjYXNlIFZpc2libGVTZWxlY3Rpb246Ok5vU2VsZWN0aW9uOgot
ICAgICAgICAvLyBkbyBub3RoaW5nCi0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm47CiAg
ICAgY2FzZSBWaXNpYmxlU2VsZWN0aW9uOjpDYXJldFNlbGVjdGlvbjoKICAgICBjYXNlIFZpc2li
bGVTZWxlY3Rpb246OlJhbmdlU2VsZWN0aW9uOgogICAgICAgICBpZiAoc3R5bGUpCiAgICAgICAg
ICAgICBhcHBseUNvbW1hbmQoQXBwbHlTdHlsZUNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBF
ZGl0aW5nU3R5bGU6OmNyZWF0ZShzdHlsZSkucHRyKCksIGVkaXRpbmdBY3Rpb24sIEFwcGx5U3R5
bGVDb21tYW5kOjpGb3JjZUJsb2NrUHJvcGVydGllcykpOwogICAgICAgICBicmVhazsKICAgICB9
CisgICAgY2xpZW50KCktPmRpZEFwcGx5U3R5bGUoKTsKIH0KIAogdm9pZCBFZGl0b3I6OmFwcGx5
U3R5bGVUb1NlbGVjdGlvbihTdHlsZVByb3BlcnRpZXMqIHN0eWxlLCBFZGl0QWN0aW9uIGVkaXRp
bmdBY3Rpb24pCkBAIC05NDYsMTAgKzk0Niw4IEBACiAgICAgaWYgKHN0eWxlLT5pc0VtcHR5KCkg
fHwgIWNhbkVkaXRSaWNobHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gRklYTUU6IFRo
aXMgaXMgd3JvbmcgZm9yIHRleHQgZGVjb3JhdGlvbnMgc2luY2UgbV9tdXRhYmxlU3R5bGUgaXMg
ZW1wdHkuCiAgICAgaWYgKCFjbGllbnQoKSB8fCAhY2xpZW50KCktPnNob3VsZEFwcGx5U3R5bGUo
c3R5bGUtPnN0eWxlV2l0aFJlc29sdmVkVGV4dERlY29yYXRpb25zKCkucHRyKCksIG1fZnJhbWUu
c2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSkpCiAgICAgICAgIHJldHVybjsK
LQogICAgIGFwcGx5U3R5bGUoV1RGOjptb3ZlKHN0eWxlKSwgZWRpdGluZ0FjdGlvbik7CiB9CiAK
QEAgLTk1OCw4ICs5NTYsOSBAQAogICAgIGlmICghc3R5bGUgfHwgc3R5bGUtPmlzRW1wdHkoKSB8
fCAhY2FuRWRpdFJpY2hseSgpKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgaWYgKGNsaWVu
dCgpICYmIGNsaWVudCgpLT5zaG91bGRBcHBseVN0eWxlKHN0eWxlLCBtX2ZyYW1lLnNlbGVjdGlv
bigpLnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0KCkpKQotICAgICAgICBhcHBseVBhcmFncmFwaFN0
eWxlKHN0eWxlLCBlZGl0aW5nQWN0aW9uKTsKKyAgICBpZiAoIWNsaWVudCgpIHx8ICFjbGllbnQo
KS0+c2hvdWxkQXBwbHlTdHlsZShzdHlsZSwgbV9mcmFtZS5zZWxlY3Rpb24oKS50b05vcm1hbGl6
ZWRSYW5nZSgpLmdldCgpKSkKKyAgICAgICAgcmV0dXJuOworICAgIGFwcGx5UGFyYWdyYXBoU3R5
bGUoc3R5bGUsIGVkaXRpbmdBY3Rpb24pOwogfQogCiBib29sIEVkaXRvcjo6c2VsZWN0aW9uU3Rh
cnRIYXNTdHlsZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SUQsIGNvbnN0IFN0cmluZyYgdmFsdWUp
IGNvbnN0CkBAIC0zNTY4LDM3ICszNTY3LDQgQEAKICAgICByZXR1cm4gKm1fZnJhbWUuZG9jdW1l
bnQoKTsKIH0KIAotI2lmIFBMQVRGT1JNKENPQ09BKQotLy8gRklYTUU6IFRoaXMgZmlndXJlcyBv
dXQgdGhlIGN1cnJlbnQgc3R5bGUgYnkgaW5zZXJ0aW5nIGEgPHNwYW4+IQotUmVuZGVyU3R5bGUq
IEVkaXRvcjo6c3R5bGVGb3JTZWxlY3Rpb25TdGFydChGcmFtZSogZnJhbWUsIE5vZGUgKiZub2Rl
VG9SZW1vdmUpCi17Ci0gICAgbm9kZVRvUmVtb3ZlID0gbnVsbHB0cjsKLQotICAgIGlmIChmcmFt
ZS0+c2VsZWN0aW9uKCkuaXNOb25lKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAg
UG9zaXRpb24gcG9zaXRpb24gPSBmcmFtZS0+c2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkudmlzaWJs
ZVN0YXJ0KCkuZGVlcEVxdWl2YWxlbnQoKTsKLSAgICBpZiAoIXBvc2l0aW9uLmlzQ2FuZGlkYXRl
KCkgfHwgcG9zaXRpb24uaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAg
UmVmUHRyPEVkaXRpbmdTdHlsZT4gdHlwaW5nU3R5bGUgPSBmcmFtZS0+c2VsZWN0aW9uKCkudHlw
aW5nU3R5bGUoKTsKLSAgICBpZiAoIXR5cGluZ1N0eWxlIHx8ICF0eXBpbmdTdHlsZS0+c3R5bGUo
KSkKLSAgICAgICAgcmV0dXJuICZwb3NpdGlvbi5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigp
LT5zdHlsZSgpOwotCi0gICAgUmVmUHRyPEVsZW1lbnQ+IHN0eWxlRWxlbWVudCA9IGZyYW1lLT5k
b2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHNwYW5UYWcsIGZhbHNlKTsKLQotICAgIFN0cmluZyBz
dHlsZVRleHQgPSB0eXBpbmdTdHlsZS0+c3R5bGUoKS0+YXNUZXh0KCkgKyAiIGRpc3BsYXk6IGlu
bGluZSI7Ci0gICAgc3R5bGVFbGVtZW50LT5zZXRBdHRyaWJ1dGUoc3R5bGVBdHRyLCBzdHlsZVRl
eHQpOwotCi0gICAgc3R5bGVFbGVtZW50LT5hcHBlbmRDaGlsZChmcmFtZS0+ZG9jdW1lbnQoKS0+
Y3JlYXRlRWRpdGluZ1RleHROb2RlKCIiKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0KLSAgICBw
b3NpdGlvbi5kZXByZWNhdGVkTm9kZSgpLT5wYXJlbnROb2RlKCktPmFwcGVuZENoaWxkKHN0eWxl
RWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7Ci0KLSAgICBub2RlVG9SZW1vdmUgPSBzdHls
ZUVsZW1lbnQuZ2V0KCk7Ci0KLSAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5l
ZWRlZCgpOwotICAgIHJldHVybiBzdHlsZUVsZW1lbnQtPnJlbmRlcmVyKCkgPyAmc3R5bGVFbGVt
ZW50LT5yZW5kZXJlcigpLT5zdHlsZSgpIDogbnVsbHB0cjsKLX0KLSNlbmRpZgotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgJKHJldmlzaW9uIDE4
NjAyMSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ1LDYgKzQ1LDcgQEAKICNpZiBQTEFURk9STShDT0NPQSkKIE9CSkNfQ0xBU1MgTlNBdHRy
aWJ1dGVkU3RyaW5nOwogT0JKQ19DTEFTUyBOU0RpY3Rpb25hcnk7CitPQkpDX0NMQVNTIE5TTXV0
YWJsZURpY3Rpb25hcnk7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDI0LDYg
KzQyNSw3IEBACiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgUmVuZGVyU3R5bGUqIHN0eWxlRm9yU2VsZWN0aW9uU3RhcnQoRnJhbWUqICwgTm9kZSAqJm5v
ZGVUb1JlbW92ZSk7CisgICAgdm9pZCBnZXRUZXh0RGVjb3JhdGlvbkF0dHJpYnV0ZXNSZXNwZWN0
aW5nVHlwaW5nU3R5bGUoUmVuZGVyU3R5bGUqLCBOU011dGFibGVEaWN0aW9uYXJ5KikgY29uc3Q7
CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3JJblF1b3Rl
ZENvbnRlbnQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBGb250KiBmb250Rm9yU2VsZWN0
aW9uKGJvb2wmKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBOU0RpY3Rpb25hcnkgKmZvbnRB
dHRyaWJ1dGVzRm9yU2VsZWN0aW9uU3RhcnQoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9FZGl0b3JDb2NvYS5tbQkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvY29jb2EvRWRpdG9yQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAxMywg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRWRp
dG9yLmgiCisKKyNpbXBvcnQgIkVkaXRpbmdTdHlsZS5oIgorI2ltcG9ydCAiRnJhbWUuaCIKKyNp
bXBvcnQgIkZyYW1lU2VsZWN0aW9uLmgiCisjaW1wb3J0ICJSZW5kZXJFbGVtZW50LmgiCisjaW1w
b3J0ICJSZW5kZXJTdHlsZS5oIgorI2ltcG9ydCAiVGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKKy8vIEZJWE1FOiBUaGlzIGZpZ3VyZXMgb3V0IHRoZSBjdXJyZW50IHN0eWxlIGJ5IGlu
c2VydGluZyBhIDxzcGFuPiEKK1JlbmRlclN0eWxlKiBFZGl0b3I6OnN0eWxlRm9yU2VsZWN0aW9u
U3RhcnQoRnJhbWUqIGZyYW1lLCBOb2RlICombm9kZVRvUmVtb3ZlKQoreworICAgIG5vZGVUb1Jl
bW92ZSA9IG51bGxwdHI7CisgICAgCisgICAgaWYgKGZyYW1lLT5zZWxlY3Rpb24oKS5pc05vbmUo
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBQb3NpdGlvbiBwb3NpdGlvbiA9IGZy
YW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24oKS52aXNpYmxlU3RhcnQoKS5kZWVwRXF1aXZhbGVu
dCgpOworICAgIGlmICghcG9zaXRpb24uaXNDYW5kaWRhdGUoKSB8fCBwb3NpdGlvbi5pc051bGwo
KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiB0
eXBpbmdTdHlsZSA9IGZyYW1lLT5zZWxlY3Rpb24oKS50eXBpbmdTdHlsZSgpOworICAgIGlmICgh
dHlwaW5nU3R5bGUgfHwgIXR5cGluZ1N0eWxlLT5zdHlsZSgpKQorICAgICAgICByZXR1cm4gJnBv
c2l0aW9uLmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCktPnN0eWxlKCk7CisKKyAgICBSZWZQ
dHI8RWxlbWVudD4gc3R5bGVFbGVtZW50ID0gZnJhbWUtPmRvY3VtZW50KCktPmNyZWF0ZUVsZW1l
bnQoSFRNTE5hbWVzOjpzcGFuVGFnLCBmYWxzZSk7CisKKyAgICBTdHJpbmcgc3R5bGVUZXh0ID0g
dHlwaW5nU3R5bGUtPnN0eWxlKCktPmFzVGV4dCgpICsgIiBkaXNwbGF5OiBpbmxpbmUiOworICAg
IHN0eWxlRWxlbWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3R5bGVBdHRyLCBzdHlsZVRl
eHQpOworCisgICAgc3R5bGVFbGVtZW50LT5hcHBlbmRDaGlsZChmcmFtZS0+ZG9jdW1lbnQoKS0+
Y3JlYXRlRWRpdGluZ1RleHROb2RlKCIiKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisKKyAgICBw
b3NpdGlvbi5kZXByZWNhdGVkTm9kZSgpLT5wYXJlbnROb2RlKCktPmFwcGVuZENoaWxkKHN0eWxl
RWxlbWVudCwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisKKyAgICBub2RlVG9SZW1vdmUgPSBzdHls
ZUVsZW1lbnQuZ2V0KCk7CisKKyAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlU3R5bGVJZk5l
ZWRlZCgpOworICAgIHJldHVybiBzdHlsZUVsZW1lbnQtPnJlbmRlcmVyKCkgPyAmc3R5bGVFbGVt
ZW50LT5yZW5kZXJlcigpLT5zdHlsZSgpIDogbnVsbHB0cjsKK30KKwordm9pZCBFZGl0b3I6Omdl
dFRleHREZWNvcmF0aW9uQXR0cmlidXRlc1Jlc3BlY3RpbmdUeXBpbmdTdHlsZShSZW5kZXJTdHls
ZSogc3R5bGUsIE5TTXV0YWJsZURpY3Rpb25hcnkqIHJlc3VsdCkgY29uc3QKK3sKKyAgICBSZWZQ
dHI8RWRpdGluZ1N0eWxlPiB0eXBpbmdTdHlsZSA9IG1fZnJhbWUuc2VsZWN0aW9uKCkudHlwaW5n
U3R5bGUoKTsKKyAgICBpZiAodHlwaW5nU3R5bGUgJiYgdHlwaW5nU3R5bGUtPnN0eWxlKCkpIHsK
KyAgICAgICAgU3RyaW5nIHZhbHVlID0gdHlwaW5nU3R5bGUtPnN0eWxlKCktPmdldFByb3BlcnR5
VmFsdWUoQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCk7CisgICAgICAg
IGlmICh2YWx1ZS5jb250YWlucygibGluZS10aHJvdWdoIikpCisgICAgICAgICAgICBbcmVzdWx0
IHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpOU1VuZGVybGluZVN0eWxlU2luZ2xl
XSBmb3JLZXk6TlNTdHJpa2V0aHJvdWdoU3R5bGVBdHRyaWJ1dGVOYW1lXTsKKyAgICAgICAgaWYg
KHZhbHVlLmNvbnRhaW5zKCJ1bmRlcmxpbmUiKSkKKyAgICAgICAgICAgIFtyZXN1bHQgc2V0T2Jq
ZWN0OltOU051bWJlciBudW1iZXJXaXRoSW50Ok5TVW5kZXJsaW5lU3R5bGVTaW5nbGVdIGZvcktl
eTpOU1VuZGVybGluZVN0eWxlQXR0cmlidXRlTmFtZV07CisgICAgfSBlbHNlIHsKKyAgICAgICAg
aW50IGRlY29yYXRpb24gPSBzdHlsZS0+dGV4dERlY29yYXRpb25zSW5FZmZlY3QoKTsKKyAgICAg
ICAgaWYgKGRlY29yYXRpb24gJiBUZXh0RGVjb3JhdGlvbkxpbmVUaHJvdWdoKQorICAgICAgICAg
ICAgW3Jlc3VsdCBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6TlNVbmRlcmxpbmVT
dHlsZVNpbmdsZV0gZm9yS2V5Ok5TU3RyaWtldGhyb3VnaFN0eWxlQXR0cmlidXRlTmFtZV07Cisg
ICAgICAgIGlmIChkZWNvcmF0aW9uICYgVGV4dERlY29yYXRpb25VbmRlcmxpbmUpCisgICAgICAg
ICAgICBbcmVzdWx0IHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpOU1VuZGVybGlu
ZVN0eWxlU2luZ2xlXSBmb3JLZXk6TlNVbmRlcmxpbmVTdHlsZUF0dHJpYnV0ZU5hbWVdOworICAg
IH0KK30KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0VkaXRvcklPUy5tbQko
cmV2aXNpb24gMTg2MDIxKQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9T
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNjEsMTUgKzI2MSw4IEBACiAgICAgaWYgKGZvbnQpCiAg
ICAgICAgIFtyZXN1bHQgc2V0T2JqZWN0OihpZClmb250IGZvcktleTpOU0ZvbnRBdHRyaWJ1dGVO
YW1lXTsKIAotICAgIFJlZlB0cjxFZGl0aW5nU3R5bGU+IHR5cGluZ1N0eWxlID0gbV9mcmFtZS5z
ZWxlY3Rpb24oKS50eXBpbmdTdHlsZSgpOwotICAgIGlmICh0eXBpbmdTdHlsZSAmJiB0eXBpbmdT
dHlsZS0+c3R5bGUoKSkgewotICAgICAgICBTdHJpbmcgdmFsdWUgPSB0eXBpbmdTdHlsZS0+c3R5
bGUoKS0+Z2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uc0lu
RWZmZWN0KTsKLSAgICAgICAgaWYgKHZhbHVlLmNvbnRhaW5zKCJ1bmRlcmxpbmUiKSkKLSAgICAg
ICAgICAgIFtyZXN1bHQgc2V0T2JqZWN0OltOU051bWJlciBudW1iZXJXaXRoSW50Ok5TVW5kZXJs
aW5lU3R5bGVTaW5nbGVdIGZvcktleTpOU1VuZGVybGluZVN0eWxlQXR0cmlidXRlTmFtZV07Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHN0eWxlLT50ZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCgp
ICYgVGV4dERlY29yYXRpb25VbmRlcmxpbmUpCi0gICAgICAgICAgICBbcmVzdWx0IHNldE9iamVj
dDpbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpOU1VuZGVybGluZVN0eWxlU2luZ2xlXSBmb3JLZXk6
TlNVbmRlcmxpbmVTdHlsZUF0dHJpYnV0ZU5hbWVdOwotICAgIH0KKyAgICBnZXRUZXh0RGVjb3Jh
dGlvbkF0dHJpYnV0ZXNSZXNwZWN0aW5nVHlwaW5nU3R5bGUoc3R5bGUsIHJlc3VsdCk7CisKICAg
ICBpZiAobm9kZVRvUmVtb3ZlKQogICAgICAgICBub2RlVG9SZW1vdmUtPnJlbW92ZShBU1NFUlRf
Tk9fRVhDRVBUSU9OKTsKICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0Vk
aXRvck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0
b3JNYWMubW0JKHJldmlzaW9uIDE4NjAyMSkKKysrIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFj
L0VkaXRvck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTc5LDEwICsxNzksNiBAQAogICAgICAg
ICBbcmVzdWx0IHNldE9iamVjdDpzLmdldCgpIGZvcktleTpOU1NoYWRvd0F0dHJpYnV0ZU5hbWVd
OwogICAgIH0KIAotICAgIGludCBkZWNvcmF0aW9uID0gc3R5bGUtPnRleHREZWNvcmF0aW9uc0lu
RWZmZWN0KCk7Ci0gICAgaWYgKGRlY29yYXRpb24gJiBUZXh0RGVjb3JhdGlvbkxpbmVUaHJvdWdo
KQotICAgICAgICBbcmVzdWx0IHNldE9iamVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpOU1Vu
ZGVybGluZVN0eWxlU2luZ2xlXSBmb3JLZXk6TlNTdHJpa2V0aHJvdWdoU3R5bGVBdHRyaWJ1dGVO
YW1lXTsKLQogICAgIGludCBzdXBlcnNjcmlwdEludCA9IDA7CiAgICAgc3dpdGNoIChzdHlsZS0+
dmVydGljYWxBbGlnbigpKSB7CiAgICAgICAgIGNhc2UgQkFTRUxJTkU6CkBAIC0yMDQsOCArMjAw
LDcgQEAKICAgICBpZiAoc3VwZXJzY3JpcHRJbnQpCiAgICAgICAgIFtyZXN1bHQgc2V0T2JqZWN0
OltOU051bWJlciBudW1iZXJXaXRoSW50OnN1cGVyc2NyaXB0SW50XSBmb3JLZXk6TlNTdXBlcnNj
cmlwdEF0dHJpYnV0ZU5hbWVdOwogCi0gICAgaWYgKGRlY29yYXRpb24gJiBUZXh0RGVjb3JhdGlv
blVuZGVybGluZSkKLSAgICAgICAgW3Jlc3VsdCBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldp
dGhJbnQ6TlNVbmRlcmxpbmVTdHlsZVNpbmdsZV0gZm9yS2V5Ok5TVW5kZXJsaW5lU3R5bGVBdHRy
aWJ1dGVOYW1lXTsKKyAgICBnZXRUZXh0RGVjb3JhdGlvbkF0dHJpYnV0ZXNSZXNwZWN0aW5nVHlw
aW5nU3R5bGUoc3R5bGUsIHJlc3VsdCk7CiAKICAgICBpZiAobm9kZVRvUmVtb3ZlKQogICAgICAg
ICBub2RlVG9SZW1vdmUtPnJlbW92ZShBU1NFUlRfTk9fRVhDRVBUSU9OKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHJldmlzaW9uIDE4NjAyMSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtNDQyLDYgKzQ0
Miw3IEBACiAgICAgdmlydHVhbCBib29sIHNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoUmFuZ2Uq
LCBSYW5nZSosIEVBZmZpbml0eSwgYm9vbCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAog
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKFN0eWxlUHJvcGVydGllcyosIFJhbmdl
Kikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXBwbHlT
dHlsZSgpIG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRNb3ZlUmFuZ2VBZnRl
ckRlbGV0ZShSYW5nZSosIFJhbmdlKikgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAogICAg
IHZpcnR1YWwgdm9pZCBkaWRCZWdpbkVkaXRpbmcoKSBvdmVycmlkZSB7IH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS9FZGl0b3JDbGllbnQuaAkocmV2aXNpb24gMTg2MDIxKQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9FZGl0b3JDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtODgsNiArODgsNyBAQAog
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFJhbmdlKiBmcm9tUmFu
Z2UsIFJhbmdlKiB0b1JhbmdlLCBFQWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3RpbmcpID0gMDsK
ICAgICAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShTdHlsZVByb3BlcnRpZXMq
LCBSYW5nZSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXBwbHlTdHlsZSgpID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkTW92ZVJhbmdlQWZ0ZXJEZWxldGUoUmFuZ2UqLCBSYW5nZSop
ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRCZWdpbkVkaXRpbmcoKSA9IDA7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODYwMjMpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAxNS0wNi0yNyAgUnlvc3Vr
ZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBGb250IHBhbmVsIGRvZXNuJ3Qg
Z2V0IHVwZGF0ZWQgd2hlbiBib2xkaW5nIHRleHQgdmlhIGNtZCtiIGluIE1haWwgb24gT1MgWAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2Mzc5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRo
ZSBmb250IHBhbmVsIHdoZW4gbmV3bHkgYWRkZWQgRWRpdG9yQ2xpZW50OjpkaWRBcHBseVN0eWxl
IGlzIGNhbGxlZC4gQWxzbyBzZXQgdGhlIGZvbnQgYXR0cmlidXRlcworICAgICAgICBpbiBfdXBk
YXRlRm9udFBhbmVsIHNvIHRoYXQgdW5kZXJsaW5lIGFuZCBzdHJpa2UgdGhyb3VnaCBzdGF0ZXMg
d2lsbCBiZSByZWZsZWN0ZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JD
bGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06Cisg
ICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnNob3VsZEFwcGx5U3R5bGUpOgorICAgICAgICAodXBk
YXRlRm9udFBhbmVsSWZOZWVkZWQpOiBFeHRyYWN0ZWQgZnJvbSByZXNwb25kVG9DaGFuZ2VkQ29u
dGVudHMuCisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmRpZEFwcGx5U3R5bGUpOiBBZGRlZC4K
KyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cmVzcG9uZFRvQ2hhbmdlZENvbnRlbnRzKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYkhUTUxWaWV3Lm1tOgorICAgICAgICAoLVtXZWJIVE1MVmlldyBf
dXBkYXRlRm9udFBhbmVsXSk6IFNldHMgZm9udCBhdHRyaWJ1dGVzIGFzIHdlbGwgYXMgZm9udC4K
KwogMjAxNS0wNi0yNiAgSHl1bmd3b29rIExlZSAgPGh5dW5nd29vay5sZWVAbmF2ZXJjb3JwLmNv
bT4KIAogICAgICAgICBbV2luXSBJbXBsZW1lbnQgV2ViVmlld0dyb3VwIHRvIHN1cHBvcnQgV2Vi
Vmlldzo6YWRkeHh4VG9Hcm91cCgpLgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJKHJldmlzaW9uIDE4NjAyMSkKKysrIFNv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC02OSw3ICs2OSw4IEBACiAgICAgdmlydHVhbCBib29sIHNob3VsZENoYW5nZVNl
bGVjdGVkUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqIGZyb21SYW5nZSwgV2ViQ29yZTo6UmFuZ2UqIHRv
UmFuZ2UsIFdlYkNvcmU6OkVBZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGluZykgb3ZlcnJpZGU7
CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShXZWJDb3JlOjpTdHlsZVByb3Bl
cnRpZXMqLCBXZWJDb3JlOjpSYW5nZSopIG92ZXJyaWRlOwotICAgIAorICAgIHZpcnR1YWwgdm9p
ZCBkaWRBcHBseVN0eWxlKCkgb3ZlcnJpZGU7CisKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTW92
ZVJhbmdlQWZ0ZXJEZWxldGUoV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpSYW5nZSogcmFuZ2VU
b0JlUmVwbGFjZWQpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRWRpdGlu
ZygpIG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQkocmV2aXNpb24gMTg2MDIxKQorKysgU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0yNTgsNiArMjU4LDIyIEBACiAgICAgICAgIHNob3VsZEFwcGx5U3R5bGU6a2l0KG11dGFi
bGVTdHlsZS0+ZW5zdXJlQ1NTU3R5bGVEZWNsYXJhdGlvbigpKSB0b0VsZW1lbnRzSW5ET01SYW5n
ZTpraXQocmFuZ2UpXTsKIH0KIAorc3RhdGljIHZvaWQgdXBkYXRlRm9udFBhbmVsSWZOZWVkZWQo
V2ViVmlldyogd2ViVmlldykKK3sKKyNpZiAhUExBVEZPUk0oSU9TKQorICAgIE5TVmlldyA8V2Vi
RG9jdW1lbnRWaWV3PiAqdmlldyA9IFtbW3dlYlZpZXcgc2VsZWN0ZWRGcmFtZV0gZnJhbWVWaWV3
XSBkb2N1bWVudFZpZXddOworICAgIGlmIChbdmlldyBpc0tpbmRPZkNsYXNzOltXZWJIVE1MVmll
dyBjbGFzc11dKQorICAgICAgICBbKFdlYkhUTUxWaWV3ICopdmlldyBfdXBkYXRlRm9udFBhbmVs
XTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHdlYlZpZXcpOworI2VuZGlmCit9CisKK3ZvaWQg
V2ViRWRpdG9yQ2xpZW50OjpkaWRBcHBseVN0eWxlKCkKK3sKKyAgICB1cGRhdGVGb250UGFuZWxJ
Zk5lZWRlZChtX3dlYlZpZXcpOworfQorCiBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkTW92
ZVJhbmdlQWZ0ZXJEZWxldGUoUmFuZ2UqIHJhbmdlLCBSYW5nZSogcmFuZ2VUb0JlUmVwbGFjZWQp
CiB7CiAgICAgcmV0dXJuIFtbbV93ZWJWaWV3IF9lZGl0aW5nRGVsZWdhdGVGb3J3YXJkZXJdIHdl
YlZpZXc6bV93ZWJWaWV3CkBAIC0zMTcsMTAgKzMzMyw4IEBACiAKIHZvaWQgV2ViRWRpdG9yQ2xp
ZW50OjpyZXNwb25kVG9DaGFuZ2VkQ29udGVudHMoKQogeworICAgIHVwZGF0ZUZvbnRQYW5lbElm
TmVlZGVkKG1fd2ViVmlldyk7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICBOU1ZpZXcgPFdlYkRv
Y3VtZW50Vmlldz4gKnZpZXcgPSBbW1ttX3dlYlZpZXcgc2VsZWN0ZWRGcmFtZV0gZnJhbWVWaWV3
XSBkb2N1bWVudFZpZXddOwotICAgIGlmIChbdmlldyBpc0tpbmRPZkNsYXNzOltXZWJIVE1MVmll
dyBjbGFzc11dKQotICAgICAgICBbKFdlYkhUTUxWaWV3ICopdmlldyBfdXBkYXRlRm9udFBhbmVs
XTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHBvc3ROb3RpZmlj
YXRpb25OYW1lOldlYlZpZXdEaWRDaGFuZ2VOb3RpZmljYXRpb24gb2JqZWN0Om1fd2ViVmlld107
ICAgIAogI2Vsc2UKICAgICBpZiAobV9kZWxheWluZ0NvbnRlbnRDaGFuZ2VOb3RpZmljYXRpb25z
KSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0JKHJldmlz
aW9uIDE4NjAyMSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViSFRNTFZpZXcubW0J
KHdvcmtpbmcgY29weSkKQEAgLTU0ODIsOSArNTQ4MiwxMSBAQAogCiAgICAgYm9vbCBtdWx0aXBs
ZUZvbnRzID0gZmFsc2U7CiAgICAgTlNGb250ICpmb250ID0gbmlsOworICAgIE5TRGljdGlvbmFy
eSogYXR0cmlidXRlcyA9IG5pbDsKICAgICBpZiAoRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoW3Nl
bGYgX2ZyYW1lXSkpIHsKICAgICAgICAgaWYgKGNvbnN0IEZvbnQqIGZkID0gY29yZUZyYW1lLT5l
ZGl0b3IoKS5mb250Rm9yU2VsZWN0aW9uKG11bHRpcGxlRm9udHMpKQogICAgICAgICAgICAgZm9u
dCA9IGZkLT5nZXROU0ZvbnQoKTsKKyAgICAgICAgYXR0cmlidXRlcyA9IGNvcmVGcmFtZS0+ZWRp
dG9yKCkuZm9udEF0dHJpYnV0ZXNGb3JTZWxlY3Rpb25TdGFydCgpOwogICAgIH0KIAogICAgIC8v
IEZJWE1FOiBmb3Igbm93LCByZXR1cm4gYSBib2d1cyBmb250IHRoYXQgZGlzdGluZ3Vpc2hlcyB0
aGUgZW1wdHkgc2VsZWN0aW9uIGZyb20gdGhlIG5vbi1lbXB0eQpAQCAtNTQ5Myw3ICs1NDk1LDkg
QEAKICAgICAgICAgZm9udCA9IFtzZWxmIF9oYXNTZWxlY3Rpb25dID8gW05TRm9udCBtZW51Rm9u
dE9mU2l6ZToyM10gOiBbTlNGb250IHRvb2xUaXBzRm9udE9mU2l6ZToxN107CiAgICAgQVNTRVJU
KGZvbnQgIT0gbmlsKTsKIAotICAgIFtbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl0g
c2V0U2VsZWN0ZWRGb250OmZvbnQgaXNNdWx0aXBsZTptdWx0aXBsZUZvbnRzXTsKKyAgICBOU0Zv
bnRNYW5hZ2VyKiBmb250TWFuYWdlciA9IFtOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZvbnRNYW5hZ2Vy
XTsKKyAgICBbZm9udE1hbmFnZXIgc2V0U2VsZWN0ZWRGb250OmZvbnQgaXNNdWx0aXBsZTptdWx0
aXBsZUZvbnRzXTsKKyAgICBbZm9udE1hbmFnZXIgc2V0U2VsZWN0ZWRBdHRyaWJ1dGVzOmF0dHJp
YnV0ZXMgaXNNdWx0aXBsZTptdWx0aXBsZUZvbnRzXTsKIH0KICNlbmRpZgogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCShyZXZpc2lvbiAxODYwMjMpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxNS0wNi0yNyAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBGb250IHBhbmVsIGRvZXNuJ3QgZ2V0
IHVwZGF0ZWQgd2hlbiBib2xkaW5nIHRleHQgdmlhIGNtZCtiIGluIE1haWwgb24gT1MgWAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2Mzc5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpzaG91
bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6c2hvdWxk
QXBwbHlTdHlsZSk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmRpZEFwcGx5U3R5bGUpOgor
ICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRNb3ZlUmFuZ2VBZnRlckRlbGV0ZSk6Cisg
ICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnNob3VsZENoYW5nZVR5cGluZ1N0eWxlKToKKyAgICAg
ICAgKFdlYkVkaXRvckNsaWVudDo6d2ViVmlld0RpZENoYW5nZVR5cGluZ1N0eWxlKToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKwogMjAxNS0wNi0yNiAgUGVy
IEFybmUgVm9sbGFuICA8cGVhdm9Ab3V0bG9vay5jb20+CiAKICAgICAgICAgV2luTGF1bmNoZXIg
ZmFpbHMgdG8gZG93bmxvYWQgZmlsZXMuCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAJKHJldmlzaW9uIDE4NjAyMSkK
KysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM0MCwxMyArMzQwLDI3IEBACiB9CiAKIGJvb2wgV2ViRWRpdG9y
Q2xpZW50OjpzaG91bGRBcHBseVN0eWxlKFN0eWxlUHJvcGVydGllcyogLypzdHlsZSovLCBSYW5n
ZSogLyp0b0VsZW1lbnRzSW5ET01SYW5nZSovKQoteyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4g
dHJ1ZTsgfQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CiAK
K3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpkaWRBcHBseVN0eWxlKFN0eWxlUHJvcGVydGllcyogLypz
dHlsZSovLCBSYW5nZSogLyp0b0VsZW1lbnRzSW5ET01SYW5nZSovKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRNb3ZlUmFuZ2VBZnRl
ckRlbGV0ZShSYW5nZSogLypyYW5nZSovLCBSYW5nZSogLypyYW5nZVRvQmVSZXBsYWNlZCovKQot
eyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gdHJ1ZTsgfQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIHRydWU7Cit9CiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRD
aGFuZ2VUeXBpbmdTdHlsZShTdHlsZVByb3BlcnRpZXMqIC8qY3VycmVudFN0eWxlKi8sIFN0eWxl
UHJvcGVydGllcyogLyp0b1Byb3Bvc2VkU3R5bGUqLykKLXsgbm90SW1wbGVtZW50ZWQoKTsgcmV0
dXJuIGZhbHNlOyB9Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CiAKIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp3ZWJWaWV3RGlkQ2hhbmdlVHlwaW5nU3R5bGUo
V2ViTm90aWZpY2F0aW9uKiAvKm5vdGlmaWNhdGlvbiovKQogewpJbmRleDogU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgJKHJldmlzaW9u
IDE4NjAyMSkKKysrIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Niw2ICs2Niw3IEBACiAKICAgICBib29sIHNob3Vs
ZEluc2VydE5vZGUoV2ViQ29yZTo6Tm9kZSosIFdlYkNvcmU6OlJhbmdlKiByZXBsYWNpbmdSYW5n
ZSwgV2ViQ29yZTo6RWRpdG9ySW5zZXJ0QWN0aW9uKTsKICAgICBib29sIHNob3VsZEFwcGx5U3R5
bGUoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzKiwgV2ViQ29yZTo6UmFuZ2UqKTsKKyAgICB2b2lk
IGRpZEFwcGx5U3R5bGUoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVzKiwgV2ViQ29yZTo6UmFuZ2Uq
KTsKICAgICBib29sIHNob3VsZE1vdmVSYW5nZUFmdGVyRGVsZXRlKFdlYkNvcmU6OlJhbmdlKiwg
V2ViQ29yZTo6UmFuZ2UqKTsKICAgICBib29sIHNob3VsZENoYW5nZVR5cGluZ1N0eWxlKFdlYkNv
cmU6OlN0eWxlUHJvcGVydGllcyogY3VycmVudFN0eWxlLCBXZWJDb3JlOjpTdHlsZVByb3BlcnRp
ZXMqIHRvUHJvcG9zZWRTdHlsZSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NjAyMykK
KysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3
IEBACisyMDE1LTA2LTI3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAg
ICAgIEZvbnQgcGFuZWwgZG9lc24ndCBnZXQgdXBkYXRlZCB3aGVuIGJvbGRpbmcgdGV4dCB2aWEg
Y21kK2IgaW4gTWFpbCBvbiBPUyBYCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDYzNzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTaW5jZSBmb250IHBhbmVsIGRvZXNuJ3Qgb3BlbiBpbiBXZWJLaXQyIGF0
IHRoZSBtb21lbnQsIGp1c3QgYWRkIGFuIGVtcHR5IGltcGxlbWVudGF0aW9uIG9mIGRpZEFwcGx5
U3R5bGUKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50OjpkaWRBcHBseVN0eWxl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisKIDIwMTUtMDYtMjcg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtT
T1VQXSBOZXR3b3JrQ2FjaGU6IE1ha2UgTmV0d29ya1Byb2Nlc3M6OmNsZWFyRGlza0NhY2hlIGFj
dHVhbGx5IGNsZWFyIHRoZSB0aGUgcmVzb3VyY2VzIGRlcGVuZGluZyBvbiB0aGUgZGF0ZQpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAkocmV2aXNpb24gMTg2MDIxKQorKysgU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTUsNiArMTU1LDExIEBACiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAor
dm9pZCBXZWJFZGl0b3JDbGllbnQ6OmRpZEFwcGx5U3R5bGUoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRNb3ZlUmFuZ2VBZnRlckRl
bGV0ZShSYW5nZSosIFJhbmdlKikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpJbmRleDogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5oCShyZXZpc2lvbiAxODYwMjEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC01OSw2ICs1OSw3IEBACiAgICAgdmlydHVhbCBib29sIHNob3VsZENoYW5nZVNlbGVjdGVkUmFu
Z2UoV2ViQ29yZTo6UmFuZ2UqIGZyb21SYW5nZSwgV2ViQ29yZTo6UmFuZ2UqIHRvUmFuZ2UsIFdl
YkNvcmU6OkVBZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGluZykgb3ZlcnJpZGU7CiAgICAgCiAg
ICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoV2ViQ29yZTo6U3R5bGVQcm9wZXJ0aWVz
KiwgV2ViQ29yZTo6UmFuZ2UqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQXBwbHlT
dHlsZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRNb3ZlUmFuZ2VBZnRlckRl
bGV0ZShXZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6OlJhbmdlKikgb3ZlcnJpZGU7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZGlkQmVnaW5FZGl0aW5nKCkgb3ZlcnJpZGU7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJldmlzaW9uIDE4NjAyMSkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTYxNSw2ICs2MTUsNyBAQAogICAgIHZvaWQgZ2V0Q2VudGVyRm9yWm9vbUdlc3R1cmUo
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNlbnRlckluVmlld0Nvb3JkaW5hdGVzLCBXZWJDb3Jl
OjpJbnRQb2ludCYgcmVzdWx0KTsKICNlbmRpZgogCisgICAgdm9pZCBkaWRBcHBseVN0eWxlKCk7
CiAgICAgdm9pZCBkaWRDaGFuZ2VTZWxlY3Rpb24oKTsKICAgICB2b2lkIGRpc2NhcmRlZENvbXBv
c2l0aW9uKCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>