<?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>206039</bug_id>
          
          <creation_ts>2020-01-09 15:06:30 -0800</creation_ts>
          <short_desc>Clean up -[WKWebView _initializeWithConfiguration:]</short_desc>
          <delta_ts>2020-01-10 11:53:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1604886</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-09 15:06:30 -0800</bug_when>
    <thetext>Clean up -[WKWebView _initializeWithConfiguration:]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604887</commentid>
    <comment_count>1</comment_count>
      <attachid>387279</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-09 15:07:57 -0800</bug_when>
    <thetext>Created attachment 387279
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604896</commentid>
    <comment_count>2</comment_count>
      <attachid>387279</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-01-09 15:19:47 -0800</bug_when>
    <thetext>Comment on attachment 387279
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:170
&gt; +static const BOOL defaultAllowsViewportShrinkToFit = YES;

Shouldn&apos;t these be in some WebPreferences* file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604913</commentid>
    <comment_count>3</comment_count>
      <attachid>387285</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-09 15:57:19 -0800</bug_when>
    <thetext>Created attachment 387285
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605223</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-01-10 11:52:10 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/254315/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605225</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-10 11:53:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/58486170&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387279</attachid>
            <date>2020-01-09 15:07:57 -0800</date>
            <delta_ts>2020-01-09 15:19:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206039-20200109150756.patch</filename>
            <type>text/plain</type>
            <size>18067</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgwNmM3N2RjOTc3NjJlNGZj
