<?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>167444</bug_id>
          
          <creation_ts>2017-01-25 18:58:59 -0800</creation_ts>
          <short_desc>Add support for recognizing data interaction gestures in WebKit2</short_desc>
          <delta_ts>2017-01-28 12:26:14 -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>WebKit2</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></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>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>enrica</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1270098</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-25 18:58:59 -0800</bug_when>
    <thetext>Add support for recognizing data interaction gestures in WebKit2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270171</commentid>
    <comment_count>1</comment_count>
      <attachid>299799</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-26 02:17:39 -0800</bug_when>
    <thetext>Created attachment 299799
First pass</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270263</commentid>
    <comment_count>2</comment_count>
      <attachid>299827</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-26 11:33:16 -0800</bug_when>
    <thetext>Created attachment 299827
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270285</commentid>
    <comment_count>3</comment_count>
      <attachid>299827</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-26 12:33:57 -0800</bug_when>
    <thetext>Comment on attachment 299827
Patch

Thanks Beth!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270297</commentid>
    <comment_count>4</comment_count>
      <attachid>299827</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-26 12:59:27 -0800</bug_when>
    <thetext>Comment on attachment 299827
Patch

Clearing flags on attachment: 299827

Committed r211227: &lt;http://trac.webkit.org/changeset/211227&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270298</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-26 12:59:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1271039</commentid>
    <comment_count>6</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-01-28 12:26:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/30107775&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299799</attachid>
            <date>2017-01-26 02:17:39 -0800</date>
            <delta_ts>2017-01-26 11:33:13 -0800</delta_ts>
            <desc>First pass</desc>
            <filename>bug-167444-20170126021537.patch</filename>
            <type>text/plain</type>
            <size>19018</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM4NTg1YjJjMTkwNTlh
