<?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>100468</bug_id>
          
          <creation_ts>2012-10-25 23:35:36 -0700</creation_ts>
          <short_desc>[EFL][WK2] Move input method code out of EwkViewImpl</short_desc>
          <delta_ts>2012-10-26 03:07:57 -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>WebKit EFL</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>100226</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>g.czajkowski</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>751594</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-25 23:35:36 -0700</bug_when>
    <thetext>The input method code is currently in EwkViewImpl but it would be better to create a new class for it, to avoid cluttering the view code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751605</commentid>
    <comment_count>1</comment_count>
      <attachid>170829</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-25 23:48:33 -0700</bug_when>
    <thetext>Created attachment 170829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751664</commentid>
    <comment_count>2</comment_count>
      <attachid>170829</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-26 01:06:50 -0700</bug_when>
    <thetext>Comment on attachment 170829
Patch

Do you know whether we have code like Qt (and iOS etc) to only pop up vkb as a result of a user action? Would be great to have (with tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751733</commentid>
    <comment_count>3</comment_count>
      <attachid>170829</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-26 02:40:38 -0700</bug_when>
    <thetext>Comment on attachment 170829
Patch

Clearing flags on attachment: 170829

Committed r132594: &lt;http://trac.webkit.org/changeset/132594&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751734</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-26 02:40:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170829</attachid>
            <date>2012-10-25 23:48:33 -0700</date>
            <delta_ts>2012-10-26 02:40:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>100468_input_method_cpp.patch</filename>
            <type>text/plain</type>
            <size>19804</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiZWMwNmE4Li44YzNiZWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTItMTAtMjUgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIE1vdmUgaW5wdXQgbWV0aG9kIGNvZGUgb3V0IG9m
IEV3a1ZpZXdJbXBsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDA0NjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBNb3ZlIGlucHV0IG1ldGhvZCBjb2RlIG91dCBvZiBFd2tWaWV3SW1wbCBhbmQgaW50bwor
ICAgICAgICBhIG5ldyBJbnB1dE1ldGhvZENvbnRleHRFZmwgY2xhc3MgdG8gYXZvaWQgY2x1dHRl
cmluZworICAgICAgICB0aGUgdmlldyBjb2RlLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21h
a2U6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuY3BwOgorICAgICAg
ICAoRXdrVmlld0ltcGw6OkV3a1ZpZXdJbXBsKToKKyAgICAgICAgKEV3a1ZpZXdJbXBsOjppbnB1
dE1ldGhvZENvbnRleHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBs
Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoRXdrVmlld0ltcGwpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmlld19zbWFy
dF9tb3VzZV91cCk6CisgICAgICAgIChfZXdrX3ZpZXdfc21hcnRfa2V5X2Rvd24pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9lZmwvSW5wdXRNZXRob2RDb250ZXh0RWZsLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpJbnB1dE1ldGhvZENvbnRleHRFZmw6Oklu
cHV0TWV0aG9kQ29udGV4dEVmbCk6CisgICAgICAgIChXZWJLaXQ6OklucHV0TWV0aG9kQ29udGV4
dEVmbDo6fklucHV0TWV0aG9kQ29udGV4dEVmbCk6CisgICAgICAgIChXZWJLaXQ6OklucHV0TWV0
aG9kQ29udGV4dEVmbDo6b25JTUZJbnB1dFNlcXVlbmNlQ29tcGxldGUpOgorICAgICAgICAoV2Vi
S2l0OjpJbnB1dE1ldGhvZENvbnRleHRFZmw6Om9uSU1GUHJlZWRpdFNlcXVlbmNlQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OklucHV0TWV0aG9kQ29udGV4dEVmbDo6Y3JlYXRlSU1GQ29udGV4
dCk6CisgICAgICAgIChXZWJLaXQ6OklucHV0TWV0aG9kQ29udGV4dEVmbDo6aGFuZGxlTW91c2VV
cEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6SW5wdXRNZXRob2RDb250ZXh0RWZsOjpoYW5kbGVL
ZXlEb3duRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpJbnB1dE1ldGhvZENvbnRleHRFZmw6OnVw
ZGF0ZVRleHRJbnB1dFN0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZWZsL0lucHV0TWV0aG9k
Q29udGV4dEVmbC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChJbnB1dE1l
dGhvZENvbnRleHRFZmwpOgorICAgICAgICAoV2ViS2l0OjpJbnB1dE1ldGhvZENvbnRleHRFZmw6
OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp1cGRhdGVUZXh0SW5wdXRTdGF0ZSk6CisK
IDIwMTItMTAtMjUgIEJ5dW5nd29vIExlZSAgPGJ3ODAubGVlQHNhbXN1bmcuY29tPgogCiAgICAg
ICAgIFtXSzJdIFVzZSBwZXIgZGVzdGluYXRpb24gSUQgbWVzc2FnZSByZWNlaXZlcnMgZm9yIERv
d25sb2FkUHJveHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFr
ZSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDgyYTE0YTEuLjllYzQw
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC03Miw2ICs3Miw3IEBAIExJU1QoQVBQ
RU5EIFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9lZmwvRG93bmxvYWRNYW5hZ2VyRWZs
LmNwcAogICAgIFVJUHJvY2Vzcy9lZmwvRmluZENsaWVudEVmbC5jcHAKICAgICBVSVByb2Nlc3Mv
ZWZsL0Zvcm1DbGllbnRFZmwuY3BwCisgICAgVUlQcm9jZXNzL2VmbC9JbnB1dE1ldGhvZENvbnRl
eHRFZmwuY3BwCiAgICAgVUlQcm9jZXNzL2VmbC9OZXR3b3JrSW5mb1Byb3ZpZGVyLmNwcAogICAg
IFVJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudEltcGwuY3BwCiAgICAgVUlQcm9jZXNzL2VmbC9QYWdl
TG9hZENsaWVudEVmbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL0V3a1ZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L0V3a1ZpZXdJbXBsLmNwcAppbmRleCAwNzI3YzgxLi4wNGEwOGU2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3a1ZpZXdJbXBsLmNwcApAQCAtMjQsNiArMjQs
NyBAQAogI2luY2x1ZGUgIkVmbFNjcmVlblV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkZpbmRDbGll
bnRFZmwuaCIKICNpbmNsdWRlICJGb3JtQ2xpZW50RWZsLmgiCisjaW5jbHVkZSAiSW5wdXRNZXRo
b2RDb250ZXh0RWZsLmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudEltcGwuaCIKICNpbmNsdWRlICJQ
YWdlTG9hZENsaWVudEVmbC5oIgogI2luY2x1ZGUgIlBhZ2VQb2xpY3lDbGllbnRFZmwuaCIKQEAg
LTQ1LDggKzQ2LDYgQEAKICNpbmNsdWRlICJld2tfdmlldy5oIgogI2luY2x1ZGUgImV3a192aWV3
X3ByaXZhdGUuaCIKICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+Ci0jaW5jbHVkZSA8RWNvcmVfSU1G
Lmg+Ci0jaW5jbHVkZSA8RWNvcmVfSU1GX0V2YXMuaD4KICNpbmNsdWRlIDxFZGplLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9DdXJzb3IuaD4KIApAQCAtODAsNTYgKzc5LDYgQEAgY29uc3QgRXZhc19P
YmplY3QqIEV3a1ZpZXdJbXBsOjp2aWV3RnJvbVBhZ2VWaWV3TWFwKGNvbnN0IFdLUGFnZVJlZiBw
YWdlKQogICAgIHJldHVybiBwYWdlVmlld01hcC5nZXQocGFnZSk7CiB9CiAKLXZvaWQgRXdrVmll
d0ltcGw6Om9uSU1GSW5wdXRTZXF1ZW5jZUNvbXBsZXRlKHZvaWQqIGRhdGEsIEVjb3JlX0lNRl9D
b250ZXh0Kiwgdm9pZCogZXZlbnRJbmZvKQotewotICAgIEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNt
YXJ0RGF0YSA9IHN0YXRpY19jYXN0PEV3a19WaWV3X1NtYXJ0X0RhdGEqPihkYXRhKTsKLSAgICBF
V0tfVklFV19JTVBMX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCB2aWV3SW1wbCk7Ci0gICAgaWYg
KCFldmVudEluZm8gfHwgIXZpZXdJbXBsLT5tX2lucHV0TWV0aG9kQ29udGV4dEZvY3VzZWQpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIHZpZXdJbXBsLT5wYWdlUHJveHktPmNvbmZpcm1Db21wb3Np
dGlvbihTdHJpbmc6OmZyb21VVEY4KHN0YXRpY19jYXN0PGNoYXIqPihldmVudEluZm8pKSk7Ci19
Ci0KLXZvaWQgRXdrVmlld0ltcGw6Om9uSU1GUHJlZWRpdFNlcXVlbmNlQ2hhbmdlZCh2b2lkKiBk
YXRhLCBFY29yZV9JTUZfQ29udGV4dCogY29udGV4dCwgdm9pZCopCi17Ci0gICAgRXdrX1ZpZXdf
U21hcnRfRGF0YSogc21hcnREYXRhID0gc3RhdGljX2Nhc3Q8RXdrX1ZpZXdfU21hcnRfRGF0YSo+
KGRhdGEpOwotICAgIEVXS19WSUVXX0lNUExfR0VUX09SX1JFVFVSTihzbWFydERhdGEsIHZpZXdJ
bXBsKTsKLQotICAgIGlmICghdmlld0ltcGwtPnBhZ2VQcm94eS0+Zm9jdXNlZEZyYW1lKCkgfHwg
IXZpZXdJbXBsLT5tX2lucHV0TWV0aG9kQ29udGV4dEZvY3VzZWQpCi0gICAgICAgIHJldHVybjsK
LQotICAgIGNoYXIqIGJ1ZmZlciA9IDA7Ci0gICAgZWNvcmVfaW1mX2NvbnRleHRfcHJlZWRpdF9z
dHJpbmdfZ2V0KGNvbnRleHQsICZidWZmZXIsIDApOwotICAgIGlmICghYnVmZmVyKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBTdHJpbmcgcHJlZWRpdFN0cmluZyA9IFN0cmluZzo6ZnJvbVVURjgo
YnVmZmVyKTsKLSAgICBmcmVlKGJ1ZmZlcik7Ci0gICAgVmVjdG9yPENvbXBvc2l0aW9uVW5kZXJs
aW5lPiB1bmRlcmxpbmVzOwotICAgIHVuZGVybGluZXMuYXBwZW5kKENvbXBvc2l0aW9uVW5kZXJs
aW5lKDAsIHByZWVkaXRTdHJpbmcubGVuZ3RoKCksIENvbG9yKDAsIDAsIDApLCBmYWxzZSkpOwot
ICAgIHZpZXdJbXBsLT5wYWdlUHJveHktPnNldENvbXBvc2l0aW9uKHByZWVkaXRTdHJpbmcsIHVu
ZGVybGluZXMsIDApOwotfQotCi1QYXNzT3duUHRyPEVjb3JlX0lNRl9Db250ZXh0PiBFd2tWaWV3
SW1wbDo6Y3JlYXRlSU1GQ29udGV4dChFd2tfVmlld19TbWFydF9EYXRhKiBzZCkKLXsKLSAgICBj
b25zdCBjaGFyKiBkZWZhdWx0Q29udGV4dElEID0gZWNvcmVfaW1mX2NvbnRleHRfZGVmYXVsdF9p
ZF9nZXQoKTsKLSAgICBpZiAoIWRlZmF1bHRDb250ZXh0SUQpCi0gICAgICAgIHJldHVybiBudWxs
cHRyOwotCi0gICAgT3duUHRyPEVjb3JlX0lNRl9Db250ZXh0PiBpbWZDb250ZXh0ID0gYWRvcHRQ
dHIoZWNvcmVfaW1mX2NvbnRleHRfYWRkKGRlZmF1bHRDb250ZXh0SUQpKTsKLSAgICBpZiAoIWlt
ZkNvbnRleHQpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgZWNvcmVfaW1mX2NvbnRl
eHRfZXZlbnRfY2FsbGJhY2tfYWRkKGltZkNvbnRleHQuZ2V0KCksIEVDT1JFX0lNRl9DQUxMQkFD
S19QUkVFRElUX0NIQU5HRUQsIG9uSU1GUHJlZWRpdFNlcXVlbmNlQ2hhbmdlZCwgc2QpOwotICAg
IGVjb3JlX2ltZl9jb250ZXh0X2V2ZW50X2NhbGxiYWNrX2FkZChpbWZDb250ZXh0LmdldCgpLCBF
Q09SRV9JTUZfQ0FMTEJBQ0tfQ09NTUlULCBvbklNRklucHV0U2VxdWVuY2VDb21wbGV0ZSwgc2Qp
OwotCi0gICAgRWNvcmVfRXZhcyogZWNvcmVFdmFzID0gZWNvcmVfZXZhc19lY29yZV9ldmFzX2dl
dChzZC0+YmFzZS5ldmFzKTsKLSAgICBlY29yZV9pbWZfY29udGV4dF9jbGllbnRfd2luZG93X3Nl
dChpbWZDb250ZXh0LmdldCgpLCByZWludGVycHJldF9jYXN0PHZvaWQqPihlY29yZV9ldmFzX3dp
bmRvd19nZXQoZWNvcmVFdmFzKSkpOwotICAgIGVjb3JlX2ltZl9jb250ZXh0X2NsaWVudF9jYW52
YXNfc2V0KGltZkNvbnRleHQuZ2V0KCksIHNkLT5iYXNlLmV2YXMpOwotCi0gICAgcmV0dXJuIGlt
ZkNvbnRleHQucmVsZWFzZSgpOwotfQotCiBFd2tWaWV3SW1wbDo6RXdrVmlld0ltcGwoRXZhc19P
YmplY3QqIHZpZXcpCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIDogZXZh
c0dsKDApCkBAIC0xNDAsMTMgKzg5LDEyIEBAIEV3a1ZpZXdJbXBsOjpFd2tWaWV3SW1wbChFdmFz
X09iamVjdCogdmlldykKICAgICA6IG1fdmlldyh2aWV3KQogI2VuZGlmCiAgICAgLCBtX3NldHRp
bmdzKEV3a19TZXR0aW5nczo6Y3JlYXRlKHRoaXMpKQotICAgICwgbV9pbnB1dE1ldGhvZENvbnRl
eHQoY3JlYXRlSU1GQ29udGV4dChzbWFydERhdGEoKSkpCi0gICAgLCBtX2lucHV0TWV0aG9kQ29u
dGV4dEZvY3VzZWQoZmFsc2UpCiAgICAgLCBtX21vdXNlRXZlbnRzRW5hYmxlZChmYWxzZSkKICNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgICwgbV90b3VjaEV2ZW50c0VuYWJsZWQoZmFsc2Up
CiAjZW5kaWYKICAgICAsIG1fZGlzcGxheVRpbWVyKHRoaXMsICZFd2tWaWV3SW1wbDo6ZGlzcGxh
eVRpbWVyRmlyZWQpCisgICAgLCBtX2lucHV0TWV0aG9kQ29udGV4dChJbnB1dE1ldGhvZENvbnRl
eHRFZmw6OmNyZWF0ZSh0aGlzLCBzbWFydERhdGEoKS0+YmFzZS5ldmFzKSkKIHsKICAgICBBU1NF
UlQodmlldyk7CiAKQEAgLTU5Myw3ICs1NDEsMTEgQEAgY29uc3QgY2hhciogRXdrVmlld0ltcGw6
OnRpdGxlKCkgY29uc3QKICAgICByZXR1cm4gbV90aXRsZTsKIH0KIAotRWNvcmVfSU1GX0NvbnRl
eHQqIEV3a1ZpZXdJbXBsOjppbnB1dE1ldGhvZENvbnRleHQoKQorLyoqCisgKiBAaW50ZXJuYWwK
KyAqIFRoaXMgZnVuY3Rpb24gbWF5IHJldHVybiBAYyBOVUxMLgorICovCitJbnB1dE1ldGhvZENv
bnRleHRFZmwqIEV3a1ZpZXdJbXBsOjppbnB1dE1ldGhvZENvbnRleHQoKQogewogICAgIHJldHVy
biBtX2lucHV0TWV0aG9kQ29udGV4dC5nZXQoKTsKIH0KQEAgLTk2OSwzNyArOTIxLDYgQEAgdW5z
aWduZWQgbG9uZyBsb25nIEV3a1ZpZXdJbXBsOjppbmZvcm1EYXRhYmFzZVF1b3RhUmVhY2hlZChj
b25zdCBTdHJpbmcmIGRhdGFiYXMKIAogLyoqCiAgKiBAaW50ZXJuYWwKLSAqIFRoZSB2aWV3IHdh
cyByZXF1ZXN0ZWQgdG8gdXBkYXRlIHRleHQgaW5wdXQgc3RhdGUKLSAqLwotdm9pZCBFd2tWaWV3
SW1wbDo6dXBkYXRlVGV4dElucHV0U3RhdGUoKQotewotICAgIGlmICghbV9pbnB1dE1ldGhvZENv
bnRleHQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGNvbnN0IEVkaXRvclN0YXRlJiBlZGl0b3Ig
PSBwYWdlUHJveHktPmVkaXRvclN0YXRlKCk7Ci0KLSAgICBpZiAoZWRpdG9yLmlzQ29udGVudEVk
aXRhYmxlKSB7Ci0gICAgICAgIGlmIChtX2lucHV0TWV0aG9kQ29udGV4dEZvY3VzZWQpCi0gICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZWNvcmVfaW1mX2NvbnRleHRfcmVzZXQobV9pbnB1
dE1ldGhvZENvbnRleHQuZ2V0KCkpOwotICAgICAgICBlY29yZV9pbWZfY29udGV4dF9mb2N1c19p
bihtX2lucHV0TWV0aG9kQ29udGV4dC5nZXQoKSk7Ci0gICAgICAgIG1faW5wdXRNZXRob2RDb250
ZXh0Rm9jdXNlZCA9IHRydWU7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKCFtX2lucHV0TWV0
aG9kQ29udGV4dEZvY3VzZWQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKGVk
aXRvci5oYXNDb21wb3NpdGlvbikKLSAgICAgICAgICAgIHBhZ2VQcm94eS0+Y2FuY2VsQ29tcG9z
aXRpb24oKTsKLQotICAgICAgICBtX2lucHV0TWV0aG9kQ29udGV4dEZvY3VzZWQgPSBmYWxzZTsK
LSAgICAgICAgZWNvcmVfaW1mX2NvbnRleHRfcmVzZXQobV9pbnB1dE1ldGhvZENvbnRleHQuZ2V0
KCkpOwotICAgICAgICBlY29yZV9pbWZfY29udGV4dF9mb2N1c19vdXQobV9pbnB1dE1ldGhvZENv
bnRleHQuZ2V0KCkpOwotICAgIH0KLX0KLQotLyoqCi0gKiBAaW50ZXJuYWwKICAqIFRoZSB1cmwg
b2YgdmlldyB3YXMgY2hhbmdlZCBieSB0aGUgZnJhbWUgbG9hZGVyLgogICoKICAqIEVtaXRzIHNp
Z25hbDogInVybCxjaGFuZ2VkIiB3aXRoIHBvaW50ZXIgdG8gbmV3IHVybCBzdHJpbmcuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9Fd2tWaWV3SW1wbC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRXdrVmlld0ltcGwuaAppbmRleCA2MWEz
YmRhLi5kNDAzMjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9Fd2tWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0V3
a1ZpZXdJbXBsLmgKQEAgLTI0LDggKzI0LDYgQEAKICNpbmNsdWRlICJSZWZQdHJFZmwuaCIKICNp
bmNsdWRlICJXS0VpbmFTaGFyZWRTdHJpbmcuaCIKICNpbmNsdWRlICJXS1JldGFpblB0ci5oIgot
I2luY2x1ZGUgPEVjb3JlX0lNRi5oPgotI2luY2x1ZGUgPEVjb3JlX0lNRl9FdmFzLmg+CiAjaW5j
bHVkZSA8RXZhcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dERpcmVjdGlvbi5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvVGltZXIuaD4KQEAgLTYzLDYgKzYxLDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogY2xhc3MgRmluZENsaWVudEVmbDsKIGNsYXNzIEZvcm1DbGllbnRFZmw7CitjbGFzcyBJbnB1
dE1ldGhvZENvbnRleHRFZmw7CiBjbGFzcyBQYWdlQ2xpZW50SW1wbDsKIGNsYXNzIFBhZ2VMb2Fk
Q2xpZW50RWZsOwogY2xhc3MgUGFnZVBvbGljeUNsaWVudEVmbDsKQEAgLTExOCw3ICsxMTcsNyBA
QCBwdWJsaWM6CiAgICAgY29uc3QgY2hhciogdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0K
ICAgICBjb25zdCBjaGFyKiBmYXZpY29uVVJMKCkgY29uc3QgeyByZXR1cm4gbV9mYXZpY29uVVJM
OyB9CiAgICAgY29uc3QgY2hhciogdGl0bGUoKSBjb25zdDsKLSAgICBFY29yZV9JTUZfQ29udGV4
dCogaW5wdXRNZXRob2RDb250ZXh0KCk7CisgICAgV2ViS2l0OjpJbnB1dE1ldGhvZENvbnRleHRF
ZmwqIGlucHV0TWV0aG9kQ29udGV4dCgpOwogCiAgICAgY29uc3QgY2hhciogdGhlbWVQYXRoKCkg
Y29uc3Q7CiAgICAgdm9pZCBzZXRUaGVtZVBhdGgoY29uc3QgY2hhciogdGhlbWUpOwpAQCAtMjQx
LDEwICsyNDAsNiBAQCBwcml2YXRlOgogICAgIGlubGluZSBFd2tfVmlld19TbWFydF9EYXRhKiBz
bWFydERhdGEoKTsKICAgICB2b2lkIGRpc3BsYXlUaW1lckZpcmVkKFdlYkNvcmU6OlRpbWVyPEV3
a1ZpZXdJbXBsPiopOwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8RWNvcmVfSU1GX0NvbnRleHQ+
IGNyZWF0ZUlNRkNvbnRleHQoRXdrX1ZpZXdfU21hcnRfRGF0YSopOwotICAgIHN0YXRpYyB2b2lk
IG9uSU1GSW5wdXRTZXF1ZW5jZUNvbXBsZXRlKHZvaWQqIGRhdGEsIEVjb3JlX0lNRl9Db250ZXh0
Kiwgdm9pZCogZXZlbnRJbmZvKTsKLSAgICBzdGF0aWMgdm9pZCBvbklNRlByZWVkaXRTZXF1ZW5j
ZUNoYW5nZWQodm9pZCogZGF0YSwgRWNvcmVfSU1GX0NvbnRleHQqLCB2b2lkKiBldmVudEluZm8p
OwotCiAgICAgc3RhdGljIHZvaWQgb25Nb3VzZURvd24odm9pZCogZGF0YSwgRXZhcyosIEV2YXNf
T2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBvbk1vdXNlVXAodm9p
ZCogZGF0YSwgRXZhcyosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKTsKICAgICBzdGF0
aWMgdm9pZCBvbk1vdXNlTW92ZSh2b2lkKiBkYXRhLCBFdmFzKiwgRXZhc19PYmplY3QqLCB2b2lk
KiBldmVudEluZm8pOwpAQCAtMjU3LDggKzI1Miw2IEBAIHByaXZhdGU6CiAKICAgICBFdmFzX09i
amVjdCogbV92aWV3OwogICAgIE93blB0cjxFd2tfU2V0dGluZ3M+IG1fc2V0dGluZ3M7Ci0gICAg
T3duUHRyPEVjb3JlX0lNRl9Db250ZXh0PiBtX2lucHV0TWV0aG9kQ29udGV4dDsKLSAgICBib29s
IG1faW5wdXRNZXRob2RDb250ZXh0Rm9jdXNlZDsKICAgICBSZWZQdHI8RXZhc19PYmplY3Q+IG1f
Y3Vyc29yT2JqZWN0OwogICAgIFdLRWluYVNoYXJlZFN0cmluZyBtX2N1cnNvckdyb3VwOwogICAg
IFdLRWluYVNoYXJlZFN0cmluZyBtX2Zhdmljb25VUkw7CkBAIC0yNzQsNiArMjY3LDcgQEAgcHJp
dmF0ZToKICAgICBXZWJDb3JlOjpUaW1lcjxFd2tWaWV3SW1wbD4gbV9kaXNwbGF5VGltZXI7CiAg
ICAgV1RGOjpWZWN0b3IgPFdlYkNvcmU6OkludFJlY3Q+IG1fZGlydHlSZWN0czsKICAgICBPd25Q
dHI8RXdrX1BvcHVwX01lbnU+IG1fcG9wdXBNZW51OworICAgIE93blB0cjxXZWJLaXQ6OklucHV0
TWV0aG9kQ29udGV4dEVmbD4gbV9pbnB1dE1ldGhvZENvbnRleHQ7CiAKICAgICB0eXBlZGVmIEhh
c2hNYXA8V0tQYWdlUmVmLCBjb25zdCBFdmFzX09iamVjdCo+IFBhZ2VWaWV3TWFwOwogICAgIHN0
YXRpYyBQYWdlVmlld01hcCBwYWdlVmlld01hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3LmNwcAppbmRleCBhZTVjMTQ3Li41NTMwYWNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCkBAIC0yNCw2ICsyNCw3
IEBACiAjaW5jbHVkZSAiRXdrVmlld0ltcGwuaCIKICNpbmNsdWRlICJGaW5kQ2xpZW50RWZsLmgi
CiAjaW5jbHVkZSAiRm9ybUNsaWVudEVmbC5oIgorI2luY2x1ZGUgIklucHV0TWV0aG9kQ29udGV4
dEVmbC5oIgogI2luY2x1ZGUgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJO
YXRpdmVXZWJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgpA
QCAtMjEzLDkgKzIxNCw5IEBAIHN0YXRpYyBFaW5hX0Jvb2wgX2V3a192aWV3X3NtYXJ0X21vdXNl
X3VwKEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSwgY29uc3QKICAgICBpbXBsLT5wYWdl
UHJveHktPmhhbmRsZU1vdXNlRXZlbnQoTmF0aXZlV2ViTW91c2VFdmVudCh1cEV2ZW50LCAmcG9z
aXRpb24pKTsKICNlbmRpZgogCi0gICAgRWNvcmVfSU1GX0NvbnRleHQqIGlucHV0TWV0aG9kQ29u
dGV4dCA9IGltcGwtPmlucHV0TWV0aG9kQ29udGV4dCgpOworICAgIElucHV0TWV0aG9kQ29udGV4
dEVmbCogaW5wdXRNZXRob2RDb250ZXh0ID0gaW1wbC0+aW5wdXRNZXRob2RDb250ZXh0KCk7CiAg
ICAgaWYgKGlucHV0TWV0aG9kQ29udGV4dCkKLSAgICAgICAgZWNvcmVfaW1mX2NvbnRleHRfcmVz
ZXQoaW5wdXRNZXRob2RDb250ZXh0KTsKKyAgICAgICAgaW5wdXRNZXRob2RDb250ZXh0LT5oYW5k
bGVNb3VzZVVwRXZlbnQodXBFdmVudCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTI0MCwx
MyArMjQxLDkgQEAgc3RhdGljIEVpbmFfQm9vbCBfZXdrX3ZpZXdfc21hcnRfa2V5X2Rvd24oRXdr
X1ZpZXdfU21hcnRfRGF0YSogc21hcnREYXRhLCBjb25zdAogICAgIEVXS19WSUVXX0lNUExfR0VU
X09SX1JFVFVSTihzbWFydERhdGEsIGltcGwsIGZhbHNlKTsKIAogICAgIGJvb2wgaXNGaWx0ZXJl
ZCA9IGZhbHNlOwotICAgIEVjb3JlX0lNRl9Db250ZXh0KiBpbnB1dE1ldGhvZENvbnRleHQgPSBp
bXBsLT5pbnB1dE1ldGhvZENvbnRleHQoKTsKLSAgICBpZiAoaW5wdXRNZXRob2RDb250ZXh0KSB7
Ci0gICAgICAgIEVjb3JlX0lNRl9FdmVudCBpbnB1dE1ldGhvZEV2ZW50OwotICAgICAgICBlY29y
ZV9pbWZfZXZhc19ldmVudF9rZXlfZG93bl93cmFwKGNvbnN0X2Nhc3Q8RXZhc19FdmVudF9LZXlf
RG93bio+KGRvd25FdmVudCksICZpbnB1dE1ldGhvZEV2ZW50LmtleV9kb3duKTsKLQotICAgICAg
ICBpc0ZpbHRlcmVkID0gZWNvcmVfaW1mX2NvbnRleHRfZmlsdGVyX2V2ZW50KGlucHV0TWV0aG9k
Q29udGV4dCwgRUNPUkVfSU1GX0VWRU5UX0tFWV9ET1dOLCAmaW5wdXRNZXRob2RFdmVudCk7Ci0g
ICAgfQorICAgIElucHV0TWV0aG9kQ29udGV4dEVmbCogaW5wdXRNZXRob2RDb250ZXh0ID0gaW1w
bC0+aW5wdXRNZXRob2RDb250ZXh0KCk7CisgICAgaWYgKGlucHV0TWV0aG9kQ29udGV4dCkKKyAg
ICAgICAgaW5wdXRNZXRob2RDb250ZXh0LT5oYW5kbGVLZXlEb3duRXZlbnQoZG93bkV2ZW50LCAm
aXNGaWx0ZXJlZCk7CiAKICAgICBpbXBsLT5wYWdlUHJveHktPmhhbmRsZUtleWJvYXJkRXZlbnQo
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudChkb3duRXZlbnQsIGlzRmlsdGVyZWQpKTsKICAgICByZXR1
cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvSW5wdXRN
ZXRob2RDb250ZXh0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvSW5wdXRN
ZXRob2RDb250ZXh0RWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x
NzFkMzYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9J
bnB1dE1ldGhvZENvbnRleHRFZmwuY3BwCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICAgQ29weXJp
Z2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAgIENvcHlyaWdodCAoQykgMjAxMiBJ
bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKworICAgIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgICBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YworICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlcgorICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICAgIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiSW5wdXRNZXRob2RDb250ZXh0RWZsLmgiCisKKyNpbmNsdWRlICJF
d2tWaWV3SW1wbC5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgPEVjb3Jl
X0V2YXMuaD4KKyNpbmNsdWRlIDxFY29yZV9JTUZfRXZhcy5oPgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0lucHV0TWV0aG9kQ29udGV4dEVmbDo6
SW5wdXRNZXRob2RDb250ZXh0RWZsKEV3a1ZpZXdJbXBsKiB2aWV3SW1wbCwgUGFzc093blB0cjxF
Y29yZV9JTUZfQ29udGV4dD4gY29udGV4dCkKKyAgICA6IG1fdmlld0ltcGwodmlld0ltcGwpCisg
ICAgLCBtX2NvbnRleHQoY29udGV4dCkKKyAgICAsIG1fZm9jdXNlZChmYWxzZSkKK3sKKyAgICBB
U1NFUlQoY29udGV4dCk7CisgICAgZWNvcmVfaW1mX2NvbnRleHRfZXZlbnRfY2FsbGJhY2tfYWRk
KG1fY29udGV4dC5nZXQoKSwgRUNPUkVfSU1GX0NBTExCQUNLX1BSRUVESVRfQ0hBTkdFRCwgb25J
TUZQcmVlZGl0U2VxdWVuY2VDaGFuZ2VkLCB0aGlzKTsKKyAgICBlY29yZV9pbWZfY29udGV4dF9l
dmVudF9jYWxsYmFja19hZGQobV9jb250ZXh0LmdldCgpLCBFQ09SRV9JTUZfQ0FMTEJBQ0tfQ09N
TUlULCBvbklNRklucHV0U2VxdWVuY2VDb21wbGV0ZSwgdGhpcyk7Cit9CisKK0lucHV0TWV0aG9k
Q29udGV4dEVmbDo6fklucHV0TWV0aG9kQ29udGV4dEVmbCgpCit7Cit9CisKK3ZvaWQgSW5wdXRN
ZXRob2RDb250ZXh0RWZsOjpvbklNRklucHV0U2VxdWVuY2VDb21wbGV0ZSh2b2lkKiBkYXRhLCBF
Y29yZV9JTUZfQ29udGV4dCosIHZvaWQqIGV2ZW50SW5mbykKK3sKKyAgICBJbnB1dE1ldGhvZENv
bnRleHRFZmwqIGlucHV0TWV0aG9kQ29udGV4dCA9IHN0YXRpY19jYXN0PElucHV0TWV0aG9kQ29u
dGV4dEVmbCo+KGRhdGEpOworICAgIGlmICghZXZlbnRJbmZvIHx8ICFpbnB1dE1ldGhvZENvbnRl
eHQtPm1fZm9jdXNlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW5wdXRNZXRob2RDb250ZXh0
LT5tX3ZpZXdJbXBsLT5wYWdlKCktPmNvbmZpcm1Db21wb3NpdGlvbihTdHJpbmc6OmZyb21VVEY4
KHN0YXRpY19jYXN0PGNoYXIqPihldmVudEluZm8pKSk7Cit9CisKK3ZvaWQgSW5wdXRNZXRob2RD
b250ZXh0RWZsOjpvbklNRlByZWVkaXRTZXF1ZW5jZUNoYW5nZWQodm9pZCogZGF0YSwgRWNvcmVf
SU1GX0NvbnRleHQqIGNvbnRleHQsIHZvaWQqKQoreworICAgIElucHV0TWV0aG9kQ29udGV4dEVm
bCogaW5wdXRNZXRob2RDb250ZXh0ID0gc3RhdGljX2Nhc3Q8SW5wdXRNZXRob2RDb250ZXh0RWZs
Kj4oZGF0YSk7CisKKyAgICBpZiAoIWlucHV0TWV0aG9kQ29udGV4dC0+bV92aWV3SW1wbC0+cGFn
ZSgpLT5mb2N1c2VkRnJhbWUoKSB8fCAhaW5wdXRNZXRob2RDb250ZXh0LT5tX2ZvY3VzZWQpCisg
ICAgICAgIHJldHVybjsKKworICAgIGNoYXIqIGJ1ZmZlciA9IDA7CisgICAgZWNvcmVfaW1mX2Nv
bnRleHRfcHJlZWRpdF9zdHJpbmdfZ2V0KGNvbnRleHQsICZidWZmZXIsIDApOworICAgIGlmICgh
YnVmZmVyKQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgcHJlZWRpdFN0cmluZyA9IFN0
cmluZzo6ZnJvbVVURjgoYnVmZmVyKTsKKyAgICBmcmVlKGJ1ZmZlcik7CisgICAgVmVjdG9yPENv
bXBvc2l0aW9uVW5kZXJsaW5lPiB1bmRlcmxpbmVzOworICAgIHVuZGVybGluZXMuYXBwZW5kKENv
bXBvc2l0aW9uVW5kZXJsaW5lKDAsIHByZWVkaXRTdHJpbmcubGVuZ3RoKCksIENvbG9yKDAsIDAs
IDApLCBmYWxzZSkpOworICAgIGlucHV0TWV0aG9kQ29udGV4dC0+bV92aWV3SW1wbC0+cGFnZSgp
LT5zZXRDb21wb3NpdGlvbihwcmVlZGl0U3RyaW5nLCB1bmRlcmxpbmVzLCAwKTsKK30KKworUGFz
c093blB0cjxFY29yZV9JTUZfQ29udGV4dD4gSW5wdXRNZXRob2RDb250ZXh0RWZsOjpjcmVhdGVJ
TUZDb250ZXh0KEV2YXMqIGNhbnZhcykKK3sKKyAgICBjb25zdCBjaGFyKiBkZWZhdWx0Q29udGV4
dElEID0gZWNvcmVfaW1mX2NvbnRleHRfZGVmYXVsdF9pZF9nZXQoKTsKKyAgICBpZiAoIWRlZmF1
bHRDb250ZXh0SUQpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgT3duUHRyPEVjb3Jl
X0lNRl9Db250ZXh0PiBpbWZDb250ZXh0ID0gYWRvcHRQdHIoZWNvcmVfaW1mX2NvbnRleHRfYWRk
KGRlZmF1bHRDb250ZXh0SUQpKTsKKyAgICBpZiAoIWltZkNvbnRleHQpCisgICAgICAgIHJldHVy
biBudWxscHRyOworCisgICAgRWNvcmVfRXZhcyogZWNvcmVFdmFzID0gZWNvcmVfZXZhc19lY29y
ZV9ldmFzX2dldChjYW52YXMpOworICAgIGVjb3JlX2ltZl9jb250ZXh0X2NsaWVudF93aW5kb3df
c2V0KGltZkNvbnRleHQuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGVjb3JlX2V2YXNf
d2luZG93X2dldChlY29yZUV2YXMpKSk7CisgICAgZWNvcmVfaW1mX2NvbnRleHRfY2xpZW50X2Nh
bnZhc19zZXQoaW1mQ29udGV4dC5nZXQoKSwgY2FudmFzKTsKKworICAgIHJldHVybiBpbWZDb250
ZXh0LnJlbGVhc2UoKTsKK30KKwordm9pZCBJbnB1dE1ldGhvZENvbnRleHRFZmw6OmhhbmRsZU1v
dXNlVXBFdmVudChjb25zdCBFdmFzX0V2ZW50X01vdXNlX1VwKikKK3sKKyAgICBlY29yZV9pbWZf
Y29udGV4dF9yZXNldChtX2NvbnRleHQuZ2V0KCkpOworfQorCit2b2lkIElucHV0TWV0aG9kQ29u
dGV4dEVmbDo6aGFuZGxlS2V5RG93bkV2ZW50KGNvbnN0IEV2YXNfRXZlbnRfS2V5X0Rvd24qIGRv
d25FdmVudCwgYm9vbCogaXNGaWx0ZXJlZCkKK3sKKyAgICBFY29yZV9JTUZfRXZlbnQgaW5wdXRN
ZXRob2RFdmVudDsKKyAgICBlY29yZV9pbWZfZXZhc19ldmVudF9rZXlfZG93bl93cmFwKGNvbnN0
X2Nhc3Q8RXZhc19FdmVudF9LZXlfRG93bio+KGRvd25FdmVudCksICZpbnB1dE1ldGhvZEV2ZW50
LmtleV9kb3duKTsKKworICAgICppc0ZpbHRlcmVkID0gZWNvcmVfaW1mX2NvbnRleHRfZmlsdGVy
X2V2ZW50KG1fY29udGV4dC5nZXQoKSwgRUNPUkVfSU1GX0VWRU5UX0tFWV9ET1dOLCAmaW5wdXRN
ZXRob2RFdmVudCk7Cit9CisKK3ZvaWQgSW5wdXRNZXRob2RDb250ZXh0RWZsOjp1cGRhdGVUZXh0
SW5wdXRTdGF0ZSgpCit7CisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGNvbnN0IEVkaXRvclN0YXRlJiBlZGl0b3IgPSBtX3ZpZXdJbXBsLT5wYWdlKCktPmVkaXRv
clN0YXRlKCk7CisKKyAgICBpZiAoZWRpdG9yLmlzQ29udGVudEVkaXRhYmxlKSB7CisgICAgICAg
IGlmIChtX2ZvY3VzZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZWNvcmVfaW1m
X2NvbnRleHRfcmVzZXQobV9jb250ZXh0LmdldCgpKTsKKyAgICAgICAgZWNvcmVfaW1mX2NvbnRl
eHRfZm9jdXNfaW4obV9jb250ZXh0LmdldCgpKTsKKyAgICAgICAgbV9mb2N1c2VkID0gdHJ1ZTsK
KyAgICB9IGVsc2UgeworICAgICAgICBpZiAoIW1fZm9jdXNlZCkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBpZiAoZWRpdG9yLmhhc0NvbXBvc2l0aW9uKQorICAgICAgICAgICAgbV92
aWV3SW1wbC0+cGFnZSgpLT5jYW5jZWxDb21wb3NpdGlvbigpOworCisgICAgICAgIG1fZm9jdXNl
ZCA9IGZhbHNlOworICAgICAgICBlY29yZV9pbWZfY29udGV4dF9yZXNldChtX2NvbnRleHQuZ2V0
KCkpOworICAgICAgICBlY29yZV9pbWZfY29udGV4dF9mb2N1c19vdXQobV9jb250ZXh0LmdldCgp
KTsKKyAgICB9Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9l
ZmwvSW5wdXRNZXRob2RDb250ZXh0RWZsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZs
L0lucHV0TWV0aG9kQ29udGV4dEVmbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjU3NmI5YjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
ZWZsL0lucHV0TWV0aG9kQ29udGV4dEVmbC5oCkBAIC0wLDAgKzEsNjUgQEAKKy8qCisgICBDb3B5
cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcworICAgQ29weXJpZ2h0IChDKSAyMDEy
IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorCisgICAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAg
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgICAgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyovCisKKyNpZm5kZWYgSW5w
dXRNZXRob2RDb250ZXh0RWZsX2gKKyNkZWZpbmUgSW5wdXRNZXRob2RDb250ZXh0RWZsX2gKKwor
I2luY2x1ZGUgPEVjb3JlX0lNRi5oPgorI2luY2x1ZGUgPEV2YXMuaD4KKyNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworY2xhc3MgRXdrVmlld0lt
cGw7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlUHJveHk7CisKK2NsYXNz
IElucHV0TWV0aG9kQ29udGV4dEVmbCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8
SW5wdXRNZXRob2RDb250ZXh0RWZsPiBjcmVhdGUoRXdrVmlld0ltcGwqIHZpZXdJbXBsLCBFdmFz
KiBjYW52YXMpCisgICAgeworICAgICAgICBPd25QdHI8RWNvcmVfSU1GX0NvbnRleHQ+IGNvbnRl
eHQgPSBjcmVhdGVJTUZDb250ZXh0KGNhbnZhcyk7CisgICAgICAgIGlmICghY29udGV4dCkKKyAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcg
SW5wdXRNZXRob2RDb250ZXh0RWZsKHZpZXdJbXBsLCBjb250ZXh0LnJlbGVhc2UoKSkpOworICAg
IH0KKyAgICB+SW5wdXRNZXRob2RDb250ZXh0RWZsKCk7CisKKyAgICB2b2lkIGhhbmRsZU1vdXNl
VXBFdmVudChjb25zdCBFdmFzX0V2ZW50X01vdXNlX1VwKiB1cEV2ZW50KTsKKyAgICB2b2lkIGhh
bmRsZUtleURvd25FdmVudChjb25zdCBFdmFzX0V2ZW50X0tleV9Eb3duKiBkb3duRXZlbnQsIGJv
b2wqIGlzRmlsdGVyZWQpOworICAgIHZvaWQgdXBkYXRlVGV4dElucHV0U3RhdGUoKTsKKworcHJp
dmF0ZToKKyAgICBJbnB1dE1ldGhvZENvbnRleHRFZmwoRXdrVmlld0ltcGwqLCBQYXNzT3duUHRy
PEVjb3JlX0lNRl9Db250ZXh0Pik7CisKKyAgICBzdGF0aWMgUGFzc093blB0cjxFY29yZV9JTUZf
Q29udGV4dD4gY3JlYXRlSU1GQ29udGV4dChFdmFzKiBjYW52YXMpOworICAgIHN0YXRpYyB2b2lk
IG9uSU1GSW5wdXRTZXF1ZW5jZUNvbXBsZXRlKHZvaWQqIGRhdGEsIEVjb3JlX0lNRl9Db250ZXh0
Kiwgdm9pZCogZXZlbnRJbmZvKTsKKyAgICBzdGF0aWMgdm9pZCBvbklNRlByZWVkaXRTZXF1ZW5j
ZUNoYW5nZWQodm9pZCogZGF0YSwgRWNvcmVfSU1GX0NvbnRleHQqLCB2b2lkKiBldmVudEluZm8p
OworCisgICAgRXdrVmlld0ltcGwqIG1fdmlld0ltcGw7CisgICAgT3duUHRyPEVjb3JlX0lNRl9D
b250ZXh0PiBtX2NvbnRleHQ7CisgICAgYm9vbCBtX2ZvY3VzZWQ7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIElucHV0TWV0aG9kQ29udGV4dEVmbF9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IGUzNTY1
ZWIuLjNiM2I3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFn
ZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZUNs
aWVudEltcGwuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJEcmF3aW5nQXJlYVBy
b3h5SW1wbC5oIgogI2luY2x1ZGUgIkV3a1ZpZXdJbXBsLmgiCisjaW5jbHVkZSAiSW5wdXRNZXRo
b2RDb250ZXh0RWZsLmgiCiAjaW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgogI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dC5oIgpAQCAtMjk4
LDcgKzI5OSw5IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmNvdW50U3RyaW5nTWF0Y2hlc0luQ3Vz
dG9tUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiwgRmluCiAKIHZvaWQgUGFnZUNsaWVudElt
cGw6OnVwZGF0ZVRleHRJbnB1dFN0YXRlKCkKIHsKLSAgICBtX3ZpZXdJbXBsLT51cGRhdGVUZXh0
SW5wdXRTdGF0ZSgpOworICAgIElucHV0TWV0aG9kQ29udGV4dEVmbCogaW5wdXRNZXRob2RDb250
ZXh0ID0gbV92aWV3SW1wbC0+aW5wdXRNZXRob2RDb250ZXh0KCk7CisgICAgaWYgKGlucHV0TWV0
aG9kQ29udGV4dCkKKyAgICAgICAgaW5wdXRNZXRob2RDb250ZXh0LT51cGRhdGVUZXh0SW5wdXRT
dGF0ZSgpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpoYW5kbGVEb3dubG9hZFJlcXVlc3Qo
RG93bmxvYWRQcm94eSogZG93bmxvYWQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>