<?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>192499</bug_id>
          
          <creation_ts>2018-12-07 09:16:45 -0800</creation_ts>
          <short_desc>[iOS] Caret is obscured by finger when dragging over an editable element</short_desc>
          <delta_ts>2018-12-10 12:28:10 -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>HTML Editing</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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>rniwa</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>1486015</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-07 09:16:45 -0800</bug_when>
    <thetext>a.k.a. — the `precise` property of `UIDropProposal` (see: https://developer.apple.com/documentation/uikit/uidropproposal?language=objc) was not adopted in time for iOS 11.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486255</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-07 17:31:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/46570101&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486278</commentid>
    <comment_count>2</comment_count>
      <attachid>356862</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-07 20:12:22 -0800</bug_when>
    <thetext>Created attachment 356862
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486659</commentid>
    <comment_count>3</comment_count>
      <attachid>356862</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-10 12:28:08 -0800</bug_when>
    <thetext>Comment on attachment 356862
Patch

Clearing flags on attachment: 356862

Committed r239039: &lt;https://trac.webkit.org/changeset/239039&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1486660</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-10 12:28:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356862</attachid>
            <date>2018-12-07 20:12:22 -0800</date>
            <delta_ts>2018-12-10 12:28:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192499-20181207201221.patch</filename>
            <type>text/plain</type>
            <size>42206</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4OTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTllMTllMDBjNjNjZTQ2
ZmU5NmUxZjRlNjU2MmY2NjY5ZTA4YWVhMC4uODk5MWRlY2Y3MmQyYjQ3MWVhYzUzNzNmY2U5NTU0
Mjk2ZTQzNTAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE4LTEyLTA3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIENhcmV0
IGlzIG9ic2N1cmVkIGJ5IGZpbmdlciB3aGVuIGRyYWdnaW5nIG92ZXIgYW4gZWRpdGFibGUgZWxl
bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTky
NDk5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NjU3MDEwMT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhZ2UvRHJhZ0FjdGlvbnMuaDoKKwor
ICAgICAgICBNb3ZlIERyYWdIYW5kbGluZ01ldGhvZCB0byBEcmFnQWN0aW9ucy5oLCBhbmQgZHJp
dmUtYnkgZml4IHNvbWUgbWlub3IgaXNzdWVzIChpLmUuIG1ha2UgYSBjb3VwbGUgb2YgZW51bSBj
bGFzc2VzCisgICAgICAgIHVzZSA4IGJpdHMsIGZpeCB0aGUgaW5kZW50YXRpb24gbGV2ZWxzLCBh
bmQgdXBkYXRlIHRoZSBjb3B5cmlnaHQgeWVhcikuIEFsc28gYWRkIGBFbnVtVHJhaXRzYCBmb3IK
KyAgICAgICAgRHJhZ0hhbmRsaW5nTWV0aG9kIHNvIHRoYXQgaXQgbWF5IGJlIGVuY29kZWQgb3Zl
ciBJUEMuCisKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmRyYWdJc0hhbmRsZWRCeURvY3VtZW50KToKKworICAgICAgICBTaW1wbGlmeSB0aGlz
IGhlbHBlciBmdW5jdGlvbi4KKworICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OnRy
eURvY3VtZW50RHJhZyk6CisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5oOgorCisgICAg
ICAgIEV4cG9zZSB0aGUgY3VycmVudCBEcmFnSGFuZGxpbmdNZXRob2QgdmlhIGEgY29uc3QgZ2V0
dGVyIG1ldGhvZC4KKworICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmRyYWdIYW5k
bGluZ01ldGhvZCBjb25zdCk6CisKIDIwMTgtMTItMDYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW0F0dGFjaG1lbnQgU3VwcG9ydF0gQ2xvbmVkIGF0
dGFjaG1lbnQgZWxlbWVudHMgbG9zZSB0aGVpciB1bmlxdWUgaWRlbnRpZmllcnMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggOWVhODRkYTAzYTE4NmU3YWVlZmI5MjVhMDU0NjkyOTdlNzJlNDMzMS4uYjJjNjUzMDdmM2Nk
ODVjZjViYTAzYjMwYmMxNTgxMGRjOTRiNGYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAor
MjAxOC0xMi0wNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAg
ICAgICBbaU9TXSBDYXJldCBpcyBvYnNjdXJlZCBieSBmaW5nZXIgd2hlbiBkcmFnZ2luZyBvdmVy
IGFuIGVkaXRhYmxlIGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5MjQ5OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDY1NzAxMDE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIHNldHRpbmcgdGhlIGBwcmVjaXNlYCBwcm9wZXJ0eSBvZiBgVUlEcm9wUHJvcG9zYWxg
IHRvIFlFUyB3aGVuIGRyYWdnaW5nIG92ZXIgYW4gZWRpdGFibGUgYXJlYS4KKyAgICAgICAgV2hl
biBlbmFibGVkLCB0aGlzIHByb3BlcnR5IHNoaWZ0cyB0aGUgZHJvcCBsb2NhdGlvbiB1cCBieSBh
IHNtYWxsIGFtb3VudCwgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2VlIHRoZSBkcm9wCisgICAgICAg
IGNhcmV0IChjdXJyZW50bHksIHRoaXMgaXMgbm90IHRoZSBjYXNlLCBhbmQgaXQncyBkaWZmaWN1
bHQgdG8gZHJvcCB0ZXh0IGF0IGEgcHJlY2lzZSBsb2NhdGlvbiBvbiBpT1MpLiBDaGFuZ2VzCisg
ICAgICAgIGFyZSBjb3ZlcmVkIGJ5IGFkZGluZyB0byBleGlzdGluZyBBUEkgdGVzdHMuCisKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKworICAgICAgICBBZGQgYSBuZXcgdmVy
c2lvbiBvZiBgLV93ZWJWaWV3OndpbGxVcGRhdGVEYXRhSW50ZXJhY3Rpb25PcGVyYXRpb25Ub09w
ZXJhdGlvbjpmb3JTZXNzaW9uOmAgdGhhdCByZWNlaXZlcyBhbmQKKyAgICAgICAgcmV0dXJucyBh
IFVJRHJvcFByb3Bvc2FsLCBzbyB0aGF0IE1haWwgY2FuIG1vcmUgZWFzaWx5IHBvcnQgb3ZlciBl
eGlzdGluZyBsb2dpYyBpbiBpdHMgbGVnYWN5LVdlYktpdC1iYXNlZAorICAgICAgICBjb21wb3Nl
IGltcGxlbWVudGF0aW9uLiBpT1MgU2FmYXJpIGlzIGN1cnJlbnRseSB0aGUgb25seSBjbGllbnQg
b2YgdGhpcyBwcml2YXRlIGRlbGVnYXRlLCBzbyB0aGUgb2xkIHZlcnNpb24gY2FuCisgICAgICAg
IGJlIGVhc2lseSByZW1vdmVkIG9uY2UgU2FmYXJpIGFkb3B0cyB0aGlzIG5ldyB2ZXJzaW9uLgor
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKToKKworICAgICAg
ICBBZGQgcGx1bWJpbmcgdG8gc2VuZCB0aGUgbGF0ZXN0IGRyYWcgaGFuZGxpbmcgbWV0aG9kIGZy
b20gV2ViUGFnZSB0byBXZWJQYWdlUHJveHkuCisKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpyZXNldEN1cnJlbnREcmFnSW5mb3JtYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjdXJyZW50RHJh
Z0hhbmRsaW5nTWV0aG9kIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRyb3BJbnRlcmFjdGlvbjpzZXNz
aW9uRGlkVXBkYXRlOl0pOgorCisgICAgICAgIENhbGwgdGhlIG5ldyBVSSBkZWxlZ2F0ZSBob29r
IHdoZW4gZGV0ZXJtaW5pbmcgdGhlIGRyb3AgcHJvcG9zYWwgdG8gcmV0dXJuIHRvIFVJS2l0LiBB
ZGRpdGlvbmFsbHkgc2V0IHRoZQorICAgICAgICBgcHJlY2lzZWAgYml0IG9uIHRoZSBkcm9wIHBy
b3Bvc2FsIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBkcm9wIGhhbmRsaW5nIG1ldGhvZCBpcyBlaXRo
ZXIgImVkaXRpbmcgcmljaCB0ZXh0IiBvcgorICAgICAgICAiZWRpdGluZyBwbGFpbiB0ZXh0Ii4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6cGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCiAyMDE4LTEyLTA2ICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBTaGFyZSBBUEk6IHNoYXJl
IG92ZXJsYXkgZG9lcyBub3Qgc3RpY2sgdG8gdGhlIFNhZmFyaSB3aW5kb3cKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0FjdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RHJhZ0FjdGlvbnMuaAppbmRleCBjM2Q0YTQxNzY3ZGUzNzNiM2IxNGNkNzNlNDM3YTA4ODBjZjk4
YmRkLi5iNjc3NmJiZDc1MzgzNjFjODExMzA1ZjNkOTkwZDRiNTkzZDFmMDg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdBY3Rpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9EcmFnQWN0aW9ucy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwNywgMjAxMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA3LTIwMTggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNDcgKzI2LDY2IEBACiAjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotICAgIC8vIFdlYkNvcmVEcmFnRGVzdGluYXRpb25BY3Rpb24gc2hv
dWxkIGJlIGtlcHQgaW4gc3luYyB3aXRoIFdlYkRyYWdEZXN0aW5hdGlvbkFjdGlvbgotICAgIHR5
cGVkZWYgZW51bSB7Ci0gICAgICAgIERyYWdEZXN0aW5hdGlvbkFjdGlvbk5vbmUgICAgPSAwLAot
ICAgICAgICBEcmFnRGVzdGluYXRpb25BY3Rpb25ESFRNTCAgID0gMSwKLSAgICAgICAgRHJhZ0Rl
c3RpbmF0aW9uQWN0aW9uRWRpdCAgICA9IDIsCi0gICAgICAgIERyYWdEZXN0aW5hdGlvbkFjdGlv
bkxvYWQgICAgPSA0LAotICAgICAgICBEcmFnRGVzdGluYXRpb25BY3Rpb25BbnkgICAgID0gVUlO
VF9NQVgKLSAgICB9IERyYWdEZXN0aW5hdGlvbkFjdGlvbjsKLSAgICAKLSAgICAvLyBXZWJDb3Jl
RHJhZ1NvdXJjZUFjdGlvbiBzaG91bGQgYmUga2VwdCBpbiBzeW5jIHdpdGggV2ViRHJhZ1NvdXJj
ZUFjdGlvbgotICAgIHR5cGVkZWYgZW51bSB7Ci0gICAgICAgIERyYWdTb3VyY2VBY3Rpb25Ob25l
ICAgICAgICAgPSAwLAotICAgICAgICBEcmFnU291cmNlQWN0aW9uREhUTUwgICAgICAgID0gMSwK
LSAgICAgICAgRHJhZ1NvdXJjZUFjdGlvbkltYWdlICAgICAgICA9IDIsCi0gICAgICAgIERyYWdT
b3VyY2VBY3Rpb25MaW5rICAgICAgICAgPSA0LAotICAgICAgICBEcmFnU291cmNlQWN0aW9uU2Vs
ZWN0aW9uICAgID0gOCwKKy8vIFdlYkNvcmVEcmFnRGVzdGluYXRpb25BY3Rpb24gc2hvdWxkIGJl
IGtlcHQgaW4gc3luYyB3aXRoIFdlYkRyYWdEZXN0aW5hdGlvbkFjdGlvbi4KK3R5cGVkZWYgZW51
bSB7CisgICAgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTm9uZSAgICA9IDAsCisgICAgRHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uREhUTUwgICA9IDEsCisgICAgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRWRpdCAg
ICA9IDIsCisgICAgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTG9hZCAgICA9IDQsCisgICAgRHJhZ0Rl
c3RpbmF0aW9uQWN0aW9uQW55ICAgICA9IFVJTlRfTUFYCit9IERyYWdEZXN0aW5hdGlvbkFjdGlv
bjsKKworLy8gV2ViQ29yZURyYWdTb3VyY2VBY3Rpb24gc2hvdWxkIGJlIGtlcHQgaW4gc3luYyB3
aXRoIFdlYkRyYWdTb3VyY2VBY3Rpb24uCit0eXBlZGVmIGVudW0geworICAgIERyYWdTb3VyY2VB
Y3Rpb25Ob25lICAgICAgICAgPSAwLAorICAgIERyYWdTb3VyY2VBY3Rpb25ESFRNTCAgICAgICAg
PSAxLAorICAgIERyYWdTb3VyY2VBY3Rpb25JbWFnZSAgICAgICAgPSAyLAorICAgIERyYWdTb3Vy
Y2VBY3Rpb25MaW5rICAgICAgICAgPSA0LAorICAgIERyYWdTb3VyY2VBY3Rpb25TZWxlY3Rpb24g
ICAgPSA4LAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCi0gICAgICAgIERyYWdTb3Vy
Y2VBY3Rpb25BdHRhY2htZW50ICAgPSAxNiwKKyAgICBEcmFnU291cmNlQWN0aW9uQXR0YWNobWVu
dCAgID0gMTYsCiAjZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICAgICAg
RHJhZ1NvdXJjZUFjdGlvbkNvbG9yICAgICAgICA9IDMyLAorICAgIERyYWdTb3VyY2VBY3Rpb25D
b2xvciAgICAgICAgPSAzMiwKICNlbmRpZgotICAgICAgICBEcmFnU291cmNlQWN0aW9uQW55ICAg
ICAgICAgID0gVUlOVF9NQVgKLSAgICB9IERyYWdTb3VyY2VBY3Rpb247Ci0gICAgCi0gICAgLy9t
YXRjaGVzIE5TRHJhZ09wZXJhdGlvbgotICAgIHR5cGVkZWYgZW51bSB7Ci0gICAgICAgIERyYWdP
cGVyYXRpb25Ob25lICAgID0gMCwKLSAgICAgICAgRHJhZ09wZXJhdGlvbkNvcHkgICAgPSAxLAot
ICAgICAgICBEcmFnT3BlcmF0aW9uTGluayAgICA9IDIsCi0gICAgICAgIERyYWdPcGVyYXRpb25H
ZW5lcmljID0gNCwKLSAgICAgICAgRHJhZ09wZXJhdGlvblByaXZhdGUgPSA4LAotICAgICAgICBE
cmFnT3BlcmF0aW9uTW92ZSAgICA9IDE2LAotICAgICAgICBEcmFnT3BlcmF0aW9uRGVsZXRlICA9
IDMyLAotICAgICAgICBEcmFnT3BlcmF0aW9uRXZlcnkgICA9IFVJTlRfTUFYCi0gICAgfSBEcmFn
T3BlcmF0aW9uOworICAgIERyYWdTb3VyY2VBY3Rpb25BbnkgICAgICAgICAgPSBVSU5UX01BWAor
fSBEcmFnU291cmNlQWN0aW9uOworCisvLyBNYXRjaGVzIE5TRHJhZ09wZXJhdGlvbi4KK3R5cGVk
ZWYgZW51bSB7CisgICAgRHJhZ09wZXJhdGlvbk5vbmUgICAgPSAwLAorICAgIERyYWdPcGVyYXRp
b25Db3B5ICAgID0gMSwKKyAgICBEcmFnT3BlcmF0aW9uTGluayAgICA9IDIsCisgICAgRHJhZ09w
ZXJhdGlvbkdlbmVyaWMgPSA0LAorICAgIERyYWdPcGVyYXRpb25Qcml2YXRlID0gOCwKKyAgICBE
cmFnT3BlcmF0aW9uTW92ZSAgICA9IDE2LAorICAgIERyYWdPcGVyYXRpb25EZWxldGUgID0gMzIs
CisgICAgRHJhZ09wZXJhdGlvbkV2ZXJ5ICAgPSBVSU5UX01BWAorfSBEcmFnT3BlcmF0aW9uOwor
CitlbnVtIGNsYXNzIE1heUV4dGVuZERyYWdTZXNzaW9uIDogYm9vbCB7IE5vLCBZZXMgfTsKK2Vu
dW0gY2xhc3MgSGFzTm9uRGVmYXVsdFBhc3RlYm9hcmREYXRhIDogYm9vbCB7IE5vLCBZZXMgfTsK
K2VudW0gY2xhc3MgRHJhZ0hhbmRsaW5nTWV0aG9kIDogdWludDhfdCB7IE5vbmUsIEVkaXRQbGFp
blRleHQsIEVkaXRSaWNoVGV4dCwgVXBsb2FkRmlsZSwgUGFnZUxvYWQsIFNldENvbG9yLCBOb25E
ZWZhdWx0IH07CiAKLSAgICBlbnVtIGNsYXNzIE1heUV4dGVuZERyYWdTZXNzaW9uIHsgTm8sIFll
cyB9OwotICAgIGVudW0gY2xhc3MgSGFzTm9uRGVmYXVsdFBhc3RlYm9hcmREYXRhIHsgTm8sIFll
cyB9OwotICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwor
dGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpEcmFnSGFuZGxpbmdNZXRob2Q+
IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpEcmFn
SGFuZGxpbmdNZXRob2QsCisgICAgICAgIFdlYkNvcmU6OkRyYWdIYW5kbGluZ01ldGhvZDo6Tm9u
ZSwKKyAgICAgICAgV2ViQ29yZTo6RHJhZ0hhbmRsaW5nTWV0aG9kOjpFZGl0UGxhaW5UZXh0LAor
ICAgICAgICBXZWJDb3JlOjpEcmFnSGFuZGxpbmdNZXRob2Q6OkVkaXRSaWNoVGV4dCwKKyAgICAg
ICAgV2ViQ29yZTo6RHJhZ0hhbmRsaW5nTWV0aG9kOjpVcGxvYWRGaWxlLAorICAgICAgICBXZWJD
b3JlOjpEcmFnSGFuZGxpbmdNZXRob2Q6OlBhZ2VMb2FkLAorICAgICAgICBXZWJDb3JlOjpEcmFn
SGFuZGxpbmdNZXRob2Q6OlNldENvbG9yLAorICAgICAgICBXZWJDb3JlOjpEcmFnSGFuZGxpbmdN
ZXRob2Q6Ok5vbkRlZmF1bHQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IDllZTNkNDY4OTY0ZmM4ZDRmNmEz
ZTRjYjRkYjA1ZTFkYjcyMGNkNjkuLjRiYjMwNDQ0OGI2N2ViYzg4Mzg3ZDkxNmY0OWUxYzFjZTNl
MTUyMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0yMzcsMTUg
KzIzNyw5IEBAIERyYWdPcGVyYXRpb24gRHJhZ0NvbnRyb2xsZXI6OmRyYWdVcGRhdGVkKGNvbnN0
IERyYWdEYXRhJiBkcmFnRGF0YSkKICAgICByZXR1cm4gZHJhZ0VudGVyZWRPclVwZGF0ZWQoZHJh
Z0RhdGEpOwogfQogCi1pbmxpbmUgc3RhdGljIGJvb2wgZHJhZ0lzSGFuZGxlZEJ5RG9jdW1lbnQo
RHJhZ0NvbnRyb2xsZXI6OkRyYWdIYW5kbGluZ01ldGhvZCBkcmFnSGFuZGxpbmdNZXRob2QpCitp
bmxpbmUgc3RhdGljIGJvb2wgZHJhZ0lzSGFuZGxlZEJ5RG9jdW1lbnQoRHJhZ0hhbmRsaW5nTWV0
aG9kIGRyYWdIYW5kbGluZ01ldGhvZCkKIHsKLSAgICBpZiAoZHJhZ0hhbmRsaW5nTWV0aG9kID09
IERyYWdDb250cm9sbGVyOjpEcmFnSGFuZGxpbmdNZXRob2Q6Ok5vbmUpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIGlmIChkcmFnSGFuZGxpbmdNZXRob2QgPT0gRHJhZ0NvbnRyb2xsZXI6
OkRyYWdIYW5kbGluZ01ldGhvZDo6UGFnZUxvYWQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBkcmFnSGFuZGxpbmdNZXRob2QgIT0gRHJhZ0hh
bmRsaW5nTWV0aG9kOjpOb25lICYmIGRyYWdIYW5kbGluZ01ldGhvZCAhPSBEcmFnSGFuZGxpbmdN
ZXRob2Q6OlBhZ2VMb2FkOwogfQogCiBib29sIERyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZ09w
ZXJhdGlvbihjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCkBAIC0zODUsNyArMzc5LDcgQEAgdm9p
ZCBEcmFnQ29udHJvbGxlcjo6dXBkYXRlU3VwcG9ydGVkVHlwZUlkZW50aWZpZXJzRm9yRHJhZ0hh
bmRsaW5nTWV0aG9kKERyYWdIYW4KIAogI2VuZGlmCiAKLURyYWdDb250cm9sbGVyOjpEcmFnSGFu
ZGxpbmdNZXRob2QgRHJhZ0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyhjb25zdCBEcmFnRGF0
YSYgZHJhZ0RhdGEsIERyYWdEZXN0aW5hdGlvbkFjdGlvbiBhY3Rpb25NYXNrLCBEcmFnT3BlcmF0
aW9uJiBkcmFnT3BlcmF0aW9uKQorRHJhZ0hhbmRsaW5nTWV0aG9kIERyYWdDb250cm9sbGVyOjp0
cnlEb2N1bWVudERyYWcoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhLCBEcmFnRGVzdGluYXRpb25B
Y3Rpb24gYWN0aW9uTWFzaywgRHJhZ09wZXJhdGlvbiYgZHJhZ09wZXJhdGlvbikKIHsKICAgICBp
ZiAoIW1fZG9jdW1lbnRVbmRlck1vdXNlKQogICAgICAgICByZXR1cm4gRHJhZ0hhbmRsaW5nTWV0
aG9kOjpOb25lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCmluZGV4IDg0MzUyODNj
ZGZjYjExYTg2MmQ5ZmNjYzY2ZjMwNDNmMmM1N2E5MzQuLjJmMDVmN2JjNDY2ZjViYWQ0YzUwZTAz
ODBiNGEwYWFhZjg1NjFiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0Nv
bnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKQEAg
LTc4LDggKzc4LDggQEAgc3RydWN0IFByb21pc2VkQXR0YWNobWVudEluZm87CiAgICAgICAgIHZv
aWQgc2V0RHJhZ09mZnNldChjb25zdCBJbnRQb2ludCYgb2Zmc2V0KSB7IG1fZHJhZ09mZnNldCA9
IG9mZnNldDsgfQogICAgICAgICBjb25zdCBJbnRQb2ludCYgZHJhZ09mZnNldCgpIGNvbnN0IHsg
cmV0dXJuIG1fZHJhZ09mZnNldDsgfQogICAgICAgICBEcmFnU291cmNlQWN0aW9uIGRyYWdTb3Vy
Y2VBY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2RyYWdTb3VyY2VBY3Rpb247IH0KKyAgICAgICAg
RHJhZ0hhbmRsaW5nTWV0aG9kIGRyYWdIYW5kbGluZ01ldGhvZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZHJhZ0hhbmRsaW5nTWV0aG9kOyB9CiAKLSAgICAgICAgZW51bSBjbGFzcyBEcmFnSGFuZGxpbmdN
ZXRob2QgeyBOb25lLCBFZGl0UGxhaW5UZXh0LCBFZGl0UmljaFRleHQsIFVwbG9hZEZpbGUsIFBh
Z2VMb2FkLCBTZXRDb2xvciwgTm9uRGVmYXVsdCB9OwogICAgICAgICBEb2N1bWVudCogZG9jdW1l
bnRVbmRlck1vdXNlKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudFVuZGVyTW91c2UuZ2V0KCk7
IH0KICAgICAgICAgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGRyYWdEZXN0aW5hdGlvbkFjdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uOyB9CiAgICAgICAgIERyYWdT
b3VyY2VBY3Rpb24gZGVsZWdhdGVEcmFnU291cmNlQWN0aW9uKGNvbnN0IEludFBvaW50JiByb290
Vmlld1BvaW50KTsKQEAgLTE0Myw3ICsxNDMsNyBAQCBzdHJ1Y3QgUHJvbWlzZWRBdHRhY2htZW50
SW5mbzsKICAgICAgICAgUmVmUHRyPERvY3VtZW50PiBtX2RyYWdJbml0aWF0b3I7IC8vIFRoZSBE
b2N1bWVudCAoaWYgYW55KSB0aGF0IGluaXRpYXRlZCB0aGUgZHJhZy4KICAgICAgICAgUmVmUHRy
PEhUTUxJbnB1dEVsZW1lbnQ+IG1fZmlsZUlucHV0RWxlbWVudFVuZGVyTW91c2U7CiAgICAgICAg
IHVuc2lnbmVkIG1fbnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZDsKLSAgICAgICAgRHJhZ0hhbmRs
aW5nTWV0aG9kIG1fZHJhZ0hhbmRsaW5nTWV0aG9kOworICAgICAgICBEcmFnSGFuZGxpbmdNZXRo
b2QgbV9kcmFnSGFuZGxpbmdNZXRob2QgeyBEcmFnSGFuZGxpbmdNZXRob2Q6Ok5vbmUgfTsKIAog
ICAgICAgICBEcmFnRGVzdGluYXRpb25BY3Rpb24gbV9kcmFnRGVzdGluYXRpb25BY3Rpb247CiAg
ICAgICAgIERyYWdTb3VyY2VBY3Rpb24gbV9kcmFnU291cmNlQWN0aW9uOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggMmM4NDE2ODkwYjQxN2M2ZDkxMDcwODU0
ZDEwYjY1NjI4ZDUyZDJhOS4uZWVjZTJjOWZkMWZkZjU5YmViZjE2NWMxMmY0MTQ0OTBiZTBlMGY4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQor
KysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0zOTcsNiAr
Mzk3LDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdTdHJpbmcnOiBb
Jzx3dGYvdGV4dC9XVEZTdHJpbmcuaD4nXSwKICAgICAgICAgJ1BBTDo6U2Vzc2lvbklEJzogWyc8
cGFsL1Nlc3Npb25JRC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdz
JzogWyc8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+J10sCisgICAgICAgICdXZWJDb3JlOjpEcmFn
SGFuZGxpbmdNZXRob2QnOiBbJzxXZWJDb3JlL0RyYWdBY3Rpb25zLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJzogWyc8V2ViQ29yZS9KU0RPTUV4Y2VwdGlvbkhhbmRs
aW5nLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJzogWyc8V2Vi
Q29yZS9GaWxlQ2hvb3Nlci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBh
cnNlZFVSTCc6IFsnPFdlYkNvcmUvU2hhcmVEYXRhLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCA5
OTc0NjhjYWRhZGRhNDAxOWVkMjZjYzA4YmJlNzg2NDRhNDE4NzkwLi5mZTQwYmJlNzlkZGFlOGUx
MGVkYWZhMTlhMTEzZDA3ZDY4ZGI3NjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTE1Nyw2ICsxNTcs
NyBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBkYXRhSW50ZXJhY3Rpb246KGlkKWludGVyYWN0aW9uIHNlc3Npb246KGlkKXNlc3Np
b24gZGlkRW5kV2l0aE9wZXJhdGlvbjooTlNVSW50ZWdlcilvcGVyYXRpb24gV0tfQVBJX0FWQUlM
QUJMRShpb3MoMTEuMCkpOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBk
YXRhSW50ZXJhY3Rpb25PcGVyYXRpb25XYXNIYW5kbGVkOihCT09MKWhhbmRsZWQgZm9yU2Vzc2lv
bjooaWQpc2Vzc2lvbiBpdGVtUHJvdmlkZXJzOihOU0FycmF5ICopaXRlbVByb3ZpZGVycyBXS19B
UElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAtIChOU1VJbnRlZ2VyKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IHdpbGxVcGRhdGVEYXRhSW50ZXJhY3Rpb25PcGVyYXRpb25Ub09wZXJhdGlv
bjooTlNVSW50ZWdlcilvcGVyYXRpb24gZm9yU2Vzc2lvbjooaWQpc2Vzc2lvbiBXS19BUElfQVZB
SUxBQkxFKGlvcygxMS4wKSk7CistIChVSURyb3BQcm9wb3NhbCAqKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IHdpbGxVcGRhdGVEcm9wUHJvcG9zYWxUb1Byb3Bvc2FsOihVSURyb3BQcm9w
b3NhbCAqKXByb3Bvc2FsIGZvclNlc3Npb246KGlkIDxVSURyb3BTZXNzaW9uPilzZXNzaW9uIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKICNpZiBUQVJHRVRfT1NfSU9TCiAtIChV
SVRhcmdldGVkRHJhZ1ByZXZpZXcgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2
aWV3Rm9yTGlmdGluZ0l0ZW06KFVJRHJhZ0l0ZW0gKilpdGVtIHNlc3Npb246KGlkIDxVSURyYWdT
ZXNzaW9uPilzZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKIC0gKFVJVGFyZ2V0
ZWREcmFnUHJldmlldyAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdGb3JD
YW5jZWxsaW5nSXRlbTooVUlEcmFnSXRlbSAqKWl0ZW0gd2l0aERlZmF1bHQ6KFVJVGFyZ2V0ZWRE
cmFnUHJldmlldyAqKWRlZmF1bHRQcmV2aWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDc2YTk2NTNmNGJk
MDIzNmZhMzJiYjM0MmM0YWE2ZWI4NTIyMGEyZDkuLjIyMThhNzMyNjQxYmJkOTRlMmU0NzhjNzY2
YWQ2NzQ5YjI4ZDllOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtMjA0NiwxMSArMjA0NiwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cGVyZm9ybURyYWdD
b250cm9sbGVyQWN0aW9uKERyYWdDb250cm9sbGVyQWN0aW9uIGFjdGlvbiwgRHJhZwogI2VuZGlm
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24o
dWludDY0X3QgZHJhZ09wZXJhdGlvbiwgYm9vbCBtb3VzZUlzT3ZlckZpbGVJbnB1dCwgdW5zaWdu
ZWQgbnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCwgY29uc3QgSW50UmVjdCYgaW5zZXJ0aW9uUmVj
dCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24odWlu
dDY0X3QgZHJhZ09wZXJhdGlvbiwgV2ViQ29yZTo6RHJhZ0hhbmRsaW5nTWV0aG9kIGRyYWdIYW5k
bGluZ01ldGhvZCwgYm9vbCBtb3VzZUlzT3ZlckZpbGVJbnB1dCwgdW5zaWduZWQgbnVtYmVyT2ZJ
dGVtc1RvQmVBY2NlcHRlZCwgY29uc3QgSW50UmVjdCYgaW5zZXJ0aW9uUmVjdCkKIHsKICAgICBN
RVNTQUdFX0NIRUNLKGRyYWdPcGVyYXRpb24gPD0gRHJhZ09wZXJhdGlvbkRlbGV0ZSk7CiAKICAg
ICBtX2N1cnJlbnREcmFnT3BlcmF0aW9uID0gc3RhdGljX2Nhc3Q8RHJhZ09wZXJhdGlvbj4oZHJh
Z09wZXJhdGlvbik7CisgICAgbV9jdXJyZW50RHJhZ0hhbmRsaW5nTWV0aG9kID0gZHJhZ0hhbmRs
aW5nTWV0aG9kOwogICAgIG1fY3VycmVudERyYWdJc092ZXJGaWxlSW5wdXQgPSBtb3VzZUlzT3Zl
ckZpbGVJbnB1dDsKICAgICBtX2N1cnJlbnREcmFnTnVtYmVyT2ZGaWxlc1RvQmVBY2NlcHRlZCA9
IG51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQ7CiAgICAgc2V0RHJhZ0NhcmV0UmVjdChpbnNlcnRp
b25SZWN0KTsKQEAgLTIwOTksNiArMjEwMCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRFbmRE
cmFnZ2luZygpCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVzZXRDdXJyZW50RHJhZ0luZm9ybWF0aW9u
KCkKIHsKICAgICBtX2N1cnJlbnREcmFnT3BlcmF0aW9uID0gV2ViQ29yZTo6RHJhZ09wZXJhdGlv
bk5vbmU7CisgICAgbV9jdXJyZW50RHJhZ0hhbmRsaW5nTWV0aG9kID0gRHJhZ0hhbmRsaW5nTWV0
aG9kOjpOb25lOwogICAgIG1fY3VycmVudERyYWdJc092ZXJGaWxlSW5wdXQgPSBmYWxzZTsKICAg
ICBtX2N1cnJlbnREcmFnTnVtYmVyT2ZGaWxlc1RvQmVBY2NlcHRlZCA9IDA7CiAgICAgc2V0RHJh
Z0NhcmV0UmVjdCh7IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRl
eCA1M2Q4YzNkYjA5NGRmNzA2MWQ4M2M2ZTUyZTA4MjkwZTFmMzdlMTI2Li5iN2UzYWRhNWI5M2U2
OTA0OTViMDhlZmY2YzA0M2QxZmQ1NWUxOWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaApAQCAtOTczLDcgKzk3Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHBlcmZvcm1E
cmFnT3BlcmF0aW9uKFdlYkNvcmU6OkRyYWdEYXRhJiwgY29uc3QgU3RyaW5nJiBkcmFnU3RvcmFn
ZU5hbWUsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGVBcnJheSYmKTsKICAgICB2b2lkIGRpZFBlcmZvcm1EcmFnT3BlcmF0aW9uKGJvb2wgaGFuZGxl
ZCk7CiAKLSAgICB2b2lkIGRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCBk
cmFnT3BlcmF0aW9uLCBib29sIG1vdXNlSXNPdmVyRmlsZUlucHV0LCB1bnNpZ25lZCBudW1iZXJP
Zkl0ZW1zVG9CZUFjY2VwdGVkLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbnNlcnRpb25SZWN0
KTsKKyAgICB2b2lkIGRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCBkcmFn
T3BlcmF0aW9uLCBXZWJDb3JlOjpEcmFnSGFuZGxpbmdNZXRob2QsIGJvb2wgbW91c2VJc092ZXJG
aWxlSW5wdXQsIHVuc2lnbmVkIG51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIGluc2VydGlvblJlY3QpOwogICAgIHZvaWQgZHJhZ0VuZGVkKGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IGdsb2JhbFBvc2l0aW9uLCB1aW50NjRfdCBvcGVyYXRpb24pOwogICAgIHZvaWQgZGlkU3RhcnRE
cmFnKCk7CiAgICAgdm9pZCBkcmFnQ2FuY2VsbGVkKCk7CkBAIC0xMDI5LDYgKzEwMjksNyBAQCBw
dWJsaWM6CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIFdlYkNvcmU6OkRyYWdPcGVy
YXRpb24gY3VycmVudERyYWdPcGVyYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnREcmFn
T3BlcmF0aW9uOyB9CisgICAgV2ViQ29yZTo6RHJhZ0hhbmRsaW5nTWV0aG9kIGN1cnJlbnREcmFn
SGFuZGxpbmdNZXRob2QoKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnREcmFnSGFuZGxpbmdNZXRo
b2Q7IH0KICAgICBib29sIGN1cnJlbnREcmFnSXNPdmVyRmlsZUlucHV0KCkgY29uc3QgeyByZXR1
cm4gbV9jdXJyZW50RHJhZ0lzT3ZlckZpbGVJbnB1dDsgfQogICAgIHVuc2lnbmVkIGN1cnJlbnRE
cmFnTnVtYmVyT2ZGaWxlc1RvQmVBY2NlcHRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudERy
YWdOdW1iZXJPZkZpbGVzVG9CZUFjY2VwdGVkOyB9CiAgICAgV2ViQ29yZTo6SW50UmVjdCBjdXJy
ZW50RHJhZ0NhcmV0UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudERyYWdDYXJldFJlY3Q7
IH0KQEAgLTIxNTEsNiArMjE1Miw3IEBAIHByaXZhdGU6CiAgICAgLy8gQ3VycmVudCBkcmFnIGRl
c3RpbmF0aW9uIGRldGFpbHMgYXJlIGRlbGl2ZXJlZCBhcyBhbiBhc3luY2hyb25vdXMgcmVzcG9u
c2UsCiAgICAgLy8gc28gd2UgcHJlc2VydmUgdGhlbSB0byBiZSB1c2VkIHdoZW4gdGhlIG5leHQg
ZHJhZ2dpbmcgZGVsZWdhdGUgY2FsbCBpcyBtYWRlLgogICAgIFdlYkNvcmU6OkRyYWdPcGVyYXRp
b24gbV9jdXJyZW50RHJhZ09wZXJhdGlvbiB7IFdlYkNvcmU6OkRyYWdPcGVyYXRpb25Ob25lIH07
CisgICAgV2ViQ29yZTo6RHJhZ0hhbmRsaW5nTWV0aG9kIG1fY3VycmVudERyYWdIYW5kbGluZ01l
dGhvZCB7IFdlYkNvcmU6OkRyYWdIYW5kbGluZ01ldGhvZDo6Tm9uZSB9OwogICAgIGJvb2wgbV9j
dXJyZW50RHJhZ0lzT3ZlckZpbGVJbnB1dCB7IGZhbHNlIH07CiAgICAgdW5zaWduZWQgbV9jdXJy
ZW50RHJhZ051bWJlck9mRmlsZXNUb0JlQWNjZXB0ZWQgeyAwIH07CiAgICAgV2ViQ29yZTo6SW50
UmVjdCBtX2N1cnJlbnREcmFnQ2FyZXRSZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDVlNzA1NmI2MDExY2U2ZmEzZTM0NzE2
MWE5Y2I3OGViZDViZjQ1NjQuLjE3YTY5ZTE1YzBjNTM4MjNmN2IxZDk3YjA5N2ZmYThmNzBmNzJj
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTMxMSw3ICszMTEsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAg
ICAgIyBEcmFnIGFuZCBkcm9wIG1lc3NhZ2VzCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAg
ICBEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24odWludDY0X3QgZHJhZ09wZXJhdGlvbiwg
Ym9vbCBtb3VzZUlzT3ZlckZpbGVJbnB1dCwgdW5zaWduZWQgbnVtYmVyT2ZJdGVtc1RvQmVBY2Nl
cHRlZCwgV2ViQ29yZTo6SW50UmVjdCBpbnNlcnRpb25SZWN0KQorICAgIERpZFBlcmZvcm1EcmFn
Q29udHJvbGxlckFjdGlvbih1aW50NjRfdCBkcmFnT3BlcmF0aW9uLCBlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6RHJhZ0hhbmRsaW5nTWV0aG9kIGRyYWdIYW5kbGluZ01ldGhvZCwgYm9vbCBtb3VzZUlz
T3ZlckZpbGVJbnB1dCwgdW5zaWduZWQgbnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCwgV2ViQ29y
ZTo6SW50UmVjdCBpbnNlcnRpb25SZWN0KQogICAgIERpZEVuZERyYWdnaW5nKCk7CiAjZW5kaWYK
ICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CmluZGV4IDI5NDFkYmQyNTAwOTNhZmNjZGQ3Mjk1OWJlY2NkOGM2MjhlMzc2NjUuLjg1MmEyZGQ2
NDFjODVjY2YyMzQxOTY4NDA0OWU4ZDQ1NjRkNmFmOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNTg2
MCwxMSArNTg2MCwxOCBAQCAtIChVSURyb3BQcm9wb3NhbCAqKWRyb3BJbnRlcmFjdGlvbjooVUlE
cm9wSW50ZXJhY3Rpb24gKilpbnRlcmFjdGlvbiBzZXNzaW9uRGlkVQogICAgIF9wYWdlLT5kcmFn
VXBkYXRlZChkcmFnRGF0YSwgImRhdGEgaW50ZXJhY3Rpb24gcGFzdGVib2FyZCIpOwogICAgIF9k
cmFnRHJvcEludGVyYWN0aW9uU3RhdGUuZHJvcFNlc3Npb25EaWRFbnRlck9yVXBkYXRlKHNlc3Np
b24sIGRyYWdEYXRhKTsKIAotICAgIE5TVUludGVnZXIgb3BlcmF0aW9uID0gZHJvcE9wZXJhdGlv
bkZvcldlYkNvcmVEcmFnT3BlcmF0aW9uKF9wYWdlLT5jdXJyZW50RHJhZ09wZXJhdGlvbigpKTsK
LSAgICBpZiAoW3NlbGYud2ViVmlld1VJRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3Rvcihfd2ViVmlldzp3aWxsVXBkYXRlRGF0YUludGVyYWN0aW9uT3BlcmF0aW9uVG9PcGVyYXRp
b246Zm9yU2Vzc2lvbjopXSkKLSAgICAgICAgb3BlcmF0aW9uID0gW3NlbGYud2ViVmlld1VJRGVs
ZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgd2lsbFVwZGF0ZURhdGFJbnRlcmFjdGlvbk9wZXJhdGlv
blRvT3BlcmF0aW9uOm9wZXJhdGlvbiBmb3JTZXNzaW9uOnNlc3Npb25dOwotCi0gICAgcmV0dXJu
IFtbW1VJRHJvcFByb3Bvc2FsIGFsbG9jXSBpbml0V2l0aERyb3BPcGVyYXRpb246c3RhdGljX2Nh
c3Q8VUlEcm9wT3BlcmF0aW9uPihvcGVyYXRpb24pXSBhdXRvcmVsZWFzZV07CisgICAgYXV0byBk
ZWxlZ2F0ZSA9IHNlbGYud2ViVmlld1VJRGVsZWdhdGU7CisgICAgYXV0byBvcGVyYXRpb24gPSBk
cm9wT3BlcmF0aW9uRm9yV2ViQ29yZURyYWdPcGVyYXRpb24oX3BhZ2UtPmN1cnJlbnREcmFnT3Bl
cmF0aW9uKCkpOworICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihfd2ViVmlldzp3aWxsVXBkYXRlRGF0YUludGVyYWN0aW9uT3BlcmF0aW9uVG9PcGVyYXRpb246
Zm9yU2Vzc2lvbjopXSkKKyAgICAgICAgb3BlcmF0aW9uID0gc3RhdGljX2Nhc3Q8VUlEcm9wT3Bl
cmF0aW9uPihbZGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgd2lsbFVwZGF0ZURhdGFJbnRlcmFj
dGlvbk9wZXJhdGlvblRvT3BlcmF0aW9uOm9wZXJhdGlvbiBmb3JTZXNzaW9uOnNlc3Npb25dKTsK
KworICAgIGF1dG8gcHJvcG9zYWwgPSBhZG9wdE5TKFtbVUlEcm9wUHJvcG9zYWwgYWxsb2NdIGlu
aXRXaXRoRHJvcE9wZXJhdGlvbjpzdGF0aWNfY2FzdDxVSURyb3BPcGVyYXRpb24+KG9wZXJhdGlv
bildKTsKKyAgICBhdXRvIGRyYWdIYW5kbGluZ01ldGhvZCA9IF9wYWdlLT5jdXJyZW50RHJhZ0hh
bmRsaW5nTWV0aG9kKCk7CisgICAgW3Byb3Bvc2FsIHNldFByZWNpc2U6ZHJhZ0hhbmRsaW5nTWV0
aG9kID09IERyYWdIYW5kbGluZ01ldGhvZDo6RWRpdFBsYWluVGV4dCB8fCBkcmFnSGFuZGxpbmdN
ZXRob2QgPT0gRHJhZ0hhbmRsaW5nTWV0aG9kOjpFZGl0UmljaFRleHRdOworICAgIGlmIChbZGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzp3aWxsVXBkYXRlRHJv
cFByb3Bvc2FsVG9Qcm9wb3NhbDpmb3JTZXNzaW9uOildKQorICAgICAgICBwcm9wb3NhbCA9IFtk
ZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyB3aWxsVXBkYXRlRHJvcFByb3Bvc2FsVG9Qcm9wb3Nh
bDpwcm9wb3NhbC5nZXQoKSBmb3JTZXNzaW9uOnNlc3Npb25dOworCisgICAgcmV0dXJuIHByb3Bv
c2FsLmF1dG9yZWxlYXNlKCk7CiB9CiAKIC0gKHZvaWQpZHJvcEludGVyYWN0aW9uOihVSURyb3BJ
bnRlcmFjdGlvbiAqKWludGVyYWN0aW9uIHNlc3Npb25EaWRFeGl0OihpZCA8VUlEcm9wU2Vzc2lv
bj4pc2Vzc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAppbmRleCA0NDk0MWZmOTBhYTU4NzkzMDhiZWJjYTdmMmRjMDAyNjk3ZjgxNjdlLi5lNTk3ZTUz
MDFiY2Q2NThmZTRiODA1ODFmMzQ1MTIxZjU2M2IxZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzYyMCw3ICszNjIwLDcgQEAgTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKiBXZWJQYWdlOjpub3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmEKIHZvaWQgV2ViUGFnZTo6cGVyZm9ybURyYWdDb250cm9sbGVyQWN0
aW9uKERyYWdDb250cm9sbGVyQWN0aW9uIGFjdGlvbiwgY29uc3QgSW50UG9pbnQmIGNsaWVudFBv
c2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIHVpbnQ2NF90IGRyYWdnaW5n
U291cmNlT3BlcmF0aW9uTWFzaywgV2ViU2VsZWN0aW9uRGF0YSYmIHNlbGVjdGlvbiwgdWludDMy
X3QgZmxhZ3MpCiB7CiAgICAgaWYgKCFtX3BhZ2UpIHsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oRHJhZ09wZXJhdGlv
bk5vbmUsIGZhbHNlLCAwLCB7IH0pKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oRHJhZ09wZXJhdGlvbk5vbmUsIERy
YWdIYW5kbGluZ01ldGhvZDo6Tm9uZSwgZmFsc2UsIDAsIHsgfSkpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC0zNjI4LDEyICszNjI4LDEyIEBAIHZvaWQgV2ViUGFnZTo6cGVyZm9ybURy
YWdDb250cm9sbGVyQWN0aW9uKERyYWdDb250cm9sbGVyQWN0aW9uIGFjdGlvbiwgY29uc3QgSW50
CiAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICBjYXNlIERyYWdDb250cm9sbGVyQWN0aW9uOjpF
bnRlcmVkOiB7CiAgICAgICAgIERyYWdPcGVyYXRpb24gcmVzb2x2ZWREcmFnT3BlcmF0aW9uID0g
bV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLmRyYWdFbnRlcmVkKGRyYWdEYXRhKTsKLSAgICAgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rp
b24ocmVzb2x2ZWREcmFnT3BlcmF0aW9uLCBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCkubW91c2VJ
c092ZXJGaWxlSW5wdXQoKSwgbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLm51bWJlck9mSXRlbXNU
b0JlQWNjZXB0ZWQoKSwgeyB9KSk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHJlc29sdmVkRHJhZ09wZXJhdGlvbiwg
bV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLmRyYWdIYW5kbGluZ01ldGhvZCgpLCBtX3BhZ2UtPmRy
YWdDb250cm9sbGVyKCkubW91c2VJc092ZXJGaWxlSW5wdXQoKSwgbV9wYWdlLT5kcmFnQ29udHJv
bGxlcigpLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQoKSwgeyB9KSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgY2FzZSBEcmFnQ29udHJvbGxlckFjdGlvbjo6VXBkYXRlZDogewogICAg
ICAgICBEcmFnT3BlcmF0aW9uIHJlc29sdmVkRHJhZ09wZXJhdGlvbiA9IG1fcGFnZS0+ZHJhZ0Nv
bnRyb2xsZXIoKS5kcmFnRW50ZXJlZChkcmFnRGF0YSk7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHJlc29sdmVkRHJh
Z09wZXJhdGlvbiwgbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLm1vdXNlSXNPdmVyRmlsZUlucHV0
KCksIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkKCks
IHsgfSkpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1E
cmFnQ29udHJvbGxlckFjdGlvbihyZXNvbHZlZERyYWdPcGVyYXRpb24sIG1fcGFnZS0+ZHJhZ0Nv
bnRyb2xsZXIoKS5kcmFnSGFuZGxpbmdNZXRob2QoKSwgbV9wYWdlLT5kcmFnQ29udHJvbGxlcigp
Lm1vdXNlSXNPdmVyRmlsZUlucHV0KCksIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5udW1iZXJP
Zkl0ZW1zVG9CZUFjY2VwdGVkKCksIHsgfSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IGNhc2UgRHJhZ0NvbnRyb2xsZXJBY3Rpb246OkV4aXRlZDoKQEAgLTM2NTEsMjQgKzM2NTEsMjQg
QEAgdm9pZCBXZWJQYWdlOjpwZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oRHJhZ0NvbnRyb2xs
ZXJBY3Rpb24gYWN0aW9uLCBjb25zdCBJbnQKIHZvaWQgV2ViUGFnZTo6cGVyZm9ybURyYWdDb250
cm9sbGVyQWN0aW9uKERyYWdDb250cm9sbGVyQWN0aW9uIGFjdGlvbiwgY29uc3QgV2ViQ29yZTo6
RHJhZ0RhdGEmIGRyYWdEYXRhLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBzYW5kYm94RXh0
ZW5zaW9uSGFuZGxlLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSYmIHNhbmRib3hFeHRl
bnNpb25zSGFuZGxlQXJyYXkpCiB7CiAgICAgaWYgKCFtX3BhZ2UpIHsKLSAgICAgICAgc2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oRHJh
Z09wZXJhdGlvbk5vbmUsIGZhbHNlLCAwLCB7IH0pKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oRHJhZ09wZXJhdGlv
bk5vbmUsIERyYWdIYW5kbGluZ01ldGhvZDo6Tm9uZSwgZmFsc2UsIDAsIHsgfSkpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICBjYXNlIERyYWdD
b250cm9sbGVyQWN0aW9uOjpFbnRlcmVkOiB7CiAgICAgICAgIERyYWdPcGVyYXRpb24gcmVzb2x2
ZWREcmFnT3BlcmF0aW9uID0gbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLmRyYWdFbnRlcmVkKGRy
YWdEYXRhKTsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3Jt
RHJhZ0NvbnRyb2xsZXJBY3Rpb24ocmVzb2x2ZWREcmFnT3BlcmF0aW9uLCBtX3BhZ2UtPmRyYWdD
b250cm9sbGVyKCkubW91c2VJc092ZXJGaWxlSW5wdXQoKSwgbV9wYWdlLT5kcmFnQ29udHJvbGxl
cigpLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQoKSwgbV9wYWdlLT5kcmFnQ2FyZXRDb250cm9s
bGVyKCkuY2FyZXRSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCkpKTsKKyAgICAgICAgc2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24ocmVz
b2x2ZWREcmFnT3BlcmF0aW9uLCBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCkuZHJhZ0hhbmRsaW5n
TWV0aG9kKCksIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5tb3VzZUlzT3ZlckZpbGVJbnB1dCgp
LCBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCkubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCgpLCBt
X3BhZ2UtPmRyYWdDYXJldENvbnRyb2xsZXIoKS5jYXJldFJlY3RJblJvb3RWaWV3Q29vcmRpbmF0
ZXMoKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc2UgRHJhZ0NvbnRyb2xsZXJB
Y3Rpb246OlVwZGF0ZWQ6IHsKICAgICAgICAgRHJhZ09wZXJhdGlvbiByZXNvbHZlZERyYWdPcGVy
YXRpb24gPSBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCkuZHJhZ1VwZGF0ZWQoZHJhZ0RhdGEpOwot
ICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1EcmFnQ29udHJv
bGxlckFjdGlvbihyZXNvbHZlZERyYWdPcGVyYXRpb24sIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIo
KS5tb3VzZUlzT3ZlckZpbGVJbnB1dCgpLCBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCkubnVtYmVy
T2ZJdGVtc1RvQmVBY2NlcHRlZCgpLCBtX3BhZ2UtPmRyYWdDYXJldENvbnRyb2xsZXIoKS5jYXJl
dFJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKSkpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihyZXNvbHZlZERyYWdP
cGVyYXRpb24sIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5kcmFnSGFuZGxpbmdNZXRob2QoKSwg
bV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLm1vdXNlSXNPdmVyRmlsZUlucHV0KCksIG1fcGFnZS0+
ZHJhZ0NvbnRyb2xsZXIoKS5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkKCksIG1fcGFnZS0+ZHJh
Z0NhcmV0Q29udHJvbGxlcigpLmNhcmV0UmVjdEluUm9vdFZpZXdDb29yZGluYXRlcygpKSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBEcmFnQ29udHJvbGxlckFjdGlvbjo6RXhp
dGVkOgogICAgICAgICBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCkuZHJhZ0V4aXRlZChkcmFnRGF0
YSk7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdD
b250cm9sbGVyQWN0aW9uKERyYWdPcGVyYXRpb25Ob25lLCBmYWxzZSwgMCwgeyB9KSk7CisgICAg
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVy
QWN0aW9uKERyYWdPcGVyYXRpb25Ob25lLCBEcmFnSGFuZGxpbmdNZXRob2Q6Ok5vbmUsIGZhbHNl
LCAwLCB7IH0pKTsKICAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICBjYXNlIERyYWdDb250
cm9sbGVyQWN0aW9uOjpQZXJmb3JtRHJhZ09wZXJhdGlvbjogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGM4ODAwMjljMjQ4M2IwNjQ1ODA4ZDgzMTk0
MzY4ZWIyYjcwYTAzOWQuLjRkN2E3NThlNGNjZmM3MzAyNmQ3ZTI3OWFjYTQ1Nzc4MWMwODQ2ZTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE2Nyw2
ICsxNjcsNyBAQCBjbGFzcyBUZXh0Q2hlY2tpbmdSZXF1ZXN0OwogY2xhc3MgVmlzaWJsZVBvc2l0
aW9uOwogCiBlbnVtIFN5bnRoZXRpY0NsaWNrVHlwZSA6IGludDhfdDsKK2VudW0gY2xhc3MgRHJh
Z0hhbmRsaW5nTWV0aG9kIDogdWludDhfdDsKIGVudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRp
bnVpbmdMb2FkIDogYm9vbDsKIGVudW0gY2xhc3MgVGV4dEluZGljYXRvclByZXNlbnRhdGlvblRy
YW5zaXRpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBXcml0aW5nRGlyZWN0aW9uIDogdWludDhf
dDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4
ODJjOWFlMjdlZTI0ZjQyYTgyOTNlN2NlNTgwYmYxZDRlOTc2ODU3Li5lOGM0YjA5NWFiODM2MDE1
MWVkZDI1YzIwNTM5Y2ZlMTAwMzNhNzM2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTgtMTItMDcgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQ2FyZXQgaXMg
b2JzY3VyZWQgYnkgZmluZ2VyIHdoZW4gZHJhZ2dpbmcgb3ZlciBhbiBlZGl0YWJsZSBlbGVtZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI0OTkK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ2NTcwMTAxPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEF1Z21lbnQgc29tZSBleGlzdGluZyBBUEkgdGVz
dHMgdG8gY2hlY2sgdGhhdCB0aGUgYHByZWNpc2VgIGZsYWcgaXMgZWl0aGVyIG9uIG9yIG9mZiBv
biBgVUlEcm9wUHJvcG9zYWxgLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9pb3Mv
RHJhZ0FuZERyb3BUZXN0c0lPUy5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL0Ry
YWdBbmREcm9wU2ltdWxhdG9yLmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9pb3MvRHJhZ0Fu
ZERyb3BTaW11bGF0b3JJT1MubW06CisgICAgICAgICgtW0RyYWdBbmREcm9wU2ltdWxhdG9yIF9y
ZXNldFNpbXVsYXRlZFN0YXRlXSk6CisgICAgICAgICgtW0RyYWdBbmREcm9wU2ltdWxhdG9yIGxh
c3RLbm93bkRyb3BQcm9wb3NhbF0pOgorCisgICAgICAgIFJlbmFtZSBgY3VycmVudERyb3BQcm9w
b3NhbGAgdG8gYGxhc3RLbm93bkRyb3BQcm9wb3NhbGAsIGFuZCBleHBvc2UgaXQgYXMgYSByZWFk
b25seSBwcm9wZXJ0eS4KKworICAgICAgICAoLVtEcmFnQW5kRHJvcFNpbXVsYXRvciBfY29uY2x1
ZGVEcm9wQW5kUGVyZm9ybU9wZXJhdGlvbklmTmVjZXNzYXJ5XSk6CisgICAgICAgICgtW0RyYWdB
bmREcm9wU2ltdWxhdG9yIF9hZHZhbmNlUHJvZ3Jlc3NdKToKKyAgICAgICAgKC1bRHJhZ0FuZERy
b3BTaW11bGF0b3Igc2V0U2hvd0N1c3RvbUFjdGlvblNoZWV0QmxvY2s6XSk6CisgICAgICAgICgt
W0RyYWdBbmREcm9wU2ltdWxhdG9yIHNob3dDdXN0b21BY3Rpb25TaGVldEJsb2NrXSk6CisgICAg
ICAgICgtW0RyYWdBbmREcm9wU2ltdWxhdG9yIHNldENvbnZlcnRJdGVtUHJvdmlkZXJzQmxvY2s6
XSk6CisgICAgICAgICgtW0RyYWdBbmREcm9wU2ltdWxhdG9yIGNvbnZlcnRJdGVtUHJvdmlkZXJz
QmxvY2tdKToKKyAgICAgICAgKC1bRHJhZ0FuZERyb3BTaW11bGF0b3Igc2V0T3ZlcnJpZGVQZXJm
b3JtRHJvcEJsb2NrOl0pOgorICAgICAgICAoLVtEcmFnQW5kRHJvcFNpbXVsYXRvciBvdmVycmlk
ZVBlcmZvcm1Ecm9wQmxvY2tdKToKKyAgICAgICAgKC1bRHJhZ0FuZERyb3BTaW11bGF0b3Igc2V0
T3ZlcnJpZGVEcmFnVXBkYXRlQmxvY2s6XSk6CisgICAgICAgICgtW0RyYWdBbmREcm9wU2ltdWxh
dG9yIG92ZXJyaWRlRHJhZ1VwZGF0ZUJsb2NrXSk6CisgICAgICAgICgtW0RyYWdBbmREcm9wU2lt
dWxhdG9yIHNldERyb3BDb21wbGV0aW9uQmxvY2s6XSk6CisgICAgICAgICgtW0RyYWdBbmREcm9w
U2ltdWxhdG9yIGRyb3BDb21wbGV0aW9uQmxvY2tdKToKKworICAgICAgICBSZWZhY3RvciB0aGVz
ZSBwcm9wZXJ0aWVzIHRvIHJldHVybiBhbmQgdGFrZSBub3JtYWwgT2JqZWN0aXZlLUMgYmxvY2tz
LCByYXRoZXIgdGhhbiBgQmxvY2tQdHJgcy4gSG93ZXZlciwgdXNlCisgICAgICAgIGBCbG9ja1B0
cmAgaW5zdGFuY2UgdmFyaWFibGVzIHRvIG1hbmFnZSB0aGUgbGlmZXRpbWVzIG9mIHRoZXNlIGJs
b2Nrcy4KKworICAgICAgICAoLVtEcmFnQW5kRHJvcFNpbXVsYXRvciBfd2ViVmlldzp3aWxsVXBk
YXRlRHJvcFByb3Bvc2FsVG9Qcm9wb3NhbDpmb3JTZXNzaW9uOl0pOgorICAgICAgICAoLVtEcmFn
QW5kRHJvcFNpbXVsYXRvciBfd2ViVmlldzp3aWxsVXBkYXRlRGF0YUludGVyYWN0aW9uT3BlcmF0
aW9uVG9PcGVyYXRpb246Zm9yU2Vzc2lvbjpdKTogRGVsZXRlZC4KKworICAgICAgICBVcGRhdGUg
dGhpcyB0byB1c2UgdGhlIG5ldyBXZWJLaXQgZGVsZWdhdGUgaG9vayBmb3Igb3ZlcnJpZGluZyB0
aGUgZHJvcCBwcm9wb3NhbC4KKwogMjAxOC0xMi0wNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBEcmFnQW5kRHJvcFRlc3RzLlJlc3BlY3Rz
RXh0ZXJuYWxTb3VyY2VGaWRlbGl0eVJhbmtpbmdzIGlzIGZsYWt5CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EcmFnQW5kRHJvcFRlc3RzSU9TLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRHJhZ0FuZERyb3BUZXN0c0lPUy5tbQppbmRleCAyYzgx
ZTU3YjhiNzk0ZGQ5MjBmZTFlMzc1NjRhYzM5ZWMwOWMxNTE0Li5hNzVhYmU4MzQ2NTVlYzkyOGE0
ODM3YWExZTBlNjdhMWZiOGIwZmQ5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL2lvcy9EcmFnQW5kRHJvcFRlc3RzSU9TLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvaW9zL0RyYWdBbmREcm9wVGVzdHNJT1MubW0KQEAgLTI3Miw2ICsyNzIsNyBAQCBURVNU
KERyYWdBbmREcm9wVGVzdHMsIEltYWdlVG9Db250ZW50RWRpdGFibGUpCiAgICAgY2hlY2tTZWxl
Y3Rpb25SZWN0c1dpdGhMb2dnaW5nKEBbIG1ha2VDR1JlY3RWYWx1ZSgxLCAyMDEsIDIxNSwgMTc0
KSBdLCBbc2ltdWxhdG9yIGZpbmFsU2VsZWN0aW9uUmVjdHNdKTsKICAgICBjaGVja0ZpcnN0VHlw
ZUlzUHJlc2VudEFuZFNlY29uZFR5cGVJc01pc3Npbmcoc2ltdWxhdG9yLmdldCgpLCBrVVRUeXBl
UE5HLCBrVVRUeXBlRmlsZVVSTCk7CiAgICAgY2hlY2tFc3RpbWF0ZWRTaXplKHNpbXVsYXRvci5n
ZXQoKSwgeyAyMTUsIDE3NCB9KTsKKyAgICBFWFBFQ1RfVFJVRShbc2ltdWxhdG9yIGxhc3RLbm93
bkRyb3BQcm9wb3NhbF0ucHJlY2lzZSk7CiB9CiAKIFRFU1QoRHJhZ0FuZERyb3BUZXN0cywgQ2Fu
U3RhcnREcmFnT25Fbm9ybW91c0ltYWdlKQpAQCAtMzE2LDYgKzMxNyw3IEBAIFRFU1QoRHJhZ0Fu
ZERyb3BUZXN0cywgSW1hZ2VJbkxpbmtUb0lucHV0KQogICAgIGNoZWNrU2VsZWN0aW9uUmVjdHNX
aXRoTG9nZ2luZyhAWyBtYWtlQ0dSZWN0VmFsdWUoMTAxLCAyNDEsIDIwNTcsIDIzMikgXSwgW3Np
bXVsYXRvciBmaW5hbFNlbGVjdGlvblJlY3RzXSk7CiAgICAgY2hlY2tTdWdnZXN0ZWROYW1lQW5k
RXN0aW1hdGVkU2l6ZShzaW11bGF0b3IuZ2V0KCksIEAiaWNvbi5wbmciLCB7IDIxNSwgMTc0IH0p
OwogICAgIGNoZWNrVHlwZUlkZW50aWZpZXJJc1JlZ2lzdGVyZWRBdEluZGV4KHNpbXVsYXRvci5n
ZXQoKSwgKF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlwZVBORywgMCk7CisgICAgRVhQRUNUX1RS
VUUoW3NpbXVsYXRvciBsYXN0S25vd25Ecm9wUHJvcG9zYWxdLnByZWNpc2UpOwogfQogCiBURVNU
KERyYWdBbmREcm9wVGVzdHMsIEltYWdlSW5MaW5rV2l0aG91dEhSRUZUb0lucHV0KQpAQCAtMzYz
LDYgKzM2NSw3IEBAIFRFU1QoRHJhZ0FuZERyb3BUZXN0cywgQ29udGVudEVkaXRhYmxlVG9Db250
ZW50RWRpdGFibGUpCiAgICAgRVhQRUNUX1RSVUUoW29ic2VydmVkRXZlbnROYW1lcyBjb250YWlu
c09iamVjdDpAImRyb3AiXSk7CiAgICAgY2hlY2tTZWxlY3Rpb25SZWN0c1dpdGhMb2dnaW5nKEBb
IG1ha2VDR1JlY3RWYWx1ZSgxLCAyMDEsIDk2MSwgMjI3KSBdLCBbc2ltdWxhdG9yIGZpbmFsU2Vs
ZWN0aW9uUmVjdHNdKTsKICAgICBjaGVja1JpY2hUZXh0VHlwZVByZWNlZGVzUGxhaW5UZXh0VHlw
ZShzaW11bGF0b3IuZ2V0KCkpOworICAgIEVYUEVDVF9UUlVFKFtzaW11bGF0b3IgbGFzdEtub3du
RHJvcFByb3Bvc2FsXS5wcmVjaXNlKTsKIH0KIAogVEVTVChEcmFnQW5kRHJvcFRlc3RzLCBDb250
ZW50RWRpdGFibGVUb1RleHRhcmVhKQpAQCAtMzgzLDYgKzM4Niw3IEBAIFRFU1QoRHJhZ0FuZERy
b3BUZXN0cywgQ29udGVudEVkaXRhYmxlVG9UZXh0YXJlYSkKICAgICBFWFBFQ1RfVFJVRShbb2Jz
ZXJ2ZWRFdmVudE5hbWVzIGNvbnRhaW5zT2JqZWN0OkAiZHJvcCJdKTsKICAgICBjaGVja1NlbGVj
dGlvblJlY3RzV2l0aExvZ2dpbmcoQFsgbWFrZUNHUmVjdFZhbHVlKDYsIDIwMywgOTkwLCAyMzIp
IF0sIFtzaW11bGF0b3IgZmluYWxTZWxlY3Rpb25SZWN0c10pOwogICAgIGNoZWNrUmljaFRleHRU
eXBlUHJlY2VkZXNQbGFpblRleHRUeXBlKHNpbXVsYXRvci5nZXQoKSk7CisgICAgRVhQRUNUX1RS
VUUoW3NpbXVsYXRvciBsYXN0S25vd25Ecm9wUHJvcG9zYWxdLnByZWNpc2UpOwogfQogCiBURVNU
KERyYWdBbmREcm9wVGVzdHMsIE5vbkVkaXRhYmxlVGV4dFNlbGVjdGlvblRvVGV4dGFyZWEpCkBA
IC00MTMsNiArNDE3LDcgQEAgVEVTVChEcmFnQW5kRHJvcFRlc3RzLCBDb250ZW50RWRpdGFibGVN
b3ZlUGFyYWdyYXBocykKICAgICBFWFBFQ1RfRkFMU0Uoc2Vjb25kUGFyYWdyYXBoT2Zmc2V0ID09
IE5TTm90Rm91bmQpOwogICAgIEVYUEVDVF9HVChmaXJzdFBhcmFncmFwaE9mZnNldCwgc2Vjb25k
UGFyYWdyYXBoT2Zmc2V0KTsKICAgICBjaGVja1NlbGVjdGlvblJlY3RzV2l0aExvZ2dpbmcoQFsg
bWFrZUNHUmVjdFZhbHVlKDE5MCwgMTAwLCAxMzAsIDIwKSwgbWFrZUNHUmVjdFZhbHVlKDAsIDEy
MCwgMzIwLCAxMDApLCBtYWtlQ0dSZWN0VmFsdWUoMCwgMjIwLCAyNTIsIDIwKSBdLCBbc2ltdWxh
dG9yIGZpbmFsU2VsZWN0aW9uUmVjdHNdKTsKKyAgICBFWFBFQ1RfVFJVRShbc2ltdWxhdG9yIGxh
c3RLbm93bkRyb3BQcm9wb3NhbF0ucHJlY2lzZSk7CiB9CiAKIFRFU1QoRHJhZ0FuZERyb3BUZXN0
cywgRHJhZ0ltYWdlRnJvbUNvbnRlbnRFZGl0YWJsZSkKQEAgLTYyOSw2ICs2MzQsNyBAQCBURVNU
KERyYWdBbmREcm9wVGVzdHMsIEV4dGVybmFsU291cmNlSW5saW5lVGV4dFRvRmlsZUlucHV0KQog
ICAgIFtzaW11bGF0b3IgcnVuRnJvbTpDR1BvaW50TWFrZSgyMDAsIDEwMCkgdG86Q0dQb2ludE1h
a2UoMTAwLCAxMDApXTsKIAogICAgIEVYUEVDVF9XS19TVFJFUSgiIiwgW3dlYlZpZXcgc3RyaW5n
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIm91dHB1dC52YWx1ZSJdKTsKKyAgICBFWFBFQ1RfRkFM
U0UoW3NpbXVsYXRvciBsYXN0S25vd25Ecm9wUHJvcG9zYWxdLnByZWNpc2UpOwogfQogCiBURVNU
KERyYWdBbmREcm9wVGVzdHMsIEV4dGVybmFsU291cmNlSlNPTlRvRmlsZUlucHV0KQpAQCAtNjQ1
LDYgKzY1MSw3IEBAIFRFU1QoRHJhZ0FuZERyb3BUZXN0cywgRXh0ZXJuYWxTb3VyY2VKU09OVG9G
aWxlSW5wdXQpCiAgICAgW3NpbXVsYXRvciBydW5Gcm9tOkNHUG9pbnRNYWtlKDIwMCwgMTAwKSB0
bzpDR1BvaW50TWFrZSgxMDAsIDEwMCldOwogCiAgICAgRVhQRUNUX1dLX1NUUkVRKCJhcHBsaWNh
dGlvbi9qc29uIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIm91dHB1
dC52YWx1ZSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3NpbXVsYXRvciBsYXN0S25vd25Ecm9wUHJv
cG9zYWxdLnByZWNpc2UpOwogfQogCiBURVNUKERyYWdBbmREcm9wVGVzdHMsIEV4dGVybmFsU291
cmNlSW1hZ2VUb0ZpbGVJbnB1dCkKQEAgLTY2Miw2ICs2NjksNyBAQCBURVNUKERyYWdBbmREcm9w
VGVzdHMsIEV4dGVybmFsU291cmNlSW1hZ2VUb0ZpbGVJbnB1dCkKIAogICAgIE5TU3RyaW5nICpv
dXRwdXRWYWx1ZSA9IFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJvdXRw
dXQudmFsdWUiXTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoImltYWdlL2pwZWciLCBvdXRwdXRWYWx1
ZS5VVEY4U3RyaW5nKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3NpbXVsYXRvciBsYXN0S25vd25Ecm9w
UHJvcG9zYWxdLnByZWNpc2UpOwogfQogCiBURVNUKERyYWdBbmREcm9wVGVzdHMsIEV4dGVybmFs
U291cmNlSFRNTFRvVXBsb2FkQXJlYSkKQEAgLTY4MSw2ICs2ODksNyBAQCBURVNUKERyYWdBbmRE
cm9wVGVzdHMsIEV4dGVybmFsU291cmNlSFRNTFRvVXBsb2FkQXJlYSkKIAogICAgIE5TU3RyaW5n
ICpvdXRwdXRWYWx1ZSA9IFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJv
dXRwdXQudmFsdWUiXTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoInRleHQvaHRtbCIsIG91dHB1dFZh
bHVlLlVURjhTdHJpbmcpOworICAgIEVYUEVDVF9GQUxTRShbc2ltdWxhdG9yIGxhc3RLbm93bkRy
b3BQcm9wb3NhbF0ucHJlY2lzZSk7CiB9CiAKIFRFU1QoRHJhZ0FuZERyb3BUZXN0cywgRXh0ZXJu
YWxTb3VyY2VNb3ZlT3BlcmF0aW9uTm90QWxsb3dlZCkKQEAgLTcxOCw2ICs3MjcsNyBAQCBURVNU
KERyYWdBbmREcm9wVGVzdHMsIEV4dGVybmFsU291cmNlWklQQXJjaGl2ZUFuZFVSTFRvU2luZ2xl
RmlsZUlucHV0KQogCiAgICAgTlNTdHJpbmcgKm91dHB1dFZhbHVlID0gW3dlYlZpZXcgc3RyaW5n
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIm91dHB1dC52YWx1ZSJdOwogICAgIEVYUEVDVF9XS19T
VFJFUSgiYXBwbGljYXRpb24vemlwIiwgb3V0cHV0VmFsdWUuVVRGOFN0cmluZyk7CisgICAgRVhQ
RUNUX0ZBTFNFKFtzaW11bGF0b3IgbGFzdEtub3duRHJvcFByb3Bvc2FsXS5wcmVjaXNlKTsKIH0K
IAogVEVTVChEcmFnQW5kRHJvcFRlc3RzLCBFeHRlcm5hbFNvdXJjZVpJUEFyY2hpdmVUb1VwbG9h
ZEFyZWEpCkBAIC03MzQsNiArNzQ0LDcgQEAgVEVTVChEcmFnQW5kRHJvcFRlc3RzLCBFeHRlcm5h
bFNvdXJjZVpJUEFyY2hpdmVUb1VwbG9hZEFyZWEpCiAKICAgICBOU1N0cmluZyAqb3V0cHV0VmFs
dWUgPSBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAib3V0cHV0LnZhbHVl
Il07CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJhcHBsaWNhdGlvbi96aXAiLCBvdXRwdXRWYWx1ZS5V
VEY4U3RyaW5nKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3NpbXVsYXRvciBsYXN0S25vd25Ecm9wUHJv
cG9zYWxdLnByZWNpc2UpOwogfQogCiBURVNUKERyYWdBbmREcm9wVGVzdHMsIEV4dGVybmFsU291
cmNlSW1hZ2VBbmRIVE1MVG9TaW5nbGVGaWxlSW5wdXQpCkBAIC03NTUsNiArNzY2LDcgQEAgVEVT
VChEcmFnQW5kRHJvcFRlc3RzLCBFeHRlcm5hbFNvdXJjZUltYWdlQW5kSFRNTFRvU2luZ2xlRmls
ZUlucHV0KQogCiAgICAgTlNTdHJpbmcgKm91dHB1dFZhbHVlID0gW3dlYlZpZXcgc3RyaW5nQnlF
dmFsdWF0aW5nSmF2YVNjcmlwdDpAIm91dHB1dC52YWx1ZSJdOwogICAgIEVYUEVDVF9XS19TVFJF
USgiIiwgb3V0cHV0VmFsdWUuVVRGOFN0cmluZyk7CisgICAgRVhQRUNUX0ZBTFNFKFtzaW11bGF0
b3IgbGFzdEtub3duRHJvcFByb3Bvc2FsXS5wcmVjaXNlKTsKIH0KIAogVEVTVChEcmFnQW5kRHJv
cFRlc3RzLCBFeHRlcm5hbFNvdXJjZUltYWdlQW5kSFRNTFRvTXVsdGlwbGVGaWxlSW5wdXQpCkBA
IC03NzcsNiArNzg5LDcgQEAgVEVTVChEcmFnQW5kRHJvcFRlc3RzLCBFeHRlcm5hbFNvdXJjZUlt
YWdlQW5kSFRNTFRvTXVsdGlwbGVGaWxlSW5wdXQpCiAKICAgICBOU1N0cmluZyAqb3V0cHV0VmFs
dWUgPSBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAib3V0cHV0LnZhbHVl
Il07CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJpbWFnZS9qcGVnLCB0ZXh0L2h0bWwiLCBvdXRwdXRW
YWx1ZS5VVEY4U3RyaW5nKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3NpbXVsYXRvciBsYXN0S25vd25E
cm9wUHJvcG9zYWxdLnByZWNpc2UpOwogfQogCiBURVNUKERyYWdBbmREcm9wVGVzdHMsIEV4dGVy
bmFsU291cmNlSW1hZ2VBbmRIVE1MVG9VcGxvYWRBcmVhKQpAQCAtODAzLDYgKzgxNiw3IEBAIFRF
U1QoRHJhZ0FuZERyb3BUZXN0cywgRXh0ZXJuYWxTb3VyY2VJbWFnZUFuZEhUTUxUb1VwbG9hZEFy
ZWEpCiAKICAgICBOU1N0cmluZyAqb3V0cHV0VmFsdWUgPSBbd2ViVmlldyBzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OkAib3V0cHV0LnZhbHVlIl07CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJp
bWFnZS9qcGVnLCB0ZXh0L2h0bWwsIHRleHQvaHRtbCIsIG91dHB1dFZhbHVlLlVURjhTdHJpbmcp
OworICAgIEVYUEVDVF9GQUxTRShbc2ltdWxhdG9yIGxhc3RLbm93bkRyb3BQcm9wb3NhbF0ucHJl
Y2lzZSk7CiB9CiAKIFRFU1QoRHJhZ0FuZERyb3BUZXN0cywgRXh0ZXJuYWxTb3VyY2VIVE1MVG9D
b250ZW50RWRpdGFibGUpCkBAIC0xMDI5LDYgKzEwNDMsNyBAQCBURVNUKERyYWdBbmREcm9wVGVz
dHMsIEV4dGVybmFsU291cmNlT3ZlcnJpZGVEcm9wRmlsZVVwbG9hZCkKIAogICAgIE5TU3RyaW5n
ICpvdXRwdXRWYWx1ZSA9IFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJv
dXRwdXQudmFsdWUiXTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoInRleHQvaHRtbCIsIG91dHB1dFZh
bHVlLlVURjhTdHJpbmcpOworICAgIEVYUEVDVF9GQUxTRShbc2ltdWxhdG9yIGxhc3RLbm93bkRy
b3BQcm9wb3NhbF0ucHJlY2lzZSk7CiB9CiAKICNpZiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMTAzMDAKQEAgLTExNTQsOSArMTE2OSw4IEBAIFRFU1QoRHJhZ0FuZERyb3BU
ZXN0cywgT3ZlcnJpZGVEcm9wKQogICAgIF9fYmxvY2sgYm9vbCBmaW5pc2hlZExvYWRpbmdEYXRh
ID0gZmFsc2U7CiAgICAgYXV0byBzaW11bGF0b3IgPSBhZG9wdE5TKFtbRHJhZ0FuZERyb3BTaW11
bGF0b3IgYWxsb2NdIGluaXRXaXRoV2ViVmlldzp3ZWJWaWV3LmdldCgpXSk7CiAgICAgW3NpbXVs
YXRvciBzZXRFeHRlcm5hbEl0ZW1Qcm92aWRlcnM6QFsgc2ltdWxhdGVkSXRlbVByb3ZpZGVyLmdl
dCgpIF1dOwotICAgIFtzaW11bGF0b3Igc2V0T3ZlcnJpZGVEcmFnVXBkYXRlQmxvY2s6Xk5TVUlu
dGVnZXIoTlNVSW50ZWdlciBvcGVyYXRpb24sIGlkIHNlc3Npb24pCi0gICAgewotICAgICAgICBF
WFBFQ1RfRVEoMFUsIG9wZXJhdGlvbik7CisgICAgW3NpbXVsYXRvciBzZXRPdmVycmlkZURyYWdV
cGRhdGVCbG9jazpbXSAoVUlEcm9wT3BlcmF0aW9uIG9wZXJhdGlvbiwgaWQgPFVJRHJvcFNlc3Np
b24+IHNlc3Npb24pIHsKKyAgICAgICAgRVhQRUNUX0VRKFVJRHJvcE9wZXJhdGlvbkNhbmNlbCwg
b3BlcmF0aW9uKTsKICAgICAgICAgcmV0dXJuIFVJRHJvcE9wZXJhdGlvbkNvcHk7CiAgICAgfV07
CiAgICAgW3NpbXVsYXRvciBzZXREcm9wQ29tcGxldGlvbkJsb2NrOl4oQk9PTCBoYW5kbGVkLCBO
U0FycmF5ICppdGVtUHJvdmlkZXJzKSB7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L2NvY29hL0RyYWdBbmREcm9wU2ltdWxhdG9yLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29h
L0RyYWdBbmREcm9wU2ltdWxhdG9yLmgKaW5kZXggNGZlMGI4NDI4YzA4YmU3NGQ5OGE5OTFhYWUz
OTYyNGJiOTRjMDc0OS4uNGJlOTczMmQzMDE3OTIyOGFhZmI0YzkzZTg1NTEzZGFlMTIwYmYxOSAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9EcmFnQW5kRHJvcFNpbXVsYXRv
ci5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvRHJhZ0FuZERyb3BTaW11bGF0b3Iu
aApAQCAtOTUsMTIgKzk1LDE0IEBAIHR5cGVkZWYgTlNEaWN0aW9uYXJ5PE5TTnVtYmVyICosIE5T
VmFsdWUgKj4gKlByb2dyZXNzVG9DR1BvaW50VmFsdWVNYXA7CiBAcHJvcGVydHkgKG5vbmF0b21p
YykgQk9PTCBhbGxvd3NGb2N1c1RvU3RhcnRJbnB1dFNlc3Npb247CiBAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBzaG91bGRFbnN1cmVVSUFwcGxpY2F0aW9uOwogQHByb3BlcnR5IChub25hdG9t
aWMpIEJPT0wgc2hvdWxkQWxsb3dNb3ZlT3BlcmF0aW9uOwotQHByb3BlcnR5IChub25hdG9taWMp
IEJsb2NrUHRyPEJPT0woX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKik+IHNob3dDdXN0b21BY3Rp
b25TaGVldEJsb2NrOwotQHByb3BlcnR5IChub25hdG9taWMpIEJsb2NrUHRyPE5TQXJyYXkgKihO
U0l0ZW1Qcm92aWRlciAqLCBOU0FycmF5ICosIE5TRGljdGlvbmFyeSAqKT4gY29udmVydEl0ZW1Q
cm92aWRlcnNCbG9jazsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCbG9ja1B0cjxOU0FycmF5ICoo
aWQgPFVJRHJvcFNlc3Npb24+KT4gb3ZlcnJpZGVQZXJmb3JtRHJvcEJsb2NrOwogQHByb3BlcnR5
IChub25hdG9taWMsIHN0cm9uZykgTlNBcnJheSAqZXh0ZXJuYWxJdGVtUHJvdmlkZXJzOwotQHBy
b3BlcnR5IChub25hdG9taWMpIEJsb2NrUHRyPE5TVUludGVnZXIoTlNVSW50ZWdlciwgaWQpPiBv
dmVycmlkZURyYWdVcGRhdGVCbG9jazsKLUBwcm9wZXJ0eSAobm9uYXRvbWljKSBCbG9ja1B0cjx2
b2lkKEJPT0wsIE5TQXJyYXkgKik+IGRyb3BDb21wbGV0aW9uQmxvY2s7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIFVJRHJvcFByb3Bvc2FsICpsYXN0S25vd25Ecm9wUHJvcG9zYWw7
CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBCT09MKF5zaG93Q3VzdG9tQWN0aW9uU2hl
ZXRCbG9jaykoX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKik7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgY29weSkgTlNBcnJheSAqKF5jb252ZXJ0SXRlbVByb3ZpZGVyc0Jsb2NrKShOU0l0ZW1Qcm92
aWRlciAqLCBOU0FycmF5ICosIE5TRGljdGlvbmFyeSAqKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5KSBOU0FycmF5ICooXm92ZXJyaWRlUGVyZm9ybURyb3BCbG9jaykoaWQgPFVJRHJvcFNl
c3Npb24+KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkKF5kcm9wQ29tcGxldGlv
bkJsb2NrKShCT09MLCBOU0FycmF5ICopOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIFVJ
RHJvcE9wZXJhdGlvbiheb3ZlcnJpZGVEcmFnVXBkYXRlQmxvY2spKFVJRHJvcE9wZXJhdGlvbiwg
aWQgPFVJRHJvcFNlc3Npb24+KTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBO
U0FycmF5ICpzb3VyY2VJdGVtUHJvdmlkZXJzOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBOU0FycmF5ICpvYnNlcnZlZEV2ZW50TmFtZXM7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2lvcy9EcmFnQW5kRHJvcFNpbXVsYXRvcklPUy5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvaW9zL0RyYWdBbmREcm9wU2ltdWxhdG9ySU9TLm1tCmluZGV4IDNkMjNlZmNiMGE4Mzdm
MGY0YWVlNTViM2VlZWYyZGYzODdjMDY2NmMuLjRjYjg1MTgyN2M4OWJmYzZhOGU4ZmFkOGQwZDdk
YjVmMWYwOGU2Y2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL0RyYWdBbmRE
cm9wU2ltdWxhdG9ySU9TLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL0RyYWdBbmRE
cm9wU2ltdWxhdG9ySU9TLm1tCkBAIC0zMTYsNyArMzE2LDEzIEBAIEBpbXBsZW1lbnRhdGlvbiBE
cmFnQW5kRHJvcFNpbXVsYXRvciB7CiAgICAgRHJhZ0FuZERyb3BQaGFzZSBfcGhhc2U7CiAKICAg
ICBCT09MIF9zdXBwcmVzc2VkU2VsZWN0aW9uQ29tbWFuZHNEdXJpbmdEcm9wOwotICAgIFJldGFp
blB0cjxVSURyb3BQcm9wb3NhbD4gX2N1cnJlbnREcm9wUHJvcG9zYWw7CisgICAgUmV0YWluUHRy
PFVJRHJvcFByb3Bvc2FsPiBfbGFzdEtub3duRHJvcFByb3Bvc2FsOworCisgICAgQmxvY2tQdHI8
Qk9PTChfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKT4gX3Nob3dDdXN0b21BY3Rpb25TaGVldEJs
b2NrOworICAgIEJsb2NrUHRyPE5TQXJyYXkgKihOU0l0ZW1Qcm92aWRlciAqLCBOU0FycmF5ICos
IE5TRGljdGlvbmFyeSAqKT4gX2NvbnZlcnRJdGVtUHJvdmlkZXJzQmxvY2s7CisgICAgQmxvY2tQ
dHI8TlNBcnJheSAqKGlkIDxVSURyb3BTZXNzaW9uPik+IF9vdmVycmlkZVBlcmZvcm1Ecm9wQmxv
Y2s7CisgICAgQmxvY2tQdHI8VUlEcm9wT3BlcmF0aW9uKFVJRHJvcE9wZXJhdGlvbiwgaWQpPiBf
b3ZlcnJpZGVEcmFnVXBkYXRlQmxvY2s7CisgICAgQmxvY2tQdHI8dm9pZChCT09MLCBOU0FycmF5
ICopPiBfZHJvcENvbXBsZXRpb25CbG9jazsKIH0KIAogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
V2ViVmlld0ZyYW1lOihDR1JlY3QpZnJhbWUKQEAgLTM2Nyw3ICszNzMsNyBAQCAtICh2b2lkKV9y
ZXNldFNpbXVsYXRlZFN0YXRlCiAgICAgX2ZpbmFsU2VsZWN0aW9uUmVjdHMgPSBAWyBdOwogICAg
IF9kcmFnU2Vzc2lvbiA9IG5pbDsKICAgICBfZHJvcFNlc3Npb24gPSBuaWw7Ci0gICAgX2N1cnJl
bnREcm9wUHJvcG9zYWwgPSBuaWw7CisgICAgX2xhc3RLbm93bkRyb3BQcm9wb3NhbCA9IG5pbDsK
ICAgICBfbGFzdEtub3duRHJhZ0NhcmV0UmVjdCA9IENHUmVjdFplcm87CiAgICAgX3JlbWFpbmlu
Z0FkZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0aW9uc0J5UHJvZ3Jlc3MgPSBuaWw7CiAgICAgX3F1
ZXVlZEFkZGl0aW9uYWxJdGVtUmVxdWVzdExvY2F0aW9ucyA9IGFkb3B0TlMoW1tOU011dGFibGVB
cnJheSBhbGxvY10gaW5pdF0pOwpAQCAtMzgwLDYgKzM4NiwxMSBAQCAtIChOU0FycmF5ICopb2Jz
ZXJ2ZWRFdmVudE5hbWVzCiAgICAgcmV0dXJuIF9vYnNlcnZlZEV2ZW50TmFtZXMuZ2V0KCk7CiB9
CiAKKy0gKFVJRHJvcFByb3Bvc2FsICopbGFzdEtub3duRHJvcFByb3Bvc2FsCit7CisgICAgcmV0
dXJuIF9sYXN0S25vd25Ecm9wUHJvcG9zYWwuZ2V0KCk7Cit9CisKIC0gKHZvaWQpc2ltdWxhdGVB
bGxUb3VjaGVzQ2FuY2VsZWQ6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7CiAgICAg
W05TT2JqZWN0IGNhbmNlbFByZXZpb3VzUGVyZm9ybVJlcXVlc3RzV2l0aFRhcmdldDpzZWxmIHNl
bGVjdG9yOkBzZWxlY3RvcihfYWR2YW5jZVByb2dyZXNzKSBvYmplY3Q6bmlsXTsKQEAgLTQ0OCw3
ICs0NTksNyBAQCAtIChOU0FycmF5ICopZmluYWxTZWxlY3Rpb25SZWN0cwogLSAodm9pZClfY29u
Y2x1ZGVEcm9wQW5kUGVyZm9ybU9wZXJhdGlvbklmTmVjZXNzYXJ5CiB7CiAgICAgX2xhc3RLbm93
bkRyYWdDYXJldFJlY3QgPSBbX3dlYlZpZXcgX2RyYWdDYXJldFJlY3RdOwotICAgIGF1dG8gb3Bl
cmF0aW9uID0gW19jdXJyZW50RHJvcFByb3Bvc2FsIG9wZXJhdGlvbl07CisgICAgYXV0byBvcGVy
YXRpb24gPSBbX2xhc3RLbm93bkRyb3BQcm9wb3NhbCBvcGVyYXRpb25dOwogICAgIGlmIChvcGVy
YXRpb24gIT0gVUlEcm9wT3BlcmF0aW9uQ2FuY2VsICYmIG9wZXJhdGlvbiAhPSBVSURyb3BPcGVy
YXRpb25Gb3JiaWRkZW4pIHsKICAgICAgICAgW1tfd2ViVmlldyBkcm9wSW50ZXJhY3Rpb25EZWxl
Z2F0ZV0gZHJvcEludGVyYWN0aW9uOltfd2ViVmlldyBkcm9wSW50ZXJhY3Rpb25dIHBlcmZvcm1E
cm9wOl9kcm9wU2Vzc2lvbi5nZXQoKV07CiAgICAgICAgIF9waGFzZSA9IERyYWdBbmREcm9wUGhh
c2VQZXJmb3JtaW5nRHJvcDsKQEAgLTU2OSw5ICs1ODAsOSBAQCAtICh2b2lkKV9hZHZhbmNlUHJv
Z3Jlc3MKICAgICAgICAgX3BoYXNlID0gRHJhZ0FuZERyb3BQaGFzZUVudGVyZWQ7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgRHJhZ0FuZERyb3BQaGFzZUVudGVyZWQ6IHsKLSAgICAgICAgX2N1
cnJlbnREcm9wUHJvcG9zYWwgPSBbW193ZWJWaWV3IGRyb3BJbnRlcmFjdGlvbkRlbGVnYXRlXSBk
cm9wSW50ZXJhY3Rpb246W193ZWJWaWV3IGRyb3BJbnRlcmFjdGlvbl0gc2Vzc2lvbkRpZFVwZGF0
ZTpfZHJvcFNlc3Npb24uZ2V0KCldOwotICAgICAgICBpZiAoIVtzZWxmIHNob3VsZEFsbG93TW92
ZU9wZXJhdGlvbl0gJiYgW19jdXJyZW50RHJvcFByb3Bvc2FsIG9wZXJhdGlvbl0gPT0gVUlEcm9w
T3BlcmF0aW9uTW92ZSkKLSAgICAgICAgICAgIF9jdXJyZW50RHJvcFByb3Bvc2FsID0gYWRvcHRO
UyhbW1VJRHJvcFByb3Bvc2FsIGFsbG9jXSBpbml0V2l0aERyb3BPcGVyYXRpb246VUlEcm9wT3Bl
cmF0aW9uQ2FuY2VsXSk7CisgICAgICAgIF9sYXN0S25vd25Ecm9wUHJvcG9zYWwgPSBbW193ZWJW
aWV3IGRyb3BJbnRlcmFjdGlvbkRlbGVnYXRlXSBkcm9wSW50ZXJhY3Rpb246W193ZWJWaWV3IGRy
b3BJbnRlcmFjdGlvbl0gc2Vzc2lvbkRpZFVwZGF0ZTpfZHJvcFNlc3Npb24uZ2V0KCldOworICAg
ICAgICBpZiAoIVtzZWxmIHNob3VsZEFsbG93TW92ZU9wZXJhdGlvbl0gJiYgW19sYXN0S25vd25E
cm9wUHJvcG9zYWwgb3BlcmF0aW9uXSA9PSBVSURyb3BPcGVyYXRpb25Nb3ZlKQorICAgICAgICAg
ICAgX2xhc3RLbm93bkRyb3BQcm9wb3NhbCA9IGFkb3B0TlMoW1tVSURyb3BQcm9wb3NhbCBhbGxv
Y10gaW5pdFdpdGhEcm9wT3BlcmF0aW9uOlVJRHJvcE9wZXJhdGlvbkNhbmNlbF0pOwogICAgICAg
ICBicmVhazsKICAgICB9CiAgICAgZGVmYXVsdDoKQEAgLTY1NCw2ICs2NjUsNTYgQEAgLSAoVGVz
dFdLV2ViVmlldyAqKXdlYlZpZXcKICAgICByZXR1cm4gX3dlYlZpZXcuZ2V0KCk7CiB9CiAKKy0g
KHZvaWQpc2V0U2hvd0N1c3RvbUFjdGlvblNoZWV0QmxvY2s6KEJPT0woXikoX1dLQWN0aXZhdGVk
RWxlbWVudEluZm8gKikpc2hvd0N1c3RvbUFjdGlvblNoZWV0QmxvY2sKK3sKKyAgICBfc2hvd0N1
c3RvbUFjdGlvblNoZWV0QmxvY2sgPSBzaG93Q3VzdG9tQWN0aW9uU2hlZXRCbG9jazsKK30KKwor
LSAoQk9PTCheKShfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKSlzaG93Q3VzdG9tQWN0aW9uU2hl
ZXRCbG9jaworeworICAgIHJldHVybiBfc2hvd0N1c3RvbUFjdGlvblNoZWV0QmxvY2suZ2V0KCk7
Cit9CisKKy0gKHZvaWQpc2V0Q29udmVydEl0ZW1Qcm92aWRlcnNCbG9jazooTlNBcnJheSAqKF4p
KE5TSXRlbVByb3ZpZGVyICosIE5TQXJyYXkgKiwgTlNEaWN0aW9uYXJ5ICopKWNvbnZlcnRJdGVt
UHJvdmlkZXJzQmxvY2sKK3sKKyAgICBfY29udmVydEl0ZW1Qcm92aWRlcnNCbG9jayA9IGNvbnZl
cnRJdGVtUHJvdmlkZXJzQmxvY2s7Cit9CisKKy0gKE5TQXJyYXkgKiheKShOU0l0ZW1Qcm92aWRl
ciAqLCBOU0FycmF5ICosIE5TRGljdGlvbmFyeSAqKSljb252ZXJ0SXRlbVByb3ZpZGVyc0Jsb2Nr
Cit7CisgICAgcmV0dXJuIF9jb252ZXJ0SXRlbVByb3ZpZGVyc0Jsb2NrLmdldCgpOworfQorCist
ICh2b2lkKXNldE92ZXJyaWRlUGVyZm9ybURyb3BCbG9jazooTlNBcnJheSAqKF4pKGlkIDxVSURy
b3BTZXNzaW9uPikpb3ZlcnJpZGVQZXJmb3JtRHJvcEJsb2NrCit7CisgICAgX292ZXJyaWRlUGVy
Zm9ybURyb3BCbG9jayA9IG92ZXJyaWRlUGVyZm9ybURyb3BCbG9jazsKK30KKworLSAoTlNBcnJh
eSAqKF4pKGlkIDxVSURyb3BTZXNzaW9uPikpb3ZlcnJpZGVQZXJmb3JtRHJvcEJsb2NrCit7Cisg
ICAgcmV0dXJuIF9vdmVycmlkZVBlcmZvcm1Ecm9wQmxvY2suZ2V0KCk7Cit9CisKKy0gKHZvaWQp
c2V0T3ZlcnJpZGVEcmFnVXBkYXRlQmxvY2s6KFVJRHJvcE9wZXJhdGlvbiheKShVSURyb3BPcGVy
YXRpb24sIGlkIDxVSURyb3BTZXNzaW9uPikpb3ZlcnJpZGVEcmFnVXBkYXRlQmxvY2sKK3sKKyAg
ICBfb3ZlcnJpZGVEcmFnVXBkYXRlQmxvY2sgPSBvdmVycmlkZURyYWdVcGRhdGVCbG9jazsKK30K
KworLSAoVUlEcm9wT3BlcmF0aW9uKF4pKFVJRHJvcE9wZXJhdGlvbiwgaWQgPFVJRHJvcFNlc3Np
b24+KSlvdmVycmlkZURyYWdVcGRhdGVCbG9jaworeworICAgIHJldHVybiBfb3ZlcnJpZGVEcmFn
VXBkYXRlQmxvY2suZ2V0KCk7Cit9CisKKy0gKHZvaWQpc2V0RHJvcENvbXBsZXRpb25CbG9jazoo
dm9pZCheKShCT09MLCBOU0FycmF5ICopKWRyb3BDb21wbGV0aW9uQmxvY2sKK3sKKyAgICBfZHJv
cENvbXBsZXRpb25CbG9jayA9IGRyb3BDb21wbGV0aW9uQmxvY2s7Cit9CisKKy0gKHZvaWQoXiko
Qk9PTCwgTlNBcnJheSAqKSlkcm9wQ29tcGxldGlvbkJsb2NrCit7CisgICAgcmV0dXJuIF9kcm9w
Q29tcGxldGlvbkJsb2NrLmdldCgpOworfQorCiAjcHJhZ21hIG1hcmsgLSBXS1VJRGVsZWdhdGVQ
cml2YXRlCiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGF0YUludGVy
YWN0aW9uT3BlcmF0aW9uV2FzSGFuZGxlZDooQk9PTCloYW5kbGVkIGZvclNlc3Npb246KGlkKXNl
c3Npb24gaXRlbVByb3ZpZGVyczooTlNBcnJheTxOU0l0ZW1Qcm92aWRlciAqPiAqKWl0ZW1Qcm92
aWRlcnMKQEAgLTY2NSw5ICs3MjYsMTIgQEAgLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBkYXRhSW50ZXJhY3Rpb25PcGVyYXRpb25XYXNIYW5kbGVkOihCT09MKWgKICAgICAg
ICAgc2VsZi5kcm9wQ29tcGxldGlvbkJsb2NrKGhhbmRsZWQsIGl0ZW1Qcm92aWRlcnMpOwogfQog
Ci0tIChOU1VJbnRlZ2VyKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxVcGRhdGVE
YXRhSW50ZXJhY3Rpb25PcGVyYXRpb25Ub09wZXJhdGlvbjooTlNVSW50ZWdlcilvcGVyYXRpb24g
Zm9yU2Vzc2lvbjooaWQpc2Vzc2lvbgorLSAoVUlEcm9wUHJvcG9zYWwgKilfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyB3aWxsVXBkYXRlRHJvcFByb3Bvc2FsVG9Qcm9wb3NhbDooVUlEcm9w
UHJvcG9zYWwgKilwcm9wb3NhbCBmb3JTZXNzaW9uOihpZCA8VUlEcm9wU2Vzc2lvbj4pc2Vzc2lv
bgogewotICAgIHJldHVybiBzZWxmLm92ZXJyaWRlRHJhZ1VwZGF0ZUJsb2NrID8gc2VsZi5vdmVy
cmlkZURyYWdVcGRhdGVCbG9jayhvcGVyYXRpb24sIHNlc3Npb24pIDogb3BlcmF0aW9uOworICAg
IGlmICghc2VsZi5vdmVycmlkZURyYWdVcGRhdGVCbG9jaykKKyAgICAgICAgcmV0dXJuIHByb3Bv
c2FsOworCisgICAgcmV0dXJuIFtbW1VJRHJvcFByb3Bvc2FsIGFsbG9jXSBpbml0V2l0aERyb3BP
cGVyYXRpb246c2VsZi5vdmVycmlkZURyYWdVcGRhdGVCbG9jayhwcm9wb3NhbC5vcGVyYXRpb24s
IHNlc3Npb24pXSBhdXRvcmVsZWFzZV07CiB9CiAKIC0gKE5TQXJyYXkgKilfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBhZGp1c3RlZERhdGFJbnRlcmFjdGlvbkl0ZW1Qcm92aWRlcnNGb3JJ
dGVtUHJvdmlkZXI6KE5TSXRlbVByb3ZpZGVyICopaXRlbVByb3ZpZGVyIHJlcHJlc2VudGluZ09i
amVjdHM6KE5TQXJyYXkgKilyZXByZXNlbnRpbmdPYmplY3RzIGFkZGl0aW9uYWxEYXRhOihOU0Rp
Y3Rpb25hcnkgKilhZGRpdGlvbmFsRGF0YQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>