MTJhMjUyOTg3ZTM5MjZhNWM0Zjk5ZDk2Ni4uMzUzMzY4MjBiOWVjMTg2YzdhZmRjYWRhMGI4M2Nj
ODhlZTg0ZTAwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE3LTAxLTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciByZWNvZ25pemluZyBkYXRhIGludGVyYWN0aW9uIGdlc3R1cmVzIGluIFdlYktpdDIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzQ0NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1pbm9yIHR3ZWFr
cyB0byBwYXN0ZWJvYXJkIGNvZGUgdG8gc3VwcG9ydCBkYXRhIGludGVyYWN0aW9uLgorCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRm
b3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9y
bVBhc3RlYm9hcmRJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVBhc3RlYm9hcmQ6
OlBsYXRmb3JtUGFzdGVib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVBhc3RlYm9h
cmQ6OmdldFR5cGVzKToKKwogMjAxNy0wMS0yNSAgTWF0dCBSYWpjYSAgPG1yYWpjYUBhcHBsZS5j
b20+CiAKICAgICAgICAgTm90aWZ5IGNsaWVudHMgd2hlbiB0aGUgdXNlciBwbGF5cyBtZWRpYSBv
dGhlcndpc2UgcHJldmVudGVkIGZyb20gYXV0b3BsYXlpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxNmQyZTBk
MTBjZjIyNGU0ODI3MWI5MGJkZjZjMWVjZmE2YjM1YWY2Li41YmJkMTYzMGI0ZjRlODE0ODBhMjMy
MWY5OTY0NTY4NWU5Y2E2Nzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTctMDEt
MjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIHJlY29nbml6aW5nIGRhdGEgaW50ZXJhY3Rpb24gZ2VzdHVyZXMgaW4gV2Vi
S2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3
NDQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
cyBhIG5ldyBkYXRhIGludGVyYWN0aW9uIGdlc3R1cmUgcmVjb2duaXplciwgcmVzcG9uc2libGUg
Zm9yIGRldGVybWluaW5nIHdoZW4gdG8gYmVnaW4gZGF0YSBpbnRlcmFjdGlvbi4gVGhpcworICAg
ICAgICBpcyBhIG5ldyBsb25nIHByZXNzIGdlc3R1cmUgcmVjb2duaXplciB0aGF0IGZpcmVzIHNp
bXVsdGFuZW91c2x5IHdpdGggdGhlIGV4aXN0aW5nIGxvbmcgcHJlc3MgZ2VzdHVyZQorICAgICAg
ICByZWNvZ25pemVycyAoZm9yIHBlcmZvcm1pbmcgbG9uZy1wcmVzcyBhY3Rpb25zLCBhbmQgZm9y
IHNob3dpbmcgdGhlIHRhcCBoaWdobGlnaHQpLgorCisgICAgICAgIEFsc28gdHdlYWtzIGxvZ2lj
IGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIHNlbGVjdGlvbiBnZXN0dXJlIHJlY29nbml6ZXJzIHNo
b3VsZCBmaXJlIHRvIGFjY291bnQgZm9yIGRhdGEKKyAgICAgICAgaW50ZXJhY3Rpb24gLS0gaW4g
cGFydGljdWxhciwgd2UgZG9uJ3Qgd2FudCBzZWxlY3Rpb24gZ2VzdHVyZSByZWNvZ25pemVycyB0
byBjYXVzZSB0aGUgY3VycmVudCBzZWxlY3Rpb24gdG8KKyAgICAgICAgY2hhbmdlIHdoaWxlIGRh
dGEgaW50ZXJhY3Rpb24gaXMgcG9zc2libGUuIFNlZSAtaGFzU2VsZWN0YWJsZVBvc2l0aW9uQXRQ
b2ludCBhbmQgLXBvaW50SXNJbkFzc2lzdGVkTm9kZSBmb3IKKyAgICAgICAgbW9yZSBkZXRhaWxz
LgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250
cm9sbGVyT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnN0YXJ0
RGF0YUludGVyYWN0aW9uV2l0aEltYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9jcmVhdGVBbmRD
b25maWd1cmVMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplcl0pOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IHNldHVwSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVh
bnVwSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcmVtb3ZlRGVmYXVs
dEdlc3R1cmVSZWNvZ25pemVyc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9hZGREZWZh
dWx0R2VzdHVyZVJlY29nbml6ZXJzXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcmVzaWdu
Rmlyc3RSZXNwb25kZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBnZXN0dXJlUmVjb2du
aXplcjpzaG91bGRSZWNvZ25pemVTaW11bHRhbmVvdXNseVdpdGhHZXN0dXJlUmVjb2duaXplcjpd
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBnZXN0dXJlUmVjb2duaXplclNob3VsZEJlZ2lu
Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGhhc1NlbGVjdGFibGVQb3NpdGlvbkF0UG9p
bnQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcG9pbnRJc0luRGF0YUludGVyYWN0aW9u
Q29udGVudDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwb2ludElzSW5Bc3Npc3RlZE5v
ZGU6XSk6CisKIDIwMTctMDEtMjUgIE1hdHQgUmFqY2EgIDxtcmFqY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIE5vdGlmeSBjbGllbnRzIHdoZW4gdGhlIHVzZXIgcGxheXMgbWVkaWEgb3RoZXJ3aXNl
IHByZXZlbnRlZCBmcm9tIGF1dG9wbGF5aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2MyNzc5ZWUwMGM0ODNhYmQzZDZmZTcy
Yjc2ZTAyNDRlMDVhNWE1Mi4uMGFiZGYyYTM4MjhmODc4MTlhZThjM2MzZTAyMGJhNDQ3NWYzODUz
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNjUxMSw4ICs2NTExLDggQEAKIAkJRjQ3QTVFM0UxOTVCOEM4QTAwNDgzMTAwIC8q
IFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ3QTVFM0IxOTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25h
cFBvaW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUY0N0E1RTNGMTk1QjhFNDgwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3QTVFM0Ex
OTVCOEM4QTAwNDgzMTAwIC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5jcHAgKi87IH07CiAJCUY0
ODIyMzEwMUUzODY5QjgwMDY2RkM3OSAvKiBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4MjIzMEUxRTM4
NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0gKi87IH07Ci0JCUY0
ODIyMzExMUUzODY5QjgwMDY2RkM3OSAvKiBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDgyMjMwRjFFMzg2
OUI4MDA2NkZDNzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oICovOyB9OwotCQlGNDgy
MjMxMzFFMzg2RTI0MDA2NkZDNzkgLyogQWJzdHJhY3RQYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDgyMjMxMjFFMzg2RTI0MDA2NkZD
NzkgLyogQWJzdHJhY3RQYXN0ZWJvYXJkLmggKi87IH07CisJCUY0ODIyMzExMUUzODY5QjgwMDY2
RkM3OSAvKiBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDgyMjMwRjFFMzg2OUI4MDA2NkZDNzkgLyogV2Vi
SXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCUY0ODIyMzEzMUUzODZFMjQwMDY2RkM3OSAvKiBBYnN0cmFjdFBh
c3RlYm9hcmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0ODIyMzEyMUUzODZFMjQwMDY2RkM3OSAvKiBBYnN0cmFjdFBhc3RlYm9hcmQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNEJGQjk4NTFFMURE
RjlCMDA4NjJDMjQgLyogRHVtcEVkaXRpbmdIaXN0b3J5LmpzIGluIENvcHkgU2NyaXB0cyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDgzODk4MzFFMURERjJCMDA3NkI3RUEg
LyogRHVtcEVkaXRpbmdIaXN0b3J5LmpzICovOyB9OwogCQlGNEJGQjk4NjFFMURERjlCMDA4NjJD
MjQgLyogRWRpdGluZ0hpc3RvcnlVdGlsLmpzIGluIENvcHkgU2NyaXB0cyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDgzODk4NDFFMURERjJCMDA3NkI3RUEgLyogRWRpdGlu
Z0hpc3RvcnlVdGlsLmpzICovOyB9OwogCQlGNTA2NjRGNzE1N0Y1MkRDMDBBQzIyNkYgLyogRm9y
bUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjUwNjY0RjUxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmNwcCAqLzsg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2Fy
ZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmgKaW5kZXgg
OTNkYjE2YjI0ZDcxYmI4Y2U0MzA2NTI4YTMxODVkY2U4ZDc3OTk1MC4uYmE1NDI2ZjdjZWRiYmQ1
YTIzYzY1MjU3ZGFiMGE0MTM3ZDE3MDk3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1QYXN0ZWJvYXJkLmgKQEAgLTkyLDcgKzkyLDcgQEAgcHJpdmF0ZToKICAgICBSZXRh
aW5QdHI8TlNQYXN0ZWJvYXJkPiBtX3Bhc3RlYm9hcmQ7CiAjZW5kaWYKICNpZiBQTEFURk9STShJ
T1MpCi0gICAgUmV0YWluUHRyPFVJUGFzdGVib2FyZD4gbV9wYXN0ZWJvYXJkOworICAgIFJldGFp
blB0cjxpZD4gbV9wYXN0ZWJvYXJkOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIEd0
a0NsaXBib2FyZCogbV9jbGlwYm9hcmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbQppbmRleCA0YTc2ZjQ1ZDMyZjY3YTI1ZmNi
ZDM1MDlhYmU0NjE0NzRiNGZhMmY5Li44Yzk2ODc0MzhhZDdmMjFmMjk3NmM0Y2IxNTExZDY2MWEx
MzI1ZjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1Q
YXN0ZWJvYXJkSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9y
bVBhc3RlYm9hcmRJT1MubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIlBhc3RlYm9hcmQu
aCIKICNpbXBvcnQgIlNoYXJlZEJ1ZmZlci5oIgogI2ltcG9ydCAiU29mdExpbmtpbmcuaCIKKyNp
bXBvcnQgIldlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCIKICNpbXBvcnQgPE1vYmlsZUNvcmVT
ZXJ2aWNlcy9Nb2JpbGVDb3JlU2VydmljZXMuaD4KIAogU09GVF9MSU5LX0ZSQU1FV09SSyhVSUtp
dCkKQEAgLTUzLDEzICs1NCwyNSBAQCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OlBsYXRmb3JtUGFzdGVi
b2FyZCgpCiB7CiB9CiAKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKK1BsYXRmb3JtUGFz
dGVib2FyZDo6UGxhdGZvcm1QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICBp
ZiAobmFtZSA9PSAiZGF0YSBpbnRlcmFjdGlvbiBwYXN0ZWJvYXJkIikKKyAgICAgICAgbV9wYXN0
ZWJvYXJkID0gW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgc2hhcmVkSW5zdGFuY2VdOworICAg
IGVsc2UKKyAgICAgICAgbV9wYXN0ZWJvYXJkID0gW2dldFVJUGFzdGVib2FyZENsYXNzKCkgZ2Vu
ZXJhbFBhc3RlYm9hcmRdOworfQorI2Vsc2UKIFBsYXRmb3JtUGFzdGVib2FyZDo6UGxhdGZvcm1Q
YXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYpCiAgICAgOiBtX3Bhc3RlYm9hcmQoW2dldFVJUGFzdGVi
b2FyZENsYXNzKCkgZ2VuZXJhbFBhc3RlYm9hcmRdKQogewogfQorI2VuZGlmCiAKLXZvaWQgUGxh
dGZvcm1QYXN0ZWJvYXJkOjpnZXRUeXBlcyhWZWN0b3I8U3RyaW5nPiYpCit2b2lkIFBsYXRmb3Jt
UGFzdGVib2FyZDo6Z2V0VHlwZXMoVmVjdG9yPFN0cmluZz4mIHR5cGVzKQogeworICAgIGZvciAo
TlNTdHJpbmcgKnBhc3RlYm9hcmRUeXBlIGluIFttX3Bhc3RlYm9hcmQgcGFzdGVib2FyZFR5cGVz
XSkKKyAgICAgICAgdHlwZXMuYXBwZW5kKHBhc3RlYm9hcmRUeXBlKTsKIH0KIAogUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gUGxhdGZvcm1QYXN0ZWJvYXJkOjpidWZmZXJGb3JUeXBlKGNvbnN0IFN0cmlu
ZyYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbQppbmRleCA4YjdiNjY1MTU1Mjg1OWVjZWMzODE4N2IzMjc4ZGQ1NWM1ZjViOGY3Li41ZTU1
ODFmNjhhZTBhZjFiZGU3MjU0ODYyMzE2ZTY2MGRlOGM5NmNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTc2NSwxMCArNzY1
LDEyIEBAIFJlZjxWYWxpZGF0aW9uQnViYmxlPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlVmFsaWRh
dGlvbkJ1YmJsZShjb25zdCBTdHJpbmcmIG1lc3NhCiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJ
T04pCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJv
bGxlck9wZXJhdGlvbigpCiB7CisgICAgW21fY29udGVudFZpZXcgX2RpZFBlcmZvcm1EYXRhSW50
ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uXTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6
c3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNs
aWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2UsIGJvb2wg
aXNMaW5rKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1h
Z2UoY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6
OkhhbmRsZSYgaW1hZ2UsIGJvb2wgaXNMaW5rKQogeworICAgIFttX2NvbnRlbnRWaWV3IF9zdGFy
dERhdGFJbnRlcmFjdGlvbldpdGhJbWFnZTpTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShpbWFnZSkt
Pm1ha2VDR0ltYWdlQ29weSgpIGF0Q2xpZW50UG9zaXRpb246Q0dQb2ludE1ha2UoY2xpZW50UG9z
aXRpb24ueCgpLCBjbGllbnRQb3NpdGlvbi55KCkpIGlzTGluazppc0xpbmtdOwogfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5oCmluZGV4IGY0OGQ2N2UxNmNhNzUwNmE5Y2IyMmY1YzZlMjYzMzUzNGZm
NDczMjEuLjhmNWNiYWI2OTYxOGQ2NjJiNjNlMTdmOWUxMDNhOTBjMTVmZWJlYjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24uaApAQCAtNDQsNiArNDQsMTAgQEAKICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KICNpbXBv
cnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykg
JiYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bkFkZGl0aW9ucy5oPikKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb25BZGRpdGlvbnMuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIE9w
ZW5QYW5lbFBhcmFtZXRlcnM7CiB9CkBAIC0xNzksMTEgKzE4MywyMiBAQCBzdHJ1Y3QgV0tBdXRv
Q29ycmVjdGlvbkRhdGEgewogCiAgICAgQk9PTCBfcmVzaWduaW5nRmlyc3RSZXNwb25kZXI7CiAg
ICAgQk9PTCBfbmVlZHNEZWZlcnJlZEVuZFNjcm9sbGluZ1NlbGVjdGlvblVwZGF0ZTsKKworI2lm
IEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQorICAgIFJldGFpblB0cjxVSUxvbmdQcmVzc0dlc3R1
cmVSZWNvZ25pemVyPiBfZGF0YUludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXI7CisgICAgUmV0
YWluUHRyPFVJSW1hZ2U+IF9jdXJyZW50RGF0YUludGVyYWN0aW9uSW1hZ2U7CisgICAgQ0dQb2lu
dCBfY3VycmVudERhdGFJbnRlcmFjdGlvbk9yaWdpbjsKKyAgICBCT09MIF9zaG91bGRIYW5kbGVM
b25nUHJlc3NBY3Rpb25BZnRlckRhdGFJbnRlcmFjdGlvbjsKKyNlbmRpZgogfQogCiBAZW5kCiAK
LUBpbnRlcmZhY2UgV0tDb250ZW50VmlldyAoV0tJbnRlcmFjdGlvbikgPFVJR2VzdHVyZVJlY29n
bml6ZXJEZWxlZ2F0ZSwgVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUs
IFVJVGV4dElucHV0UHJpdmF0ZSwgVUlXZWJGb3JtQWNjZXNzb3J5RGVsZWdhdGUsIFVJV0tJbnRl
cmFjdGlvblZpZXdQcm90b2NvbCwgV0tGaWxlVXBsb2FkUGFuZWxEZWxlZ2F0ZSwgV0tBY3Rpb25T
aGVldEFzc2lzdGFudERlbGVnYXRlPgorQGludGVyZmFjZSBXS0NvbnRlbnRWaWV3IChXS0ludGVy
YWN0aW9uKSA8VUlHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlLCBVSVdlYlRvdWNoRXZlbnRzR2Vz
dHVyZVJlY29nbml6ZXJEZWxlZ2F0ZSwgVUlUZXh0SW5wdXRQcml2YXRlLCBVSVdlYkZvcm1BY2Nl
c3NvcnlEZWxlZ2F0ZSwgVUlXS0ludGVyYWN0aW9uVmlld1Byb3RvY29sLCBXS0ZpbGVVcGxvYWRQ
YW5lbERlbGVnYXRlLCBXS0FjdGlvblNoZWV0QXNzaXN0YW50RGVsZWdhdGUKKyNpZiBFTkFCTEUo
REFUQV9JTlRFUkFDVElPTikKKyAgICAsIFdLVmlld0RhdGFJbnRlcmFjdGlvblNvdXJjZURlbGVn
YXRlLCBXS0RhdGFJbnRlcmFjdGlvblNlc3Npb25EZWxlZ2F0ZSwgV0tWaWV3RGF0YUludGVyYWN0
aW9uRGVzdGluYXRpb25EZWxlZ2F0ZSwgV0tEYXRhSW50ZXJhY3Rpb25JdGVtVmlzdWFsVGFyZ2V0
CisjZW5kaWYKKz4KIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1BvaW50IGxh
c3RJbnRlcmFjdGlvbkxvY2F0aW9uOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBC
T09MIGlzRWRpdGFibGU7CkBAIC0yMzIsNiArMjQ3LDEyIEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0
aW9uRGF0YSB7CiAtIChOU0FycmF5ICopX2RhdGFEZXRlY3Rpb25SZXN1bHRzOwogLSAoTlNBcnJh
eTxOU1ZhbHVlICo+ICopX3VpVGV4dFNlbGVjdGlvblJlY3RzOwogLSAodm9pZClhY2Nlc3NpYmls
aXR5UmV0cmlldmVTcGVha1NlbGVjdGlvbkNvbnRlbnQ7CisKKyNpZiBFTkFCTEUoREFUQV9JTlRF
UkFDVElPTikKKy0gKHZvaWQpX2RpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3Bl
cmF0aW9uOworLSAodm9pZClfc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2U6KFJldGFpblB0
cjxDR0ltYWdlUmVmPilpbWFnZSBhdENsaWVudFBvc2l0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0
aW9uIGlzTGluazooQk9PTClpc0xpbms7CisjZW5kaWYKKwogQGVuZAogCiBAaW50ZXJmYWNlIFdL
Q29udGVudFZpZXcgKFdLVGVzdGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggNzJlOGNkOWFhZTNj
MzI0ZDM5MWM1YWU4NzliOWFmOGY0M2QyZjY0ZC4uYTBmOGZiODI5ZTdhOTYwNWMzMTI0YjQ1NmYx
MjlhMjZlZDI1MzkxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTY3LDYgKzY3LDcgQEAKICNpbXBv
cnQgPFdlYkNvcmUvRGF0YURldGVjdG9yc0NvcmVTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvRGF0
YURldGVjdG9yc1VJU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UXVhZC5oPgorI2ltcG9y
dCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYXN0ZWJvYXJk
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhdGguaD4KICNpbXBvcnQgPFdlYkNvcmUvUGF0aFV0aWxp
dGllcy5oPgpAQCAtODAsNiArODEsMTEgQEAKICNpbXBvcnQgPFdlYktpdC9XZWJTZWxlY3Rpb25S
ZWN0Lmg+IC8vIEZJWE1FOiBXSzIgc2hvdWxkIG5vdCBpbmNsdWRlIFdlYktpdCBoZWFkZXJzIQog
I2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCisjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04p
CisjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmg+CisjZW5kaWYKKwogQGludGVyZmFjZSBVSUV2
ZW50KFVJRXZlbnRJbnRlcm5hbCkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIFVJS2V5
Ym9hcmRJbnB1dEZsYWdzIF9pbnB1dEZsYWdzOwogQGVuZApAQCAtNDkzLDYgKzQ5OSwxMCBAQCBj
b25zdCBDR0Zsb2F0IG1pbmltdW1UYXBIaWdobGlnaHRSYWRpdXMgPSAyLjA7CiAKIEBpbXBsZW1l
bnRhdGlvbiBXS0NvbnRlbnRWaWV3IChXS0ludGVyYWN0aW9uKQogCisjaWYgVVNFKEFQUExFX0lO
VEVSTkFMX1NESykgJiYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbkFkZGl0aW9ucy5tbT4pCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uQWRkaXRpb25zLm1tPgorI2VuZGlmCisKIHN0YXRpYyBVSVdl
YlNlbGVjdGlvbk1vZGUgdG9VSVdlYlNlbGVjdGlvbk1vZGUoV0tTZWxlY3Rpb25HcmFudWxhcml0
eSBncmFudWxhcml0eSkKIHsKICAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CkBAIC01MTUsNiAr
NTI1LDE1IEBAIHN0YXRpYyBVSVdlYlNlbGVjdGlvbk1vZGUgdG9VSVdlYlNlbGVjdGlvbk1vZGUo
V0tTZWxlY3Rpb25HcmFudWxhcml0eSBncmFudWxhcml0CiAgICAgW19zaW5nbGVUYXBHZXN0dXJl
UmVjb2duaXplciByZXF1aXJlR2VzdHVyZVJlY29nbml6ZXJUb0ZhaWw6X2RvdWJsZVRhcEdlc3R1
cmVSZWNvZ25pemVyLmdldCgpXTsKIH0KIAorLSAodm9pZClfY3JlYXRlQW5kQ29uZmlndXJlTG9u
Z1ByZXNzR2VzdHVyZVJlY29nbml6ZXIKK3sKKyAgICBfbG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6
ZXIgPSBhZG9wdE5TKFtbVUlMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdp
dGhUYXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKF9sb25nUHJlc3NSZWNvZ25pemVkOildKTsK
KyAgICBbX2xvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyIHNldERlbGF5OnRhcEFuZEhvbGREZWxh
eV07CisgICAgW19sb25nUHJlc3NHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpzZWxmXTsK
KyAgICBbX2xvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyIF9zZXRSZXF1aXJlc1F1aWV0SW1wdWxz
ZTpZRVNdOworICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9sb25nUHJlc3NHZXN0dXJl
UmVjb2duaXplci5nZXQoKV07Cit9CisKIC0gKHZvaWQpc2V0dXBJbnRlcmFjdGlvbgogewogICAg
IGlmICghX2ludGVyYWN0aW9uVmlld3NDb250YWluZXJWaWV3KSB7CkBAIC01NTcsMTEgKzU3Niwx
NiBAQCBzdGF0aWMgVUlXZWJTZWxlY3Rpb25Nb2RlIHRvVUlXZWJTZWxlY3Rpb25Nb2RlKFdLU2Vs
ZWN0aW9uR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdAogICAgIFtfaGlnaGxpZ2h0TG9uZ1ByZXNzR2Vz
dHVyZVJlY29nbml6ZXIgc2V0RGVsZWdhdGU6c2VsZl07CiAgICAgW3NlbGYgYWRkR2VzdHVyZVJl
Y29nbml6ZXI6X2hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKIAot
ICAgIF9sb25nUHJlc3NHZXN0dXJlUmVjb2duaXplciA9IGFkb3B0TlMoW1tVSUxvbmdQcmVzc0dl
c3R1cmVSZWNvZ25pemVyIGFsbG9jXSBpbml0V2l0aFRhcmdldDpzZWxmIGFjdGlvbjpAc2VsZWN0
b3IoX2xvbmdQcmVzc1JlY29nbml6ZWQ6KV0pOwotICAgIFtfbG9uZ1ByZXNzR2VzdHVyZVJlY29n
bml6ZXIgc2V0RGVsYXk6dGFwQW5kSG9sZERlbGF5XTsKLSAgICBbX2xvbmdQcmVzc0dlc3R1cmVS
ZWNvZ25pemVyIHNldERlbGVnYXRlOnNlbGZdOwotICAgIFtfbG9uZ1ByZXNzR2VzdHVyZVJlY29n
bml6ZXIgX3NldFJlcXVpcmVzUXVpZXRJbXB1bHNlOllFU107Ci0gICAgW3NlbGYgYWRkR2VzdHVy
ZVJlY29nbml6ZXI6X2xvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKKyAgICBbc2Vs
ZiBfY3JlYXRlQW5kQ29uZmlndXJlTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXJdOworCisjaWYg
RU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisgICAgX2RhdGFJbnRlcmFjdGlvbkdlc3R1cmVSZWNv
Z25pemVyID0gYWRvcHROUyhbW1VJTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgYWxsb2NdIGlu
aXRXaXRoVGFyZ2V0OnNlbGYgYWN0aW9uOkBzZWxlY3RvcihfZGF0YUludGVyYWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXI6KV0pOworICAgIFtfZGF0YUludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIg
c2V0RGVsYXk6MC4yNV07CisgICAgW19kYXRhSW50ZXJhY3Rpb25HZXN0dXJlUmVjb2duaXplciBz
ZXREZWxlZ2F0ZTpzZWxmXTsKKyAgICBbX2RhdGFJbnRlcmFjdGlvbkdlc3R1cmVSZWNvZ25pemVy
IF9zZXRSZXF1aXJlc1F1aWV0SW1wdWxzZTpZRVNdOworICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNv
Z25pemVyOl9kYXRhSW50ZXJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQoKV07CisgICAgW3Nl
bGYgc2V0dXBEYXRhSW50ZXJhY3Rpb25EZWxlZ2F0ZXNdOworI2VuZGlmCiAKICAgICBfdHdvRmlu
Z2VyU2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5TKFtbVUlUYXBHZXN0dXJlUmVj
b2duaXplciBhbGxvY10gaW5pdFdpdGhUYXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKF90d29G
aW5nZXJTaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplZDopXSk7CiAgICAgW190d29GaW5nZXJTaW5n
bGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXRBbGxvd2FibGVNb3ZlbWVudDo2MF07CkBAIC02Mzcs
NiArNjYxLDEyIEBAIHN0YXRpYyBVSVdlYlNlbGVjdGlvbk1vZGUgdG9VSVdlYlNlbGVjdGlvbk1v
ZGUoV0tTZWxlY3Rpb25HcmFudWxhcml0eSBncmFudWxhcml0CiAgICAgW190d29GaW5nZXJTaW5n
bGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpuaWxdOwogICAgIFtzZWxmIHJlbW92
ZUdlc3R1cmVSZWNvZ25pemVyOl90d29GaW5nZXJTaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplci5n
ZXQoKV07CiAKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKKyAgICBbX2RhdGFJbnRlcmFj
dGlvbkdlc3R1cmVSZWNvZ25pemVyIHNldERlbGVnYXRlOm5pbF07CisgICAgW3NlbGYgcmVtb3Zl
R2VzdHVyZVJlY29nbml6ZXI6X2RhdGFJbnRlcmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgp
XTsKKyAgICBbc2VsZiB0ZWFyZG93bkRhdGFJbnRlcmFjdGlvbkRlbGVnYXRlc107CisjZW5kaWYK
KwogICAgIF9pbnNwZWN0b3JOb2RlU2VhcmNoRW5hYmxlZCA9IE5POwogICAgIGlmIChfaW5zcGVj
dG9yTm9kZVNlYXJjaEdlc3R1cmVSZWNvZ25pemVyKSB7CiAgICAgICAgIFtfaW5zcGVjdG9yTm9k
ZVNlYXJjaEdlc3R1cmVSZWNvZ25pemVyIHNldERlbGVnYXRlOm5pbF07CkBAIC02NjQsNiArNjk0
LDkgQEAgc3RhdGljIFVJV2ViU2VsZWN0aW9uTW9kZSB0b1VJV2ViU2VsZWN0aW9uTW9kZShXS1Nl
bGVjdGlvbkdyYW51bGFyaXR5IGdyYW51bGFyaXQKICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVj
b2duaXplcjpfbm9uQmxvY2tpbmdEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAg
ICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6X3R3b0ZpbmdlckRvdWJsZVRhcEdlc3R1
cmVSZWNvZ25pemVyLmdldCgpXTsKICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpf
dHdvRmluZ2VyU2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOworI2lmIEVOQUJMRShE
QVRBX0lOVEVSQUNUSU9OKQorICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9kYXRh
SW50ZXJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQoKV07CisjZW5kaWYKIH0KIAogLSAodm9p
ZClfYWRkRGVmYXVsdEdlc3R1cmVSZWNvZ25pemVycwpAQCAtNjc1LDYgKzcwOCw5IEBAIHN0YXRp
YyBVSVdlYlNlbGVjdGlvbk1vZGUgdG9VSVdlYlNlbGVjdGlvbk1vZGUoV0tTZWxlY3Rpb25HcmFu
dWxhcml0eSBncmFudWxhcml0CiAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6X25vbkJs
b2NraW5nRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwogICAgIFtzZWxmIGFkZEdl
c3R1cmVSZWNvZ25pemVyOl90d29GaW5nZXJEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQo
KV07CiAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6X3R3b0ZpbmdlclNpbmdsZVRhcEdl
c3R1cmVSZWNvZ25pemVyLmdldCgpXTsKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKKyAg
ICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjpfZGF0YUludGVyYWN0aW9uR2VzdHVyZVJlY29n
bml6ZXIuZ2V0KCldOworI2VuZGlmCiB9CiAKIC0gKFVJVmlldyopdW5zY2FsZWRWaWV3CkBAIC04
MTIsNiArODQ4LDkgQEAgc3RhdGljIFVJV2ViU2VsZWN0aW9uTW9kZSB0b1VJV2ViU2VsZWN0aW9u
TW9kZShXS1NlbGVjdGlvbkdyYW51bGFyaXR5IGdyYW51bGFyaXQKIAogLSAoQk9PTClyZXNpZ25G
aXJzdFJlc3BvbmRlcgogeworI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQorICAgIF9zaG91
bGRIYW5kbGVMb25nUHJlc3NBY3Rpb25BZnRlckRhdGFJbnRlcmFjdGlvbiA9IE5POworI2VuZGlm
CiAgICAgLy8gRklYTUU6IE1heWJlIHdlIHNob3VsZCBjYWxsIHJlc2lnbkZpcnN0UmVzcG9uZGVy
IG9uIHRoZSBzdXBlcmNsYXNzCiAgICAgLy8gYW5kIGRvIG5vdGhpbmcgaWYgdGhlIHJldHVybiB2
YWx1ZSBpcyBOTy4KIApAQCAtMTE5MCw2ICsxMjI5LDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBp
c1NhbWVQYWlyKFVJR2VzdHVyZVJlY29nbml6ZXIgKmEsIFVJR2VzdHVyZVJlY29nbml6ZXIgKmIs
IFVJCiAgICAgaWYgKGlzU2FtZVBhaXIoZ2VzdHVyZVJlY29nbml6ZXIsIG90aGVyR2VzdHVyZVJl
Y29nbml6ZXIsIF9oaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5nZXQoKSwgX3By
ZXZpZXdHZXN0dXJlUmVjb2duaXplci5nZXQoKSkpCiAgICAgICAgIHJldHVybiBZRVM7CiAKKyNp
ZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKKyAgICBpZiAoaXNTYW1lUGFpcihnZXN0dXJlUmVj
b2duaXplciwgb3RoZXJHZXN0dXJlUmVjb2duaXplciwgX2hpZ2hsaWdodExvbmdQcmVzc0dlc3R1
cmVSZWNvZ25pemVyLmdldCgpLCBfZGF0YUludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuZ2V0
KCkpKQorICAgICAgICByZXR1cm4gWUVTOworCisgICAgaWYgKGlzU2FtZVBhaXIoZ2VzdHVyZVJl
Y29nbml6ZXIsIG90aGVyR2VzdHVyZVJlY29nbml6ZXIsIF9sb25nUHJlc3NHZXN0dXJlUmVjb2du
aXplci5nZXQoKSwgX2RhdGFJbnRlcmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgpKSkKKyAg
ICAgICAgcmV0dXJuIFlFUzsKKyNlbmRpZgorCiAgICAgcmV0dXJuIE5POwogfQogCkBAIC0xMzYw
LDYgKzE0MDcsMTEgQEAgc3RhdGljIGlubGluZSBib29sIGlzU2FtZVBhaXIoVUlHZXN0dXJlUmVj
b2duaXplciAqYSwgVUlHZXN0dXJlUmVjb2duaXplciAqYiwgVUkKICAgICAgICAgfQogICAgIH0K
IAorI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQorICAgIGlmIChnZXN0dXJlUmVjb2duaXpl
ciA9PSBfZGF0YUludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIpCisgICAgICAgIHJldHVybiBb
c2VsZiBwb2ludElzSW5EYXRhSW50ZXJhY3Rpb25Db250ZW50OnBvaW50XTsKKyNlbmRpZgorCiAg
ICAgcmV0dXJuIFlFUzsKIH0KIApAQCAtMTM5MCw5ICsxNDQyLDM3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBpc1NhbWVQYWlyKFVJR2VzdHVyZVJlY29nbml6ZXIgKmEsIFVJR2VzdHVyZVJlY29nbml6
ZXIgKmIsIFVJCiAKICAgICBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0KHJv
dW5kZWRJbnRQb2ludChwb2ludCkpOwogICAgIFtzZWxmIGVuc3VyZVBvc2l0aW9uSW5mb3JtYXRp
b25Jc1VwVG9EYXRlOnJlcXVlc3RdOworCisjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisg
ICAgaWYgKF9wb3NpdGlvbkluZm9ybWF0aW9uLmhhc0RhdGFJbnRlcmFjdGlvbkF0UG9zaXRpb24p
IHsKKyAgICAgICAgLy8gSWYgdGhlIHBvc2l0aW9uIG1pZ2h0IGluaXRpYXRlIGEgZGF0YSBpbnRl
cmFjdGlvbiwgd2UgZG9uJ3Qgd2FudCB0byBjb25zaWRlciB0aGUgY29udGVudCBhdCB0aGlzIHBv
c2l0aW9uIHRvIGJlIHNlbGVjdGFibGUuCisgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBi
ZSByZW5hbWVkIHRvIHNvbWV0aGluZyBtb3JlIHByZWNpc2UsIHN1Y2ggYXMgdGV4dFNlbGVjdGlv
blNob3VsZFJlY29nbml6ZUdlc3R1cmVBdFBvaW50OgorICAgICAgICByZXR1cm4gTk87CisgICAg
fQorI2VuZGlmCisKICAgICByZXR1cm4gX3Bvc2l0aW9uSW5mb3JtYXRpb24uaXNTZWxlY3RhYmxl
OwogfQogCisjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisKKy0gKEJPT0wpcG9pbnRJc0lu
RGF0YUludGVyYWN0aW9uQ29udGVudDooQ0dQb2ludClwb2ludAoreworICAgIEludGVyYWN0aW9u
SW5mb3JtYXRpb25SZXF1ZXN0IHJlcXVlc3Qocm91bmRlZEludFBvaW50KHBvaW50KSk7CisgICAg
W3NlbGYgZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklzVXBUb0RhdGU6cmVxdWVzdF07CisKKyAg
ICBpZiAoX3Bvc2l0aW9uSW5mb3JtYXRpb24uaXNJbWFnZSkKKyAgICAgICAgcmV0dXJuIFlFUzsK
KworICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgbGlua3MuCisgICAgaWYgKF9wb3NpdGlv
bkluZm9ybWF0aW9uLmlzTGluaykKKyAgICAgICAgcmV0dXJuIE5POworCisgICAgcmV0dXJuIF9w
b3NpdGlvbkluZm9ybWF0aW9uLmhhc0RhdGFJbnRlcmFjdGlvbkF0UG9zaXRpb247Cit9CisKKyNl
bmRpZgorCiAtIChCT09MKXBvaW50SXNOZWFyTWFya2VkVGV4dDooQ0dQb2ludClwb2ludAogewog
ICAgIEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHJlcXVlc3Qocm91bmRlZEludFBvaW50
KHBvaW50KSk7CkBAIC0xNDA0LDYgKzE0ODQsMTUgQEAgc3RhdGljIGlubGluZSBib29sIGlzU2Ft
ZVBhaXIoVUlHZXN0dXJlUmVjb2duaXplciAqYSwgVUlHZXN0dXJlUmVjb2duaXplciAqYiwgVUkK
IHsKICAgICBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0KHJvdW5kZWRJbnRQ
b2ludChwb2ludCkpOwogICAgIFtzZWxmIGVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9E
YXRlOnJlcXVlc3RdOworCisjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisgICAgaWYgKF9w
b3NpdGlvbkluZm9ybWF0aW9uLmhhc0RhdGFJbnRlcmFjdGlvbkF0UG9zaXRpb24pIHsKKyAgICAg
ICAgLy8gSWYgdGhlIHBvc2l0aW9uIG1pZ2h0IGluaXRpYXRlIGRhdGEgaW50ZXJhY3Rpb24sIHdl
IGRvbid0IHdhbnQgdG8gY2hhbmdlIHRoZSBzZWxlY3Rpb24uCisgICAgICAgIC8vIEZJWE1FOiBU
aGlzIHNob3VsZCBiZSByZW5hbWVkIHRvIHNvbWV0aGluZyBtb3JlIHByZWNpc2UsIHN1Y2ggYXMg
dGV4dEludGVyYWN0aW9uU2hvdWxkUmVjb2duaXplR2VzdHVyZUF0UG9pbnQ6CisgICAgICAgIHJl
dHVybiBOTzsKKyAgICB9CisjZW5kaWYKKwogICAgIHJldHVybiBfcG9zaXRpb25JbmZvcm1hdGlv
bi5ub2RlQXRQb3NpdGlvbklzQXNzaXN0ZWROb2RlOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299827</attachid>
            <date>2017-01-26 11:33:16 -0800</date>
            <delta_ts>2017-01-26 12:59:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167444-20170126113113.patch</filename>
            <type>text/plain</type>
            <size>25735</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM4NTg1YjJjMTkwNTlh