OGE2NGExM2Y3NWNiYTJlZTVmYTY2MTIuLjM3MjA0NzFjMmFlOWE3YzlmOTgyMDJmYjY3ODBiMTlm
ZWQxNzJhODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDEtMDkgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgLVtXS1dl
YlZpZXcgX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjpdCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYwMzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtW1dLV2ViVmlldyBfaW5pdGlhbGl6ZVdpdGhD
b25maWd1cmF0aW9uOl0gaXMgZnVsbCBvZiBwbGF0Zm9ybSAjaWZkZWZzIHNvIG5lZWRzCisgICAg
ICAgIGNsZWFuaW5nIHVwIGJlZm9yZSBhZGRpbmcgbW9yZSBjb2RlLiBGYWN0b3Igb3V0IFdLU2Ny
b2xsVmlldyBhbmQgdmlldyBob29rdXAsCisgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uIHNldHVw
LCBhbmQgbm90aWZpY2F0aW9uIHJlZ2lzdHJhdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2luaXRpYWxpemVX
aXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXR1cFBhZ2VDb25m
aWd1cmF0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9zZXR1cFNjcm9sbEFuZENvbnRlbnRWaWV3c10pOgorICAgICAgICAoLVtX
S1dlYlZpZXcgX3JlZ2lzdGVyRm9yTm90aWZpY2F0aW9uc10pOgorCiAyMDIwLTAxLTA4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBFTkFCTEVf
VUlfU0lERV9DT01QT1NJVElORyBhbmQgdXNlIGl0IGluIGEgZmV3IHBsYWNlcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMWIwNGRiOGNm
ZGQxY2NmZDU4ODNhYzQwNTc3M2JjYjA3MTg0MDkyZi4uMDQyMzI4OWJmNDc1YjZjZGE0YjY4NTEx
ZWQ2ODZhOTc4YmE3MGZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCkBAIC0xNjYsOSArMTY2LDE3IEBACiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCi1zdGF0aWMgY29uc3QgdWludDMyX3QgZmlyc3RTREtWZXJzaW9uV2l0
aExpbmtQcmV2aWV3RW5hYmxlZEJ5RGVmYXVsdCA9IDB4QTAwMDA7CisjaWYgUExBVEZPUk0oV0FU
Q0hPUykKK3N0YXRpYyBjb25zdCBCT09MIGRlZmF1bHRBbGxvd3NWaWV3cG9ydFNocmlua1RvRml0
ID0gWUVTOworc3RhdGljIGNvbnN0IEJPT0wgZGVmYXVsdEZhc3RDbGlja2luZ0VuYWJsZWQgPSBZ
RVM7CisjZWxzZQorc3RhdGljIGNvbnN0IEJPT0wgZGVmYXVsdEFsbG93c1ZpZXdwb3J0U2hyaW5r
VG9GaXQgPSBOTzsKK3N0YXRpYyBjb25zdCBCT09MIGRlZmF1bHRGYXN0Q2xpY2tpbmdFbmFibGVk
ID0gTk87CiAjZW5kaWYKIAorc3RhdGljIGNvbnN0IHVpbnQzMl90IGZpcnN0U0RLVmVyc2lvbldp
dGhMaW5rUHJldmlld0VuYWJsZWRCeURlZmF1bHQgPSAweEEwMDAwOworI2VuZGlmIC8vIFBMQVRG
T1JNKElPU19GQU1JTFkpCisKIHN0YXRpYyBIYXNoTWFwPFdlYktpdDo6V2ViUGFnZVByb3h5Kiwg
X191bnNhZmVfdW5yZXRhaW5lZCBXS1dlYlZpZXcgKj4mIHBhZ2VUb1ZpZXdNYXAoKQogewogICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPFdlYktpdDo6V2ViUGFnZVByb3h5KiwgX191
bnNhZmVfdW5yZXRhaW5lZCBXS1dlYlZpZXcgKj4+IG1hcDsKQEAgLTMwMSw2ICszMDksODcgQEAg
LSAodm9pZClfaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uOihXS1dlYlZpZXdDb25maWd1cmF0
aW9uICopY29uZmlndXJhdGlvbgogICAgIGF1dG8gcGFnZUNvbmZpZ3VyYXRpb24gPSBbY29uZmln
dXJhdGlvbiBjb3B5UGFnZUNvbmZpZ3VyYXRpb25dOwogCiAgICAgcGFnZUNvbmZpZ3VyYXRpb24t
PnNldFByb2Nlc3NQb29sKCZwcm9jZXNzUG9vbCk7CisgICAgCisgICAgW3NlbGYgX3NldHVwUGFn
ZUNvbmZpZ3VyYXRpb246cGFnZUNvbmZpZ3VyYXRpb25dOworCisgICAgX3VzZVBsYXRmb3JtRmlu
ZFVJID0gWUVTOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgX2F2b2lkc1Vuc2FmZUFy
ZWEgPSBZRVM7CisgICAgX29ic2N1cmVkSW5zZXRFZGdlc0FmZmVjdGVkQnlTYWZlQXJlYSA9IFVJ
UmVjdEVkZ2VUb3AgfCBVSVJlY3RFZGdlTGVmdCB8IFVJUmVjdEVkZ2VSaWdodDsKKyAgICBfdmll
d3BvcnRNZXRhVGFnV2lkdGggPSBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50czo6VmFsdWVBdXRv
OworICAgIF9pbml0aWFsU2NhbGVGYWN0b3IgPSAxOworICAgIF9hbGxvd3NWaWV3cG9ydFNocmlu
a1RvRml0ID0gZGVmYXVsdEFsbG93c1ZpZXdwb3J0U2hyaW5rVG9GaXQ7CisKKyAgICBzdGF0aWMg
dWludDMyX3QgcHJvZ3JhbVNES1ZlcnNpb24gPSBkeWxkX2dldF9wcm9ncmFtX3Nka192ZXJzaW9u
KCk7CisgICAgX2FsbG93c0xpbmtQcmV2aWV3ID0gcHJvZ3JhbVNES1ZlcnNpb24gPj0gZmlyc3RT
REtWZXJzaW9uV2l0aExpbmtQcmV2aWV3RW5hYmxlZEJ5RGVmYXVsdDsKKworICAgIGF1dG8gZmFz
dENsaWNraW5nRW5hYmxlZCA9IFtdKCkgeworICAgICAgICBpZiAoTlNOdW1iZXIgKmVuYWJsZWRW
YWx1ZSA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIG9iamVjdEZvcktl
eTpAIldlYktpdEZhc3RDbGlja2luZ0Rpc2FibGVkIl0pCisgICAgICAgICAgICByZXR1cm4gZW5h
YmxlZFZhbHVlLmJvb2xWYWx1ZTsKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRGYXN0Q2xpY2tpbmdF
bmFibGVkOworICAgIH07CisKKyAgICBfZmFzdENsaWNraW5nSXNEaXNhYmxlZCA9IGZhc3RDbGlj
a2luZ0VuYWJsZWQoKTsKKyAgICBfZHJhZ0ludGVyYWN0aW9uUG9saWN5ID0gX1dLRHJhZ0ludGVy
YWN0aW9uUG9saWN5RGVmYXVsdDsKKworICAgIF9jb250ZW50VmlldyA9IGFkb3B0TlMoW1tXS0Nv
bnRlbnRWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOnNlbGYuYm91bmRzIHByb2Nlc3NQb29sOnBy
b2Nlc3NQb29sIGNvbmZpZ3VyYXRpb246cGFnZUNvbmZpZ3VyYXRpb24uY29weVJlZigpIHdlYlZp
ZXc6c2VsZl0pOworICAgIF9wYWdlID0gW19jb250ZW50VmlldyBwYWdlXTsKKyAgICBbW19jb25m
aWd1cmF0aW9uIF9jb250ZW50UHJvdmlkZXJSZWdpc3RyeV0gYWRkUGFnZToqX3BhZ2VdOworCisg
ICAgW3NlbGYgX3NldHVwU2Nyb2xsQW5kQ29udGVudFZpZXdzXTsKKyAgICBpZiAoIXNlbGYub3Bh
cXVlIHx8ICFwYWdlQ29uZmlndXJhdGlvbi0+ZHJhd3NCYWNrZ3JvdW5kKCkpCisgICAgICAgIFtz
ZWxmIF9zZXRPcGFxdWVJbnRlcm5hbDpOT107CisgICAgZWxzZQorICAgICAgICBbc2VsZiBfdXBk
YXRlU2Nyb2xsVmlld0JhY2tncm91bmRdOworCisgICAgW3NlbGYgX2ZyYW1lT3JCb3VuZHNDaGFu
Z2VkXTsKKyAgICBbc2VsZiBfcmVnaXN0ZXJGb3JOb3RpZmljYXRpb25zXTsKKworICAgIF9wYWdl
LT5jb250ZW50U2l6ZUNhdGVnb3J5RGlkQ2hhbmdlKFtzZWxmIF9jb250ZW50U2l6ZUNhdGVnb3J5
XSk7CisgICAgX3BhZ2UtPnNldEZvcmNlQWx3YXlzVXNlclNjYWxhYmxlKFtfY29uZmlndXJhdGlv
biBpZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0c10pOworCisgICAgQ0ZOb3RpZmljYXRpb25DZW50
ZXJBZGRPYnNlcnZlcihDRk5vdGlmaWNhdGlvbkNlbnRlckdldERhcndpbk5vdGlmeUNlbnRlcigp
LCAoX19icmlkZ2UgY29uc3Qgdm9pZCAqKShzZWxmKSwgaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJp
bGl0eUNoYW5nZWRDYWxsYmFjaywgKENGU3RyaW5nUmVmKVtOU1N0cmluZyBzdHJpbmdXaXRoVVRG
OFN0cmluZzprR1NFdmVudEhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkTm90aWZp
Y2F0aW9uXSwgbnVsbHB0ciwgQ0ZOb3RpZmljYXRpb25TdXNwZW5zaW9uQmVoYXZpb3JDb2FsZXNj
ZSk7CisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2lmIFBMQVRGT1JNKE1BQykK
KyAgICBfaW1wbCA9IG1ha2VVbmlxdWU8V2ViS2l0OjpXZWJWaWV3SW1wbD4oc2VsZiwgc2VsZiwg
cHJvY2Vzc1Bvb2wsIHBhZ2VDb25maWd1cmF0aW9uLmNvcHlSZWYoKSk7CisgICAgX3BhZ2UgPSAm
X2ltcGwtPnBhZ2UoKTsKKworICAgIF9pbXBsLT5zZXRBdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRl
bnRJbnNldHModHJ1ZSk7CisgICAgX2ltcGwtPnNldFJlcXVpcmVzVXNlckFjdGlvbkZvckVkaXRp
bmdDb250cm9sc01hbmFnZXIoW2NvbmZpZ3VyYXRpb24gX3JlcXVpcmVzVXNlckFjdGlvbkZvckVk
aXRpbmdDb250cm9sc01hbmFnZXJdKTsKKyNlbmRpZgorCisgICAgaWYgKE5TU3RyaW5nICphcHBs
aWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQgPSBjb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uTmFtZUZv
clVzZXJBZ2VudCkKKyAgICAgICAgX3BhZ2UtPnNldEFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2Vu
dChhcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpOworCisgICAgX3BhZ2UtPnNldEFwcGxpY2F0
aW9uTmFtZUZvckRlc2t0b3BVc2VyQWdlbnQoY29uZmlndXJhdGlvbi5fYXBwbGljYXRpb25OYW1l
Rm9yRGVza3RvcFVzZXJBZ2VudCk7CisKKyAgICBfbmF2aWdhdGlvblN0YXRlID0gbWFrZVVuaXF1
ZTxXZWJLaXQ6Ok5hdmlnYXRpb25TdGF0ZT4oc2VsZik7CisgICAgX3BhZ2UtPnNldE5hdmlnYXRp
b25DbGllbnQoX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRlTmF2aWdhdGlvbkNsaWVudCgpKTsKKwor
ICAgIF91aURlbGVnYXRlID0gbWFrZVVuaXF1ZTxXZWJLaXQ6OlVJRGVsZWdhdGU+KHNlbGYpOwor
ICAgIF9wYWdlLT5zZXRGaW5kQ2xpZW50KG1ha2VVbmlxdWU8V2ViS2l0OjpGaW5kQ2xpZW50Pihz
ZWxmKSk7CisgICAgX3BhZ2UtPnNldERpYWdub3N0aWNMb2dnaW5nQ2xpZW50KG1ha2VVbmlxdWU8
V2ViS2l0OjpEaWFnbm9zdGljTG9nZ2luZ0NsaWVudD4oc2VsZikpOworCisgICAgX2ljb25Mb2Fk
aW5nRGVsZWdhdGUgPSBtYWtlVW5pcXVlPFdlYktpdDo6SWNvbkxvYWRpbmdEZWxlZ2F0ZT4oc2Vs
Zik7CisKKyAgICBbc2VsZiBfc2V0VXBTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnRdOworCisg
ICAgZm9yIChhdXRvJiBwYWlyIDogcGFnZUNvbmZpZ3VyYXRpb24tPnVybFNjaGVtZUhhbmRsZXJz
KCkpCisgICAgICAgIF9wYWdlLT5zZXRVUkxTY2hlbWVIYW5kbGVyRm9yU2NoZW1lKFdlYktpdDo6
V2ViVVJMU2NoZW1lSGFuZGxlckNvY29hOjpjcmVhdGUoc3RhdGljX2Nhc3Q8V2ViS2l0OjpXZWJV
UkxTY2hlbWVIYW5kbGVyQ29jb2EmPihwYWlyLnZhbHVlLmdldCgpKS5hcGlIYW5kbGVyKCkpLCBw
YWlyLmtleSk7CisKKyAgICBwYWdlVG9WaWV3TWFwKCkuYWRkKF9wYWdlLmdldCgpLCBzZWxmKTsK
KworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYXV0byB0aW1lTm93ID0gTW9ub3Rvbmlj
VGltZTo6bm93KCk7CisgICAgX3RpbWVPZlJlcXVlc3RGb3JWaXNpYmxlQ29udGVudFJlY3RVcGRh
dGUgPSB0aW1lTm93OworICAgIF90aW1lT2ZMYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlID0g
dGltZU5vdzsKKyAgICBfdGltZU9mRmlyc3RWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVXaXRoUGVu
ZGluZ0NvbW1pdCA9IHRpbWVOb3c7CisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKK30K
KworLSAodm9pZClfc2V0dXBQYWdlQ29uZmlndXJhdGlvbjooUmVmPEFQSTo6UGFnZUNvbmZpZ3Vy
YXRpb24+JilwYWdlQ29uZmlndXJhdGlvbgorewogICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRQ
cmVmZXJlbmNlcyhbX2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLT5fcHJlZmVyZW5jZXMuZ2V0
KCkpOwogICAgIGlmIChXS1dlYlZpZXcgKnJlbGF0ZWRXZWJWaWV3ID0gW19jb25maWd1cmF0aW9u
IF9yZWxhdGVkV2ViVmlld10pCiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRSZWxhdGVk
UGFnZShyZWxhdGVkV2ViVmlldy0+X3BhZ2UuZ2V0KCkpOwpAQCAtMzExLDE1ICs0MDAsMTUgQEAg
LSAodm9pZClfaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uOihXS1dlYlZpZXdDb25maWd1cmF0
aW9uICopY29uZmlndXJhdGlvbgogICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXREZWZhdWx0V2Vi
c2l0ZVBvbGljaWVzKFtfY29uZmlndXJhdGlvbiBkZWZhdWx0V2VicGFnZVByZWZlcmVuY2VzXS0+
X3dlYnNpdGVQb2xpY2llcy5nZXQoKSk7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgaWYgKGF1
dG8gcGFnZUdyb3VwID0gV2ViS2l0Ojp0b0ltcGwoW2NvbmZpZ3VyYXRpb24gX3BhZ2VHcm91cF0p
KSB7CisgICAgaWYgKGF1dG8gcGFnZUdyb3VwID0gV2ViS2l0Ojp0b0ltcGwoW19jb25maWd1cmF0
aW9uIF9wYWdlR3JvdXBdKSkgewogICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0UGFnZUdy
b3VwKHBhZ2VHcm91cCk7CiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRVc2VyQ29udGVu
dENvbnRyb2xsZXIoJnBhZ2VHcm91cC0+dXNlckNvbnRlbnRDb250cm9sbGVyKCkpOwogICAgIH0g
ZWxzZQogI2VuZGlmCiAgICAgewotICAgICAgICBOU1N0cmluZyAqZ3JvdXBJZGVudGlmaWVyID0g
Y29uZmlndXJhdGlvbi5fZ3JvdXBJZGVudGlmaWVyOworICAgICAgICBOU1N0cmluZyAqZ3JvdXBJ
ZGVudGlmaWVyID0gW19jb25maWd1cmF0aW9uIF9ncm91cElkZW50aWZpZXJdOwogICAgICAgICBp
ZiAoZ3JvdXBJZGVudGlmaWVyLmxlbmd0aCkKLSAgICAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9u
LT5zZXRQYWdlR3JvdXAoV2ViS2l0OjpXZWJQYWdlR3JvdXA6OmNyZWF0ZShjb25maWd1cmF0aW9u
Ll9ncm91cElkZW50aWZpZXIpLnB0cigpKTsKKyAgICAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9u
LT5zZXRQYWdlR3JvdXAoV2ViS2l0OjpXZWJQYWdlR3JvdXA6OmNyZWF0ZShncm91cElkZW50aWZp
ZXIpLnB0cigpKTsKICAgICB9CiAKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0QWRkaXRpb25h
bFN1cHBvcnRlZEltYWdlVHlwZXMoV2ViQ29yZTo6d2ViQ29yZVN0cmluZ1ZlY3RvckZyb21OU1N0
cmluZ0FycmF5KFtfY29uZmlndXJhdGlvbiBfYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXNd
KSk7CkBAIC0zNjksNyArNDU4LDcgQEAgLSAodm9pZClfaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0
aW9uOihXS1dlYlZpZXdDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgogI2lmIFVTRShTWVNU
RU1fUFJFVklFVykKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZVZhbHVlcygpLnNl
dChXZWJLaXQ6OldlYlByZWZlcmVuY2VzS2V5OjpzeXN0ZW1QcmV2aWV3RW5hYmxlZEtleSgpLCBX
ZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmU6OlZhbHVlKCEhW19jb25maWd1cmF0aW9uIF9zeXN0
ZW1QcmV2aWV3RW5hYmxlZF0pKTsKICNlbmRpZgotI2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0o
SU9TX0ZBTUlMWSkKIAogICAgIFdLQXVkaW92aXN1YWxNZWRpYVR5cGVzIG1lZGlhVHlwZXNSZXF1
aXJpbmdVc2VyR2VzdHVyZSA9IFtfY29uZmlndXJhdGlvbiBtZWRpYVR5cGVzUmVxdWlyaW5nVXNl
ckFjdGlvbkZvclBsYXliYWNrXTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZVZh
bHVlcygpLnNldChXZWJLaXQ6OldlYlByZWZlcmVuY2VzS2V5OjpyZXF1aXJlc1VzZXJHZXN0dXJl
Rm9yVmlkZW9QbGF5YmFja0tleSgpLCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmU6OlZhbHVl
KChtZWRpYVR5cGVzUmVxdWlyaW5nVXNlckdlc3R1cmUgJiBXS0F1ZGlvdmlzdWFsTWVkaWFUeXBl
VmlkZW8pID09IFdLQXVkaW92aXN1YWxNZWRpYVR5cGVWaWRlbykpOwpAQCAtNDExLDEyNCArNTAw
LDYgQEAgLSAodm9pZClfaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uOihXS1dlYlZpZXdDb25m
aWd1cmF0aW9uICopY29uZmlndXJhdGlvbgogCiAgICAgaWYgKCFsaW5rZWRPbk9yQWZ0ZXIoV2Vi
S2l0OjpTREtWZXJzaW9uOjpGaXJzdFdoZXJlU2l0ZVNwZWNpZmljUXVpcmtzQXJlRW5hYmxlZEJ5
RGVmYXVsdCkpCiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlVmFsdWVzKCku
c2V0KFdlYktpdDo6V2ViUHJlZmVyZW5jZXNLZXk6Om5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzS2V5
KCksIFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZTo6VmFsdWUoZmFsc2UpKTsKLQotI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCi0gICAgQ0dSZWN0IGJvdW5kcyA9IHNlbGYuYm91bmRzOwotICAg
IF9zY3JvbGxWaWV3ID0gYWRvcHROUyhbW1dLU2Nyb2xsVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpib3VuZHNdKTsKLSAgICBbX3Njcm9sbFZpZXcgc2V0SW50ZXJuYWxEZWxlZ2F0ZTpzZWxmXTsK
LSAgICBbX3Njcm9sbFZpZXcgc2V0Qm91bmNlc1pvb206WUVTXTsKLQotICAgIGlmIChbX3Njcm9s
bFZpZXcgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfc2V0QXZvaWRzSnVtcE9uSW50ZXJy
dXB0ZWRCb3VuY2U6KV0pIHsKLSAgICAgICAgW19zY3JvbGxWaWV3IHNldFRyYWNrc0ltbWVkaWF0
ZWx5V2hpbGVEZWNlbGVyYXRpbmc6Tk9dOwotICAgICAgICBbX3Njcm9sbFZpZXcgX3NldEF2b2lk
c0p1bXBPbkludGVycnVwdGVkQm91bmNlOllFU107Ci0gICAgfQotCi0gICAgaWYgKFtfY29uZmln
dXJhdGlvbiBfZWRpdGFibGVJbWFnZXNFbmFibGVkXSkKLSAgICAgICAgW19zY3JvbGxWaWV3IHBh
bkdlc3R1cmVSZWNvZ25pemVyXS5hbGxvd2VkVG91Y2hUeXBlcyA9IEBbIEAoVUlUb3VjaFR5cGVE
aXJlY3QpIF07Ci0KLSAgICBfYXZvaWRzVW5zYWZlQXJlYSA9IFlFUzsKLSAgICBbc2VsZiBfdXBk
YXRlU2Nyb2xsVmlld0luc2V0QWRqdXN0bWVudEJlaGF2aW9yXTsKLQotICAgIFtzZWxmIGFkZFN1
YnZpZXc6X3Njcm9sbFZpZXcuZ2V0KCldOwotCi0gICAgc3RhdGljIHVpbnQzMl90IHByb2dyYW1T
REtWZXJzaW9uID0gZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpOwotICAgIF9hbGxvd3NM
aW5rUHJldmlldyA9IHByb2dyYW1TREtWZXJzaW9uID49IGZpcnN0U0RLVmVyc2lvbldpdGhMaW5r
UHJldmlld0VuYWJsZWRCeURlZmF1bHQ7Ci0KLSAgICBfY29udGVudFZpZXcgPSBhZG9wdE5TKFtb
V0tDb250ZW50VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpib3VuZHMgcHJvY2Vzc1Bvb2w6cHJv
Y2Vzc1Bvb2wgY29uZmlndXJhdGlvbjpwYWdlQ29uZmlndXJhdGlvbi5jb3B5UmVmKCkgd2ViVmll
dzpzZWxmXSk7Ci0KLSAgICBfcGFnZSA9IFtfY29udGVudFZpZXcgcGFnZV07Ci0gICAgW3NlbGYg
X2Rpc3BhdGNoU2V0RGV2aWNlT3JpZW50YXRpb246ZGV2aWNlT3JpZW50YXRpb24oKV07Ci0KLSAg
ICBpZiAoIXNlbGYub3BhcXVlIHx8ICFwYWdlQ29uZmlndXJhdGlvbi0+ZHJhd3NCYWNrZ3JvdW5k
KCkpCi0gICAgICAgIFtzZWxmIF9zZXRPcGFxdWVJbnRlcm5hbDpOT107Ci0KLSAgICBbX2NvbnRl
bnRWaWV3IGxheWVyXS5hbmNob3JQb2ludCA9IENHUG9pbnRaZXJvOwotICAgIFtfY29udGVudFZp
ZXcgc2V0RnJhbWU6Ym91bmRzXTsKLSAgICBbX3Njcm9sbFZpZXcgYWRkU3VidmlldzpfY29udGVu
dFZpZXcuZ2V0KCldOwotICAgIFtfc2Nyb2xsVmlldyBhZGRTdWJ2aWV3OltfY29udGVudFZpZXcg
dW5zY2FsZWRWaWV3XV07Ci0gICAgW3NlbGYgX3VwZGF0ZVNjcm9sbFZpZXdCYWNrZ3JvdW5kXTsK
LSAgICBfb2JzY3VyZWRJbnNldEVkZ2VzQWZmZWN0ZWRCeVNhZmVBcmVhID0gVUlSZWN0RWRnZVRv
cCB8IFVJUmVjdEVkZ2VMZWZ0IHwgVUlSZWN0RWRnZVJpZ2h0OwotCi0gICAgX3ZpZXdwb3J0TWV0
YVRhZ1dpZHRoID0gV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bzsKLSAgICBf
aW5pdGlhbFNjYWxlRmFjdG9yID0gMTsKLQotICAgIGlmIChOU051bWJlciAqZW5hYmxlZFZhbHVl
ID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gb2JqZWN0Rm9yS2V5OkAi
V2ViS2l0RmFzdENsaWNraW5nRGlzYWJsZWQiXSkKLSAgICAgICAgX2Zhc3RDbGlja2luZ0lzRGlz
YWJsZWQgPSBlbmFibGVkVmFsdWUuYm9vbFZhbHVlOwotICAgIGVsc2UgewotI2lmIFBMQVRGT1JN
KFdBVENIT1MpCi0gICAgICAgIF9mYXN0Q2xpY2tpbmdJc0Rpc2FibGVkID0gWUVTOwotI2Vsc2UK
LSAgICAgICAgX2Zhc3RDbGlja2luZ0lzRGlzYWJsZWQgPSBOTzsKLSNlbmRpZgotICAgIH0KLQot
ICAgIFtzZWxmIF9mcmFtZU9yQm91bmRzQ2hhbmdlZF07Ci0KLSAgICBOU05vdGlmaWNhdGlvbkNl
bnRlciAqY2VudGVyID0gW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdOwotICAg
IFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2tleWJvYXJkV2ls
bENoYW5nZUZyYW1lOikgbmFtZTpVSUtleWJvYXJkV2lsbENoYW5nZUZyYW1lTm90aWZpY2F0aW9u
IG9iamVjdDpuaWxdOwotICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2Vs
ZWN0b3IoX2tleWJvYXJkRGlkQ2hhbmdlRnJhbWU6KSBuYW1lOlVJS2V5Ym9hcmREaWRDaGFuZ2VG
cmFtZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKLSAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNl
bGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9rZXlib2FyZFdpbGxTaG93OikgbmFtZTpVSUtleWJvYXJk
V2lsbFNob3dOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07Ci0gICAgW2NlbnRlciBhZGRPYnNlcnZl
cjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfa2V5Ym9hcmREaWRTaG93OikgbmFtZTpVSUtleWJv
YXJkRGlkU2hvd05vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKLSAgICBbY2VudGVyIGFkZE9ic2Vy
dmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9rZXlib2FyZFdpbGxIaWRlOikgbmFtZTpVSUtl
eWJvYXJkV2lsbEhpZGVOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07Ci0gICAgW2NlbnRlciBhZGRP
YnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkUm90YXRlOikgbmFtZTpV
SVdpbmRvd0RpZFJvdGF0ZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKLSAgICBbY2VudGVyIGFk
ZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9jb250ZW50U2l6ZUNhdGVnb3J5RGlk
Q2hhbmdlOikgbmFtZTpVSUNvbnRlbnRTaXplQ2F0ZWdvcnlEaWRDaGFuZ2VOb3RpZmljYXRpb24g
b2JqZWN0Om5pbF07Ci0gICAgX3BhZ2UtPmNvbnRlbnRTaXplQ2F0ZWdvcnlEaWRDaGFuZ2UoW3Nl
bGYgX2NvbnRlbnRTaXplQ2F0ZWdvcnldKTsKLQotICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2Vs
ZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2FjY2Vzc2liaWxpdHlTZXR0aW5nc0RpZENoYW5nZTopIG5h
bWU6VUlBY2Nlc3NpYmlsaXR5R3JheXNjYWxlU3RhdHVzRGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9i
amVjdDpuaWxdOwotICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0
b3IoX2FjY2Vzc2liaWxpdHlTZXR0aW5nc0RpZENoYW5nZTopIG5hbWU6VUlBY2Nlc3NpYmlsaXR5
SW52ZXJ0Q29sb3JzU3RhdHVzRGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwotICAg
IFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2FjY2Vzc2liaWxp
dHlTZXR0aW5nc0RpZENoYW5nZTopIG5hbWU6VUlBY2Nlc3NpYmlsaXR5UmVkdWNlTW90aW9uU3Rh
dHVzRGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwotCi0gICAgW1tfY29uZmlndXJh
dGlvbiBfY29udGVudFByb3ZpZGVyUmVnaXN0cnldIGFkZFBhZ2U6Kl9wYWdlXTsKLSAgICBfcGFn
ZS0+c2V0Rm9yY2VBbHdheXNVc2VyU2NhbGFibGUoW19jb25maWd1cmF0aW9uIGlnbm9yZXNWaWV3
cG9ydFNjYWxlTGltaXRzXSk7Ci0KLSAgICBDRk5vdGlmaWNhdGlvbkNlbnRlckFkZE9ic2VydmVy
KENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCksIChfX2JyaWRnZSBj
b25zdCB2b2lkICopKHNlbGYpLCBoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZENh
bGxiYWNrLCAoQ0ZTdHJpbmdSZWYpW05TU3RyaW5nIHN0cmluZ1dpdGhVVEY4U3RyaW5nOmtHU0V2
ZW50SGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWROb3RpZmljYXRpb25dLCBudWxs
cHRyLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNpb25CZWhhdmlvckNvYWxlc2NlKTsKLSNlbmRpZgot
Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIF9pbXBsID0gbWFrZVVuaXF1ZTxXZWJLaXQ6OldlYlZp
ZXdJbXBsPihzZWxmLCBzZWxmLCBwcm9jZXNzUG9vbCwgcGFnZUNvbmZpZ3VyYXRpb24uY29weVJl
ZigpKTsKLSAgICBfcGFnZSA9ICZfaW1wbC0+cGFnZSgpOwotCi0gICAgX2ltcGwtPnNldEF1dG9t
YXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cyh0cnVlKTsKLSAgICBfaW1wbC0+c2V0UmVxdWly
ZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlcihbY29uZmlndXJhdGlvbiBfcmVx
dWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlcl0pOwotI2VuZGlmCi0KLSAg
ICBpZiAoTlNTdHJpbmcgKmFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCA9IGNvbmZpZ3VyYXRp
b24uYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KQotICAgICAgICBfcGFnZS0+c2V0QXBwbGlj
YXRpb25OYW1lRm9yVXNlckFnZW50KGFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCk7Ci0KLSAg
ICBfcGFnZS0+c2V0QXBwbGljYXRpb25OYW1lRm9yRGVza3RvcFVzZXJBZ2VudChjb25maWd1cmF0
aW9uLl9hcHBsaWNhdGlvbk5hbWVGb3JEZXNrdG9wVXNlckFnZW50KTsKLQotICAgIF9uYXZpZ2F0
aW9uU3RhdGUgPSBtYWtlVW5pcXVlPFdlYktpdDo6TmF2aWdhdGlvblN0YXRlPihzZWxmKTsKLSAg
ICBfcGFnZS0+c2V0TmF2aWdhdGlvbkNsaWVudChfbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVOYXZp
Z2F0aW9uQ2xpZW50KCkpOwotCi0gICAgX3VpRGVsZWdhdGUgPSBtYWtlVW5pcXVlPFdlYktpdDo6
VUlEZWxlZ2F0ZT4oc2VsZik7Ci0gICAgX3BhZ2UtPnNldEZpbmRDbGllbnQobWFrZVVuaXF1ZTxX
ZWJLaXQ6OkZpbmRDbGllbnQ+KHNlbGYpKTsKLSAgICBfcGFnZS0+c2V0RGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQobWFrZVVuaXF1ZTxXZWJLaXQ6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50PihzZWxm
KSk7Ci0KLSAgICBfaWNvbkxvYWRpbmdEZWxlZ2F0ZSA9IG1ha2VVbmlxdWU8V2ViS2l0OjpJY29u
TG9hZGluZ0RlbGVnYXRlPihzZWxmKTsKLQotICAgIF91c2VQbGF0Zm9ybUZpbmRVSSA9IFlFUzsK
LQotICAgIFtzZWxmIF9zZXRVcFNRTGl0ZURhdGFiYXNlVHJhY2tlckNsaWVudF07Ci0KLSAgICBm
b3IgKGF1dG8mIHBhaXIgOiBwYWdlQ29uZmlndXJhdGlvbi0+dXJsU2NoZW1lSGFuZGxlcnMoKSkK
LSAgICAgICAgX3BhZ2UtPnNldFVSTFNjaGVtZUhhbmRsZXJGb3JTY2hlbWUoV2ViS2l0OjpXZWJV
UkxTY2hlbWVIYW5kbGVyQ29jb2E6OmNyZWF0ZShzdGF0aWNfY2FzdDxXZWJLaXQ6OldlYlVSTFNj
aGVtZUhhbmRsZXJDb2NvYSY+KHBhaXIudmFsdWUuZ2V0KCkpLmFwaUhhbmRsZXIoKSksIHBhaXIu
a2V5KTsKLQotICAgIHBhZ2VUb1ZpZXdNYXAoKS5hZGQoX3BhZ2UuZ2V0KCksIHNlbGYpOwotCi0j
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBfZHJhZ0ludGVyYWN0aW9uUG9saWN5ID0gX1dL
RHJhZ0ludGVyYWN0aW9uUG9saWN5RGVmYXVsdDsKLQotICAgIGF1dG8gdGltZU5vdyA9IE1vbm90
b25pY1RpbWU6Om5vdygpOwotICAgIF90aW1lT2ZSZXF1ZXN0Rm9yVmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlID0gdGltZU5vdzsKLSAgICBfdGltZU9mTGFzdFZpc2libGVDb250ZW50UmVjdFVwZGF0
ZSA9IHRpbWVOb3c7Ci0gICAgX3RpbWVPZkZpcnN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlV2l0
aFBlbmRpbmdDb21taXQgPSB0aW1lTm93OwotCi0jaWYgUExBVEZPUk0oV0FUQ0hPUykKLSAgICBf
YWxsb3dzVmlld3BvcnRTaHJpbmtUb0ZpdCA9IFlFUzsKLSNlbHNlCi0gICAgX2FsbG93c1ZpZXdw
b3J0U2hyaW5rVG9GaXQgPSBOTzsKLSNlbmRpZgotI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1J
TFkpCiB9CiAKIC0gKHZvaWQpX3NldFVwU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xpZW50CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MuaAppbmRleCA1MjA1
YTNmNmY0ZjcyNTQwNWFkNWE1NWQ1MjQzMDBjMTY5YWU0MGNhLi40MzY5ZDI3MTRhMjEwOTU1N2Q3
MTQ1MmRiYTM2NmJlNDQ0NmNiNDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvaW9zL1dLV2ViVmlld0lPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9pb3MvV0tXZWJWaWV3SU9TLmgKQEAgLTI5LDYgKzI5LDkgQEAKIAogQGludGVyZmFjZSBXS1dl
YlZpZXcgKFdLVmlld0ludGVybmFsSU9TKQogCistICh2b2lkKV9zZXR1cFNjcm9sbEFuZENvbnRl
bnRWaWV3czsKKy0gKHZvaWQpX3JlZ2lzdGVyRm9yTm90aWZpY2F0aW9uczsKKwogLSAodm9pZClf
a2V5Ym9hcmRXaWxsQ2hhbmdlRnJhbWU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uOwog
LSAodm9pZClfa2V5Ym9hcmREaWRDaGFuZ2VGcmFtZTooTlNOb3RpZmljYXRpb24gKilub3RpZmlj
YXRpb247CiAtICh2b2lkKV9rZXlib2FyZFdpbGxTaG93OihOU05vdGlmaWNhdGlvbiAqKW5vdGlm
aWNhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tX
ZWJWaWV3SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJ
T1MubW0KaW5kZXggYjBmYjc5YTJlNDc5YTNjY2RmN2NhNTM4NWYzNDEyZDBiMmZhOThlYy4uZDA0
M2QzYWMyNTM1ODE1ZGIyYjkwNDY0NGZlMDFmMDQyZDI0MGE5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0KQEAgLTEzOCw2ICsxMzgsNDkg
QEAgLSAodm9pZClsYXlvdXRTdWJ2aWV3cwogCiAjcHJhZ21hIG1hcmsgLSBpT1MgaW1wbGVtZW50
YXRpb24gbWV0aG9kcwogCistICh2b2lkKV9zZXR1cFNjcm9sbEFuZENvbnRlbnRWaWV3cworewor
ICAgIENHUmVjdCBib3VuZHMgPSBzZWxmLmJvdW5kczsKKyAgICBfc2Nyb2xsVmlldyA9IGFkb3B0
TlMoW1tXS1Njcm9sbFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Ym91bmRzXSk7CisgICAgW19z
Y3JvbGxWaWV3IHNldEludGVybmFsRGVsZWdhdGU6c2VsZl07CisgICAgW19zY3JvbGxWaWV3IHNl
dEJvdW5jZXNab29tOllFU107CisKKyAgICBpZiAoW19zY3JvbGxWaWV3IHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3NldEF2b2lkc0p1bXBPbkludGVycnVwdGVkQm91bmNlOildKSB7Cisg
ICAgICAgIFtfc2Nyb2xsVmlldyBzZXRUcmFja3NJbW1lZGlhdGVseVdoaWxlRGVjZWxlcmF0aW5n
Ok5PXTsKKyAgICAgICAgW19zY3JvbGxWaWV3IF9zZXRBdm9pZHNKdW1wT25JbnRlcnJ1cHRlZEJv
dW5jZTpZRVNdOworICAgIH0KKworICAgIGlmIChbX2NvbmZpZ3VyYXRpb24gX2VkaXRhYmxlSW1h
Z2VzRW5hYmxlZF0pCisgICAgICAgIFtfc2Nyb2xsVmlldyBwYW5HZXN0dXJlUmVjb2duaXplcl0u
YWxsb3dlZFRvdWNoVHlwZXMgPSBAWyBAKFVJVG91Y2hUeXBlRGlyZWN0KSBdOworCisgICAgW3Nl
bGYgX3VwZGF0ZVNjcm9sbFZpZXdJbnNldEFkanVzdG1lbnRCZWhhdmlvcl07CisKKyAgICBbc2Vs
ZiBhZGRTdWJ2aWV3Ol9zY3JvbGxWaWV3LmdldCgpXTsKKworICAgIFtzZWxmIF9kaXNwYXRjaFNl
dERldmljZU9yaWVudGF0aW9uOmRldmljZU9yaWVudGF0aW9uKCldOworCisgICAgW19jb250ZW50
VmlldyBsYXllcl0uYW5jaG9yUG9pbnQgPSBDR1BvaW50WmVybzsKKyAgICBbX2NvbnRlbnRWaWV3
IHNldEZyYW1lOmJvdW5kc107CisgICAgW19zY3JvbGxWaWV3IGFkZFN1YnZpZXc6X2NvbnRlbnRW
aWV3LmdldCgpXTsKKyAgICBbX3Njcm9sbFZpZXcgYWRkU3VidmlldzpbX2NvbnRlbnRWaWV3IHVu
c2NhbGVkVmlld11dOworfQorCistICh2b2lkKV9yZWdpc3RlckZvck5vdGlmaWNhdGlvbnMKK3sK
KyAgICBOU05vdGlmaWNhdGlvbkNlbnRlciAqY2VudGVyID0gW05TTm90aWZpY2F0aW9uQ2VudGVy
IGRlZmF1bHRDZW50ZXJdOworICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpA
c2VsZWN0b3IoX2tleWJvYXJkV2lsbENoYW5nZUZyYW1lOikgbmFtZTpVSUtleWJvYXJkV2lsbENo
YW5nZUZyYW1lTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOworICAgIFtjZW50ZXIgYWRkT2JzZXJ2
ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2tleWJvYXJkRGlkQ2hhbmdlRnJhbWU6KSBuYW1l
OlVJS2V5Ym9hcmREaWRDaGFuZ2VGcmFtZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKKyAgICBb
Y2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9rZXlib2FyZFdpbGxT
aG93OikgbmFtZTpVSUtleWJvYXJkV2lsbFNob3dOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07Cisg
ICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfa2V5Ym9hcmRE
aWRTaG93OikgbmFtZTpVSUtleWJvYXJkRGlkU2hvd05vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsK
KyAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9rZXlib2Fy
ZFdpbGxIaWRlOikgbmFtZTpVSUtleWJvYXJkV2lsbEhpZGVOb3RpZmljYXRpb24gb2JqZWN0Om5p
bF07CisgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2lu
ZG93RGlkUm90YXRlOikgbmFtZTpVSVdpbmRvd0RpZFJvdGF0ZU5vdGlmaWNhdGlvbiBvYmplY3Q6
bmlsXTsKKyAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9j
b250ZW50U2l6ZUNhdGVnb3J5RGlkQ2hhbmdlOikgbmFtZTpVSUNvbnRlbnRTaXplQ2F0ZWdvcnlE
aWRDaGFuZ2VOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07CisKKyAgICBbY2VudGVyIGFkZE9ic2Vy
dmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9hY2Nlc3NpYmlsaXR5U2V0dGluZ3NEaWRDaGFu
Z2U6KSBuYW1lOlVJQWNjZXNzaWJpbGl0eUdyYXlzY2FsZVN0YXR1c0RpZENoYW5nZU5vdGlmaWNh
dGlvbiBvYmplY3Q6bmlsXTsKKyAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6
QHNlbGVjdG9yKF9hY2Nlc3NpYmlsaXR5U2V0dGluZ3NEaWRDaGFuZ2U6KSBuYW1lOlVJQWNjZXNz
aWJpbGl0eUludmVydENvbG9yc1N0YXR1c0RpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmls
XTsKKyAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9hY2Nl
c3NpYmlsaXR5U2V0dGluZ3NEaWRDaGFuZ2U6KSBuYW1lOlVJQWNjZXNzaWJpbGl0eVJlZHVjZU1v
dGlvblN0YXR1c0RpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKK30KKwogLSAoQk9P
TClfaXNTaG93aW5nVmlkZW9QaWN0dXJlSW5QaWN0dXJlCiB7CiAjaWYgIUhBVkUoQVZLSVQpCg==
</data>
<flag name="review"
          id="403069"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387285</attachid>
            <date>2020-01-09 15:57:19 -0800</date>
            <delta_ts>2020-01-09 15:57:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206039-20200109155718.patch</filename>
            <type>text/plain</type>
            <size>18270</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBhZTk0MjVlZjNmZDVjYmQ2
