<?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>225285</bug_id>
          
          <creation_ts>2021-05-02 17:49:38 -0700</creation_ts>
          <short_desc>Support reftests using DisplayP3 backing stores rather than sRGB to enable testing non-sRGB functionality</short_desc>
          <delta_ts>2021-05-09 17:50:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1756077</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-02 17:49:38 -0700</bug_when>
    <thetext>Support reftests using DisplayP3 backing stores rather than sRGB to enable testing non-sRGB functionality</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756079</commentid>
    <comment_count>1</comment_count>
      <attachid>427533</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-02 17:52:18 -0700</bug_when>
    <thetext>Created attachment 427533
WIP (only supports non-composited WebKitLegacy macOS)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756090</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-02 19:28:25 -0700</bug_when>
    <thetext>For modern WebKit and composited WebKitLegacy content the issue is that CGWindowListCreateImage() doesn&apos;t seem to be return a CGImageRef with the right color space even though the window has a DisplayP3 color space on it. 

I will check with the window server and CA folks to see if this is expected and/or there is any work around.

If there isn&apos;t, we could make this new flag incompatible with compositing and use the FrameSnapshotting code when testing non-sRGB, but that seems less than ideal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758396</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-09 17:50:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/77722485&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427533</attachid>
            <date>2021-05-02 17:52:18 -0700</date>
            <delta_ts>2021-05-02 19:20:05 -0700</delta_ts>
            <desc>WIP (only supports non-composited WebKitLegacy macOS)</desc>
            <filename>drt_p3.diff</filename>
            <type>text/plain</type>
            <size>22302</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3Njg4OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQwIEBACisyMDIxLTA1LTAyICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBTdXBwb3J0IHJlZnRlc3RzIHVzaW5nIERpc3BsYXlQMyBiYWNraW5nIHN0b3JlcyBy