MTJhMjUyOTg3ZTM5MjZhNWM0Zjk5ZDk2Ni4uY2M1NjQxMGQ3ZDllYTdlZDIwNDgzZDkxYjFhYmY3
MzZiY2ZjNGM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE3LTAxLTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciByZWNvZ25pemluZyBkYXRhIGludGVyYWN0aW9uIGdlc3R1cmVzIGluIFdlYktpdDIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzQ0NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1pbm9yIHR3ZWFr
cyB0byBwYXN0ZWJvYXJkIGNvZGUgdG8gc3VwcG9ydCBkYXRhIGludGVyYWN0aW9uLgorCisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRm
b3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QYXN0ZWJv
YXJkSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6cmVhZCk6CisgICAgICAg
ICogcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbToKKyAgICAgICAgKFdlYkNv
cmU6OlBsYXRmb3JtUGFzdGVib2FyZDo6UGxhdGZvcm1QYXN0ZWJvYXJkKToKKworICAgICAgICBJ
ZiB0aGUgcGFzdGVib2FyZCBpcyB0aGUgc3BlY2lhbCBkYXRhIGludGVyYWN0aW9uIHR5cGUsIHVz
ZSB0aGUgc2hhcmVkIGl0ZW0gcHJvdmlkZXIgcGFzdGVib2FyZDsgb3RoZXJ3aXNlLAorICAgICAg
ICBmYWxsIGJhY2sgdG8gdGhlIGdlbmVyYWwgcGFzdGVib2FyZC4KKworICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjpnZXRUeXBlcyk6CisKKyAgICAgICAgQWN0dWFsbHkgcG9w
dWxhdGUgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIHR5cGVzIHVzaW5nIGF2YWlsYWJsZSBwYXN0ZWJv
YXJkVHlwZXMuCisKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUp
OgorCisgICAgICAgIEFkZCBVVEY4IHBsYWludGV4dCB0eXBlIChrVVRUeXBlVVRGOFBsYWluVGV4
dCkgd2hlbiB2ZW5kaW5nIGRhdGEgcmVwcmVzZW50YXRpb25zIG9mIHJpY2ggdGV4dC4KKworICAg
ICAgICAqIHBsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tOgorICAgICAg
ICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNldEl0ZW1zOl0pOgorICAgICAgICAoLVtX
ZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIGRhdGFGb3JQYXN0ZWJvYXJkVHlwZTppbkl0ZW1TZXQ6
XSk6CisgICAgICAgICgtW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgdmFsdWVzRm9yUGFzdGVi
b2FyZFR5cGU6aW5JdGVtU2V0Ol0pOgorCisgICAgICAgIE1vdmUgb2ZmIG9mIGRlcHJlY2F0ZWQg
bWV0aG9kcyB3aGVuIHJldHJpZXZpbmcgYW5kIHN1cHBseWluZyBkYXRhIHRvIHRoZSBpdGVtIHBy
b3ZpZGVyIHBhc3RlYm9hcmQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJ
Lmg6CisKIDIwMTctMDEtMjUgIE1hdHQgUmFqY2EgIDxtcmFqY2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIE5vdGlmeSBjbGllbnRzIHdoZW4gdGhlIHVzZXIgcGxheXMgbWVkaWEgb3RoZXJ3aXNlIHBy
ZXZlbnRlZCBmcm9tIGF1dG9wbGF5aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTZkMmUwZDEwY2YyMjRlNDgy
NzFiOTBiZGY2YzFlY2ZhNmIzNWFmNi4uNWJiZDE2MzBiNGY0ZTgxNDgwYTIzMjFmOTk2NDU2ODVl
OWNhNjc3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE3LTAxLTI2ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciByZWNvZ25pemluZyBkYXRhIGludGVyYWN0aW9uIGdlc3R1cmVzIGluIFdlYktpdDIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzQ0NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgYSBuZXcgZGF0
YSBpbnRlcmFjdGlvbiBnZXN0dXJlIHJlY29nbml6ZXIsIHJlc3BvbnNpYmxlIGZvciBkZXRlcm1p
bmluZyB3aGVuIHRvIGJlZ2luIGRhdGEgaW50ZXJhY3Rpb24uIFRoaXMKKyAgICAgICAgaXMgYSBu
ZXcgbG9uZyBwcmVzcyBnZXN0dXJlIHJlY29nbml6ZXIgdGhhdCBmaXJlcyBzaW11bHRhbmVvdXNs
eSB3aXRoIHRoZSBleGlzdGluZyBsb25nIHByZXNzIGdlc3R1cmUKKyAgICAgICAgcmVjb2duaXpl
cnMgKGZvciBwZXJmb3JtaW5nIGxvbmctcHJlc3MgYWN0aW9ucywgYW5kIGZvciBzaG93aW5nIHRo
ZSB0YXAgaGlnaGxpZ2h0KS4KKworICAgICAgICBBbHNvIHR3ZWFrcyBsb2dpYyBmb3IgZGV0ZXJt
aW5pbmcgd2hldGhlciBzZWxlY3Rpb24gZ2VzdHVyZSByZWNvZ25pemVycyBzaG91bGQgZmlyZSB0
byBhY2NvdW50IGZvciBkYXRhCisgICAgICAgIGludGVyYWN0aW9uIC0tIGluIHBhcnRpY3VsYXIs
IHdlIGRvbid0IHdhbnQgc2VsZWN0aW9uIGdlc3R1cmUgcmVjb2duaXplcnMgdG8gY2F1c2UgdGhl
IGN1cnJlbnQgc2VsZWN0aW9uIHRvCisgICAgICAgIGNoYW5nZSB3aGlsZSBkYXRhIGludGVyYWN0
aW9uIGlzIHBvc3NpYmxlLiBTZWUgLWhhc1NlbGVjdGFibGVQb3NpdGlvbkF0UG9pbnQgYW5kIC1w
b2ludElzSW5Bc3Npc3RlZE5vZGUgZm9yCisgICAgICAgIG1vcmUgZGV0YWlscy4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJh
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzdGFydERhdGFJbnRlcmFj
dGlvbldpdGhJbWFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY3JlYXRlQW5kQ29uZmlndXJlTG9u
Z1ByZXNzR2VzdHVyZVJlY29nbml6ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXR1
cEludGVyYWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xlYW51cEludGVyYWN0
aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3JlbW92ZURlZmF1bHRHZXN0dXJlUmVj
b2duaXplcnNdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfYWRkRGVmYXVsdEdlc3R1cmVS
ZWNvZ25pemVyc10pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHJlc2lnbkZpcnN0UmVzcG9u
ZGVyXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZ2VzdHVyZVJlY29nbml6ZXI6c2hvdWxk
UmVjb2duaXplU2ltdWx0YW5lb3VzbHlXaXRoR2VzdHVyZVJlY29nbml6ZXI6XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgZ2VzdHVyZVJlY29nbml6ZXJTaG91bGRCZWdpbjpdKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBoYXNTZWxlY3RhYmxlUG9zaXRpb25BdFBvaW50Ol0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IHBvaW50SXNJbkRhdGFJbnRlcmFjdGlvbkNvbnRlbnQ6XSk6
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcG9pbnRJc0luQXNzaXN0ZWROb2RlOl0pOgorCiAy
MDE3LTAxLTI1ICBNYXR0IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KIAogICAgICAgICBOb3Rp
ZnkgY2xpZW50cyB3aGVuIHRoZSB1c2VyIHBsYXlzIG1lZGlhIG90aGVyd2lzZSBwcmV2ZW50ZWQg
ZnJvbSBhdXRvcGxheWluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGNjMjc3OWVlMDBjNDgzYWJkM2Q2ZmU3MmI3NmUwMjQ0ZTA1
YTVhNTIuLjBhYmRmMmEzODI4Zjg3ODE5YWU4YzNjM2UwMjBiYTQ0NzVmMzg1MzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY1
MTEsOCArNjUxMSw4IEBACiAJCUY0N0E1RTNFMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9s
bFNuYXBQb2ludHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0N0E1RTNCMTk1QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDdBNUUz
RjE5NUI4RTQ4MDA0ODMxMDAgLyogU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0N0E1RTNBMTk1QjhDOEEwMDQ4
MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuY3BwICovOyB9OwogCQlGNDgyMjMxMDFFMzg2
OUI4MDA2NkZDNzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0ODIyMzBFMUUzODY5QjgwMDY2RkM3
OSAvKiBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tICovOyB9OwotCQlGNDgyMjMxMTFFMzg2
OUI4MDA2NkZDNzkgLyogV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4MjIzMEYxRTM4NjlCODAwNjZGQzc5
IC8qIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCAqLzsgfTsKLQkJRjQ4MjIzMTMxRTM4NkUy
NDAwNjZGQzc5IC8qIEFic3RyYWN0UGFzdGVib2FyZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4MjIzMTIxRTM4NkUyNDAwNjZGQzc5IC8qIEFic3Ry
YWN0UGFzdGVib2FyZC5oICovOyB9OworCQlGNDgyMjMxMTFFMzg2OUI4MDA2NkZDNzkgLyogV2Vi
SXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ4MjIzMEYxRTM4NjlCODAwNjZGQzc5IC8qIFdlYkl0ZW1Qcm92aWRl
clBhc3RlYm9hcmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQlGNDgyMjMxMzFFMzg2RTI0MDA2NkZDNzkgLyogQWJzdHJhY3RQYXN0ZWJvYXJkLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDgyMjMxMjFF
Mzg2RTI0MDA2NkZDNzkgLyogQWJzdHJhY3RQYXN0ZWJvYXJkLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjRCRkI5ODUxRTFEREY5QjAwODYyQzI0
IC8qIER1bXBFZGl0aW5nSGlzdG9yeS5qcyBpbiBDb3B5IFNjcmlwdHMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ4Mzg5ODMxRTFEREYyQjAwNzZCN0VBIC8qIER1bXBFZGl0
aW5nSGlzdG9yeS5qcyAqLzsgfTsKIAkJRjRCRkI5ODYxRTFEREY5QjAwODYyQzI0IC8qIEVkaXRp
bmdIaXN0b3J5VXRpbC5qcyBpbiBDb3B5IFNjcmlwdHMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQ4Mzg5ODQxRTFEREYyQjAwNzZCN0VBIC8qIEVkaXRpbmdIaXN0b3J5VXRp
bC5qcyAqLzsgfTsKIAkJRjUwNjY0RjcxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MDY2
NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29udHJvbGxlci5jcHAgKi87IH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oCmluZGV4IDkzZGIxNmIyNGQ3
MWJiOGNlNDMwNjUyOGEzMTg1ZGNlOGQ3Nzk5NTAuLmJhNTQyNmY3Y2VkYmJkNWEyM2M2NTI1N2Rh
YjBhNDEzN2QxNzA5N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFz
dGVib2FyZC5oCkBAIC05Miw3ICs5Miw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPE5TUGFz
dGVib2FyZD4gbV9wYXN0ZWJvYXJkOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIFJl
dGFpblB0cjxVSVBhc3RlYm9hcmQ+IG1fcGFzdGVib2FyZDsKKyAgICBSZXRhaW5QdHI8aWQ+IG1f
cGFzdGVib2FyZDsKICNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykKICAgICBHdGtDbGlwYm9hcmQq
IG1fY2xpcGJvYXJkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bh
c3RlYm9hcmRJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElP
Uy5tbQppbmRleCA1ODYxMzkzZDdhZmI5ZWUwNDYyOGM0NTE0Mjk2ZjljNjFiZjYwOTFmLi4yYzA1
M2IxNDE0ODhlNDZmNGZjNzViMjA3ZDllMWMzNjY4ZjJjNWZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQpAQCAtMTUwLDkgKzE1MCwxNCBAQCBib29s
IFBhc3RlYm9hcmQ6OmNhblNtYXJ0UmVwbGFjZSgpCiB2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFz
dGVib2FyZFBsYWluVGV4dCYgdGV4dCkKIHsKICAgICBQYXN0ZWJvYXJkU3RyYXRlZ3kmIHN0cmF0
ZWd5ID0gKnBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKTsKKyAgICB0
ZXh0LnRleHQgPSBzdHJhdGVneS5yZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoMCwga1VUVHlwZVVS
TCwgbV9wYXN0ZWJvYXJkTmFtZSk7CisgICAgaWYgKCF0ZXh0LnRleHQuaXNOdWxsKCkgJiYgIXRl
eHQudGV4dC5pc0VtcHR5KCkpIHsKKyAgICAgICAgdGV4dC5pc1VSTCA9IHRydWU7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICB0ZXh0LnRleHQgPSBzdHJhdGVneS5yZWFkU3RyaW5nRnJv
bVBhc3RlYm9hcmQoMCwga1VUVHlwZVRleHQsIG1fcGFzdGVib2FyZE5hbWUpOwotICAgIGlmICh0
ZXh0LnRleHQuaXNFbXB0eSgpKQotICAgICAgICB0ZXh0LnRleHQgPSBzdHJhdGVneS5yZWFkU3Ry
aW5nRnJvbVBhc3RlYm9hcmQoMCwga1VUVHlwZVVSTCwgbV9wYXN0ZWJvYXJkTmFtZSk7CisgICAg
dGV4dC5pc1VSTCA9IGZhbHNlOwogfQogCiBzdGF0aWMgTlNBcnJheSogc3VwcG9ydGVkSW1hZ2VU
eXBlcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1Q
YXN0ZWJvYXJkSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFz
dGVib2FyZElPUy5tbQppbmRleCA0YTc2ZjQ1ZDMyZjY3YTI1ZmNiZDM1MDlhYmU0NjE0NzRiNGZh
MmY5Li42MzA3MWY5MWI4MGQzNDVhYWUzYWE1ZmM3ZmY4NDA0MzZmZWQ3NDk0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0K
QEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIlBhc3RlYm9hcmQuaCIKICNpbXBvcnQgIlNoYXJl
ZEJ1ZmZlci5oIgogI2ltcG9ydCAiU29mdExpbmtpbmcuaCIKKyNpbXBvcnQgIldlYkl0ZW1Qcm92
aWRlclBhc3RlYm9hcmQuaCIKICNpbXBvcnQgPE1vYmlsZUNvcmVTZXJ2aWNlcy9Nb2JpbGVDb3Jl
U2VydmljZXMuaD4KIAogU09GVF9MSU5LX0ZSQU1FV09SSyhVSUtpdCkKQEAgLTUzLDEzICs1NCwy
NSBAQCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OlBsYXRmb3JtUGFzdGVib2FyZCgpCiB7CiB9CiAKKyNp
ZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKK1BsYXRmb3JtUGFzdGVib2FyZDo6UGxhdGZvcm1Q
YXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICBpZiAobmFtZSA9PSAiZGF0YSBp
bnRlcmFjdGlvbiBwYXN0ZWJvYXJkIikKKyAgICAgICAgbV9wYXN0ZWJvYXJkID0gW1dlYkl0ZW1Q
cm92aWRlclBhc3RlYm9hcmQgc2hhcmVkSW5zdGFuY2VdOworICAgIGVsc2UKKyAgICAgICAgbV9w
YXN0ZWJvYXJkID0gW2dldFVJUGFzdGVib2FyZENsYXNzKCkgZ2VuZXJhbFBhc3RlYm9hcmRdOwor
fQorI2Vsc2UKIFBsYXRmb3JtUGFzdGVib2FyZDo6UGxhdGZvcm1QYXN0ZWJvYXJkKGNvbnN0IFN0
cmluZyYpCiAgICAgOiBtX3Bhc3RlYm9hcmQoW2dldFVJUGFzdGVib2FyZENsYXNzKCkgZ2VuZXJh
bFBhc3RlYm9hcmRdKQogewogfQorI2VuZGlmCiAKLXZvaWQgUGxhdGZvcm1QYXN0ZWJvYXJkOjpn
ZXRUeXBlcyhWZWN0b3I8U3RyaW5nPiYpCit2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6Z2V0VHlw
ZXMoVmVjdG9yPFN0cmluZz4mIHR5cGVzKQogeworICAgIGZvciAoTlNTdHJpbmcgKnBhc3RlYm9h
cmRUeXBlIGluIFttX3Bhc3RlYm9hcmQgcGFzdGVib2FyZFR5cGVzXSkKKyAgICAgICAgdHlwZXMu
YXBwZW5kKHBhc3RlYm9hcmRUeXBlKTsKIH0KIAogUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gUGxhdGZv
cm1QYXN0ZWJvYXJkOjpidWZmZXJGb3JUeXBlKGNvbnN0IFN0cmluZyYpCkBAIC0xNDUsNyArMTU4
LDkgQEAgdm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRXZWJD
b250ZW50JiBjb250ZW50KQogICAgICAgICBbcmVwcmVzZW50YXRpb25zIHNldFZhbHVlOmNvbnRl
bnQuZGF0YUluUlRGREZvcm1hdC0+Y3JlYXRlTlNEYXRhKCkuZ2V0KCkgZm9yS2V5OihOU1N0cmlu
ZyAqKWtVVFR5cGVGbGF0UlRGRF07CiAgICAgaWYgKGNvbnRlbnQuZGF0YUluUlRGRm9ybWF0KQog
ICAgICAgICBbcmVwcmVzZW50YXRpb25zIHNldFZhbHVlOmNvbnRlbnQuZGF0YUluUlRGRm9ybWF0
LT5jcmVhdGVOU0RhdGEoKS5nZXQoKSBmb3JLZXk6KE5TU3RyaW5nICopa1VUVHlwZVJURl07CisK
ICAgICBbcmVwcmVzZW50YXRpb25zIHNldFZhbHVlOmNvbnRlbnQuZGF0YUluU3RyaW5nRm9ybWF0
IGZvcktleTooTlNTdHJpbmcgKilrVVRUeXBlVGV4dF07CisgICAgW3JlcHJlc2VudGF0aW9ucyBz
ZXRWYWx1ZTpbKE5TU3RyaW5nICopY29udGVudC5kYXRhSW5TdHJpbmdGb3JtYXQgZGF0YVVzaW5n
RW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddIGZvcktleTooTlNTdHJpbmcgKilrVVRUeXBl
VVRGOFBsYWluVGV4dF07CiAgICAgW21fcGFzdGVib2FyZCBzZXRJdGVtczpAW3JlcHJlc2VudGF0
aW9ucy5nZXQoKV1dOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tCmluZGV4IDE2MDc3MGY2NGUzMTEzNDAx
M2FlNWYyZGQyNGJjNDQ2YzM3YzhkNDkuLjhiMGViM2Y2MmVhNGExZWY4MjgwZGI5YmY2ZjE2YzMx
YzVlYWQ5OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVt
UHJvdmlkZXJQYXN0ZWJvYXJkLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbXBvcnQg
IlNvZnRMaW5raW5nLmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2ltcG9ydCA8Rm91bmRhdGlv
bi9OU1Byb2dyZXNzLmg+CiAjaW1wb3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNl
cnZpY2VzLmg+CiAjaW1wb3J0IDxVSUtpdC9VSUNvbG9yLmg+CiAjaW1wb3J0IDxVSUtpdC9VSUlt
YWdlLmg+CkBAIC0xMzEsOCArMTMyLDEwIEBAIHN0YXRpYyBCT09MIGlzSW1hZ2VUeXBlKE5TU3Ry
aW5nICp0eXBlKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIFVJSXRlbVByb3ZpZGVy
ICppdGVtUHJvdmlkZXIgPSBbW2dldFVJSXRlbVByb3ZpZGVyQ2xhc3MoKSBhbGxvY10gaW5pdF07
CiAgICAgICAgIGZvciAoTlNTdHJpbmcgKnR5cGVJZGVudGlmaWVyIGluIGl0ZW0pIHsKLSAgICAg
ICAgICAgIFtpdGVtUHJvdmlkZXIgcmVnaXN0ZXJEYXRhUmVwcmVzZW50YXRpb25Gb3JUeXBlSWRl
bnRpZmllcjp0eXBlSWRlbnRpZmllciBsb2FkSGFuZGxlcjpeKFVJSXRlbVByb3ZpZGVyRGF0YUxv
YWRDb21wbGV0aW9uQmxvY2sgY29tcGxldGlvbkJsb2NrLCBOU0RpY3Rpb25hcnkgKikgeworICAg
ICAgICAgICAgW2l0ZW1Qcm92aWRlciByZWdpc3RlckRhdGFSZXByZXNlbnRhdGlvbkZvclR5cGVJ
ZGVudGlmaWVyOnR5cGVJZGVudGlmaWVyIG9wdGlvbnM6bmlsIGxvYWRIYW5kbGVyOl5OU1Byb2dy
ZXNzICooVUlJdGVtUHJvdmlkZXJEYXRhTG9hZENvbXBsZXRpb25CbG9jayBjb21wbGV0aW9uQmxv
Y2spCisgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY29tcGxldGlvbkJsb2NrKGl0ZW1b
dHlwZUlkZW50aWZpZXJdLCBuaWwpOworICAgICAgICAgICAgICAgIHJldHVybiBbTlNQcm9ncmVz
cyBkaXNjcmV0ZVByb2dyZXNzV2l0aFRvdGFsVW5pdENvdW50OjEwMF07CiAgICAgICAgICAgICB9
XTsKICAgICAgICAgfQogICAgICAgICBbcHJvdmlkZXJzIGFkZE9iamVjdDppdGVtUHJvdmlkZXJd
OwpAQCAtMTQ5LDcgKzE1Miw3IEBAIHN0YXRpYyBCT09MIGlzSW1hZ2VUeXBlKE5TU3RyaW5nICp0
eXBlKQogICAgICAgICBpZiAoIXByb3ZpZGVyKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAg
ICAgIE5TRGF0YSAqZGF0YSA9IFtwcm92aWRlciBjb3B5RGF0YVJlcHJlc2VudGF0aW9uRm9yVHlw
ZUlkZW50aWZpZXI6cGFzdGVib2FyZFR5cGUgb3B0aW9uczpuaWwgZXJyb3I6bmlsXTsKKyAgICAg
ICAgTlNEYXRhICpkYXRhID0gW3Byb3ZpZGVyIGNvcHlEYXRhUmVwcmVzZW50YXRpb25Gb3JUeXBl
SWRlbnRpZmllcjpwYXN0ZWJvYXJkVHlwZSBlcnJvcjpuaWxdOwogICAgICAgICBpZiAoZGF0YSkK
ICAgICAgICAgICAgIFt2YWx1ZXMgYWRkT2JqZWN0OmRhdGFdOwogICAgIH1dOwpAQCAtMTY1LDI4
ICsxNjgsMjkgQEAgc3RhdGljIEJPT0wgaXNJbWFnZVR5cGUoTlNTdHJpbmcgKnR5cGUpCiAgICAg
ICAgIGlmICghcHJvdmlkZXIpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKGlz
UmljaFRleHRUeXBlKHBhc3RlYm9hcmRUeXBlKSAmJiBbcHJvdmlkZXIgY2FuSW5zdGFudGlhdGVP
YmplY3RPZkNsYXNzOltOU0F0dHJpYnV0ZWRTdHJpbmcgY2xhc3NdXSkgewotICAgICAgICAgICAg
W3ZhbHVlcyBhZGRPYmplY3Q6W3Byb3ZpZGVyIGluc3RhbnRpYXRlT2JqZWN0T2ZDbGFzczpbTlNB
dHRyaWJ1dGVkU3RyaW5nIGNsYXNzXSBvcHRpb25zOm5pbCBlcnJvcjpuaWxdXTsKKyAgICAgICAg
Ly8gRklYTUU6IFRoZXNlIHNob3VsZCBiZSByZWZhY3RvcmVkIHRvIHVzZSBhc3luY2hyb25vdXMg
Y2FsbHMuCisgICAgICAgIGlmIChpc0NvbG9yVHlwZShwYXN0ZWJvYXJkVHlwZSkgJiYgW3Byb3Zp
ZGVyIGNhbkNyZWF0ZU9iamVjdE9mQ2xhc3M6W2dldFVJQ29sb3JDbGFzcygpIGNsYXNzXV0pIHsK
KyAgICAgICAgICAgIFt2YWx1ZXMgYWRkT2JqZWN0Oltwcm92aWRlciBjcmVhdGVPYmplY3RPZkNs
YXNzOltnZXRVSUNvbG9yQ2xhc3MoKSBjbGFzc10gZXJyb3I6bmlsXV07CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoaXNTdHJpbmdUeXBlKHBhc3RlYm9hcmRU
eXBlKSAmJiBbcHJvdmlkZXIgY2FuSW5zdGFudGlhdGVPYmplY3RPZkNsYXNzOltOU1N0cmluZyBj
bGFzc11dKSB7Ci0gICAgICAgICAgICBbdmFsdWVzIGFkZE9iamVjdDpbcHJvdmlkZXIgaW5zdGFu
dGlhdGVPYmplY3RPZkNsYXNzOltOU1N0cmluZyBjbGFzc10gb3B0aW9uczpuaWwgZXJyb3I6bmls
XV07CisgICAgICAgIGlmIChpc0ltYWdlVHlwZShwYXN0ZWJvYXJkVHlwZSkgJiYgW3Byb3ZpZGVy
IGNhbkNyZWF0ZU9iamVjdE9mQ2xhc3M6W2dldFVJSW1hZ2VDbGFzcygpIGNsYXNzXV0pIHsKKyAg
ICAgICAgICAgIFt2YWx1ZXMgYWRkT2JqZWN0Oltwcm92aWRlciBjcmVhdGVPYmplY3RPZkNsYXNz
OltnZXRVSUltYWdlQ2xhc3MoKSBjbGFzc10gZXJyb3I6bmlsXV07CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoaXNDb2xvclR5cGUocGFzdGVib2FyZFR5cGUp
ICYmIFtwcm92aWRlciBjYW5JbnN0YW50aWF0ZU9iamVjdE9mQ2xhc3M6W2dldFVJQ29sb3JDbGFz
cygpIGNsYXNzXV0pIHsKLSAgICAgICAgICAgIFt2YWx1ZXMgYWRkT2JqZWN0Oltwcm92aWRlciBp
bnN0YW50aWF0ZU9iamVjdE9mQ2xhc3M6W2dldFVJQ29sb3JDbGFzcygpIGNsYXNzXSBvcHRpb25z
Om5pbCBlcnJvcjpuaWxdXTsKKyAgICAgICAgaWYgKGlzVVJMVHlwZShwYXN0ZWJvYXJkVHlwZSkg
JiYgW3Byb3ZpZGVyIGNhbkNyZWF0ZU9iamVjdE9mQ2xhc3M6W05TVVJMIGNsYXNzXV0pIHsKKyAg
ICAgICAgICAgIFt2YWx1ZXMgYWRkT2JqZWN0Oltwcm92aWRlciBjcmVhdGVPYmplY3RPZkNsYXNz
OltOU1VSTCBjbGFzc10gZXJyb3I6bmlsXV07CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KIAotICAgICAgICBpZiAoaXNVUkxUeXBlKHBhc3RlYm9hcmRUeXBlKSAmJiBbcHJvdmlkZXIg
Y2FuSW5zdGFudGlhdGVPYmplY3RPZkNsYXNzOltOU1VSTCBjbGFzc11dKSB7Ci0gICAgICAgICAg
ICBbdmFsdWVzIGFkZE9iamVjdDpbcHJvdmlkZXIgaW5zdGFudGlhdGVPYmplY3RPZkNsYXNzOltO
U1VSTCBjbGFzc10gb3B0aW9uczpuaWwgZXJyb3I6bmlsXV07CisgICAgICAgIGlmIChpc1JpY2hU
ZXh0VHlwZShwYXN0ZWJvYXJkVHlwZSkgJiYgW3Byb3ZpZGVyIGNhbkNyZWF0ZU9iamVjdE9mQ2xh
c3M6W05TQXR0cmlidXRlZFN0cmluZyBjbGFzc11dKSB7CisgICAgICAgICAgICBbdmFsdWVzIGFk
ZE9iamVjdDpbcHJvdmlkZXIgY3JlYXRlT2JqZWN0T2ZDbGFzczpbTlNBdHRyaWJ1dGVkU3RyaW5n
IGNsYXNzXSBlcnJvcjpuaWxdXTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0g
ICAgICAgIGlmIChpc0ltYWdlVHlwZShwYXN0ZWJvYXJkVHlwZSkgJiYgW3Byb3ZpZGVyIGNhbklu
c3RhbnRpYXRlT2JqZWN0T2ZDbGFzczpbZ2V0VUlJbWFnZUNsYXNzKCkgY2xhc3NdXSkgewotICAg
ICAgICAgICAgW3ZhbHVlcyBhZGRPYmplY3Q6W3Byb3ZpZGVyIGluc3RhbnRpYXRlT2JqZWN0T2ZD
bGFzczpbZ2V0VUlJbWFnZUNsYXNzKCkgY2xhc3NdIG9wdGlvbnM6bmlsIGVycm9yOm5pbF1dOwor
ICAgICAgICBpZiAoaXNTdHJpbmdUeXBlKHBhc3RlYm9hcmRUeXBlKSAmJiBbcHJvdmlkZXIgY2Fu
Q3JlYXRlT2JqZWN0T2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSkgeworICAgICAgICAgICAgW3Zh
bHVlcyBhZGRPYmplY3Q6W3Byb3ZpZGVyIGNyZWF0ZU9iamVjdE9mQ2xhc3M6W05TU3RyaW5nIGNs
YXNzXSBlcnJvcjpuaWxdXTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRl
eCA4YjdiNjY1MTU1Mjg1OWVjZWMzODE4N2IzMjc4ZGQ1NWM1ZjViOGY3Li41ZTU1ODFmNjhhZTBh
ZjFiZGU3MjU0ODYyMzE2ZTY2MGRlOGM5NmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTc2NSwxMCArNzY1LDEyIEBAIFJl
ZjxWYWxpZGF0aW9uQnViYmxlPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlVmFsaWRhdGlvbkJ1YmJs
ZShjb25zdCBTdHJpbmcmIG1lc3NhCiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiB2b2lk
IFBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJh
dGlvbigpCiB7CisgICAgW21fY29udGVudFZpZXcgX2RpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25D
b250cm9sbGVyT3BlcmF0aW9uXTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6c3RhcnREYXRh
SW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0
aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2UsIGJvb2wgaXNMaW5rKQor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6c3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2UoY29uc3Qg
SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYg
aW1hZ2UsIGJvb2wgaXNMaW5rKQogeworICAgIFttX2NvbnRlbnRWaWV3IF9zdGFydERhdGFJbnRl
cmFjdGlvbldpdGhJbWFnZTpTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShpbWFnZSktPm1ha2VDR0lt
YWdlQ29weSgpIGF0Q2xpZW50UG9zaXRpb246Q0dQb2ludE1ha2UoY2xpZW50UG9zaXRpb24ueCgp
LCBjbGllbnRQb3NpdGlvbi55KCkpIGlzTGluazppc0xpbmtdOwogfQogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oCmluZGV4IGY0OGQ2N2UxNmNhNzUwNmE5Y2IyMmY1YzZlMjYzMzUzNGZmNDczMjEuLjhm
NWNiYWI2OTYxOGQ2NjJiNjNlMTdmOWUxMDNhOTBjMTVmZWJlYjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApA
QCAtNDQsNiArNDQsMTAgQEAKICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KICNpbXBvcnQgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykgJiYgX19oYXNf
aW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbkFkZGl0aW9u
cy5oPikKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb25B
ZGRpdGlvbnMuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIE9wZW5QYW5lbFBh
cmFtZXRlcnM7CiB9CkBAIC0xNzksMTEgKzE4MywyMiBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlv
bkRhdGEgewogCiAgICAgQk9PTCBfcmVzaWduaW5nRmlyc3RSZXNwb25kZXI7CiAgICAgQk9PTCBf
bmVlZHNEZWZlcnJlZEVuZFNjcm9sbGluZ1NlbGVjdGlvblVwZGF0ZTsKKworI2lmIEVOQUJMRShE
QVRBX0lOVEVSQUNUSU9OKQorICAgIFJldGFpblB0cjxVSUxvbmdQcmVzc0dlc3R1cmVSZWNvZ25p
emVyPiBfZGF0YUludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXI7CisgICAgUmV0YWluUHRyPFVJ
SW1hZ2U+IF9jdXJyZW50RGF0YUludGVyYWN0aW9uSW1hZ2U7CisgICAgQ0dQb2ludCBfY3VycmVu
dERhdGFJbnRlcmFjdGlvbk9yaWdpbjsKKyAgICBCT09MIF9zaG91bGRIYW5kbGVMb25nUHJlc3NB
Y3Rpb25BZnRlckRhdGFJbnRlcmFjdGlvbjsKKyNlbmRpZgogfQogCiBAZW5kCiAKLUBpbnRlcmZh
Y2UgV0tDb250ZW50VmlldyAoV0tJbnRlcmFjdGlvbikgPFVJR2VzdHVyZVJlY29nbml6ZXJEZWxl
Z2F0ZSwgVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGUsIFVJVGV4dElu
cHV0UHJpdmF0ZSwgVUlXZWJGb3JtQWNjZXNzb3J5RGVsZWdhdGUsIFVJV0tJbnRlcmFjdGlvblZp
ZXdQcm90b2NvbCwgV0tGaWxlVXBsb2FkUGFuZWxEZWxlZ2F0ZSwgV0tBY3Rpb25TaGVldEFzc2lz
dGFudERlbGVnYXRlPgorQGludGVyZmFjZSBXS0NvbnRlbnRWaWV3IChXS0ludGVyYWN0aW9uKSA8
VUlHZXN0dXJlUmVjb2duaXplckRlbGVnYXRlLCBVSVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29n
bml6ZXJEZWxlZ2F0ZSwgVUlUZXh0SW5wdXRQcml2YXRlLCBVSVdlYkZvcm1BY2Nlc3NvcnlEZWxl
Z2F0ZSwgVUlXS0ludGVyYWN0aW9uVmlld1Byb3RvY29sLCBXS0ZpbGVVcGxvYWRQYW5lbERlbGVn
YXRlLCBXS0FjdGlvblNoZWV0QXNzaXN0YW50RGVsZWdhdGUKKyNpZiBFTkFCTEUoREFUQV9JTlRF
UkFDVElPTikKKyAgICAsIFdLVmlld0RhdGFJbnRlcmFjdGlvblNvdXJjZURlbGVnYXRlLCBXS0Rh
dGFJbnRlcmFjdGlvblNlc3Npb25EZWxlZ2F0ZSwgV0tWaWV3RGF0YUludGVyYWN0aW9uRGVzdGlu
YXRpb25EZWxlZ2F0ZSwgV0tEYXRhSW50ZXJhY3Rpb25JdGVtVmlzdWFsVGFyZ2V0CisjZW5kaWYK
Kz4KIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1BvaW50IGxhc3RJbnRlcmFj
dGlvbkxvY2F0aW9uOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIGlzRWRp
dGFibGU7CkBAIC0yMzIsNiArMjQ3LDEyIEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7
CiAtIChOU0FycmF5ICopX2RhdGFEZXRlY3Rpb25SZXN1bHRzOwogLSAoTlNBcnJheTxOU1ZhbHVl
ICo+ICopX3VpVGV4dFNlbGVjdGlvblJlY3RzOwogLSAodm9pZClhY2Nlc3NpYmlsaXR5UmV0cmll
dmVTcGVha1NlbGVjdGlvbkNvbnRlbnQ7CisKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikK
Ky0gKHZvaWQpX2RpZFBlcmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uOwor
LSAodm9pZClfc3RhcnREYXRhSW50ZXJhY3Rpb25XaXRoSW1hZ2U6KFJldGFpblB0cjxDR0ltYWdl
UmVmPilpbWFnZSBhdENsaWVudFBvc2l0aW9uOihDR1BvaW50KWNsaWVudFBvc2l0aW9uIGlzTGlu
azooQk9PTClpc0xpbms7CisjZW5kaWYKKwogQGVuZAogCiBAaW50ZXJmYWNlIFdLQ29udGVudFZp
ZXcgKFdLVGVzdGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggNzJlOGNkOWFhZTNjMzI0ZDM5MWM1
YWU4NzliOWFmOGY0M2QyZjY0ZC4uYTBmOGZiODI5ZTdhOTYwNWMzMTI0YjQ1NmYxMjlhMjZlZDI1
MzkxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTY3LDYgKzY3LDcgQEAKICNpbXBvcnQgPFdlYkNv
cmUvRGF0YURldGVjdG9yc0NvcmVTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvRGF0YURldGVjdG9y
c1VJU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UXVhZC5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1BhdGguaD4KICNpbXBvcnQgPFdlYkNvcmUvUGF0aFV0aWxpdGllcy5oPgpA
QCAtODAsNiArODEsMTEgQEAKICNpbXBvcnQgPFdlYktpdC9XZWJTZWxlY3Rpb25SZWN0Lmg+IC8v
IEZJWE1FOiBXSzIgc2hvdWxkIG5vdCBpbmNsdWRlIFdlYktpdCBoZWFkZXJzIQogI2ltcG9ydCA8
d3RmL1JldGFpblB0ci5oPgogCisjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisjaW1wb3J0
IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJJdGVt
UHJvdmlkZXJQYXN0ZWJvYXJkLmg+CisjZW5kaWYKKwogQGludGVyZmFjZSBVSUV2ZW50KFVJRXZl
bnRJbnRlcm5hbCkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIFVJS2V5Ym9hcmRJbnB1
dEZsYWdzIF9pbnB1dEZsYWdzOwogQGVuZApAQCAtNDkzLDYgKzQ5OSwxMCBAQCBjb25zdCBDR0Zs
b2F0IG1pbmltdW1UYXBIaWdobGlnaHRSYWRpdXMgPSAyLjA7CiAKIEBpbXBsZW1lbnRhdGlvbiBX
S0NvbnRlbnRWaWV3IChXS0ludGVyYWN0aW9uKQogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykgJiYgX19oYXNfaW5jbHVkZSg8V2ViS2l0QWRkaXRpb25zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbkFkZGl0aW9ucy5tbT4pCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uQWRkaXRpb25zLm1tPgorI2VuZGlmCisKIHN0YXRpYyBVSVdlYlNlbGVjdGlv
bk1vZGUgdG9VSVdlYlNlbGVjdGlvbk1vZGUoV0tTZWxlY3Rpb25HcmFudWxhcml0eSBncmFudWxh
cml0eSkKIHsKICAgICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CkBAIC01MTUsNiArNTI1LDE1IEBA
IHN0YXRpYyBVSVdlYlNlbGVjdGlvbk1vZGUgdG9VSVdlYlNlbGVjdGlvbk1vZGUoV0tTZWxlY3Rp
b25HcmFudWxhcml0eSBncmFudWxhcml0CiAgICAgW19zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXpl
ciByZXF1aXJlR2VzdHVyZVJlY29nbml6ZXJUb0ZhaWw6X2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25p
emVyLmdldCgpXTsKIH0KIAorLSAodm9pZClfY3JlYXRlQW5kQ29uZmlndXJlTG9uZ1ByZXNzR2Vz
dHVyZVJlY29nbml6ZXIKK3sKKyAgICBfbG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9w
dE5TKFtbVUlMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhUYXJnZXQ6
c2VsZiBhY3Rpb246QHNlbGVjdG9yKF9sb25nUHJlc3NSZWNvZ25pemVkOildKTsKKyAgICBbX2xv
bmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyIHNldERlbGF5OnRhcEFuZEhvbGREZWxheV07CisgICAg
W19sb25nUHJlc3NHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpzZWxmXTsKKyAgICBbX2xv
bmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyIF9zZXRSZXF1aXJlc1F1aWV0SW1wdWxzZTpZRVNdOwor
ICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9sb25nUHJlc3NHZXN0dXJlUmVjb2duaXpl
ci5nZXQoKV07Cit9CisKIC0gKHZvaWQpc2V0dXBJbnRlcmFjdGlvbgogewogICAgIGlmICghX2lu
dGVyYWN0aW9uVmlld3NDb250YWluZXJWaWV3KSB7CkBAIC01NTcsMTEgKzU3NiwxNiBAQCBzdGF0
aWMgVUlXZWJTZWxlY3Rpb25Nb2RlIHRvVUlXZWJTZWxlY3Rpb25Nb2RlKFdLU2VsZWN0aW9uR3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdAogICAgIFtfaGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29n
bml6ZXIgc2V0RGVsZWdhdGU6c2VsZl07CiAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6
X2hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKIAotICAgIF9sb25n
UHJlc3NHZXN0dXJlUmVjb2duaXplciA9IGFkb3B0TlMoW1tVSUxvbmdQcmVzc0dlc3R1cmVSZWNv
Z25pemVyIGFsbG9jXSBpbml0V2l0aFRhcmdldDpzZWxmIGFjdGlvbjpAc2VsZWN0b3IoX2xvbmdQ
cmVzc1JlY29nbml6ZWQ6KV0pOwotICAgIFtfbG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgc2V0
RGVsYXk6dGFwQW5kSG9sZERlbGF5XTsKLSAgICBbX2xvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVy
IHNldERlbGVnYXRlOnNlbGZdOwotICAgIFtfbG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgX3Nl
dFJlcXVpcmVzUXVpZXRJbXB1bHNlOllFU107Ci0gICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6
ZXI6X2xvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKKyAgICBbc2VsZiBfY3JlYXRl
QW5kQ29uZmlndXJlTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXJdOworCisjaWYgRU5BQkxFKERB
VEFfSU5URVJBQ1RJT04pCisgICAgX2RhdGFJbnRlcmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyID0g
YWRvcHROUyhbW1VJTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgYWxsb2NdIGluaXRXaXRoVGFy
Z2V0OnNlbGYgYWN0aW9uOkBzZWxlY3RvcihfZGF0YUludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6
ZXI6KV0pOworICAgIFtfZGF0YUludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgc2V0RGVsYXk6
MC4yNV07CisgICAgW19kYXRhSW50ZXJhY3Rpb25HZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0
ZTpzZWxmXTsKKyAgICBbX2RhdGFJbnRlcmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyIF9zZXRSZXF1
aXJlc1F1aWV0SW1wdWxzZTpZRVNdOworICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9k
YXRhSW50ZXJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQoKV07CisgICAgW3NlbGYgc2V0dXBE
YXRhSW50ZXJhY3Rpb25EZWxlZ2F0ZXNdOworI2VuZGlmCiAKICAgICBfdHdvRmluZ2VyU2luZ2xl
VGFwR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5TKFtbVUlUYXBHZXN0dXJlUmVjb2duaXplciBh
bGxvY10gaW5pdFdpdGhUYXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKF90d29GaW5nZXJTaW5n
bGVUYXBHZXN0dXJlUmVjb2duaXplZDopXSk7CiAgICAgW190d29GaW5nZXJTaW5nbGVUYXBHZXN0
dXJlUmVjb2duaXplciBzZXRBbGxvd2FibGVNb3ZlbWVudDo2MF07CkBAIC02MzcsNiArNjYxLDEy
IEBAIHN0YXRpYyBVSVdlYlNlbGVjdGlvbk1vZGUgdG9VSVdlYlNlbGVjdGlvbk1vZGUoV0tTZWxl
Y3Rpb25HcmFudWxhcml0eSBncmFudWxhcml0CiAgICAgW190d29GaW5nZXJTaW5nbGVUYXBHZXN0
dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpuaWxdOwogICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVS
ZWNvZ25pemVyOl90d29GaW5nZXJTaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAK
KyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKKyAgICBbX2RhdGFJbnRlcmFjdGlvbkdlc3R1
cmVSZWNvZ25pemVyIHNldERlbGVnYXRlOm5pbF07CisgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJl
Y29nbml6ZXI6X2RhdGFJbnRlcmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKKyAgICBb
c2VsZiB0ZWFyZG93bkRhdGFJbnRlcmFjdGlvbkRlbGVnYXRlc107CisjZW5kaWYKKwogICAgIF9p
bnNwZWN0b3JOb2RlU2VhcmNoRW5hYmxlZCA9IE5POwogICAgIGlmIChfaW5zcGVjdG9yTm9kZVNl
YXJjaEdlc3R1cmVSZWNvZ25pemVyKSB7CiAgICAgICAgIFtfaW5zcGVjdG9yTm9kZVNlYXJjaEdl
c3R1cmVSZWNvZ25pemVyIHNldERlbGVnYXRlOm5pbF07CkBAIC02NjQsNiArNjk0LDkgQEAgc3Rh
dGljIFVJV2ViU2VsZWN0aW9uTW9kZSB0b1VJV2ViU2VsZWN0aW9uTW9kZShXS1NlbGVjdGlvbkdy
YW51bGFyaXR5IGdyYW51bGFyaXQKICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpf
bm9uQmxvY2tpbmdEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAgICAgW3NlbGYg
cmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6X3R3b0ZpbmdlckRvdWJsZVRhcEdlc3R1cmVSZWNvZ25p
emVyLmdldCgpXTsKICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfdHdvRmluZ2Vy
U2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOworI2lmIEVOQUJMRShEQVRBX0lOVEVS
QUNUSU9OKQorICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9kYXRhSW50ZXJhY3Rp
b25HZXN0dXJlUmVjb2duaXplci5nZXQoKV07CisjZW5kaWYKIH0KIAogLSAodm9pZClfYWRkRGVm
YXVsdEdlc3R1cmVSZWNvZ25pemVycwpAQCAtNjc1LDYgKzcwOCw5IEBAIHN0YXRpYyBVSVdlYlNl
bGVjdGlvbk1vZGUgdG9VSVdlYlNlbGVjdGlvbk1vZGUoV0tTZWxlY3Rpb25HcmFudWxhcml0eSBn
cmFudWxhcml0CiAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6X25vbkJsb2NraW5nRG91
YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwogICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNv
Z25pemVyOl90d29GaW5nZXJEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAgICAg
W3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6X3R3b0ZpbmdlclNpbmdsZVRhcEdlc3R1cmVSZWNv
Z25pemVyLmdldCgpXTsKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKKyAgICBbc2VsZiBh
ZGRHZXN0dXJlUmVjb2duaXplcjpfZGF0YUludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuZ2V0
KCldOworI2VuZGlmCiB9CiAKIC0gKFVJVmlldyopdW5zY2FsZWRWaWV3CkBAIC04MTIsNiArODQ4
LDkgQEAgc3RhdGljIFVJV2ViU2VsZWN0aW9uTW9kZSB0b1VJV2ViU2VsZWN0aW9uTW9kZShXS1Nl
bGVjdGlvbkdyYW51bGFyaXR5IGdyYW51bGFyaXQKIAogLSAoQk9PTClyZXNpZ25GaXJzdFJlc3Bv
bmRlcgogeworI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQorICAgIF9zaG91bGRIYW5kbGVM
b25nUHJlc3NBY3Rpb25BZnRlckRhdGFJbnRlcmFjdGlvbiA9IE5POworI2VuZGlmCiAgICAgLy8g
RklYTUU6IE1heWJlIHdlIHNob3VsZCBjYWxsIHJlc2lnbkZpcnN0UmVzcG9uZGVyIG9uIHRoZSBz
dXBlcmNsYXNzCiAgICAgLy8gYW5kIGRvIG5vdGhpbmcgaWYgdGhlIHJldHVybiB2YWx1ZSBpcyBO
Ty4KIApAQCAtMTE5MCw2ICsxMjI5LDE0IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NhbWVQYWly
KFVJR2VzdHVyZVJlY29nbml6ZXIgKmEsIFVJR2VzdHVyZVJlY29nbml6ZXIgKmIsIFVJCiAgICAg
aWYgKGlzU2FtZVBhaXIoZ2VzdHVyZVJlY29nbml6ZXIsIG90aGVyR2VzdHVyZVJlY29nbml6ZXIs
IF9oaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5nZXQoKSwgX3ByZXZpZXdHZXN0
dXJlUmVjb2duaXplci5nZXQoKSkpCiAgICAgICAgIHJldHVybiBZRVM7CiAKKyNpZiBFTkFCTEUo
REFUQV9JTlRFUkFDVElPTikKKyAgICBpZiAoaXNTYW1lUGFpcihnZXN0dXJlUmVjb2duaXplciwg
b3RoZXJHZXN0dXJlUmVjb2duaXplciwgX2hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25p
emVyLmdldCgpLCBfZGF0YUludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCkpKQorICAg
ICAgICByZXR1cm4gWUVTOworCisgICAgaWYgKGlzU2FtZVBhaXIoZ2VzdHVyZVJlY29nbml6ZXIs
IG90aGVyR2VzdHVyZVJlY29nbml6ZXIsIF9sb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5nZXQo
KSwgX2RhdGFJbnRlcmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgpKSkKKyAgICAgICAgcmV0
dXJuIFlFUzsKKyNlbmRpZgorCiAgICAgcmV0dXJuIE5POwogfQogCkBAIC0xMzYwLDYgKzE0MDcs
MTEgQEAgc3RhdGljIGlubGluZSBib29sIGlzU2FtZVBhaXIoVUlHZXN0dXJlUmVjb2duaXplciAq
YSwgVUlHZXN0dXJlUmVjb2duaXplciAqYiwgVUkKICAgICAgICAgfQogICAgIH0KIAorI2lmIEVO
QUJMRShEQVRBX0lOVEVSQUNUSU9OKQorICAgIGlmIChnZXN0dXJlUmVjb2duaXplciA9PSBfZGF0
YUludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIpCisgICAgICAgIHJldHVybiBbc2VsZiBwb2lu
dElzSW5EYXRhSW50ZXJhY3Rpb25Db250ZW50OnBvaW50XTsKKyNlbmRpZgorCiAgICAgcmV0dXJu
IFlFUzsKIH0KIApAQCAtMTM5MCw5ICsxNDQyLDM3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1Nh
bWVQYWlyKFVJR2VzdHVyZVJlY29nbml6ZXIgKmEsIFVJR2VzdHVyZVJlY29nbml6ZXIgKmIsIFVJ
CiAKICAgICBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0KHJvdW5kZWRJbnRQ
b2ludChwb2ludCkpOwogICAgIFtzZWxmIGVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9E
YXRlOnJlcXVlc3RdOworCisjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisgICAgaWYgKF9w
b3NpdGlvbkluZm9ybWF0aW9uLmhhc0RhdGFJbnRlcmFjdGlvbkF0UG9zaXRpb24pIHsKKyAgICAg
ICAgLy8gSWYgdGhlIHBvc2l0aW9uIG1pZ2h0IGluaXRpYXRlIGEgZGF0YSBpbnRlcmFjdGlvbiwg
d2UgZG9uJ3Qgd2FudCB0byBjb25zaWRlciB0aGUgY29udGVudCBhdCB0aGlzIHBvc2l0aW9uIHRv
IGJlIHNlbGVjdGFibGUuCisgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSByZW5hbWVk
IHRvIHNvbWV0aGluZyBtb3JlIHByZWNpc2UsIHN1Y2ggYXMgdGV4dFNlbGVjdGlvblNob3VsZFJl
Y29nbml6ZUdlc3R1cmVBdFBvaW50OgorICAgICAgICByZXR1cm4gTk87CisgICAgfQorI2VuZGlm
CisKICAgICByZXR1cm4gX3Bvc2l0aW9uSW5mb3JtYXRpb24uaXNTZWxlY3RhYmxlOwogfQogCisj
aWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisKKy0gKEJPT0wpcG9pbnRJc0luRGF0YUludGVy
YWN0aW9uQ29udGVudDooQ0dQb2ludClwb2ludAoreworICAgIEludGVyYWN0aW9uSW5mb3JtYXRp
b25SZXF1ZXN0IHJlcXVlc3Qocm91bmRlZEludFBvaW50KHBvaW50KSk7CisgICAgW3NlbGYgZW5z
dXJlUG9zaXRpb25JbmZvcm1hdGlvbklzVXBUb0RhdGU6cmVxdWVzdF07CisKKyAgICBpZiAoX3Bv
c2l0aW9uSW5mb3JtYXRpb24uaXNJbWFnZSkKKyAgICAgICAgcmV0dXJuIFlFUzsKKworICAgIC8v
IEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgbGlua3MuCisgICAgaWYgKF9wb3NpdGlvbkluZm9ybWF0
aW9uLmlzTGluaykKKyAgICAgICAgcmV0dXJuIE5POworCisgICAgcmV0dXJuIF9wb3NpdGlvbklu
Zm9ybWF0aW9uLmhhc0RhdGFJbnRlcmFjdGlvbkF0UG9zaXRpb247Cit9CisKKyNlbmRpZgorCiAt
IChCT09MKXBvaW50SXNOZWFyTWFya2VkVGV4dDooQ0dQb2ludClwb2ludAogewogICAgIEludGVy
YWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHJlcXVlc3Qocm91bmRlZEludFBvaW50KHBvaW50KSk7
CkBAIC0xNDA0LDYgKzE0ODQsMTUgQEAgc3RhdGljIGlubGluZSBib29sIGlzU2FtZVBhaXIoVUlH
ZXN0dXJlUmVjb2duaXplciAqYSwgVUlHZXN0dXJlUmVjb2duaXplciAqYiwgVUkKIHsKICAgICBJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0KHJvdW5kZWRJbnRQb2ludChwb2lu
dCkpOwogICAgIFtzZWxmIGVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOnJlcXVl
c3RdOworCisjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisgICAgaWYgKF9wb3NpdGlvbklu
Zm9ybWF0aW9uLmhhc0RhdGFJbnRlcmFjdGlvbkF0UG9zaXRpb24pIHsKKyAgICAgICAgLy8gSWYg
dGhlIHBvc2l0aW9uIG1pZ2h0IGluaXRpYXRlIGRhdGEgaW50ZXJhY3Rpb24sIHdlIGRvbid0IHdh
bnQgdG8gY2hhbmdlIHRoZSBzZWxlY3Rpb24uCisgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCBiZSByZW5hbWVkIHRvIHNvbWV0aGluZyBtb3JlIHByZWNpc2UsIHN1Y2ggYXMgdGV4dEludGVy
YWN0aW9uU2hvdWxkUmVjb2duaXplR2VzdHVyZUF0UG9pbnQ6CisgICAgICAgIHJldHVybiBOTzsK
KyAgICB9CisjZW5kaWYKKwogICAgIHJldHVybiBfcG9zaXRpb25JbmZvcm1hdGlvbi5ub2RlQXRQ
b3NpdGlvbklzQXNzaXN0ZWROb2RlOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>