YzE4NDY3ZTQ2NTgwNGU1OGNkOTUwMTcuLmVkYjkyY2Y3MWQ5MjUxODlmNjNlMDY4NmZkOWRiNWEw
Yzc1ZjE1OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDEtMDkgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW4gdXAgLVtXS1dl
YlZpZXcgX2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjpdCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYwMzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBUaW0gSG9ydG9uLgorCisgICAgICAgIC1bV0tXZWJWaWV3IF9pbml0aWFsaXplV2l0aENvbmZp
Z3VyYXRpb246XSBpcyBmdWxsIG9mIHBsYXRmb3JtICNpZmRlZnMgc28gbmVlZHMKKyAgICAgICAg
Y2xlYW5pbmcgdXAgYmVmb3JlIGFkZGluZyBtb3JlIGNvZGUuIEZhY3RvciBvdXQgV0tTY3JvbGxW
aWV3IGFuZCB2aWV3IGhvb2t1cCwKKyAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24gc2V0dXAsIGFu
ZCBub3RpZmljYXRpb24gcmVnaXN0cmF0aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfaW5pdGlhbGl6ZVdpdGhD
b25maWd1cmF0aW9uOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldHVwUGFnZUNvbmZpZ3Vy
YXRpb246XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtX
S1dlYlZpZXcgX3NldHVwU2Nyb2xsQW5kQ29udGVudFZpZXdzXSk6CisgICAgICAgICgtW1dLV2Vi
VmlldyBfcmVnaXN0ZXJGb3JOb3RpZmljYXRpb25zXSk6CisKIDIwMjAtMDEtMDkgIEpvaG4gV2ls
YW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hlY2sgdGhlIGV4aXN0ZW5j
ZSBvZiB0aGUgb3B0aW9uYWwgbV9zZXNzaW9uSUQgYmVmb3JlIHVzaW5nIGl0IGluIFdlYlByb2Nl
c3M6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IGQzMjlkMWU2Y2U0ZTA4ZTA0
NDIzNjdkY2M1MDk5NDdjN2JiZWJmOWQuLmFiY2FhMTQ1MmNmMDBkZDJjNWRmYzVlYWE4ZTUxODc4
NGQ1OTU5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbQpAQCAtMTY3LDkgKzE2NywxNyBAQAogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQotc3RhdGljIGNvbnN0IHVpbnQzMl90IGZpcnN0U0RLVmVyc2lvbldpdGhMaW5rUHJl
dmlld0VuYWJsZWRCeURlZmF1bHQgPSAweEEwMDAwOworI2lmIFBMQVRGT1JNKFdBVENIT1MpCitz
dGF0aWMgY29uc3QgQk9PTCBkZWZhdWx0QWxsb3dzVmlld3BvcnRTaHJpbmtUb0ZpdCA9IFlFUzsK
K3N0YXRpYyBjb25zdCBCT09MIGRlZmF1bHRGYXN0Q2xpY2tpbmdFbmFibGVkID0gWUVTOworI2Vs
c2UKK3N0YXRpYyBjb25zdCBCT09MIGRlZmF1bHRBbGxvd3NWaWV3cG9ydFNocmlua1RvRml0ID0g
Tk87CitzdGF0aWMgY29uc3QgQk9PTCBkZWZhdWx0RmFzdENsaWNraW5nRW5hYmxlZCA9IE5POwog
I2VuZGlmCiAKK3N0YXRpYyBjb25zdCB1aW50MzJfdCBmaXJzdFNES1ZlcnNpb25XaXRoTGlua1By
ZXZpZXdFbmFibGVkQnlEZWZhdWx0ID0gMHhBMDAwMDsKKyNlbmRpZiAvLyBQTEFURk9STShJT1Nf
RkFNSUxZKQorCiBzdGF0aWMgSGFzaE1hcDxXZWJLaXQ6OldlYlBhZ2VQcm94eSosIF9fdW5zYWZl
X3VucmV0YWluZWQgV0tXZWJWaWV3ICo+JiBwYWdlVG9WaWV3TWFwKCkKIHsKICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxXZWJLaXQ6OldlYlBhZ2VQcm94eSosIF9fdW5zYWZlX3Vu
cmV0YWluZWQgV0tXZWJWaWV3ICo+PiBtYXA7CkBAIC0zMDIsNiArMzEwLDg4IEBAIC0gKHZvaWQp
X2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqKWNv
bmZpZ3VyYXRpb24KICAgICBhdXRvIHBhZ2VDb25maWd1cmF0aW9uID0gW2NvbmZpZ3VyYXRpb24g
Y29weVBhZ2VDb25maWd1cmF0aW9uXTsKIAogICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRQcm9j
ZXNzUG9vbCgmcHJvY2Vzc1Bvb2wpOworICAgIAorICAgIFtzZWxmIF9zZXR1cFBhZ2VDb25maWd1
cmF0aW9uOnBhZ2VDb25maWd1cmF0aW9uXTsKKworICAgIF91c2VQbGF0Zm9ybUZpbmRVSSA9IFlF
UzsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIF9hdm9pZHNVbnNhZmVBcmVhID0gWUVT
OworICAgIF9vYnNjdXJlZEluc2V0RWRnZXNBZmZlY3RlZEJ5U2FmZUFyZWEgPSBVSVJlY3RFZGdl
VG9wIHwgVUlSZWN0RWRnZUxlZnQgfCBVSVJlY3RFZGdlUmlnaHQ7CisgICAgX3ZpZXdwb3J0TWV0
YVRhZ1dpZHRoID0gV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bzsKKyAgICBf
aW5pdGlhbFNjYWxlRmFjdG9yID0gMTsKKyAgICBfYWxsb3dzVmlld3BvcnRTaHJpbmtUb0ZpdCA9
IGRlZmF1bHRBbGxvd3NWaWV3cG9ydFNocmlua1RvRml0OworCisgICAgc3RhdGljIHVpbnQzMl90
IHByb2dyYW1TREtWZXJzaW9uID0gZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpOworICAg
IF9hbGxvd3NMaW5rUHJldmlldyA9IHByb2dyYW1TREtWZXJzaW9uID49IGZpcnN0U0RLVmVyc2lv
bldpdGhMaW5rUHJldmlld0VuYWJsZWRCeURlZmF1bHQ7CisKKyAgICBhdXRvIGZhc3RDbGlja2lu
Z0VuYWJsZWQgPSBbXSgpIHsKKyAgICAgICAgaWYgKE5TTnVtYmVyICplbmFibGVkVmFsdWUgPSBb
W05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JLZXk6QCJXZWJL
aXRGYXN0Q2xpY2tpbmdEaXNhYmxlZCJdKQorICAgICAgICAgICAgcmV0dXJuIGVuYWJsZWRWYWx1
ZS5ib29sVmFsdWU7CisgICAgICAgIHJldHVybiBkZWZhdWx0RmFzdENsaWNraW5nRW5hYmxlZDsK
KyAgICB9OworCisgICAgX2Zhc3RDbGlja2luZ0lzRGlzYWJsZWQgPSBmYXN0Q2xpY2tpbmdFbmFi
bGVkKCk7CisgICAgX2RyYWdJbnRlcmFjdGlvblBvbGljeSA9IF9XS0RyYWdJbnRlcmFjdGlvblBv
bGljeURlZmF1bHQ7CisKKyAgICBfY29udGVudFZpZXcgPSBhZG9wdE5TKFtbV0tDb250ZW50Vmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpzZWxmLmJvdW5kcyBwcm9jZXNzUG9vbDpwcm9jZXNzUG9v
bCBjb25maWd1cmF0aW9uOnBhZ2VDb25maWd1cmF0aW9uLmNvcHlSZWYoKSB3ZWJWaWV3OnNlbGZd
KTsKKyAgICBfcGFnZSA9IFtfY29udGVudFZpZXcgcGFnZV07CisgICAgW1tfY29uZmlndXJhdGlv
biBfY29udGVudFByb3ZpZGVyUmVnaXN0cnldIGFkZFBhZ2U6Kl9wYWdlXTsKKworICAgIFtzZWxm
IF9zZXR1cFNjcm9sbEFuZENvbnRlbnRWaWV3c107CisgICAgaWYgKCFzZWxmLm9wYXF1ZSB8fCAh
cGFnZUNvbmZpZ3VyYXRpb24tPmRyYXdzQmFja2dyb3VuZCgpKQorICAgICAgICBbc2VsZiBfc2V0
T3BhcXVlSW50ZXJuYWw6Tk9dOworICAgIGVsc2UKKyAgICAgICAgW3NlbGYgX3VwZGF0ZVNjcm9s
bFZpZXdCYWNrZ3JvdW5kXTsKKworICAgIFtzZWxmIF9mcmFtZU9yQm91bmRzQ2hhbmdlZF07Cisg
ICAgW3NlbGYgX3JlZ2lzdGVyRm9yTm90aWZpY2F0aW9uc107CisKKyAgICBfcGFnZS0+Y29udGVu
dFNpemVDYXRlZ29yeURpZENoYW5nZShbc2VsZiBfY29udGVudFNpemVDYXRlZ29yeV0pOworICAg
IF9wYWdlLT5zZXRGb3JjZUFsd2F5c1VzZXJTY2FsYWJsZShbX2NvbmZpZ3VyYXRpb24gaWdub3Jl
c1ZpZXdwb3J0U2NhbGVMaW1pdHNdKTsKKworICAgIENGTm90aWZpY2F0aW9uQ2VudGVyQWRkT2Jz
ZXJ2ZXIoQ0ZOb3RpZmljYXRpb25DZW50ZXJHZXREYXJ3aW5Ob3RpZnlDZW50ZXIoKSwgKF9fYnJp
ZGdlIGNvbnN0IHZvaWQgKikoc2VsZiksIGhhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFu
Z2VkQ2FsbGJhY2ssIChDRlN0cmluZ1JlZilbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6
a0dTRXZlbnRIYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZE5vdGlmaWNhdGlvbl0s
IG51bGxwdHIsIENGTm90aWZpY2F0aW9uU3VzcGVuc2lvbkJlaGF2aW9yQ29hbGVzY2UpOworI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpZiBQTEFURk9STShNQUMpCisgICAgX2lt
cGwgPSBtYWtlVW5pcXVlPFdlYktpdDo6V2ViVmlld0ltcGw+KHNlbGYsIHNlbGYsIHByb2Nlc3NQ
b29sLCBwYWdlQ29uZmlndXJhdGlvbi5jb3B5UmVmKCkpOworICAgIF9wYWdlID0gJl9pbXBsLT5w
YWdlKCk7CisKKyAgICBfaW1wbC0+c2V0QXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRz
KHRydWUpOworICAgIF9pbXBsLT5zZXRSZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29udHJv
bHNNYW5hZ2VyKFtjb25maWd1cmF0aW9uIF9yZXF1aXJlc1VzZXJBY3Rpb25Gb3JFZGl0aW5nQ29u
dHJvbHNNYW5hZ2VyXSk7CisjZW5kaWYKKworICAgIGlmIChOU1N0cmluZyAqYXBwbGljYXRpb25O
YW1lRm9yVXNlckFnZW50ID0gY29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdl
bnQpCisgICAgICAgIF9wYWdlLT5zZXRBcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQoYXBwbGlj
YXRpb25OYW1lRm9yVXNlckFnZW50KTsKKworICAgIF9wYWdlLT5zZXRBcHBsaWNhdGlvbk5hbWVG
b3JEZXNrdG9wVXNlckFnZW50KGNvbmZpZ3VyYXRpb24uX2FwcGxpY2F0aW9uTmFtZUZvckRlc2t0
b3BVc2VyQWdlbnQpOworCisgICAgX25hdmlnYXRpb25TdGF0ZSA9IG1ha2VVbmlxdWU8V2ViS2l0
OjpOYXZpZ2F0aW9uU3RhdGU+KHNlbGYpOworICAgIF9wYWdlLT5zZXROYXZpZ2F0aW9uQ2xpZW50
KF9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZU5hdmlnYXRpb25DbGllbnQoKSk7CisKKyAgICBfdWlE
ZWxlZ2F0ZSA9IG1ha2VVbmlxdWU8V2ViS2l0OjpVSURlbGVnYXRlPihzZWxmKTsKKyAgICBfcGFn
ZS0+c2V0RmluZENsaWVudChtYWtlVW5pcXVlPFdlYktpdDo6RmluZENsaWVudD4oc2VsZikpOwor
ICAgIF9wYWdlLT5zZXREaWFnbm9zdGljTG9nZ2luZ0NsaWVudChtYWtlVW5pcXVlPFdlYktpdDo6
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQ+KHNlbGYpKTsKKworICAgIF9pY29uTG9hZGluZ0RlbGVn
YXRlID0gbWFrZVVuaXF1ZTxXZWJLaXQ6Okljb25Mb2FkaW5nRGVsZWdhdGU+KHNlbGYpOworICAg
IF9yZXNvdXJjZUxvYWREZWxlZ2F0ZSA9IG1ha2VVbmlxdWU8V2ViS2l0OjpSZXNvdXJjZUxvYWRE
ZWxlZ2F0ZT4oc2VsZik7CisKKyAgICBbc2VsZiBfc2V0VXBTUUxpdGVEYXRhYmFzZVRyYWNrZXJD
bGllbnRdOworCisgICAgZm9yIChhdXRvJiBwYWlyIDogcGFnZUNvbmZpZ3VyYXRpb24tPnVybFNj
aGVtZUhhbmRsZXJzKCkpCisgICAgICAgIF9wYWdlLT5zZXRVUkxTY2hlbWVIYW5kbGVyRm9yU2No
ZW1lKFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlckNvY29hOjpjcmVhdGUoc3RhdGljX2Nhc3Q8
V2ViS2l0OjpXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EmPihwYWlyLnZhbHVlLmdldCgpKS5hcGlI
YW5kbGVyKCkpLCBwYWlyLmtleSk7CisKKyAgICBwYWdlVG9WaWV3TWFwKCkuYWRkKF9wYWdlLmdl
dCgpLCBzZWxmKTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgYXV0byB0aW1lTm93
ID0gTW9ub3RvbmljVGltZTo6bm93KCk7CisgICAgX3RpbWVPZlJlcXVlc3RGb3JWaXNpYmxlQ29u
dGVudFJlY3RVcGRhdGUgPSB0aW1lTm93OworICAgIF90aW1lT2ZMYXN0VmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlID0gdGltZU5vdzsKKyAgICBfdGltZU9mRmlyc3RWaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVXaXRoUGVuZGluZ0NvbW1pdCA9IHRpbWVOb3c7CisjZW5kaWYgLy8gUExBVEZPUk0oSU9T
X0ZBTUlMWSkKK30KKworLSAodm9pZClfc2V0dXBQYWdlQ29uZmlndXJhdGlvbjooUmVmPEFQSTo6
UGFnZUNvbmZpZ3VyYXRpb24+JilwYWdlQ29uZmlndXJhdGlvbgorewogICAgIHBhZ2VDb25maWd1
cmF0aW9uLT5zZXRQcmVmZXJlbmNlcyhbX2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLT5fcHJl
ZmVyZW5jZXMuZ2V0KCkpOwogICAgIGlmIChXS1dlYlZpZXcgKnJlbGF0ZWRXZWJWaWV3ID0gW19j
b25maWd1cmF0aW9uIF9yZWxhdGVkV2ViVmlld10pCiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9u
LT5zZXRSZWxhdGVkUGFnZShyZWxhdGVkV2ViVmlldy0+X3BhZ2UuZ2V0KCkpOwpAQCAtMzEyLDE1
ICs0MDIsMTUgQEAgLSAodm9pZClfaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uOihXS1dlYlZp
ZXdDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgogICAgIHBhZ2VDb25maWd1cmF0aW9uLT5z
ZXREZWZhdWx0V2Vic2l0ZVBvbGljaWVzKFtfY29uZmlndXJhdGlvbiBkZWZhdWx0V2VicGFnZVBy
ZWZlcmVuY2VzXS0+X3dlYnNpdGVQb2xpY2llcy5nZXQoKSk7CiAKICNpZiBQTEFURk9STShNQUMp
Ci0gICAgaWYgKGF1dG8gcGFnZUdyb3VwID0gV2ViS2l0Ojp0b0ltcGwoW2NvbmZpZ3VyYXRpb24g
X3BhZ2VHcm91cF0pKSB7CisgICAgaWYgKGF1dG8gcGFnZUdyb3VwID0gV2ViS2l0Ojp0b0ltcGwo
W19jb25maWd1cmF0aW9uIF9wYWdlR3JvdXBdKSkgewogICAgICAgICBwYWdlQ29uZmlndXJhdGlv
bi0+c2V0UGFnZUdyb3VwKHBhZ2VHcm91cCk7CiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5z
ZXRVc2VyQ29udGVudENvbnRyb2xsZXIoJnBhZ2VHcm91cC0+dXNlckNvbnRlbnRDb250cm9sbGVy
KCkpOwogICAgIH0gZWxzZQogI2VuZGlmCiAgICAgewotICAgICAgICBOU1N0cmluZyAqZ3JvdXBJ
ZGVudGlmaWVyID0gY29uZmlndXJhdGlvbi5fZ3JvdXBJZGVudGlmaWVyOworICAgICAgICBOU1N0
cmluZyAqZ3JvdXBJZGVudGlmaWVyID0gW19jb25maWd1cmF0aW9uIF9ncm91cElkZW50aWZpZXJd
OwogICAgICAgICBpZiAoZ3JvdXBJZGVudGlmaWVyLmxlbmd0aCkKLSAgICAgICAgICAgIHBhZ2VD
b25maWd1cmF0aW9uLT5zZXRQYWdlR3JvdXAoV2ViS2l0OjpXZWJQYWdlR3JvdXA6OmNyZWF0ZShj
b25maWd1cmF0aW9uLl9ncm91cElkZW50aWZpZXIpLnB0cigpKTsKKyAgICAgICAgICAgIHBhZ2VD
b25maWd1cmF0aW9uLT5zZXRQYWdlR3JvdXAoV2ViS2l0OjpXZWJQYWdlR3JvdXA6OmNyZWF0ZShn
cm91cElkZW50aWZpZXIpLnB0cigpKTsKICAgICB9CiAKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+
c2V0QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMoV2ViQ29yZTo6d2ViQ29yZVN0cmluZ1Zl
Y3RvckZyb21OU1N0cmluZ0FycmF5KFtfY29uZmlndXJhdGlvbiBfYWRkaXRpb25hbFN1cHBvcnRl
ZEltYWdlVHlwZXNdKSk7CkBAIC0zNzAsNyArNDYwLDcgQEAgLSAodm9pZClfaW5pdGlhbGl6ZVdp
dGhDb25maWd1cmF0aW9uOihXS1dlYlZpZXdDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgog
I2lmIFVTRShTWVNURU1fUFJFVklFVykKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+cHJlZmVyZW5j
ZVZhbHVlcygpLnNldChXZWJLaXQ6OldlYlByZWZlcmVuY2VzS2V5OjpzeXN0ZW1QcmV2aWV3RW5h
YmxlZEtleSgpLCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmU6OlZhbHVlKCEhW19jb25maWd1
cmF0aW9uIF9zeXN0ZW1QcmV2aWV3RW5hYmxlZF0pKTsKICNlbmRpZgotI2VuZGlmCisjZW5kaWYg
Ly8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogICAgIFdLQXVkaW92aXN1YWxNZWRpYVR5cGVzIG1l
ZGlhVHlwZXNSZXF1aXJpbmdVc2VyR2VzdHVyZSA9IFtfY29uZmlndXJhdGlvbiBtZWRpYVR5cGVz
UmVxdWlyaW5nVXNlckFjdGlvbkZvclBsYXliYWNrXTsKICAgICBwYWdlQ29uZmlndXJhdGlvbi0+
cHJlZmVyZW5jZVZhbHVlcygpLnNldChXZWJLaXQ6OldlYlByZWZlcmVuY2VzS2V5OjpyZXF1aXJl
c1VzZXJHZXN0dXJlRm9yVmlkZW9QbGF5YmFja0tleSgpLCBXZWJLaXQ6OldlYlByZWZlcmVuY2Vz
U3RvcmU6OlZhbHVlKChtZWRpYVR5cGVzUmVxdWlyaW5nVXNlckdlc3R1cmUgJiBXS0F1ZGlvdmlz
dWFsTWVkaWFUeXBlVmlkZW8pID09IFdLQXVkaW92aXN1YWxNZWRpYVR5cGVWaWRlbykpOwpAQCAt
NDEyLDEyNSArNTAyLDYgQEAgLSAodm9pZClfaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uOihX
S1dlYlZpZXdDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlvbgogCiAgICAgaWYgKCFsaW5rZWRP
bk9yQWZ0ZXIoV2ViS2l0OjpTREtWZXJzaW9uOjpGaXJzdFdoZXJlU2l0ZVNwZWNpZmljUXVpcmtz
QXJlRW5hYmxlZEJ5RGVmYXVsdCkpCiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJl
bmNlVmFsdWVzKCkuc2V0KFdlYktpdDo6V2ViUHJlZmVyZW5jZXNLZXk6Om5lZWRzU2l0ZVNwZWNp
ZmljUXVpcmtzS2V5KCksIFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZTo6VmFsdWUoZmFsc2Up
KTsKLQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgQ0dSZWN0IGJvdW5kcyA9IHNlbGYu
Ym91bmRzOwotICAgIF9zY3JvbGxWaWV3ID0gYWRvcHROUyhbW1dLU2Nyb2xsVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpib3VuZHNdKTsKLSAgICBbX3Njcm9sbFZpZXcgc2V0SW50ZXJuYWxEZWxl
Z2F0ZTpzZWxmXTsKLSAgICBbX3Njcm9sbFZpZXcgc2V0Qm91bmNlc1pvb206WUVTXTsKLQotICAg
IGlmIChbX3Njcm9sbFZpZXcgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfc2V0QXZvaWRz
SnVtcE9uSW50ZXJydXB0ZWRCb3VuY2U6KV0pIHsKLSAgICAgICAgW19zY3JvbGxWaWV3IHNldFRy
YWNrc0ltbWVkaWF0ZWx5V2hpbGVEZWNlbGVyYXRpbmc6Tk9dOwotICAgICAgICBbX3Njcm9sbFZp
ZXcgX3NldEF2b2lkc0p1bXBPbkludGVycnVwdGVkQm91bmNlOllFU107Ci0gICAgfQotCi0gICAg
aWYgKFtfY29uZmlndXJhdGlvbiBfZWRpdGFibGVJbWFnZXNFbmFibGVkXSkKLSAgICAgICAgW19z
Y3JvbGxWaWV3IHBhbkdlc3R1cmVSZWNvZ25pemVyXS5hbGxvd2VkVG91Y2hUeXBlcyA9IEBbIEAo
VUlUb3VjaFR5cGVEaXJlY3QpIF07Ci0KLSAgICBfYXZvaWRzVW5zYWZlQXJlYSA9IFlFUzsKLSAg
ICBbc2VsZiBfdXBkYXRlU2Nyb2xsVmlld0luc2V0QWRqdXN0bWVudEJlaGF2aW9yXTsKLQotICAg
IFtzZWxmIGFkZFN1YnZpZXc6X3Njcm9sbFZpZXcuZ2V0KCldOwotCi0gICAgc3RhdGljIHVpbnQz
Ml90IHByb2dyYW1TREtWZXJzaW9uID0gZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpOwot
ICAgIF9hbGxvd3NMaW5rUHJldmlldyA9IHByb2dyYW1TREtWZXJzaW9uID49IGZpcnN0U0RLVmVy
c2lvbldpdGhMaW5rUHJldmlld0VuYWJsZWRCeURlZmF1bHQ7Ci0KLSAgICBfY29udGVudFZpZXcg
PSBhZG9wdE5TKFtbV0tDb250ZW50VmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpib3VuZHMgcHJv
Y2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wgY29uZmlndXJhdGlvbjpwYWdlQ29uZmlndXJhdGlvbi5jb3B5
UmVmKCkgd2ViVmlldzpzZWxmXSk7Ci0KLSAgICBfcGFnZSA9IFtfY29udGVudFZpZXcgcGFnZV07
Ci0gICAgW3NlbGYgX2Rpc3BhdGNoU2V0RGV2aWNlT3JpZW50YXRpb246ZGV2aWNlT3JpZW50YXRp
b24oKV07Ci0KLSAgICBpZiAoIXNlbGYub3BhcXVlIHx8ICFwYWdlQ29uZmlndXJhdGlvbi0+ZHJh
d3NCYWNrZ3JvdW5kKCkpCi0gICAgICAgIFtzZWxmIF9zZXRPcGFxdWVJbnRlcm5hbDpOT107Ci0K
LSAgICBbX2NvbnRlbnRWaWV3IGxheWVyXS5hbmNob3JQb2ludCA9IENHUG9pbnRaZXJvOwotICAg
IFtfY29udGVudFZpZXcgc2V0RnJhbWU6Ym91bmRzXTsKLSAgICBbX3Njcm9sbFZpZXcgYWRkU3Vi
dmlldzpfY29udGVudFZpZXcuZ2V0KCldOwotICAgIFtfc2Nyb2xsVmlldyBhZGRTdWJ2aWV3Oltf
Y29udGVudFZpZXcgdW5zY2FsZWRWaWV3XV07Ci0gICAgW3NlbGYgX3VwZGF0ZVNjcm9sbFZpZXdC
YWNrZ3JvdW5kXTsKLSAgICBfb2JzY3VyZWRJbnNldEVkZ2VzQWZmZWN0ZWRCeVNhZmVBcmVhID0g
VUlSZWN0RWRnZVRvcCB8IFVJUmVjdEVkZ2VMZWZ0IHwgVUlSZWN0RWRnZVJpZ2h0OwotCi0gICAg
X3ZpZXdwb3J0TWV0YVRhZ1dpZHRoID0gV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM6OlZhbHVl
QXV0bzsKLSAgICBfaW5pdGlhbFNjYWxlRmFjdG9yID0gMTsKLQotICAgIGlmIChOU051bWJlciAq
ZW5hYmxlZFZhbHVlID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gb2Jq
ZWN0Rm9yS2V5OkAiV2ViS2l0RmFzdENsaWNraW5nRGlzYWJsZWQiXSkKLSAgICAgICAgX2Zhc3RD
bGlja2luZ0lzRGlzYWJsZWQgPSBlbmFibGVkVmFsdWUuYm9vbFZhbHVlOwotICAgIGVsc2Ugewot
I2lmIFBMQVRGT1JNKFdBVENIT1MpCi0gICAgICAgIF9mYXN0Q2xpY2tpbmdJc0Rpc2FibGVkID0g
WUVTOwotI2Vsc2UKLSAgICAgICAgX2Zhc3RDbGlja2luZ0lzRGlzYWJsZWQgPSBOTzsKLSNlbmRp
ZgotICAgIH0KLQotICAgIFtzZWxmIF9mcmFtZU9yQm91bmRzQ2hhbmdlZF07Ci0KLSAgICBOU05v
dGlmaWNhdGlvbkNlbnRlciAqY2VudGVyID0gW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdOwotICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3Io
X2tleWJvYXJkV2lsbENoYW5nZUZyYW1lOikgbmFtZTpVSUtleWJvYXJkV2lsbENoYW5nZUZyYW1l
Tm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwotICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBz
ZWxlY3RvcjpAc2VsZWN0b3IoX2tleWJvYXJkRGlkQ2hhbmdlRnJhbWU6KSBuYW1lOlVJS2V5Ym9h
cmREaWRDaGFuZ2VGcmFtZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKLSAgICBbY2VudGVyIGFk
ZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9rZXlib2FyZFdpbGxTaG93OikgbmFt
ZTpVSUtleWJvYXJkV2lsbFNob3dOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07Ci0gICAgW2NlbnRl
ciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfa2V5Ym9hcmREaWRTaG93Oikg
bmFtZTpVSUtleWJvYXJkRGlkU2hvd05vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKLSAgICBbY2Vu
dGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9rZXlib2FyZFdpbGxIaWRl
OikgbmFtZTpVSUtleWJvYXJkV2lsbEhpZGVOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07Ci0gICAg
W2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkUm90
YXRlOikgbmFtZTpVSVdpbmRvd0RpZFJvdGF0ZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKLSAg
ICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9jb250ZW50U2l6
ZUNhdGVnb3J5RGlkQ2hhbmdlOikgbmFtZTpVSUNvbnRlbnRTaXplQ2F0ZWdvcnlEaWRDaGFuZ2VO
b3RpZmljYXRpb24gb2JqZWN0Om5pbF07Ci0gICAgX3BhZ2UtPmNvbnRlbnRTaXplQ2F0ZWdvcnlE
aWRDaGFuZ2UoW3NlbGYgX2NvbnRlbnRTaXplQ2F0ZWdvcnldKTsKLQotICAgIFtjZW50ZXIgYWRk
T2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2FjY2Vzc2liaWxpdHlTZXR0aW5nc0Rp
ZENoYW5nZTopIG5hbWU6VUlBY2Nlc3NpYmlsaXR5R3JheXNjYWxlU3RhdHVzRGlkQ2hhbmdlTm90
aWZpY2F0aW9uIG9iamVjdDpuaWxdOwotICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxl
Y3RvcjpAc2VsZWN0b3IoX2FjY2Vzc2liaWxpdHlTZXR0aW5nc0RpZENoYW5nZTopIG5hbWU6VUlB
Y2Nlc3NpYmlsaXR5SW52ZXJ0Q29sb3JzU3RhdHVzRGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVj
dDpuaWxdOwotICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3Io
X2FjY2Vzc2liaWxpdHlTZXR0aW5nc0RpZENoYW5nZTopIG5hbWU6VUlBY2Nlc3NpYmlsaXR5UmVk
dWNlTW90aW9uU3RhdHVzRGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwotCi0gICAg
W1tfY29uZmlndXJhdGlvbiBfY29udGVudFByb3ZpZGVyUmVnaXN0cnldIGFkZFBhZ2U6Kl9wYWdl
XTsKLSAgICBfcGFnZS0+c2V0Rm9yY2VBbHdheXNVc2VyU2NhbGFibGUoW19jb25maWd1cmF0aW9u
IGlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzXSk7Ci0KLSAgICBDRk5vdGlmaWNhdGlvbkNlbnRl
ckFkZE9ic2VydmVyKENGTm90aWZpY2F0aW9uQ2VudGVyR2V0RGFyd2luTm90aWZ5Q2VudGVyKCks
IChfX2JyaWRnZSBjb25zdCB2b2lkICopKHNlbGYpLCBoYXJkd2FyZUtleWJvYXJkQXZhaWxhYmls
aXR5Q2hhbmdlZENhbGxiYWNrLCAoQ0ZTdHJpbmdSZWYpW05TU3RyaW5nIHN0cmluZ1dpdGhVVEY4
U3RyaW5nOmtHU0V2ZW50SGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWROb3RpZmlj
YXRpb25dLCBudWxscHRyLCBDRk5vdGlmaWNhdGlvblN1c3BlbnNpb25CZWhhdmlvckNvYWxlc2Nl
KTsKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIF9pbXBsID0gbWFrZVVuaXF1ZTxX
ZWJLaXQ6OldlYlZpZXdJbXBsPihzZWxmLCBzZWxmLCBwcm9jZXNzUG9vbCwgcGFnZUNvbmZpZ3Vy
YXRpb24uY29weVJlZigpKTsKLSAgICBfcGFnZSA9ICZfaW1wbC0+cGFnZSgpOwotCi0gICAgX2lt
cGwtPnNldEF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cyh0cnVlKTsKLSAgICBfaW1w
bC0+c2V0UmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlcihbY29uZmln
dXJhdGlvbiBfcmVxdWlyZXNVc2VyQWN0aW9uRm9yRWRpdGluZ0NvbnRyb2xzTWFuYWdlcl0pOwot
I2VuZGlmCi0KLSAgICBpZiAoTlNTdHJpbmcgKmFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCA9
IGNvbmZpZ3VyYXRpb24uYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KQotICAgICAgICBfcGFn
ZS0+c2V0QXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KGFwcGxpY2F0aW9uTmFtZUZvclVzZXJB
Z2VudCk7Ci0KLSAgICBfcGFnZS0+c2V0QXBwbGljYXRpb25OYW1lRm9yRGVza3RvcFVzZXJBZ2Vu
dChjb25maWd1cmF0aW9uLl9hcHBsaWNhdGlvbk5hbWVGb3JEZXNrdG9wVXNlckFnZW50KTsKLQot
ICAgIF9uYXZpZ2F0aW9uU3RhdGUgPSBtYWtlVW5pcXVlPFdlYktpdDo6TmF2aWdhdGlvblN0YXRl
PihzZWxmKTsKLSAgICBfcGFnZS0+c2V0TmF2aWdhdGlvbkNsaWVudChfbmF2aWdhdGlvblN0YXRl
LT5jcmVhdGVOYXZpZ2F0aW9uQ2xpZW50KCkpOwotCi0gICAgX3VpRGVsZWdhdGUgPSBtYWtlVW5p
cXVlPFdlYktpdDo6VUlEZWxlZ2F0ZT4oc2VsZik7Ci0gICAgX3BhZ2UtPnNldEZpbmRDbGllbnQo
bWFrZVVuaXF1ZTxXZWJLaXQ6OkZpbmRDbGllbnQ+KHNlbGYpKTsKLSAgICBfcGFnZS0+c2V0RGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQobWFrZVVuaXF1ZTxXZWJLaXQ6OkRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50PihzZWxmKSk7Ci0KLSAgICBfaWNvbkxvYWRpbmdEZWxlZ2F0ZSA9IG1ha2VVbmlxdWU8
V2ViS2l0OjpJY29uTG9hZGluZ0RlbGVnYXRlPihzZWxmKTsKLSAgICBfcmVzb3VyY2VMb2FkRGVs
ZWdhdGUgPSBtYWtlVW5pcXVlPFdlYktpdDo6UmVzb3VyY2VMb2FkRGVsZWdhdGU+KHNlbGYpOwot
Ci0gICAgX3VzZVBsYXRmb3JtRmluZFVJID0gWUVTOwotCi0gICAgW3NlbGYgX3NldFVwU1FMaXRl
RGF0YWJhc2VUcmFja2VyQ2xpZW50XTsKLQotICAgIGZvciAoYXV0byYgcGFpciA6IHBhZ2VDb25m
aWd1cmF0aW9uLT51cmxTY2hlbWVIYW5kbGVycygpKQotICAgICAgICBfcGFnZS0+c2V0VVJMU2No
ZW1lSGFuZGxlckZvclNjaGVtZShXZWJLaXQ6OldlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYTo6Y3Jl
YXRlKHN0YXRpY19jYXN0PFdlYktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlckNvY29hJj4ocGFpci52
YWx1ZS5nZXQoKSkuYXBpSGFuZGxlcigpKSwgcGFpci5rZXkpOwotCi0gICAgcGFnZVRvVmlld01h
cCgpLmFkZChfcGFnZS5nZXQoKSwgc2VsZik7Ci0KLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQot
ICAgIF9kcmFnSW50ZXJhY3Rpb25Qb2xpY3kgPSBfV0tEcmFnSW50ZXJhY3Rpb25Qb2xpY3lEZWZh
dWx0OwotCi0gICAgYXV0byB0aW1lTm93ID0gTW9ub3RvbmljVGltZTo6bm93KCk7Ci0gICAgX3Rp
bWVPZlJlcXVlc3RGb3JWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUgPSB0aW1lTm93OwotICAgIF90
aW1lT2ZMYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlID0gdGltZU5vdzsKLSAgICBfdGltZU9m
Rmlyc3RWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVXaXRoUGVuZGluZ0NvbW1pdCA9IHRpbWVOb3c7
Ci0KLSNpZiBQTEFURk9STShXQVRDSE9TKQotICAgIF9hbGxvd3NWaWV3cG9ydFNocmlua1RvRml0
ID0gWUVTOwotI2Vsc2UKLSAgICBfYWxsb3dzVmlld3BvcnRTaHJpbmtUb0ZpdCA9IE5POwotI2Vu
ZGlmCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKIH0KIAogLSAodm9pZClfc2V0VXBT
UUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvaW9zL1dLV2ViVmlld0lPUy5oCmluZGV4IDUyMDVhM2Y2ZjRmNzI1NDA1YWQ1YTU1ZDUyNDMw
MGMxNjlhZTQwY2EuLjQzNjlkMjcxNGEyMTA5NTU3ZDcxNDUyZGJhMzY2YmU0NDQ2Y2I0NDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3SU9TLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MuaApAQCAt
MjksNiArMjksOSBAQAogCiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoV0tWaWV3SW50ZXJuYWxJT1Mp
CiAKKy0gKHZvaWQpX3NldHVwU2Nyb2xsQW5kQ29udGVudFZpZXdzOworLSAodm9pZClfcmVnaXN0
ZXJGb3JOb3RpZmljYXRpb25zOworCiAtICh2b2lkKV9rZXlib2FyZFdpbGxDaGFuZ2VGcmFtZToo
TlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb247CiAtICh2b2lkKV9rZXlib2FyZERpZENoYW5n
ZUZyYW1lOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbjsKIC0gKHZvaWQpX2tleWJvYXJk
V2lsbFNob3c6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld0lPUy5tbQppbmRleCBiMGZiNzlhMmU0Nzlh
M2NjZGY3Y2E1Mzg1ZjM0MTJkMGIyZmE5OGVjLi5kMDQzZDNhYzI1MzU4MTVkYjJiOTA0NjQ0ZmUw
MWYwNDJkMjQwYTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9z
L1dLV2ViVmlld0lPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dL
V2ViVmlld0lPUy5tbQpAQCAtMTM4LDYgKzEzOCw0OSBAQCAtICh2b2lkKWxheW91dFN1YnZpZXdz
CiAKICNwcmFnbWEgbWFyayAtIGlPUyBpbXBsZW1lbnRhdGlvbiBtZXRob2RzCiAKKy0gKHZvaWQp
X3NldHVwU2Nyb2xsQW5kQ29udGVudFZpZXdzCit7CisgICAgQ0dSZWN0IGJvdW5kcyA9IHNlbGYu
Ym91bmRzOworICAgIF9zY3JvbGxWaWV3ID0gYWRvcHROUyhbW1dLU2Nyb2xsVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpib3VuZHNdKTsKKyAgICBbX3Njcm9sbFZpZXcgc2V0SW50ZXJuYWxEZWxl
Z2F0ZTpzZWxmXTsKKyAgICBbX3Njcm9sbFZpZXcgc2V0Qm91bmNlc1pvb206WUVTXTsKKworICAg
IGlmIChbX3Njcm9sbFZpZXcgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfc2V0QXZvaWRz
SnVtcE9uSW50ZXJydXB0ZWRCb3VuY2U6KV0pIHsKKyAgICAgICAgW19zY3JvbGxWaWV3IHNldFRy
YWNrc0ltbWVkaWF0ZWx5V2hpbGVEZWNlbGVyYXRpbmc6Tk9dOworICAgICAgICBbX3Njcm9sbFZp
ZXcgX3NldEF2b2lkc0p1bXBPbkludGVycnVwdGVkQm91bmNlOllFU107CisgICAgfQorCisgICAg
aWYgKFtfY29uZmlndXJhdGlvbiBfZWRpdGFibGVJbWFnZXNFbmFibGVkXSkKKyAgICAgICAgW19z
Y3JvbGxWaWV3IHBhbkdlc3R1cmVSZWNvZ25pemVyXS5hbGxvd2VkVG91Y2hUeXBlcyA9IEBbIEAo
VUlUb3VjaFR5cGVEaXJlY3QpIF07CisKKyAgICBbc2VsZiBfdXBkYXRlU2Nyb2xsVmlld0luc2V0
QWRqdXN0bWVudEJlaGF2aW9yXTsKKworICAgIFtzZWxmIGFkZFN1YnZpZXc6X3Njcm9sbFZpZXcu
Z2V0KCldOworCisgICAgW3NlbGYgX2Rpc3BhdGNoU2V0RGV2aWNlT3JpZW50YXRpb246ZGV2aWNl
T3JpZW50YXRpb24oKV07CisKKyAgICBbX2NvbnRlbnRWaWV3IGxheWVyXS5hbmNob3JQb2ludCA9
IENHUG9pbnRaZXJvOworICAgIFtfY29udGVudFZpZXcgc2V0RnJhbWU6Ym91bmRzXTsKKyAgICBb
X3Njcm9sbFZpZXcgYWRkU3VidmlldzpfY29udGVudFZpZXcuZ2V0KCldOworICAgIFtfc2Nyb2xs
VmlldyBhZGRTdWJ2aWV3OltfY29udGVudFZpZXcgdW5zY2FsZWRWaWV3XV07Cit9CisKKy0gKHZv
aWQpX3JlZ2lzdGVyRm9yTm90aWZpY2F0aW9ucworeworICAgIE5TTm90aWZpY2F0aW9uQ2VudGVy
ICpjZW50ZXIgPSBbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl07CisgICAgW2Nl
bnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfa2V5Ym9hcmRXaWxsQ2hh
bmdlRnJhbWU6KSBuYW1lOlVJS2V5Ym9hcmRXaWxsQ2hhbmdlRnJhbWVOb3RpZmljYXRpb24gb2Jq
ZWN0Om5pbF07CisgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rv
cihfa2V5Ym9hcmREaWRDaGFuZ2VGcmFtZTopIG5hbWU6VUlLZXlib2FyZERpZENoYW5nZUZyYW1l
Tm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOworICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBz
ZWxlY3RvcjpAc2VsZWN0b3IoX2tleWJvYXJkV2lsbFNob3c6KSBuYW1lOlVJS2V5Ym9hcmRXaWxs
U2hvd05vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKKyAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNl
bGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9rZXlib2FyZERpZFNob3c6KSBuYW1lOlVJS2V5Ym9hcmRE
aWRTaG93Tm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOworICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6
c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2tleWJvYXJkV2lsbEhpZGU6KSBuYW1lOlVJS2V5Ym9h
cmRXaWxsSGlkZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKKyAgICBbY2VudGVyIGFkZE9ic2Vy
dmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRSb3RhdGU6KSBuYW1lOlVJV2lu
ZG93RGlkUm90YXRlTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOworICAgIFtjZW50ZXIgYWRkT2Jz
ZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2NvbnRlbnRTaXplQ2F0ZWdvcnlEaWRDaGFu
Z2U6KSBuYW1lOlVJQ29udGVudFNpemVDYXRlZ29yeURpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmpl
Y3Q6bmlsXTsKKworICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0
b3IoX2FjY2Vzc2liaWxpdHlTZXR0aW5nc0RpZENoYW5nZTopIG5hbWU6VUlBY2Nlc3NpYmlsaXR5
R3JheXNjYWxlU3RhdHVzRGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOworICAgIFtj
ZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2FjY2Vzc2liaWxpdHlT
ZXR0aW5nc0RpZENoYW5nZTopIG5hbWU6VUlBY2Nlc3NpYmlsaXR5SW52ZXJ0Q29sb3JzU3RhdHVz
RGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOworICAgIFtjZW50ZXIgYWRkT2JzZXJ2
ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2FjY2Vzc2liaWxpdHlTZXR0aW5nc0RpZENoYW5n
ZTopIG5hbWU6VUlBY2Nlc3NpYmlsaXR5UmVkdWNlTW90aW9uU3RhdHVzRGlkQ2hhbmdlTm90aWZp
Y2F0aW9uIG9iamVjdDpuaWxdOworfQorCiAtIChCT09MKV9pc1Nob3dpbmdWaWRlb1BpY3R1cmVJ
blBpY3R1cmUKIHsKICNpZiAhSEFWRShBVktJVCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>