YXRoZXIgdGhhbiBzUkdCIHRvIGVuYWJsZSB0ZXN0aW5nIG5vbi1zUkdCIGZ1bmN0aW9uYWxpdHkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI4NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvUGl4ZWxEdW1wU3VwcG9ydC5jcHA6CisgICAgICAgIChkdW1wV2ViVmlld0FzUGl4
ZWxzQW5kQ29tcGFyZVdpdGhFeHBlY3RlZCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvUGl4
ZWxEdW1wU3VwcG9ydC5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmNw
cDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmtleVR5cGVNYXBwaW5nKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5oOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9u
czo6dXNlRGlzcGxheVAzQmFja2luZ1N0b3JlIGNvbnN0KToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIpOgor
ICAgICAgICAoVGVzdFJ1bm5lcjo6Y3JlYXRlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmg6CisgICAgICAgIChUZXN0UnVubmVyOjp0ZXN0T3B0aW9ucyBjb25zdCk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2cvUGl4ZWxEdW1wU3VwcG9ydENHLmNwcDoKKyAgICAg
ICAgKGNyZWF0ZUJpdG1hcENvbnRleHQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2NnL1Bp
eGVsRHVtcFN1cHBvcnRDRy5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2lvcy9QaXhlbER1
bXBTdXBwb3J0SU9TLm1tOgorICAgICAgICAoY3JlYXRlQml0bWFwQ29udGV4dEZyb21XZWJWaWV3
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAg
ICAgIChjcmVhdGVXZWJWaWV3QW5kT2Zmc2NyZWVuV2luZG93KToKKyAgICAgICAgKGNyZWF0ZUds
b2JhbFdlYlZpZXdBbmRPZmZzY3JlZW5XaW5kb3cpOgorICAgICAgICAocnVuVGVzdCk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlTWFjLmg6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvbWFjL1BpeGVsRHVtcFN1cHBvcnRNYWMubW06CisgICAgICAgIChjcmVh
dGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcpOgorICAgICAgICAoY3JlYXRlUGFnZWRCaXRtYXBD
b250ZXh0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVUlEZWxlZ2F0ZS5tbToKKyAg
ICAgICAgKC1bVUlEZWxlZ2F0ZSB3ZWJWaWV3OmNyZWF0ZVdlYlZpZXdXaXRoUmVxdWVzdDpdKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vUGl4ZWxEdW1wU3VwcG9ydFdpbi5jcHA6Cisg
ICAgICAgIChjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcpOgorCiAyMDIxLTA1LTAxICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3RhcnQgbGV2ZXJhZ2lu
ZyBzdGQ6OmZpbGVzeXN0ZW0gaW4gV1RGOjpGaWxlU3lzdGVtCkluZGV4OiBUb29scy9EdW1wUmVu
ZGVyVHJlZS9QaXhlbER1bXBTdXBwb3J0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVu
ZGVyVHJlZS9QaXhlbER1bXBTdXBwb3J0LmNwcAkocmV2aXNpb24gMjc2ODg4KQorKysgVG9vbHMv
RHVtcFJlbmRlclRyZWUvUGl4ZWxEdW1wU3VwcG9ydC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUz
LDcgKzUzLDcgQEAgdm9pZCBkdW1wV2ViVmlld0FzUGl4ZWxzQW5kQ29tcGFyZVdpdGhFeAogICAg
ICAgICBjb250ZXh0ID0gY3JlYXRlUGFnZWRCaXRtYXBDb250ZXh0KCk7CiAgICAgZWxzZQogI2Vu
ZGlmCi0gICAgICAgIGNvbnRleHQgPSBjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcoZ1Rl
c3RSdW5uZXItPnRlc3RPbnNjcmVlbigpLCBnVGVzdFJ1bm5lci0+dGVzdFJlcGFpbnQoKSwgZ1Rl
c3RSdW5uZXItPnRlc3RSZXBhaW50U3dlZXBIb3Jpem9udGFsbHkoKSwgZ1Rlc3RSdW5uZXItPmR1
bXBTZWxlY3Rpb25SZWN0KCkpOworICAgICAgICBjb250ZXh0ID0gY3JlYXRlQml0bWFwQ29udGV4
dEZyb21XZWJWaWV3KGdUZXN0UnVubmVyLT50ZXN0T25zY3JlZW4oKSwgZ1Rlc3RSdW5uZXItPnRl
c3RSZXBhaW50KCksIGdUZXN0UnVubmVyLT50ZXN0UmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5KCks
IGdUZXN0UnVubmVyLT5kdW1wU2VsZWN0aW9uUmVjdCgpLCBnVGVzdFJ1bm5lci0+dGVzdE9wdGlv
bnMoKS51c2VEaXNwbGF5UDNCYWNraW5nU3RvcmUoKSk7CiAgICAgQVNTRVJUKGNvbnRleHQpOwog
ICAgIAogICAgIC8vIENvbXB1dGUgdGhlIGhhc2ggb2YgdGhlIGJpdG1hcCBjb250ZXh0IHBpeGVs
cwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvUGl4ZWxEdW1wU3VwcG9ydC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1BpeGVsRHVtcFN1cHBvcnQuaAkocmV2aXNpb24g
Mjc2ODg4KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvUGl4ZWxEdW1wU3VwcG9ydC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIEJpdG1hcENvbnRleHQ7CiAKIHZvaWQg
Y29tcHV0ZVNIQTFIYXNoU3RyaW5nRm9yQml0bWFwQ29udGV4dChCaXRtYXBDb250ZXh0KiwgY2hh
ciBoYXNoU3RyaW5nWzMzXSk7CiBSZWZQdHI8Qml0bWFwQ29udGV4dD4gY3JlYXRlUGFnZWRCaXRt
YXBDb250ZXh0KCk7Ci1SZWZQdHI8Qml0bWFwQ29udGV4dD4gY3JlYXRlQml0bWFwQ29udGV4dEZy
b21XZWJWaWV3KGJvb2wgb25zY3JlZW4sIGJvb2wgaW5jcmVtZW50YWxSZXBhaW50LCBib29sIHN3
ZWVwSG9yaXpvbnRhbGx5LCBib29sIGRyYXdTZWxlY3Rpb25SZWN0KTsKK1JlZlB0cjxCaXRtYXBD
b250ZXh0PiBjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcoYm9vbCBvbnNjcmVlbiwgYm9v
bCBpbmNyZW1lbnRhbFJlcGFpbnQsIGJvb2wgc3dlZXBIb3Jpem9udGFsbHksIGJvb2wgZHJhd1Nl
bGVjdGlvblJlY3QsIGJvb2wgdXNlRGlzcGxheVAzQ29sb3JTcGFjZSk7CiB2b2lkIGR1bXBCaXRt
YXAoQml0bWFwQ29udGV4dCosIGNvbnN0IGNoYXIqIGNoZWNrc3VtKTsKIHZvaWQgZHVtcFdlYlZp
ZXdBc1BpeGVsc0FuZENvbXBhcmVXaXRoRXhwZWN0ZWQoY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVj
dGVkSGFzaCk7CiB2b2lkIHByaW50UE5HKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEsIGNvbnN0
IHNpemVfdCBkYXRhTGVuZ3RoLCBjb25zdCBjaGFyKiBjaGVja3N1bSk7CkluZGV4OiBUb29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCShyZXZpc2lvbiAyNzY4ODgpCisrKyBUb29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMCw2ICsyMDAs
NyBAQCBjb25zdCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIFRlCiAgICAgICAgIHsg
ImVuYWJsZURyYWdEZXN0aW5hdGlvbkFjdGlvbkxvYWQiLCBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9v
bFRlc3RSdW5uZXIgfSwKICAgICAgICAgeyAibGF5ZXJCYWNrZWRXZWJWaWV3IiwgVGVzdEhlYWRl
cktleVR5cGU6OkJvb2xUZXN0UnVubmVyIH0sCiAgICAgICAgIHsgInVzZUVwaGVtZXJhbFNlc3Np
b24iLCBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFRlc3RSdW5uZXIgfSwKKyAgICAgICAgeyAidXNl
RGlzcGxheVAzQmFja2luZ1N0b3JlIiwgVGVzdEhlYWRlcktleVR5cGU6OkJvb2xUZXN0UnVubmVy
IH0sCiAKICAgICAgICAgeyAiYWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMiLCBUZXN0SGVh
ZGVyS2V5VHlwZTo6U3RyaW5nVGVzdFJ1bm5lciB9LAogICAgICAgICB7ICJqc2NPcHRpb25zIiwg
VGVzdEhlYWRlcktleVR5cGU6OlN0cmluZ1Rlc3RSdW5uZXIgfSwKSW5kZXg6IFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3RPcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdE9wdGlvbnMuaAkocmV2aXNpb24gMjc2ODg4KQorKysgVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdE9wdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBlbmFibGVEcmFnRGVzdGluYXRpb25BY3Rpb25Mb2FkKCkgY29uc3QgeyByZXR1
cm4gYm9vbFRlc3RSdW5uZXJGZWF0dXJlVmFsdWUoImVuYWJsZURyYWdEZXN0aW5hdGlvbkFjdGlv
bkxvYWQiLCBmYWxzZSk7IH0KICAgICBib29sIGxheWVyQmFja2VkV2ViVmlldygpIGNvbnN0IHsg
cmV0dXJuIGJvb2xUZXN0UnVubmVyRmVhdHVyZVZhbHVlKCJsYXllckJhY2tlZFdlYlZpZXciLCBm
YWxzZSk7IH0KICAgICBib29sIHVzZUVwaGVtZXJhbFNlc3Npb24oKSBjb25zdCB7IHJldHVybiBi
b29sVGVzdFJ1bm5lckZlYXR1cmVWYWx1ZSgidXNlRXBoZW1lcmFsU2Vzc2lvbiIsIGZhbHNlKTsg
fQorICAgIGJvb2wgdXNlRGlzcGxheVAzQmFja2luZ1N0b3JlKCkgY29uc3QgeyByZXR1cm4gYm9v
bFRlc3RSdW5uZXJGZWF0dXJlVmFsdWUoInVzZURpc3BsYXlQM0JhY2tpbmdTdG9yZSIsIGZhbHNl
KTsgfQogICAgIHN0ZDo6c3RyaW5nIGFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzKCkgY29u
c3QgeyByZXR1cm4gc3RyaW5nVGVzdFJ1bm5lckZlYXR1cmVWYWx1ZSgiYWRkaXRpb25hbFN1cHBv
cnRlZEltYWdlVHlwZXMiLCB7IH0pOyB9CiAgICAgc3RkOjpzdHJpbmcganNjT3B0aW9ucygpIGNv
bnN0IHsgcmV0dXJuIHN0cmluZ1Rlc3RSdW5uZXJGZWF0dXJlVmFsdWUoImpzY09wdGlvbnMiLCB7
IH0pOyB9CiAKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCShyZXZpc2lvbiAy
NzY4ODgpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzMsMTYgKzczLDE3IEBAIGNvbnN0IHVuc2lnbmVkIFRlc3RSdW5uZXI6OnZpZXdI
ZWlnaHQgPSAKIGNvbnN0IHVuc2lnbmVkIFRlc3RSdW5uZXI6OnczY1NWR1ZpZXdXaWR0aCA9IDQ4
MDsKIGNvbnN0IHVuc2lnbmVkIFRlc3RSdW5uZXI6OnczY1NWR1ZpZXdIZWlnaHQgPSAzNjA7CiAK
LVRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoY29uc3Qgc3RkOjpzdHJpbmcmIHRlc3RVUkwsIGNvbnN0
IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFzaCkKLSAgICA6IG1fdGVzdFVSTCh0ZXN0VVJM
KQorVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcihjb25zdCBXVFI6OlRlc3RPcHRpb25zJiBvcHRpb25z
LCBjb25zdCBzdGQ6OnN0cmluZyYgdGVzdFVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVjdGVk
UGl4ZWxIYXNoKQorICAgIDogbV90ZXN0T3B0aW9ucyhvcHRpb25zKQorICAgICwgbV90ZXN0VVJM
KHRlc3RVUkwpCiAgICAgLCBtX2V4cGVjdGVkUGl4ZWxIYXNoKGV4cGVjdGVkUGl4ZWxIYXNoKQog
ICAgICwgbV90aXRsZVRleHREaXJlY3Rpb24oImx0ciIpCiB7CiB9CiAKLVJlZjxUZXN0UnVubmVy
PiBUZXN0UnVubmVyOjpjcmVhdGUoY29uc3Qgc3RkOjpzdHJpbmcmIHRlc3RVUkwsIGNvbnN0IHN0
ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFzaCkKK1JlZjxUZXN0UnVubmVyPiBUZXN0UnVubmVy
OjpjcmVhdGUoY29uc3QgV1RSOjpUZXN0T3B0aW9ucyYgb3B0aW9ucywgY29uc3Qgc3RkOjpzdHJp
bmcmIHRlc3RVUkwsIGNvbnN0IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFzaCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXN0UnVubmVyKHRlc3RVUkwsIGV4cGVjdGVkUGl4ZWxI
YXNoKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGVzdFJ1bm5lcihvcHRpb25zLCB0ZXN0
VVJMLCBleHBlY3RlZFBpeGVsSGFzaCkpOwogfQogCiAvLyBTdGF0aWMgRnVuY3Rpb25zCkluZGV4
OiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCShyZXZpc2lvbiAyNzY4ODgpCisrKyBUb29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJUZXN0T3B0aW9ucy5oIgogI2luY2x1ZGUg
IlVJU2NyaXB0Q29udGV4dC5oIgogI2luY2x1ZGUgIlVJU2NyaXB0Q29udHJvbGxlci5oIgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTT2JqZWN0UmVmLmg+CkBAIC00Miw3ICs0Myw3IEBAIGV4
dGVybiBGSUxFKiB0ZXN0UmVzdWx0OwogY2xhc3MgVGVzdFJ1bm5lciA6IHB1YmxpYyBXVFI6OlVJ
U2NyaXB0Q29udGV4dERlbGVnYXRlLCBwdWJsaWMgUmVmQ291bnRlZDxUZXN0UnVubmVyPiB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGVzdFJ1bm5lcik7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxUZXN0UnVubmVyPiBjcmVhdGUoY29uc3Qgc3RkOjpzdHJpbmcmIHRlc3RVUkwsIGNvbnN0
IHN0ZDo6c3RyaW5nJiBleHBlY3RlZFBpeGVsSGFzaCk7CisgICAgc3RhdGljIFJlZjxUZXN0UnVu
bmVyPiBjcmVhdGUoY29uc3QgV1RSOjpUZXN0T3B0aW9ucyYsIGNvbnN0IHN0ZDo6c3RyaW5nJiB0
ZXN0VVJMLCBjb25zdCBzdGQ6OnN0cmluZyYgZXhwZWN0ZWRQaXhlbEhhc2gpOwogCiAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIHZpZXdXaWR0aDsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
dmlld0hlaWdodDsKQEAgLTU2LDYgKzU3LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBtYWtlV2lu
ZG93T2JqZWN0KEpTQ29udGV4dFJlZik7CiAKKyAgICBjb25zdCBXVFI6OlRlc3RPcHRpb25zJiB0
ZXN0T3B0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fdGVzdE9wdGlvbnM7IH0KKwogICAgIHZvaWQg
YWRkRGlzYWxsb3dlZFVSTChKU1N0cmluZ1JlZiB1cmwpOwogICAgIGNvbnN0IHN0ZDo6c2V0PHN0
ZDo6c3RyaW5nPiYgYWxsb3dlZEhvc3RzKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd2VkSG9zdHM7
IH0KICAgICB2b2lkIHNldEFsbG93ZWRIb3N0cyhzdGQ6OnNldDxzdGQ6OnN0cmluZz4gaG9zdHMp
IHsgbV9hbGxvd2VkSG9zdHMgPSBXVEZNb3ZlKGhvc3RzKTsgfQpAQCAtMzg1LDcgKzM4OCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldERpZENhbmNlbENsaWVudFJlZGlyZWN0KGJvb2wgdmFsdWUp
IHsgbV9kaWRDYW5jZWxDbGllbnRSZWRpcmVjdCA9IHZhbHVlOyB9CiAKIHByaXZhdGU6Ci0gICAg
VGVzdFJ1bm5lcihjb25zdCBzdGQ6OnN0cmluZyYgdGVzdFVSTCwgY29uc3Qgc3RkOjpzdHJpbmcm
IGV4cGVjdGVkUGl4ZWxIYXNoKTsKKyAgICBUZXN0UnVubmVyKGNvbnN0IFdUUjo6VGVzdE9wdGlv
bnMmLCBjb25zdCBzdGQ6OnN0cmluZyYgdGVzdFVSTCwgY29uc3Qgc3RkOjpzdHJpbmcmIGV4cGVj
dGVkUGl4ZWxIYXNoKTsKIAogICAgIEpTQ29udGV4dFJlZiBtYWluRnJhbWVKU0NvbnRleHQoKTsK
IApAQCAtMzk4LDYgKzQwMSw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNldEdlb2xvY2F0aW9u
UGVybWlzc2lvbkNvbW1vbihib29sIGFsbG93KTsKIAorICAgIFdUUjo6VGVzdE9wdGlvbnMgbV90
ZXN0T3B0aW9uczsKKwogICAgIGJvb2wgbV9kaXNhbGxvd0luY3JlYXNlRm9yQXBwbGljYXRpb25D
YWNoZVF1b3RhIHsgZmFsc2UgfTsKICAgICBib29sIG1fZHVtcEFwcGxpY2F0aW9uQ2FjaGVEZWxl
Z2F0ZUNhbGxiYWNrcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2R1bXBBc0F1ZGlvIHsgZmFsc2Ug
fTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2NnL1BpeGVsRHVtcFN1cHBvcnRDRy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2cvUGl4ZWxEdW1wU3VwcG9ydENH
LmNwcAkocmV2aXNpb24gMjc2ODg4KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2cvUGl4ZWxE
dW1wU3VwcG9ydENHLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQg
ZHVtcEJpdG1hcChCaXRtYXBDb250ZXh0KiBjb250ZXh0LCAKIH0KIAogI2lmIFBMQVRGT1JNKENP
Q09BKQotUmVmUHRyPEJpdG1hcENvbnRleHQ+IGNyZWF0ZUJpdG1hcENvbnRleHQoc2l6ZV90IHBp
eGVsc1dpZGUsIHNpemVfdCBwaXhlbHNIaWdoLCBzaXplX3QmIHJvd0J5dGVzLCB2b2lkKiYgYnVm
ZmVyKQorUmVmUHRyPEJpdG1hcENvbnRleHQ+IGNyZWF0ZUJpdG1hcENvbnRleHQoc2l6ZV90IHBp
eGVsc1dpZGUsIHNpemVfdCBwaXhlbHNIaWdoLCBzaXplX3QmIHJvd0J5dGVzLCB2b2lkKiYgYnVm
ZmVyLCBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSkKIHsKICAgICByb3dCeXRlcyA9ICg0ICog
cGl4ZWxzV2lkZSArIDYzKSAmIH42MzsgLy8gVXNlIGEgbXVsdGlwbGUgb2YgNjQgYnl0ZXMgdG8g
aW1wcm92ZSBDRyBwZXJmb3JtYW5jZQogCkBAIC0xMjUsMTAgKzEyNSw5IEBAIFJlZlB0cjxCaXRt
YXBDb250ZXh0PiBjcmVhdGVCaXRtYXBDb250ZXgKICAgICB9CiAgICAgCiAgICAgLy8gQ3JlYXRp
bmcgdGhpcyBiaXRtYXAgaW4gdGhlIGRldmljZSBjb2xvciBzcGFjZSBwcmV2ZW50cyBhbnkgY29s
b3IgY29udmVyc2lvbiB3aGVuIHRoZSBpbWFnZSBvZiB0aGUgd2ViIHZpZXcgaXMgZHJhd24gaW50
byBpdC4KLSAgICBSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVmPiBjb2xvclNwYWNlID0gYWRvcHRD
RihDR0NvbG9yU3BhY2VDcmVhdGVEZXZpY2VSR0IoKSk7Ci0gICAgYXV0byBjb250ZXh0ID0gYWRv
cHRDRihDR0JpdG1hcENvbnRleHRDcmVhdGUoYnVmZmVyLCBwaXhlbHNXaWRlLCBwaXhlbHNIaWdo
LCA4LCByb3dCeXRlcywgY29sb3JTcGFjZS5nZXQoKSwga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxp
ZWRGaXJzdCB8IGtDR0JpdG1hcEJ5dGVPcmRlcjMySG9zdCkpOworICAgIGF1dG8gY29udGV4dCA9
IGFkb3B0Q0YoQ0dCaXRtYXBDb250ZXh0Q3JlYXRlKGJ1ZmZlciwgcGl4ZWxzV2lkZSwgcGl4ZWxz
SGlnaCwgOCwgcm93Qnl0ZXMsIGNvbG9yU3BhY2UsIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVk
Rmlyc3QgfCBrQ0dCaXRtYXBCeXRlT3JkZXIzMkhvc3QpKTsKICAgICBpZiAoIWNvbnRleHQpIHsK
LSAgICAgICAgV1RGTG9nQWx3YXlzKCJEdW1wUmVuZGVyVHJlZTogQ0dCaXRtYXBDb250ZXh0Q3Jl
YXRlKCVwLCAlenUsICV6dSwgOCwgJXp1LCAlcCwgMHgleCkgZmFpbGVkXG4iLCBidWZmZXIsIHBp
eGVsc0hpZ2gsIHBpeGVsc1dpZGUsIHJvd0J5dGVzLCBjb2xvclNwYWNlLmdldCgpLCBrQ0dJbWFn
ZUFscGhhUHJlbXVsdGlwbGllZEZpcnN0IHwga0NHQml0bWFwQnl0ZU9yZGVyMzJIb3N0KTsKKyAg
ICAgICAgV1RGTG9nQWx3YXlzKCJEdW1wUmVuZGVyVHJlZTogQ0dCaXRtYXBDb250ZXh0Q3JlYXRl
KCVwLCAlenUsICV6dSwgOCwgJXp1LCAlcCwgMHgleCkgZmFpbGVkXG4iLCBidWZmZXIsIHBpeGVs
c0hpZ2gsIHBpeGVsc1dpZGUsIHJvd0J5dGVzLCBjb2xvclNwYWNlLCBrQ0dJbWFnZUFscGhhUHJl
bXVsdGlwbGllZEZpcnN0IHwga0NHQml0bWFwQnl0ZU9yZGVyMzJIb3N0KTsKICAgICAgICAgZnJl
ZShidWZmZXIpOwogICAgICAgICBidWZmZXIgPSBudWxscHRyOwogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2NnL1BpeGVsRHVtcFN1cHBvcnRDRy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2NnL1BpeGVsRHVtcFN1cHBvcnRD
Ry5oCShyZXZpc2lvbiAyNzY4ODgpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9jZy9QaXhlbER1
bXBTdXBwb3J0Q0cuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQAogdHlwZWRlZiBz
dHJ1Y3QgQ0dDb250ZXh0KiBDR0NvbnRleHRSZWY7CiAKICNpZiBQTEFURk9STShDT0NPQSkKK3R5
cGVkZWYgc3RydWN0IENHQ29sb3JTcGFjZSogQ0dDb2xvclNwYWNlUmVmOwogdHlwZWRlZiB2b2lk
KiBQbGF0Zm9ybUJpdG1hcEJ1ZmZlcjsKICNlbGlmIFBMQVRGT1JNKFdJTikKIHR5cGVkZWYgSEJJ
VE1BUCBQbGF0Zm9ybUJpdG1hcEJ1ZmZlcjsKQEAgLTc4LDYgKzc5LDYgQEAgcHJpdmF0ZToKIH07
CiAKICNpZiBQTEFURk9STShDT0NPQSkKLVJlZlB0cjxCaXRtYXBDb250ZXh0PiBjcmVhdGVCaXRt
YXBDb250ZXh0KHNpemVfdCBwaXhlbHNXaWRlLCBzaXplX3QgcGl4ZWxzSGlnaCwgc2l6ZV90JiBy
b3dCeXRlcywgdm9pZComIGJ1ZmZlcik7CitSZWZQdHI8Qml0bWFwQ29udGV4dD4gY3JlYXRlQml0
bWFwQ29udGV4dChzaXplX3QgcGl4ZWxzV2lkZSwgc2l6ZV90IHBpeGVsc0hpZ2gsIHNpemVfdCYg
cm93Qnl0ZXMsIHZvaWQqJiBidWZmZXIsIENHQ29sb3JTcGFjZVJlZik7CiAjZW5kaWYKLVJlZlB0
cjxCaXRtYXBDb250ZXh0PiBjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcoYm9vbCBvbnNj
cmVlbiwgYm9vbCBpbmNyZW1lbnRhbFJlcGFpbnQsIGJvb2wgc3dlZXBIb3Jpem9udGFsbHksIGJv
b2wgZHJhd1NlbGVjdGlvblJlY3QpOworUmVmUHRyPEJpdG1hcENvbnRleHQ+IGNyZWF0ZUJpdG1h
cENvbnRleHRGcm9tV2ViVmlldyhib29sIG9uc2NyZWVuLCBib29sIGluY3JlbWVudGFsUmVwYWlu
dCwgYm9vbCBzd2VlcEhvcml6b250YWxseSwgYm9vbCBkcmF3U2VsZWN0aW9uUmVjdCwgYm9vbCB1
c2VEaXNwbGF5UDNDb2xvclNwYWNlKTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9Q
aXhlbER1bXBTdXBwb3J0SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2lvcy9QaXhlbER1bXBTdXBwb3J0SU9TLm1tCShyZXZpc2lvbiAyNzY4ODgpCisrKyBUb29scy9E
dW1wUmVuZGVyVHJlZS9pb3MvUGl4ZWxEdW1wU3VwcG9ydElPUy5tbQkod29ya2luZyBjb3B5KQpA
QCAtNTIsNyArNTIsNyBAQAogZXh0ZXJuIFJldGFpblB0cjxEdW1wUmVuZGVyVHJlZVdpbmRvdz4g
Z0RydFdpbmRvdzsKIGV4dGVybiBSZXRhaW5QdHI8RHVtcFJlbmRlclRyZWVCcm93c2VyVmlldz4g
Z1dlYkJyb3dzZXJWaWV3OwogCi1SZWZQdHI8Qml0bWFwQ29udGV4dD4gY3JlYXRlQml0bWFwQ29u
dGV4dEZyb21XZWJWaWV3KGJvb2wgb25zY3JlZW4sIGJvb2wgaW5jcmVtZW50YWxSZXBhaW50LCBi
b29sIHN3ZWVwSG9yaXpvbnRhbGx5LCBib29sIGRyYXdTZWxlY3Rpb25SZWN0KQorUmVmUHRyPEJp
dG1hcENvbnRleHQ+IGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmlldyhib29sIG9uc2NyZWVu
LCBib29sIGluY3JlbWVudGFsUmVwYWludCwgYm9vbCBzd2VlcEhvcml6b250YWxseSwgYm9vbCBk
cmF3U2VsZWN0aW9uUmVjdCwgYm9vbCB1c2VEaXNwbGF5UDNDb2xvclNwYWNlKQogewogICAgIFdl
YlRocmVhZExvY2soKTsKICAgICBbQ0FUcmFuc2FjdGlvbiBmbHVzaF07CkBAIC03MSwxMiArNzEs
MTMgQEAgUmVmUHRyPEJpdG1hcENvbnRleHQ+IGNyZWF0ZUJpdG1hcENvbnRleAogI2Vsc2UKICAg
ICBXZWJDb3JlOjpJT1N1cmZhY2U6OkZvcm1hdCBzbmFwc2hvdEZvcm1hdCA9IFdlYkNvcmU6OklP
U3VyZmFjZTo6Rm9ybWF0OjpCR1JBOwogI2VuZGlmCi0gICAgYXV0byBzdXJmYWNlID0gV2ViQ29y
ZTo6SU9TdXJmYWNlOjpjcmVhdGUoV2ViQ29yZTo6ZXhwYW5kZWRJbnRTaXplKHNuYXBzaG90U2l6
ZSksIFdlYkNvcmU6OnNSR0JDb2xvclNwYWNlUmVmKCksIHNuYXBzaG90Rm9ybWF0KTsKKyAgICBh
dXRvIGNvbG9yU3BhY2UgPSB1c2VEaXNwbGF5UDNDb2xvclNwYWNlID8gV2ViQ29yZTo6ZGlzcGxh
eVAzQ29sb3JTcGFjZVJlZigpIDogV2ViQ29yZTo6c1JHQkNvbG9yU3BhY2VSZWYoKTsKKyAgICBh
dXRvIHN1cmZhY2UgPSBXZWJDb3JlOjpJT1N1cmZhY2U6OmNyZWF0ZShXZWJDb3JlOjpleHBhbmRl
ZEludFNpemUoc25hcHNob3RTaXplKSwgY29sb3JTcGFjZSwgc25hcHNob3RGb3JtYXQpOwogICAg
IFJldGFpblB0cjxDR0ltYWdlUmVmPiBjZ0ltYWdlID0gc3VyZmFjZS0+Y3JlYXRlSW1hZ2UoKTsK
IAogICAgIHZvaWQqIGJpdG1hcEJ1ZmZlciA9IG51bGxwdHI7CiAgICAgc2l6ZV90IGJpdG1hcFJv
d0J5dGVzID0gMDsKLSAgICBhdXRvIGJpdG1hcENvbnRleHQgPSBjcmVhdGVCaXRtYXBDb250ZXh0
KGJ1ZmZlcldpZHRoLCBidWZmZXJIZWlnaHQsIGJpdG1hcFJvd0J5dGVzLCBiaXRtYXBCdWZmZXIp
OworICAgIGF1dG8gYml0bWFwQ29udGV4dCA9IGNyZWF0ZUJpdG1hcENvbnRleHQoYnVmZmVyV2lk
dGgsIGJ1ZmZlckhlaWdodCwgYml0bWFwUm93Qnl0ZXMsIGJpdG1hcEJ1ZmZlciwgY29sb3JTcGFj
ZSk7CiAgICAgaWYgKCFiaXRtYXBDb250ZXh0KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApJ
bmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQkocmV2aXNp
b24gMjc2ODg4KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC03MDksNyArNzA5LDcgQEAgc3RhdGljIHZvaWQgcmVnaXN0ZXJN
b2NrU2Nyb2xsYmFycygpCiB9CiAjZW5kaWYKIAotUmV0YWluUHRyPFdlYlZpZXc+IGNyZWF0ZVdl
YlZpZXdBbmRPZmZzY3JlZW5XaW5kb3coKQorUmV0YWluUHRyPFdlYlZpZXc+IGNyZWF0ZVdlYlZp
ZXdBbmRPZmZzY3JlZW5XaW5kb3coY29uc3QgV1RSOjpUZXN0T3B0aW9ucyYgb3B0aW9ucykKIHsK
ICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBOU1JlY3QgcmVjdCA9IE5TTWFrZVJlY3Qo
MCwgMCwgVGVzdFJ1bm5lcjo6dmlld1dpZHRoLCBUZXN0UnVubmVyOjp2aWV3SGVpZ2h0KTsKQEAg
LTc1OCw3ICs3NTgsMTAgQEAgUmV0YWluUHRyPFdlYlZpZXc+IGNyZWF0ZVdlYlZpZXdBbmRPZmZz
YwogICAgIE5TUmVjdCB3aW5kb3dSZWN0ID0gKHNob3dXZWJWaWV3KSA/IE5TT2Zmc2V0UmVjdChy
ZWN0LCAxMDAsIDEwMCkgOiBOU09mZnNldFJlY3QocmVjdCwgLTEwMDAwLCBbZmlyc3RTY3JlZW4g
ZnJhbWVdLnNpemUuaGVpZ2h0IC0gcmVjdC5zaXplLmhlaWdodCArIDEwMDAwKTsKICAgICBtYWlu
V2luZG93ID0gYWRvcHROUyhbW0R1bXBSZW5kZXJUcmVlV2luZG93IGFsbG9jXSBpbml0V2l0aENv
bnRlbnRSZWN0OndpbmRvd1JlY3Qgc3R5bGVNYXNrOk5TQm9yZGVybGVzc1dpbmRvd01hc2sgYmFj
a2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOllFU10pOwogICAgIFttYWluV2luZG93
IHNldFJlbGVhc2VkV2hlbkNsb3NlZDpOT107Ci0gICAgW21haW5XaW5kb3cgc2V0Q29sb3JTcGFj
ZTpbZmlyc3RTY3JlZW4gY29sb3JTcGFjZV1dOworICAgIGlmIChvcHRpb25zLnVzZURpc3BsYXlQ
M0JhY2tpbmdTdG9yZSgpKQorICAgICAgICBbbWFpbldpbmRvdyBzZXRDb2xvclNwYWNlOk5TQ29s
b3JTcGFjZS5kaXNwbGF5UDNDb2xvclNwYWNlXTsKKyAgICBlbHNlCisgICAgICAgIFttYWluV2lu
ZG93IHNldENvbG9yU3BhY2U6W2ZpcnN0U2NyZWVuIGNvbG9yU3BhY2VdXTsKICAgICBbbWFpbldp
bmRvdyBzZXRDb2xsZWN0aW9uQmVoYXZpb3I6TlNXaW5kb3dDb2xsZWN0aW9uQmVoYXZpb3JTdGF0
aW9uYXJ5XTsKICAgICBbW21haW5XaW5kb3cgY29udGVudFZpZXddIGFkZFN1YnZpZXc6d2ViVmll
dy5nZXQoKV07CiAgICAgaWYgKHNob3dXZWJWaWV3KQpAQCAtODQzLDEwICs4NDYsMTAgQEAgc3Rh
dGljIHZvaWQgZGVzdHJveUdsb2JhbFdlYlZpZXdBbmRPZmZzYwogI2VuZGlmCiB9CiAKLXN0YXRp
YyB2b2lkIGNyZWF0ZUdsb2JhbFdlYlZpZXdBbmRPZmZzY3JlZW5XaW5kb3coKQorc3RhdGljIHZv
aWQgY3JlYXRlR2xvYmFsV2ViVmlld0FuZE9mZnNjcmVlbldpbmRvdyhjb25zdCBXVFI6OlRlc3RP
cHRpb25zJiBvcHRpb25zKQogewogICAgIGRlc3Ryb3lHbG9iYWxXZWJWaWV3QW5kT2Zmc2NyZWVu
V2luZG93KCk7Ci0gICAgZ2xvYmFsV2ViVmlldygpID0gY3JlYXRlV2ViVmlld0FuZE9mZnNjcmVl
bldpbmRvdygpOworICAgIGdsb2JhbFdlYlZpZXcoKSA9IGNyZWF0ZVdlYlZpZXdBbmRPZmZzY3Jl
ZW5XaW5kb3cob3B0aW9ucyk7CiAgICAgbWFpbkZyYW1lID0gW2dsb2JhbFdlYlZpZXcoKSBtYWlu
RnJhbWVdOwogfQogCkBAIC0xODg2LDEyICsxODg5LDEyIEBAIHN0YXRpYyB2b2lkIHJ1blRlc3Qo
Y29uc3Qgc3RkOjpzdHJpbmcmIGkKICAgICBhdXRvIG9wdGlvbnMgPSB0ZXN0T3B0aW9uc0ZvclRl
c3QoY29tbWFuZCk7CiAKICAgICBpZiAoIW1haW5GcmFtZVRlc3RPcHRpb25zIHx8ICFvcHRpb25z
LndlYlZpZXdJc0NvbXBhdGlibGVXaXRoT3B0aW9ucyhtYWluRnJhbWVUZXN0T3B0aW9ucy52YWx1
ZSgpKSkKLSAgICAgICAgY3JlYXRlR2xvYmFsV2ViVmlld0FuZE9mZnNjcmVlbldpbmRvdygpOwor
ICAgICAgICBjcmVhdGVHbG9iYWxXZWJWaWV3QW5kT2Zmc2NyZWVuV2luZG93KG9wdGlvbnMpOwog
CiAgICAgbWFpbkZyYW1lVGVzdE9wdGlvbnMgPSBvcHRpb25zOwogCiAgICAgY29uc3QgY2hhciog
dGVzdFVSTChbW3VybCBhYnNvbHV0ZVN0cmluZ10gVVRGOFN0cmluZ10pOwotICAgIGdUZXN0UnVu
bmVyID0gVGVzdFJ1bm5lcjo6Y3JlYXRlKHRlc3RVUkwsIGNvbW1hbmQuZXhwZWN0ZWRQaXhlbEhh
c2gpOworICAgIGdUZXN0UnVubmVyID0gVGVzdFJ1bm5lcjo6Y3JlYXRlKG9wdGlvbnMsIHRlc3RV
UkwsIGNvbW1hbmQuZXhwZWN0ZWRQaXhlbEhhc2gpOwogICAgIGdUZXN0UnVubmVyLT5zZXRBbGxv
d2VkSG9zdHMoYWxsb3dlZEhvc3RzKTsKICAgICBnVGVzdFJ1bm5lci0+c2V0Q3VzdG9tVGltZW91
dChjb21tYW5kLnRpbWVvdXQubWlsbGlzZWNvbmRzKCkpOwogICAgIGdUZXN0UnVubmVyLT5zZXRE
dW1wSlNDb25zb2xlTG9nSW5TdGRFcnIoY29tbWFuZC5kdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIg
fHwgb3B0aW9ucy5kdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIoKSk7CkluZGV4OiBUb29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVNYWMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWVNYWMuaAkocmV2aXNpb24gMjc2ODg4KQor
KysgVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlTWFjLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTY3LDcgKzY3LDExIEBAIHZvaWQgc2V0V2FpdFRvRHVtcFdhdGNoZG9nKFJldGFp
blB0cjxDRlIKIGJvb2wgc2hvdWxkU2V0V2FpdFRvRHVtcFdhdGNoZG9nKHZvaWQpOwogCiAjaWZk
ZWYgX19jcGx1c3BsdXMKLVJldGFpblB0cjxXZWJWaWV3PiBjcmVhdGVXZWJWaWV3QW5kT2Zmc2Ny
ZWVuV2luZG93KHZvaWQpOworbmFtZXNwYWNlIFdUUiB7CitjbGFzcyBUZXN0T3B0aW9uczsKK30K
KworUmV0YWluUHRyPFdlYlZpZXc+IGNyZWF0ZVdlYlZpZXdBbmRPZmZzY3JlZW5XaW5kb3coY29u
c3QgV1RSOjpUZXN0T3B0aW9ucyYpOwogI2VuZGlmCiAKIHZvaWQgc2V0UGVyc2lzdGVudFVzZXJT
dHlsZVNoZWV0TG9jYXRpb24oQ0ZTdHJpbmdSZWYpOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL1BpeGVsRHVtcFN1cHBvcnRNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL1BpeGVsRHVtcFN1cHBvcnRNYWMubW0JKHJldmlzaW9uIDI3Njg4OCkKKysr
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9QaXhlbER1bXBTdXBwb3J0TWFjLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0zMiwxMCArMzIsMTEgQEAKICNpbXBvcnQgIlBpeGVsRHVtcFN1cHBvcnQuaCIK
ICNpbXBvcnQgIlBpeGVsRHVtcFN1cHBvcnRDRy5oIgogCi0jaW1wb3J0ICJEdW1wUmVuZGVyVHJl
ZS5oIiAKKyNpbXBvcnQgIkR1bXBSZW5kZXJUcmVlLmgiCiAjaW1wb3J0ICJUZXN0UnVubmVyLmgi
CiAjaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250ZXh0Lmg+CiAjaW1wb3J0IDxRdWFy
dHpDb3JlL1F1YXJ0ekNvcmUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQ29sb3JTcGFjZUNHLmg+CiAj
aW1wb3J0IDxwYWwvc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9j
b2NvYS9RdWFydHpDb3JlU1BJLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgpAQCAtODUs
NyArODYsNyBAQCBzdGF0aWMgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHRha2VXaW5kb3dTCiAgICAg
cmV0dXJuIGFkb3B0Q0YoQ0dXaW5kb3dMaXN0Q3JlYXRlSW1hZ2UoQ0dSZWN0TnVsbCwga0NHV2lu
ZG93TGlzdE9wdGlvbkluY2x1ZGluZ1dpbmRvdywgd2luZG93SUQsIGltYWdlT3B0aW9ucykpOwog
fQogCi1SZWZQdHI8Qml0bWFwQ29udGV4dD4gY3JlYXRlQml0bWFwQ29udGV4dEZyb21XZWJWaWV3
KGJvb2wgb25zY3JlZW4sIGJvb2wgaW5jcmVtZW50YWxSZXBhaW50LCBib29sIHN3ZWVwSG9yaXpv
bnRhbGx5LCBib29sIGRyYXdTZWxlY3Rpb25SZWN0KQorUmVmUHRyPEJpdG1hcENvbnRleHQ+IGNy
ZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmlldyhib29sIG9uc2NyZWVuLCBib29sIGluY3JlbWVu
dGFsUmVwYWludCwgYm9vbCBzd2VlcEhvcml6b250YWxseSwgYm9vbCBkcmF3U2VsZWN0aW9uUmVj
dCwgYm9vbCB1c2VEaXNwbGF5UDNDb2xvclNwYWNlKQogewogICAgIFdlYlZpZXcqIHZpZXcgPSBb
bWFpbkZyYW1lIHdlYlZpZXddOwogCkBAIC0xMDAsNyArMTAxLDEwIEBAIFJlZlB0cjxCaXRtYXBD
b250ZXh0PiBjcmVhdGVCaXRtYXBDb250ZXgKICAgICBzaXplX3QgcGl4ZWxzSGlnaCA9IHN0YXRp
Y19jYXN0PHNpemVfdD4od2ViVmlld1NpemUuaGVpZ2h0ICogZGV2aWNlU2NhbGVGYWN0b3IpOwog
ICAgIHNpemVfdCByb3dCeXRlcyA9IDA7CiAgICAgdm9pZCogYnVmZmVyID0gbnVsbHB0cjsKLSAg
ICBhdXRvIGJpdG1hcENvbnRleHQgPSBjcmVhdGVCaXRtYXBDb250ZXh0KHBpeGVsc1dpZGUsIHBp
eGVsc0hpZ2gsIHJvd0J5dGVzLCBidWZmZXIpOworCisgICAgYXV0byBjb2xvclNwYWNlID0gdXNl
RGlzcGxheVAzQ29sb3JTcGFjZSA/IFdlYkNvcmU6OmRpc3BsYXlQM0NvbG9yU3BhY2VSZWYoKSA6
IFdlYkNvcmU6OnNSR0JDb2xvclNwYWNlUmVmKCk7CisKKyAgICBhdXRvIGJpdG1hcENvbnRleHQg
PSBjcmVhdGVCaXRtYXBDb250ZXh0KHBpeGVsc1dpZGUsIHBpeGVsc0hpZ2gsIHJvd0J5dGVzLCBi
dWZmZXIsIGNvbG9yU3BhY2UpOwogICAgIGlmICghYml0bWFwQ29udGV4dCkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQgPSBiaXRtYXBDb250ZXh0LT5j
Z0NvbnRleHQoKTsKQEAgLTEwOSw3ICsxMTMsNyBAQCBSZWZQdHI8Qml0bWFwQ29udGV4dD4gY3Jl
YXRlQml0bWFwQ29udGV4CiAgICAgZmxvYXQgc2NhbGVGb3JDVE0gPSBvbnNjcmVlbiA/IDEgOiBb
dmlldyBfYmFja2luZ1NjYWxlRmFjdG9yXTsKICAgICBDR0NvbnRleHRTY2FsZUNUTShjb250ZXh0
LCBzY2FsZUZvckNUTSwgc2NhbGVGb3JDVE0pOwogCi0gICAgTlNHcmFwaGljc0NvbnRleHQgKm5z
Q29udGV4dCA9IFtOU0dyYXBoaWNzQ29udGV4dCBncmFwaGljc0NvbnRleHRXaXRoR3JhcGhpY3NQ
b3J0OmNvbnRleHQgZmxpcHBlZDpOT107CisgICAgTlNHcmFwaGljc0NvbnRleHQgKm5zQ29udGV4
dCA9IFtOU0dyYXBoaWNzQ29udGV4dCBncmFwaGljc0NvbnRleHRXaXRoQ0dDb250ZXh0OmNvbnRl
eHQgZmxpcHBlZDpOT107CiAgICAgQVNTRVJUKG5zQ29udGV4dCk7CiAgICAgCiAgICAgaWYgKGlu
Y3JlbWVudGFsUmVwYWludCkgewpAQCAtMTgxLDcgKzE4NSw3IEBAIFJlZlB0cjxCaXRtYXBDb250
ZXh0PiBjcmVhdGVQYWdlZEJpdG1hcEMKIAogICAgIGludCB0b3RhbEhlaWdodCA9IG51bWJlck9m
UGFnZXMgKiAocGFnZUhlaWdodEluUGl4ZWxzICsgMSkgLSAxOwogCi0gICAgYXV0byBiaXRtYXBD
b250ZXh0ID0gY3JlYXRlQml0bWFwQ29udGV4dChwYWdlV2lkdGhJblBpeGVscywgdG90YWxIZWln
aHQsIHJvd0J5dGVzLCBidWZmZXIpOworICAgIGF1dG8gYml0bWFwQ29udGV4dCA9IGNyZWF0ZUJp
dG1hcENvbnRleHQocGFnZVdpZHRoSW5QaXhlbHMsIHRvdGFsSGVpZ2h0LCByb3dCeXRlcywgYnVm
ZmVyLCBXZWJDb3JlOjpzUkdCQ29sb3JTcGFjZVJlZigpKTsKICAgICBDR0NvbnRleHRSZWYgY29u
dGV4dCA9IGJpdG1hcENvbnRleHQtPmNnQ29udGV4dCgpOwogICAgIENHQ29udGV4dFRyYW5zbGF0
ZUNUTShjb250ZXh0LCAwLCB0b3RhbEhlaWdodCk7CiAgICAgQ0dDb250ZXh0U2NhbGVDVE0oY29u
dGV4dCwgMSwgLTEpOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1VJRGVsZWdhdGUubW0J
KHJldmlzaW9uIDI3Njg4OCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9VSURlbGVnYXRl
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNzgsNyArMTc4LDcgQEAgLSAoV2ViVmlldyAqKXdlYlZp
ZXc6KFdlYlZpZXcgKilzZW5kZXIgYwogICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHdhaXRVbnRpbERv
bmUgaGFzIGJlZW4gY2FsbGVkLgogICAgIEFTU0VSVChnVGVzdFJ1bm5lci0+d2FpdFRvRHVtcCgp
KTsKIAotICAgIGF1dG8gd2ViVmlldyA9IGNyZWF0ZVdlYlZpZXdBbmRPZmZzY3JlZW5XaW5kb3co
KTsKKyAgICBhdXRvIHdlYlZpZXcgPSBjcmVhdGVXZWJWaWV3QW5kT2Zmc2NyZWVuV2luZG93KGdU
ZXN0UnVubmVyLT50ZXN0T3B0aW9ucygpKTsKICAgICBbd2ViVmlldyBzZXRQcmVmZXJlbmNlczpb
c2VuZGVyIHByZWZlcmVuY2VzXV07CiAKICAgICBpZiAoZ1Rlc3RSdW5uZXItPm5ld1dpbmRvd3ND
b3B5QmFja0ZvcndhcmRMaXN0KCkpCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vUGl4
ZWxEdW1wU3VwcG9ydFdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUv
d2luL1BpeGVsRHVtcFN1cHBvcnRXaW4uY3BwCShyZXZpc2lvbiAyNzY4ODgpCisrKyBUb29scy9E
dW1wUmVuZGVyVHJlZS93aW4vUGl4ZWxEdW1wU3VwcG9ydFdpbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTU2LDcgKzU2LDcgQEAgc3RhdGljIHZvaWQgbWFrZUFscGhhQ2hhbm5lbE9wYXF1ZSh2b2lk
KgogICAgIH0KIH0KIAotUmVmUHRyPEJpdG1hcENvbnRleHQ+IGNyZWF0ZUJpdG1hcENvbnRleHRG
cm9tV2ViVmlldyhib29sIG9uc2NyZWVuLCBib29sIGluY3JlbWVudGFsUmVwYWludCwgYm9vbCBz
d2VlcEhvcml6b250YWxseSwgYm9vbCBkcmF3U2VsZWN0aW9uUmVjdCkKK1JlZlB0cjxCaXRtYXBD
b250ZXh0PiBjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcoYm9vbCBvbnNjcmVlbiwgYm9v
bCBpbmNyZW1lbnRhbFJlcGFpbnQsIGJvb2wgc3dlZXBIb3Jpem9udGFsbHksIGJvb2wgZHJhd1Nl
bGVjdGlvblJlY3QsIGJvb2wpCiB7CiAgICAgUkVDVCBmcmFtZTsKICAgICBpZiAoIUdldFdpbmRv
d1JlY3Qod2ViVmlld1dpbmRvdywgJmZyYW1lKSkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3Njg4OCkK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDIxLTA1LTAyICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBT
dXBwb3J0IHJlZnRlc3RzIHVzaW5nIERpc3BsYXlQMyBiYWNraW5nIHN0b3JlcyByYXRoZXIgdGhh
biBzUkdCIHRvIGVuYWJsZSB0ZXN0aW5nIG5vbi1zUkdCIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI4NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9oYXJuZXNzL2Rp
c3BsYXktcDMtYmFja2luZ3N0b3JlLWV4cGVjdGVkLW1pc21hdGNoLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvaGFybmVzcy9kaXNwbGF5LXAzLWJhY2tpbmdzdG9yZS5odG1sOiBBZGRlZC4K
KwogMjAyMS0wNS0wMiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIGdl
dFByb3BlcnR5VmFsdWUgZm9yIHVybCBwYXRoIGRvZXNuJ3QgcmV0dXJuIHRoZSAiIyIgY2hhcmFj
dGVyCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvZGlzcGxheS1wMy1iYWNraW5nc3Rv
cmUtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2hhcm5lc3MvZGlzcGxheS1wMy1iYWNraW5nc3RvcmUtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbAko
bm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3MvZGlzcGxheS1wMy1iYWNr
aW5nc3RvcmUtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDcgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRGlzcGxheVAzQmFja2luZ1N0b3Jl
PXRydWUgXSAtLT4KKzxzdHlsZT4KKyAgICAucmVmIHsgYmFja2dyb3VuZC1jb2xvcjogY29sb3Io
c3JnYiAwIDEgMCk7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsgbWFyZ2luLWJvdHRvbTog
MDsgfQorPC9zdHlsZT4KKzxib2R5PgorICAgIDxkaXYgY2xhc3M9InJlZiI+IDwvZGl2PgorPC9i
b2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL2Rpc3BsYXktcDMtYmFja2luZ3N0
b3JlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL2Rpc3BsYXkt
cDMtYmFja2luZ3N0b3JlLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9o
YXJuZXNzL2Rpc3BsYXktcDMtYmFja2luZ3N0b3JlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw3IEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZURpc3BsYXlQM0JhY2tpbmdT
dG9yZT10cnVlIF0gLS0+Cis8c3R5bGU+CisgICAgLnJlZiB7IGJhY2tncm91bmQtY29sb3I6IGNv
bG9yKGRpc3BsYXktcDMgMCAxIDApOyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IG1hcmdp
bi1ib3R0b206IDA7IH0KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJyZWYiPiA8
L2Rpdj4KKzwvYm9keT4K
</data>
<flag name="commit-queue"
          id="448166"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>