<?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>130945</bug_id>
          
          <creation_ts>2014-03-30 13:13:23 -0700</creation_ts>
          <short_desc>[Cocoa] Add an originatingWebView property to _WKDownload</short_desc>
          <delta_ts>2014-03-30 19:38:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>benjamin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>995676</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-03-30 13:13:23 -0700</bug_when>
    <thetext>[Cocoa] Add an originatingWebView property to _WKDownload</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995677</commentid>
    <comment_count>1</comment_count>
      <attachid>228129</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-03-30 13:21:38 -0700</bug_when>
    <thetext>Created attachment 228129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995688</commentid>
    <comment_count>2</comment_count>
      <attachid>228129</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-03-30 15:08:23 -0700</bug_when>
    <thetext>Comment on attachment 228129
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/Download.mm:248
&gt; +    _webView.clear();

Please use = nullptr here instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995689</commentid>
    <comment_count>3</comment_count>
      <attachid>228133</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-03-30 15:25:36 -0700</bug_when>
    <thetext>Created attachment 228133
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995690</commentid>
    <comment_count>4</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-03-30 15:27:42 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 228129 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=228129&amp;action=review
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2Cocoa/Download.mm:248
&gt; &gt; +    _webView.clear();
&gt; 
&gt; Please use = nullptr here instead.

Thanks! Will do.

I uploaded a new patch before I saw your review, but the only difference is that I&apos;m initializing allowOverwrite to NO in DownloadClient::decideDestinationWithSuggestedFilename().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995691</commentid>
    <comment_count>5</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-03-30 15:34:24 -0700</bug_when>
    <thetext>Committed r166466: &lt;http://trac.webkit.org/changeset/166466&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995710</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-03-30 19:24:54 -0700</bug_when>
    <thetext>Two APIs tests are failing after this. Can you please have a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995713</commentid>
    <comment_count>7</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-03-30 19:38:36 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Two APIs tests are failing after this. Can you please have a look?

http://trac.webkit.org/changeset/166470 should fix them.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228129</attachid>
            <date>2014-03-30 13:21:38 -0700</date>
            <delta_ts>2014-03-30 15:25:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130945-20140330132118.patch</filename>
            <type>text/plain</type>
            <size>19392</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2NDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMWUxM2Y4Yzg4MmYzZjI0
ODg4NjYyNDAyZWMwOGMwZmY4M2I5ZjMyZS4uMDM0MjcyMWRlMGE3MDE3OTA4ZDY3NWNjMGJjZDc3
YzNhMTkzODE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE0LTAzLTMwICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEFkZCBhbiBvcmln
aW5hdGluZ1dlYlZpZXcgcHJvcGVydHkgdG8gX1dLRG93bmxvYWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDk0NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBpbml0V2l0aEZyYW1lOmNvbmZpZ3VyYXRp
b246XSk6IFBhc3NlZCBzZWxmIHRvIFdLVmlldydzIGluaXRpYWxpemVyLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQuaDogRGVjbGFyZWQgb3JpZ2luYXRpbmdXZWJW
aWV3IGFzIGEgd2VhaywgcmVhZG9ubHkgcHJvcGVydHkuCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tEb3dubG9hZC5tbToKKyAgICAgICAgKC1bX1dLRG93bmxvYWQgb3JpZ2luYXRp
bmdXZWJWaWV3XSk6CisgICAgICAgICgtW19XS0Rvd25sb2FkIHNldE9yaWdpbmF0aW5nV2ViVmll
dzpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkSW50ZXJuYWwu
aDogUmUtZGVjbGFyZWQgb3JpZ2luYXRpbmdXZWJWaWV3IGFzIHJlYWR3cml0ZSBzbyB0aGF0Cisg
ICAgICAgIFBhZ2VDbGllbnRJbXBsIGNhbiBjYWxsIHNldE9yaWdpbmF0aW5nV2ViVmlldzouIFJl
bW92ZWQgc29tZSBkZWFkIGNvZGUuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgaW5pdFdpdGhGcmFtZTpjb250ZXh0OmNvbmZpZ3VyYXRp
b246d2ViVmlldzpdKTogVXBkYXRlZCB0byBhY2NlcHQgYSB3ZWJWaWV3IHBhcmFtZXRlci4KKyAg
ICAgICAgKC1bV0tWaWV3IGluaXRXaXRoRnJhbWU6Y29udGV4dFJlZjpwYWdlR3JvdXBSZWY6cmVs
YXRlZFRvUGFnZTpdKTogUGFzc2VkIG5pbCBmb3IgdGhlIHdlYlZpZXcgcGFyYW1ldGVyLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaDogSW5jbHVkZWQgaGFuZGxlRG93bmxvYWRSZXF1ZXN0KCkgb24g
YWxsIHBsYXRmb3Jtcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKTogRGl0
dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlRG93bmxvYWRSZXF1ZXN0
KTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOiBEaXR0by4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OmhhbmRsZURvd25sb2FkUmVxdWVzdCk6IENhbGxlZCAtW19XS0Rvd25sb2FkIHNl
dE9yaWdpbmF0aW5nV2ViVmlldzpdLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGwuaDogQWRkZWQgYSBtX3dlYlZpZXcgbWVtYmVyIHZhcmlhYmxlLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpQYWdlQ2xpZW50SW1wbCk6IEFzc2VydGVkIHRoYXQgbV93ZWJWaWV3IGlzIG5pbCBp
ZiBXSyBBUEkgaXNuJ3QgZW5hYmxlZC4KKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6
OmhhbmRsZURvd25sb2FkUmVxdWVzdCk6IENhbGxlZCAtW19XS0Rvd25sb2FkIHNldE9yaWdpbmF0
aW5nV2ViVmlldzpdLgorCiAyMDE0LTAzLTI4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBw
bGUuY29tPgogCiAgICAgICAgIEVsaW1pbmF0ZSBhIHN5bmMgY2FuY2VsQ29tcG9zaXRpb24gY2Fs
bCBpbiBXZWJQYWdlUHJveHk6OmVkaXRvclN0YXRlQ2hhbmdlZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAwYjczMTk2YzI2ZjBlMTQw
YzgyZGE0YTY1MDZlZjI4MWZiNDhkMTZjLi5hN2E5ZGMxZGY5ZTczY2YyYjk0ZGFkYmYwYjkwOGZk
NGI1OWVhZDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQpAQCAtMTg0LDcgKzE4NCw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZy
YW1lOihDR1JlY3QpZnJhbWUgY29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvCiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBfd2tWaWV3ID0gW1tXS1ZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6Ym91bmRzIGNvbnRleHQ6Y29udGV4dCBjb25maWd1cmF0aW9uOnN0ZDo6
bW92ZSh3ZWJQYWdlQ29uZmlndXJhdGlvbildOworICAgIF93a1ZpZXcgPSBbW1dLVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpib3VuZHMgY29udGV4dDpjb250ZXh0IGNvbmZpZ3VyYXRpb246c3Rk
Ojptb3ZlKHdlYlBhZ2VDb25maWd1cmF0aW9uKSB3ZWJWaWV3OnNlbGZdOwogICAgIFtzZWxmIGFk
ZFN1YnZpZXc6X3drVmlldy5nZXQoKV07CiAgICAgX3BhZ2UgPSBXZWJLaXQ6OnRvSW1wbChbX3dr
VmlldyBwYWdlUmVmXSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRG93bmxvYWQuaAppbmRleCBkNjM4N2E4MDJkMjIxZDk2N2JiYzVmMGMwMGUx
YzljN2VhNzE2ZDJkLi5lOGMwMTk4ODUwM2E0YmViZmFhZTM0N2I2NGU5MDJmYjQ4YTA4ZmU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2Fk
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5o
CkBAIC0yOSwxMiArMjksMTUgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+
CiAKK0BjbGFzcyBXS1dlYlZpZXc7CisKIFdLX0FQSV9DTEFTUwogQGludGVyZmFjZSBfV0tEb3du
bG9hZCA6IE5TT2JqZWN0CiAKIC0gKHZvaWQpY2FuY2VsOwogCiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TVVJMUmVxdWVzdCAqcmVxdWVzdDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSwgd2VhaykgV0tXZWJWaWV3ICpvcmlnaW5hdGluZ1dlYlZpZXc7CiAKIEBlbmQK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3du
bG9hZC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQu
bW0KaW5kZXggYzNhMzU5ZjUzZWNmMDY5Y2E5NDFmOWRiYjU0MzE0OGJjMDI4MDRmMC4uMDYyNTVl
MGE3YTg1N2RlMDk4ZDA0YTQ4Zjk1Y2E0NjM5OGRiOGQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkLm1tCkBAIC0yOSw5ICsyOSwxMSBA
QAogI2lmIFdLX0FQSV9FTkFCTEVECiAKICNpbXBvcnQgIkRvd25sb2FkUHJveHkuaCIKKyNpbXBv
cnQgIldlYWtPYmpDUHRyLmgiCiAKIEBpbXBsZW1lbnRhdGlvbiBfV0tEb3dubG9hZCB7CiAgICAg
QVBJOjpPYmplY3RTdG9yYWdlPFdlYktpdDo6RG93bmxvYWRQcm94eT4gX2Rvd25sb2FkOworICAg
IFdlYktpdDo6V2Vha09iakNQdHI8V0tXZWJWaWV3PiBfb3JpZ2luYXRpbmdXZWJWaWV3OwogfQog
CiAtICh2b2lkKWRlYWxsb2MKQEAgLTUxLDYgKzUzLDE2IEBAIC0gKE5TVVJMUmVxdWVzdCAqKXJl
cXVlc3QKICAgICByZXR1cm4gX2Rvd25sb2FkLT5yZXF1ZXN0KCkubnNVUkxSZXF1ZXN0KFdlYkNv
cmU6OkRvTm90VXBkYXRlSFRUUEJvZHkpOwogfQogCistIChXS1dlYlZpZXcgKilvcmlnaW5hdGlu
Z1dlYlZpZXcKK3sKKyAgICByZXR1cm4gX29yaWdpbmF0aW5nV2ViVmlldy5nZXRBdXRvcmVsZWFz
ZWQoKTsKK30KKworLSAodm9pZClzZXRPcmlnaW5hdGluZ1dlYlZpZXc6KFdLV2ViVmlldyAqKW9y
aWdpbmF0aW5nV2ViVmlldworeworICAgIF9vcmlnaW5hdGluZ1dlYlZpZXcgPSBvcmlnaW5hdGlu
Z1dlYlZpZXc7Cit9CisKICNwcmFnbWEgbWFyayBXS09iamVjdCBwcm90b2NvbCBpbXBsZW1lbnRh
dGlvbgogCiAtIChBUEk6Ok9iamVjdCYpX2FwaU9iamVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZEludGVybmFsLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkSW50ZXJuYWwuaAppbmRleCBm
Y2VkMDhjNGY4NjMyNzI5NmJlYmFmMGYwMjYxMmQ3NzFhZjA0Zjk5Li4yZmI3NmM1ODdmMzVjMjJi
NTRkNDYwNWNiNjUwZDRiZmZmYTlkMmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkSW50ZXJuYWwuaApAQCAtMjksMTcgKzI5
LDggQEAKIAogI2ltcG9ydCAiV0tPYmplY3QuaCIKIAotQHByb3RvY29sIF9XS0Rvd25sb2FkRGVs
ZWdhdGU7Ci0KLW5hbWVzcGFjZSBBUEkgewotY2xhc3MgRG93bmxvYWRDbGllbnQ7Ci19Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotc3RkOjp1bmlxdWVfcHRyPEFQSTo6RG93bmxvYWRDbGllbnQ+IGNy
ZWF0ZUFQSURvd25sb2FkQ2xpZW50KGlkIDxfV0tEb3dubG9hZERlbGVnYXRlPik7Ci19Ci0KIEBp
bnRlcmZhY2UgX1dLRG93bmxvYWQgKCkgPFdLT2JqZWN0PgorQHByb3BlcnR5IChub25hdG9taWMs
IHdlYWspIFdLV2ViVmlldyAqb3JpZ2luYXRpbmdXZWJWaWV3OwogQGVuZAogCiAjZW5kaWYgLy8g
V0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5t
bQppbmRleCAwNGQyYzQ1MWE4YWVlNTFhMDM1ZDUxZjkxYjExZjE0ZWY2ZmVjNTI5Li5hNTcwZTZk
YWVkNzNhYWQwYmNiM2E4ZmJiYTY0OTFiMmUwMjFmZDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0zMzgzLDcgKzMzODMsNyBAQCAtIChCT09MKV9z
dXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzCiAgICAgcmV0dXJuIF9kYXRhLT5fcGFnZS0+c3VwcHJl
c3NWaXNpYmlsaXR5VXBkYXRlcygpOwogfQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFt
ZTooTlNSZWN0KWZyYW1lIGNvbnRleHQ6KFdlYkNvbnRleHQmKWNvbnRleHQgY29uZmlndXJhdGlv
bjooV2ViUGFnZUNvbmZpZ3VyYXRpb24pd2ViUGFnZUNvbmZpZ3VyYXRpb24KKy0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgY29udGV4dDooV2ViQ29udGV4dCYpY29u
dGV4dCBjb25maWd1cmF0aW9uOihXZWJQYWdlQ29uZmlndXJhdGlvbil3ZWJQYWdlQ29uZmlndXJh
dGlvbiB3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3CiB7CiAgICAgc2VsZiA9IFtzdXBlciBp
bml0V2l0aEZyYW1lOmZyYW1lXTsKICAgICBpZiAoIXNlbGYpCkBAIC0zNDA4LDcgKzM0MDgsNyBA
QCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIGNvbnRleHQ6KFdl
YkNvbnRleHQmKWNvbnRleHQgY29uZmlndQogICAgIFt0cmFja2luZ0FyZWEgcmVsZWFzZV07CiAK
ICAgICBfZGF0YSA9IFtbV0tWaWV3RGF0YSBhbGxvY10gaW5pdF07Ci0gICAgX2RhdGEtPl9wYWdl
Q2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlQ2xpZW50SW1wbD4oc2VsZik7CisgICAgX2Rh
dGEtPl9wYWdlQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlQ2xpZW50SW1wbD4oc2VsZiwg
d2ViVmlldyk7CiAgICAgX2RhdGEtPl9wYWdlID0gY29udGV4dC5jcmVhdGVXZWJQYWdlKCpfZGF0
YS0+X3BhZ2VDbGllbnQsIHN0ZDo6bW92ZSh3ZWJQYWdlQ29uZmlndXJhdGlvbikpOwogICAgIF9k
YXRhLT5fcGFnZS0+c2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoW3NlbGYgX2ludHJpbnNp
Y0RldmljZVNjYWxlRmFjdG9yXSk7CiAgICAgX2RhdGEtPl9wYWdlLT5pbml0aWFsaXplV2ViUGFn
ZSgpOwpAQCAtMzUwMSw3ICszNTAxLDcgQEAgLSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZy
YW1lIGNvbnRleHRSZWY6KFdLQ29udGV4dFJlZiljb250ZXh0UmVmIHBhZ2VHcm91cFIKICAgICB3
ZWJQYWdlQ29uZmlndXJhdGlvbi5wYWdlR3JvdXAgPSB0b0ltcGwocGFnZUdyb3VwUmVmKTsKICAg
ICB3ZWJQYWdlQ29uZmlndXJhdGlvbi5yZWxhdGVkUGFnZSA9IHRvSW1wbChyZWxhdGVkUGFnZSk7
CiAKLSAgICByZXR1cm4gW3NlbGYgaW5pdFdpdGhGcmFtZTpmcmFtZSBjb250ZXh0Oip0b0ltcGwo
Y29udGV4dFJlZikgY29uZmlndXJhdGlvbjp3ZWJQYWdlQ29uZmlndXJhdGlvbl07CisgICAgcmV0
dXJuIFtzZWxmIGluaXRXaXRoRnJhbWU6ZnJhbWUgY29udGV4dDoqdG9JbXBsKGNvbnRleHRSZWYp
IGNvbmZpZ3VyYXRpb246d2ViUGFnZUNvbmZpZ3VyYXRpb24gd2ViVmlldzpuaWxdOwogfQogCiAj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDgwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAppbmRleCA0YmNjZmJm
N2MyZWY2ZDYwNDQwOTI1MzMzNTIzZmJlYTYxNDllNTAzLi4wYmRhMjcwYTI1NzQ2YjM0YTk2ZTQ4
OGYzODVjMTVlMTc4YzdhMzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlld0ludGVybmFsLmgKQEAgLTU0LDEzICs1NCwxNCBAQCBzdHJ1Y3QgV2ViUGFn
ZUNvbmZpZ3VyYXRpb247CiB9CiAKIEBjbGFzcyBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
OworQGNsYXNzIFdLV2ViVmlldzsKICNpZiBXS19BUElfRU5BQkxFRAogQGNsYXNzIF9XS1RodW1i
bmFpbFZpZXc7CiAjZW5kaWYKIAogQGludGVyZmFjZSBXS1ZpZXcgKCkKICNpZiBXS19BUElfRU5B
QkxFRAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSBjb250ZXh0
OihXZWJLaXQ6OldlYkNvbnRleHQmKWNvbnRleHQgY29uZmlndXJhdGlvbjooV2ViS2l0OjpXZWJQ
YWdlQ29uZmlndXJhdGlvbil3ZWJQYWdlQ29uZmlndXJhdGlvbjsKKy0gKGluc3RhbmNldHlwZSlp
bml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29udGV4dDooV2ViS2l0OjpXZWJDb250ZXh0Jilj
b250ZXh0IGNvbmZpZ3VyYXRpb246KFdlYktpdDo6V2ViUGFnZUNvbmZpZ3VyYXRpb24pd2ViUGFn
ZUNvbmZpZ3VyYXRpb24gd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldzsKICNlbmRpZgogCiAt
IChzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5PilfY3JlYXRlRHJhd2lu
Z0FyZWFQcm94eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDU4OGNh
MjE3YTUwY2Y2MTg4ZTY3OTJkYWYxNTc0YjgwOGRhODRkNmIuLmRiOTQ4MDVjOTQ2ZTA0M2U3YWJk
YmNjZWVmMTIwMjdjMzcwODY0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aApAQCAtMTQ2LDkgKzE0Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGV4
dElucHV0U3RhdGUoKSA9IDA7CiAjZW5kaWYgLy8gUExBVEZPUk0oRUZMKSB8fCBQTEFUT0ZSTShH
VEspCiAKLSNpZiBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdUSykKICAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqKSA9IDA7Ci0jZW5kaWYgLy8g
UExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShHVEspCiAKICNpZiBQTEFURk9STShFRkwpCiAgICAg
dmlydHVhbCB2b2lkIGRpZENoYW5nZUNvbnRlbnRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUm
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDA2
N2M5MDZiMWMzOTY1NDA1YTczZTQ0ZDE3OTc5Zjc5NTg4ZDliNjcuLjcyZWUyODU3Zjg2YmU5YTVm
MDdlZDlhNTY0NzAyYmEwMjVkODZjZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCkBAIC0xNTMwLDEwICsxNTMwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJl
Y2VpdmVkUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIGFjdGlvbiwgV2ViRnJhbWVQcm94eSog
ZnIKICAgICAgICAgLy8gQ3JlYXRlIGEgZG93bmxvYWQgcHJveHkuCiAgICAgICAgIERvd25sb2Fk
UHJveHkqIGRvd25sb2FkID0gbV9wcm9jZXNzLT5jb250ZXh0KCkuY3JlYXRlRG93bmxvYWRQcm94
eSgpOwogICAgICAgICBkb3dubG9hZElEID0gZG93bmxvYWQtPmRvd25sb2FkSUQoKTsKLSNpZiBQ
TEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdUSykKLSAgICAgICAgLy8gT3VyIGRlc2lnbiBkb2Vz
IG5vdCBzdXBwcG9ydCBkb3dubG9hZHMgd2l0aG91dCBhIFdlYlBhZ2UuCiAgICAgICAgIGhhbmRs
ZURvd25sb2FkUmVxdWVzdChkb3dubG9hZCk7Ci0jZW5kaWYKICAgICB9CiAKICAgICAvLyBJZiB3
ZSByZWNlaXZlZCBhIHBvbGljeSBkZWNpc2lvbiB3aGlsZSBpbiBkZWNpZGVQb2xpY3lGb3JSZXNw
b25zZSB0aGUgZGVjaXNpb24gd2lsbApAQCAtMjk4OCwxMiArMjk4NSwxMCBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6c2V0TWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyhib29sIG1heVN0YXJ0TWVkaWEp
CiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldE1heVN0YXJ0TWVkaWFX
aGVuSW5XaW5kb3cobWF5U3RhcnRNZWRpYSksIG1fcGFnZUlEKTsKIH0KIAotI2lmIFBMQVRGT1JN
KEVGTCkgfHwgUExBVEZPUk0oR1RLKQogdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZURvd25sb2Fk
UmVxdWVzdChEb3dubG9hZFByb3h5KiBkb3dubG9hZCkKIHsKICAgICBtX3BhZ2VDbGllbnQuaGFu
ZGxlRG93bmxvYWRSZXF1ZXN0KGRvd25sb2FkKTsKIH0KLSNlbmRpZiAvLyBQTEFURk9STShFRkwp
IHx8IFBMQVRGT1JNKEdUSykKIAogI2lmIFBMQVRGT1JNKEVGTCkKIHZvaWQgV2ViUGFnZVByb3h5
OjpkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDQ4NzNlNTg0Yjc2NjFiMGVlMjE5OGUyZWZh
NzkyYzIxYjVhZGI3YzguLmYyMWFlYTM1YjMwNzdkNmI3M2UyMzQ2YWIzOGZjMDEzZWEzNjFlNDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTkyMSw5ICs5MjEs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaW5kWm9vbWFibGVBcmVhRm9yUG9pbnQoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oR1RLKQogICAgIHZvaWQgaGFuZGxlRG93bmxvYWRS
ZXF1ZXN0KERvd25sb2FkUHJveHkqKTsKLSNlbmRpZgogCiAgICAgdm9pZCBhZHZhbmNlVG9OZXh0
TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbik7CiAgICAgdm9pZCBjaGFuZ2VT
cGVsbGluZ1RvV29yZChjb25zdCBTdHJpbmcmIHdvcmQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDk2ZmZlOTI1NTM5ZjBiNjQw
NTk4N2FhODQ2YTE0OWZkZDA2NWM2ZTguLjI4NjhhMDIyZmJlMTlkMDMyNDlhZDRkYmE5YmZlMmZi
ZDMxOWIzNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLmgKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgUGFnZUNsaWVudEltcGwgOiBwdWJs
aWMgUGFnZUNsaWVudAogI2VuZGlmCiAgICAgewogcHVibGljOgotICAgIGV4cGxpY2l0IFBhZ2VD
bGllbnRJbXBsKFdLQ29udGVudFZpZXcgKiwgV0tXZWJWaWV3ICopOworICAgIFBhZ2VDbGllbnRJ
bXBsKFdLQ29udGVudFZpZXcgKiwgV0tXZWJWaWV3ICopOwogICAgIHZpcnR1YWwgflBhZ2VDbGll
bnRJbXBsKCk7CiAgICAgCiBwcml2YXRlOgpAQCAtNjUsNiArNjUsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCB0b29sVGlwQ2hhbmdlZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdChXZWJGcmFtZVByb3h5JiwgV2ViU2VjdXJpdHlPcmlnaW4mLCBHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29s
IHVzZUN1c3RvbUNvbnRlbnRQcm92aWRlcikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGhh
bmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5Kikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2Vi
Q29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCA2NGExZjdiOTRiMGYz
ZjlkZTMwNDNmZWUwYTUzMDllYjQzNjk4MmE3Li5hNzFjMzg0NTFkYWFhZjBhZThhOWZjNWQyMDMy
ZjBhODhiMDM3ZTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MubW0KQEAgLTI4LDcgKzI4LDkgQEAKIAogI2lmIFBMQVRGT1JNKElPUykK
IAorI2ltcG9ydCAiX1dLRG93bmxvYWRJbnRlcm5hbC5oIgogI2ltcG9ydCAiRGF0YVJlZmVyZW5j
ZS5oIgorI2ltcG9ydCAiRG93bmxvYWRQcm94eS5oIgogI2ltcG9ydCAiTmF0aXZlV2ViS2V5Ym9h
cmRFdmVudC5oIgogI2ltcG9ydCAiSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCIK
ICNpbXBvcnQgIldLQ29udGVudFZpZXcuaCIKQEAgLTE1NCw2ICsxNTYsMTMgQEAgdm9pZCBQYWdl
Q2xpZW50SW1wbDo6ZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZShjb25zdCBTdHJpbmcmIG1pbWVU
eXBlLCBib29sIHVzZUMKICAgICBbbV9jb250ZW50VmlldyBfZGlkQ29tbWl0TG9hZEZvck1haW5G
cmFtZV07CiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmhhbmRsZURvd25sb2FkUmVxdWVzdChE
b3dubG9hZFByb3h5KiBkb3dubG9hZCkKK3sKKyAgICBBU1NFUlRfQVJHKGRvd25sb2FkLCBkb3du
bG9hZCk7CisgICAgQVNTRVJUKFtkb3dubG9hZC0+d3JhcHBlcigpIGlzS2luZE9mQ2xhc3M6W19X
S0Rvd25sb2FkIGNsYXNzXV0pOworICAgIFtzdGF0aWNfY2FzdDxfV0tEb3dubG9hZCAqPihkb3du
bG9hZC0+d3JhcHBlcigpKSBzZXRPcmlnaW5hdGluZ1dlYlZpZXc6bV93ZWJWaWV3XTsKK30KKwog
dm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
UGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGwuaAppbmRleCBiMDQzODQ2OTQ1Njc3ZDBlNmYwODk1YmM1MDIwNjE0YWM2OTIzMTZmLi40
MjVkMjgwODNjYzgwMjM0Njk1ZjY3NmViMGRkODEyMjg0YmM5MTEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCkBAIC0zNSw2ICszNSw3IEBACiAK
IEBjbGFzcyBXS0VkaXRvclVuZG9UYXJnZXRPYmpDOwogQGNsYXNzIFdLVmlldzsKK0BjbGFzcyBX
S1dlYlZpZXc7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFsdGVybmF0aXZlVGV4dFVJ
Q29udHJvbGxlcjsKQEAgLTQ5LDcgKzUwLDcgQEAgY2xhc3MgUGFnZUNsaWVudEltcGwgZmluYWwg
OiBwdWJsaWMgUGFnZUNsaWVudAogI2VuZGlmCiAgICAgewogcHVibGljOgotICAgIGV4cGxpY2l0
IFBhZ2VDbGllbnRJbXBsKFdLVmlldyAqKTsKKyAgICBQYWdlQ2xpZW50SW1wbChXS1ZpZXcgKiwg
V0tXZWJWaWV3ICopOwogICAgIHZpcnR1YWwgflBhZ2VDbGllbnRJbXBsKCk7CiAgICAgCiAgICAg
dm9pZCB2aWV3V2lsbE1vdmVUb0Fub3RoZXJXaW5kb3coKTsKQEAgLTgxLDYgKzgyLDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgdG9vbFRpcENoYW5nZWQoY29uc3QgU3RyaW5nJiBvbGRU
b29sVGlwLCBjb25zdCBTdHJpbmcmIG5ld1Rvb2xUaXApOwogICAgIHZpcnR1YWwgdm9pZCBkaWRD
b21taXRMb2FkRm9yTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgdXNlQ3Vz
dG9tQ29udGVudFByb3ZpZGVyKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNo
TG9hZGluZ0RhdGFGb3JDdXN0b21Db250ZW50UHJvdmlkZXIoY29uc3QgU3RyaW5nJiBzdWdnZXN0
ZWRGaWxlbmFtZSwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5Kikgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6
Vmlld3BvcnRBdHRyaWJ1dGVzJik7CkBAIC0xNjYsNiArMTY4LDcgQEAgcHJpdmF0ZToKICAgICBO
U1ZpZXcgKmFjdGl2ZVZpZXcoKSBjb25zdDsKIAogICAgIFdLVmlldyAqbV93a1ZpZXc7CisgICAg
V0tXZWJWaWV3ICptX3dlYlZpZXc7CiAgICAgUmV0YWluUHRyPFdLRWRpdG9yVW5kb1RhcmdldE9i
akM+IG1fdW5kb1RhcmdldDsKICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFORUwpCiAgICAgQ29y
cmVjdGlvblBhbmVsIG1fY29ycmVjdGlvblBhbmVsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggYTQwZGRhZmJjYTgwNGRkNzhiNGUwMWEy
MzM0MTc2OTk1NzQ5NTg1Ni4uMTliNjM4YTZhN2EzMzNjZjI2N2NkZjVkNzEwMjczZWUxYzNkZmQ4
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1t
CkBAIC0yOCwxMCArMjgsMTIgQEAKIAogI2lmIFBMQVRGT1JNKE1BQykKIAorI2ltcG9ydCAiX1dL
RG93bmxvYWRJbnRlcm5hbC5oIgogI2ltcG9ydCAiQXR0cmlidXRlZFN0cmluZy5oIgogI2ltcG9y
dCAiQ29sb3JTcGFjZURhdGEuaCIKICNpbXBvcnQgIkRhdGFSZWZlcmVuY2UuaCIKICNpbXBvcnQg
IkRpY3Rpb25hcnlQb3B1cEluZm8uaCIKKyNpbXBvcnQgIkRvd25sb2FkUHJveHkuaCIKICNpbXBv
cnQgIkZpbmRJbmRpY2F0b3IuaCIKICNpbXBvcnQgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIK
ICNpbXBvcnQgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKQEAgLTEyNiwxMyArMTI4LDE3IEBAIEBl
bmQKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVBhZ2VDbGllbnRJbXBsOjpQYWdlQ2xpZW50SW1w
bChXS1ZpZXcqIHdrVmlldykKK1BhZ2VDbGllbnRJbXBsOjpQYWdlQ2xpZW50SW1wbChXS1ZpZXcq
IHdrVmlldywgV0tXZWJWaWV3ICp3ZWJWaWV3KQogICAgIDogbV93a1ZpZXcod2tWaWV3KQorICAg
ICwgbV93ZWJWaWV3KHdlYlZpZXcpCiAgICAgLCBtX3VuZG9UYXJnZXQoYWRvcHROUyhbW1dLRWRp
dG9yVW5kb1RhcmdldE9iakMgYWxsb2NdIGluaXRdKSkKICNpZiBVU0UoRElDVEFUSU9OX0FMVEVS
TkFUSVZFUykKICAgICAsIG1fYWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyKGFkb3B0UHRyKG5l
dyBBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIpKQogI2VuZGlmCiB7CisjaWYgIVdLX0FQSV9F
TkFCTEVECisgICAgQVNTRVJUX1VOVVNFRChtX3dlYlZpZXcsICFtX3dlYlZpZXcpOworI2VuZGlm
CiB9CiAKIFBhZ2VDbGllbnRJbXBsOjp+UGFnZUNsaWVudEltcGwoKQpAQCAtMjkzLDYgKzI5OSwx
NSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbUNv
bnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcmCiB7CiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6
OmhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5KiBkb3dubG9hZCkKK3sKKyAgICBB
U1NFUlRfQVJHKGRvd25sb2FkLCBkb3dubG9hZCk7CisjaWYgV0tfQVBJX0VOQUJMRUQKKyAgICBB
U1NFUlQoW2Rvd25sb2FkLT53cmFwcGVyKCkgaXNLaW5kT2ZDbGFzczpbX1dLRG93bmxvYWQgY2xh
c3NdXSk7CisgICAgW3N0YXRpY19jYXN0PF9XS0Rvd25sb2FkICo+KGRvd25sb2FkLT53cmFwcGVy
KCkpIHNldE9yaWdpbmF0aW5nV2ViVmlldzptX3dlYlZpZXddOworI2VuZGlmCit9CisKIHZvaWQg
UGFnZUNsaWVudEltcGw6OnNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImIGN1cnNvcikK
IHsKICAgICBpZiAoIVtOU0FwcCBfY3Vyc29yUmVjdEN1cnNvcl0pCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzNmMmRhYjFmMTczM2I0MWM4ZDNh
OWFkMWM1YzVlM2ZlOTBlYzA1OC4uNDNmYjc3NjViOThhMjY3MTQ5ZTliMzlkZjcyMjI5ODg1YzYw
MTY1MSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDE0LTAzLTMwICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNv
bT4KKworICAgICAgICBbQ29jb2FdIEFkZCBhbiBvcmlnaW5hdGluZ1dlYlZpZXcgcHJvcGVydHkg
dG8gX1dLRG93bmxvYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMDk0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRG93bmxvYWQubW06Cisg
ICAgICAgICgtW0Rvd25sb2FkRGVsZWdhdGUgX2Rvd25sb2FkRGlkU3RhcnQ6XSk6CisgICAgICAg
ICgtW09yaWdpbmF0aW5nV2ViVmlld0Rvd25sb2FkRGVsZWdhdGUgaW5pdFdpdGhXZWJWaWV3Ol0p
OgorICAgICAgICAoLVtPcmlnaW5hdGluZ1dlYlZpZXdEb3dubG9hZERlbGVnYXRlIF9kb3dubG9h
ZERpZFN0YXJ0Ol0pOgorICAgICAgICAoVEVTVCk6CisKIDIwMTQtMDMtMjggIE1hcnRpbiBSb2Jp
bnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlbW92ZSBXZWJLaXQxIEdU
SysgYm90cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvRG93bmxvYWQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9E
b3dubG9hZC5tbQppbmRleCBiYWY4ZjJiYTUyNTUzYjAxOTdhMDI5MWExZjNkMDFkMzc3MDI2N2Jk
Li45N2NiNDcwNDc5NzhjNWQxNjE0NTM5Y2RkNzJlODdkNzU1NjQyOThkIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9Eb3dubG9hZC5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9Eb3dubG9hZC5tbQpAQCAtMzEs
NiArMzEsNyBAQAogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRlc3Qu
aCIKICNpbXBvcnQgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2ltcG9ydCA8V2ViS2l0Mi9fV0tE
b3dubG9hZC5oPgogI2ltcG9ydCA8V2ViS2l0Mi9fV0tEb3dubG9hZERlbGVnYXRlLmg+CiAjaW1w
b3J0IDxXZWJLaXQyL1dLTmF2aWdhdGlvbkRlbGVnYXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQyL1dL
UHJvY2Vzc1Bvb2xQcml2YXRlLmg+CkBAIC01Niw2ICs1Nyw3IEBAIC0gKHZvaWQpX2Rvd25sb2Fk
RGlkU3RhcnQ6KF9XS0Rvd25sb2FkICopZG93bmxvYWQKIHsKICAgICBFWFBFQ1RfTlVMTChfZG93
bmxvYWQpOwogICAgIEVYUEVDVF9OT1RfTlVMTChkb3dubG9hZCk7CisgICAgRVhQRUNUX1RSVUUo
W1tbZG93bmxvYWQgcmVxdWVzdF0gVVJMXSBpc0VxdWFsOnNvdXJjZVVSTF0pOwogICAgIF9kb3du
bG9hZCA9IGRvd25sb2FkOwogfQogCkBAIC0yMjAsNCArMjIyLDUwIEBAIFRFU1QoX1dLRG93bmxv
YWQsIENhbmNlbERvd25sb2FkKQogICAgIHJ1blRlc3QoYWRvcHROUyhbW0Rvd25sb2FkTmF2aWdh
dGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSkuZ2V0KCksIGFkb3B0TlMoW1tDYW5jZWxsZWREb3du
bG9hZERlbGVnYXRlIGFsbG9jXSBpbml0XSkuZ2V0KCksIHNvdXJjZVVSTCk7CiB9CiAKK0BpbnRl
cmZhY2UgT3JpZ2luYXRpbmdXZWJWaWV3RG93bmxvYWREZWxlZ2F0ZSA6IE5TT2JqZWN0IDxfV0tE
b3dubG9hZERlbGVnYXRlPgorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldzsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIE9yaWdpbmF0aW5nV2ViVmll
d0Rvd25sb2FkRGVsZWdhdGUgeworICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IF93ZWJWaWV3Owor
fQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
Cit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7
CisKKyAgICBfd2ViVmlldyA9IHdlYlZpZXc7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZv
aWQpX2Rvd25sb2FkRGlkU3RhcnQ6KF9XS0Rvd25sb2FkICopZG93bmxvYWQKK3sKKyAgICBAYXV0
b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgRVhQRUNUX0VRKFtkb3dubG9hZCBvcmlnaW5hdGluZ1dl
YlZpZXddLCBfd2ViVmlldyk7CisgICAgfQorCisgICAgX3dlYlZpZXcuY2xlYXIoKTsKKyAgICBF
WFBFQ1RfTlVMTChbZG93bmxvYWQgb3JpZ2luYXRpbmdXZWJWaWV3XSk7CisgICAgaXNEb25lID0g
dHJ1ZTsKK30KKworQGVuZAorCitURVNUKF9XS0Rvd25sb2FkLCBPcmlnaW5hdGluZ1dlYlZpZXcp
Cit7CisgICAgUmV0YWluUHRyPERvd25sb2FkTmF2aWdhdGlvbkRlbGVnYXRlPiBuYXZpZ2F0aW9u
RGVsZWdhdGUgPSBhZG9wdE5TKFtbRG93bmxvYWROYXZpZ2F0aW9uRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsgICAgICAgICAgICAgICAgIAorICAgIFJldGFpblB0cjxPcmlnaW5hdGluZ1dlYlZpZXdE
b3dubG9hZERlbGVnYXRlPiBkb3dubG9hZERlbGVnYXRlOworICAgIHsKKyAgICAgICAgUmV0YWlu
UHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKyAgICAgICAgW3dlYlZpZXcg
c2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKV07CisgICAgICAg
IGRvd25sb2FkRGVsZWdhdGUgPSBhZG9wdE5TKFtbT3JpZ2luYXRpbmdXZWJWaWV3RG93bmxvYWRE
ZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhXZWJWaWV3OndlYlZpZXcuZ2V0KCldKTsKKyAgICAgICAg
W1tbd2ViVmlldyBjb25maWd1cmF0aW9uXSBwcm9jZXNzUG9vbF0gX3NldERvd25sb2FkRGVsZWdh
dGU6ZG93bmxvYWREZWxlZ2F0ZS5nZXQoKV07CisgICAgICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0
OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6c291cmNlVVJMXV07CisgICAgfQorCisgICAg
aXNEb25lID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOwor
fQorCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228133</attachid>
            <date>2014-03-30 15:25:36 -0700</date>
            <delta_ts>2014-03-30 15:30:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130945-20140330152516.patch</filename>
            <type>text/plain</type>
            <size>20379</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2NDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMWUxM2Y4Yzg4MmYzZjI0
ODg4NjYyNDAyZWMwOGMwZmY4M2I5ZjMyZS4uZGRkYWJjMjAxN2ZjMjljNTViYmYzY2M3MmNiZDBl
MmI5NWQxYmNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTAzLTMwICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEFkZCBhbiBvcmln
aW5hdGluZ1dlYlZpZXcgcHJvcGVydHkgdG8gX1dLRG93bmxvYWQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDk0NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBpbml0V2l0aEZyYW1lOmNvbmZpZ3VyYXRp
b246XSk6IFBhc3NlZCBzZWxmIHRvIFdLVmlldydzIGluaXRpYWxpemVyLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQuaDogRGVjbGFyZWQgb3JpZ2luYXRpbmdXZWJW
aWV3IGFzIGEgd2VhaywgcmVhZG9ubHkgcHJvcGVydHkuCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tEb3dubG9hZC5tbToKKyAgICAgICAgKC1bX1dLRG93bmxvYWQgb3JpZ2luYXRp
bmdXZWJWaWV3XSk6CisgICAgICAgICgtW19XS0Rvd25sb2FkIHNldE9yaWdpbmF0aW5nV2ViVmll
dzpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkSW50ZXJuYWwu
aDogUmUtZGVjbGFyZWQgb3JpZ2luYXRpbmdXZWJWaWV3IGFzIHJlYWR3cml0ZSBzbyB0aGF0Cisg
ICAgICAgIFBhZ2VDbGllbnRJbXBsIGNhbiBjYWxsIHNldE9yaWdpbmF0aW5nV2ViVmlldzouIFJl
bW92ZWQgc29tZSBkZWFkIGNvZGUuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgaW5pdFdpdGhGcmFtZTpjb250ZXh0OmNvbmZpZ3VyYXRp
b246d2ViVmlldzpdKTogVXBkYXRlZCB0byBhY2NlcHQgYSB3ZWJWaWV3IHBhcmFtZXRlci4KKyAg
ICAgICAgKC1bV0tWaWV3IGluaXRXaXRoRnJhbWU6Y29udGV4dFJlZjpwYWdlR3JvdXBSZWY6cmVs
YXRlZFRvUGFnZTpdKTogUGFzc2VkIG5pbCBmb3IgdGhlIHdlYlZpZXcgcGFyYW1ldGVyLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL0Rvd25sb2FkQ2xpZW50Lm1tOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9h
ZENsaWVudDo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUpOiBFbnN1cmVk
IGFsbG93T3ZlcndyaXRlIGlzIGluaXRpYWxpemVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdl
Q2xpZW50Lmg6IEluY2x1ZGVkIGhhbmRsZURvd25sb2FkUmVxdWVzdCgpIG9uIGFsbCBwbGF0Zm9y
bXMuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbik6IERpdHRvLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZURvd25sb2FkUmVxdWVzdCk6IERpdHRvLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDogRGl0dG8uCisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpo
YW5kbGVEb3dubG9hZFJlcXVlc3QpOiBDYWxsZWQgLVtfV0tEb3dubG9hZCBzZXRPcmlnaW5hdGlu
Z1dlYlZpZXc6XS4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmg6IEFk
ZGVkIGEgbV93ZWJWaWV3IG1lbWJlciB2YXJpYWJsZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6UGFn
ZUNsaWVudEltcGwpOiBBc3NlcnRlZCB0aGF0IG1fd2ViVmlldyBpcyBuaWwgaWYgV0sgQVBJIGlz
bid0IGVuYWJsZWQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpoYW5kbGVEb3du
bG9hZFJlcXVlc3QpOiBDYWxsZWQgLVtfV0tEb3dubG9hZCBzZXRPcmlnaW5hdGluZ1dlYlZpZXc6
XS4KKwogMjAxNC0wMy0yOCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAog
ICAgICAgICBFbGltaW5hdGUgYSBzeW5jIGNhbmNlbENvbXBvc2l0aW9uIGNhbGwgaW4gV2ViUGFn
ZVByb3h5OjplZGl0b3JTdGF0ZUNoYW5nZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMGI3MzE5NmMyNmYwZTE0MGM4MmRhNGE2NTA2
ZWYyODFmYjQ4ZDE2Yy4uYTdhOWRjMWRmOWU3M2NmMmI5NGRhZGJmMGI5MDhmZDRiNTllYWQ0NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0K
QEAgLTE4NCw3ICsxODQsNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0
KWZyYW1lIGNvbmZpZ3VyYXRpb246KFdLV2ViVmlld0NvbmZpZ3VyYXRpbwogI2VuZGlmCiAKICNp
ZiBQTEFURk9STShNQUMpCi0gICAgX3drVmlldyA9IFtbV0tWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOmJvdW5kcyBjb250ZXh0OmNvbnRleHQgY29uZmlndXJhdGlvbjpzdGQ6Om1vdmUod2ViUGFn
ZUNvbmZpZ3VyYXRpb24pXTsKKyAgICBfd2tWaWV3ID0gW1tXS1ZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6Ym91bmRzIGNvbnRleHQ6Y29udGV4dCBjb25maWd1cmF0aW9uOnN0ZDo6bW92ZSh3ZWJQ
YWdlQ29uZmlndXJhdGlvbikgd2ViVmlldzpzZWxmXTsKICAgICBbc2VsZiBhZGRTdWJ2aWV3Ol93
a1ZpZXcuZ2V0KCldOwogICAgIF9wYWdlID0gV2ViS2l0Ojp0b0ltcGwoW193a1ZpZXcgcGFnZVJl
Zl0pOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0Rvd25sb2FkLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0Rvd25sb2FkLmgKaW5kZXggZDYzODdhODAyZDIyMWQ5NjdiYmM1ZjBjMDBlMWM5YzdlYTcxNmQy
ZC4uZThjMDE5ODg1MDNhNGJlYmZhYWUzNDdiNjRlOTAyZmI0OGEwOGZlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQuaApAQCAtMjksMTIg
KzI5LDE1IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCitAY2xhc3Mg
V0tXZWJWaWV3OworCiBXS19BUElfQ0xBU1MKIEBpbnRlcmZhY2UgX1dLRG93bmxvYWQgOiBOU09i
amVjdAogCiAtICh2b2lkKWNhbmNlbDsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBOU1VSTFJlcXVlc3QgKnJlcXVlc3Q7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHks
IHdlYWspIFdLV2ViVmlldyAqb3JpZ2luYXRpbmdXZWJWaWV3OwogCiBAZW5kCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQubW0gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkLm1tCmluZGV4IGMz
YTM1OWY1M2VjZjA2OWNhOTQxZjlkYmI1NDMxNDhiYzAyODA0ZjAuLjA2MjU1ZTBhN2E4NTdkZTA5
OGQwNGE0OGY5NWNhNDYzOThkYjhkMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5tbQpAQCAtMjksOSArMjksMTEgQEAKICNpZiBXS19B
UElfRU5BQkxFRAogCiAjaW1wb3J0ICJEb3dubG9hZFByb3h5LmgiCisjaW1wb3J0ICJXZWFrT2Jq
Q1B0ci5oIgogCiBAaW1wbGVtZW50YXRpb24gX1dLRG93bmxvYWQgewogICAgIEFQSTo6T2JqZWN0
U3RvcmFnZTxXZWJLaXQ6OkRvd25sb2FkUHJveHk+IF9kb3dubG9hZDsKKyAgICBXZWJLaXQ6Oldl
YWtPYmpDUHRyPFdLV2ViVmlldz4gX29yaWdpbmF0aW5nV2ViVmlldzsKIH0KIAogLSAodm9pZClk
ZWFsbG9jCkBAIC01MSw2ICs1MywxNiBAQCAtIChOU1VSTFJlcXVlc3QgKilyZXF1ZXN0CiAgICAg
cmV0dXJuIF9kb3dubG9hZC0+cmVxdWVzdCgpLm5zVVJMUmVxdWVzdChXZWJDb3JlOjpEb05vdFVw
ZGF0ZUhUVFBCb2R5KTsKIH0KIAorLSAoV0tXZWJWaWV3ICopb3JpZ2luYXRpbmdXZWJWaWV3Cit7
CisgICAgcmV0dXJuIF9vcmlnaW5hdGluZ1dlYlZpZXcuZ2V0QXV0b3JlbGVhc2VkKCk7Cit9CisK
Ky0gKHZvaWQpc2V0T3JpZ2luYXRpbmdXZWJWaWV3OihXS1dlYlZpZXcgKilvcmlnaW5hdGluZ1dl
YlZpZXcKK3sKKyAgICBfb3JpZ2luYXRpbmdXZWJWaWV3ID0gb3JpZ2luYXRpbmdXZWJWaWV3Owor
fQorCiAjcHJhZ21hIG1hcmsgV0tPYmplY3QgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24KIAogLSAo
QVBJOjpPYmplY3QmKV9hcGlPYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWRJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZEludGVybmFsLmgKaW5kZXggZmNlZDA4YzRmODYz
MjcyOTZiZWJhZjBmMDI2MTJkNzcxYWYwNGY5OS4uMmZiNzZjNTg3ZjM1YzIyYjU0ZDQ2MDVjYjY1
MGQ0YmZmZmE5ZDJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tEb3dubG9hZEludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tEb3dubG9hZEludGVybmFsLmgKQEAgLTI5LDE3ICsyOSw4IEBACiAKICNp
bXBvcnQgIldLT2JqZWN0LmgiCiAKLUBwcm90b2NvbCBfV0tEb3dubG9hZERlbGVnYXRlOwotCi1u
YW1lc3BhY2UgQVBJIHsKLWNsYXNzIERvd25sb2FkQ2xpZW50OwotfQotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLXN0ZDo6dW5pcXVlX3B0cjxBUEk6OkRvd25sb2FkQ2xpZW50PiBjcmVhdGVBUElEb3du
bG9hZENsaWVudChpZCA8X1dLRG93bmxvYWREZWxlZ2F0ZT4pOwotfQotCiBAaW50ZXJmYWNlIF9X
S0Rvd25sb2FkICgpIDxXS09iamVjdD4KK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCB3ZWFrKSBXS1dl
YlZpZXcgKm9yaWdpbmF0aW5nV2ViVmlldzsKIEBlbmQKIAogI2VuZGlmIC8vIFdLX0FQSV9FTkFC
TEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggMDRk
MmM0NTFhOGFlZTUxYTAzNWQ1MWY5MWIxMWYxNGVmNmZlYzUyOS4uYTU3MGU2ZGFlZDczYWFkMGJj
YjNhOGZiYmE2NDkxYjJlMDIxZmQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbQpAQCAtMzM4Myw3ICszMzgzLDcgQEAgLSAoQk9PTClfc3VwcHJlc3NWaXNp
YmlsaXR5VXBkYXRlcwogICAgIHJldHVybiBfZGF0YS0+X3BhZ2UtPnN1cHByZXNzVmlzaWJpbGl0
eVVwZGF0ZXMoKTsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClm
cmFtZSBjb250ZXh0OihXZWJDb250ZXh0Jiljb250ZXh0IGNvbmZpZ3VyYXRpb246KFdlYlBhZ2VD
b25maWd1cmF0aW9uKXdlYlBhZ2VDb25maWd1cmF0aW9uCistIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhGcmFtZTooTlNSZWN0KWZyYW1lIGNvbnRleHQ6KFdlYkNvbnRleHQmKWNvbnRleHQgY29uZmln
dXJhdGlvbjooV2ViUGFnZUNvbmZpZ3VyYXRpb24pd2ViUGFnZUNvbmZpZ3VyYXRpb24gd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldwogewogICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhGcmFt
ZTpmcmFtZV07CiAgICAgaWYgKCFzZWxmKQpAQCAtMzQwOCw3ICszNDA4LDcgQEAgLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBjb250ZXh0OihXZWJDb250ZXh0Jilj
b250ZXh0IGNvbmZpZ3UKICAgICBbdHJhY2tpbmdBcmVhIHJlbGVhc2VdOwogCiAgICAgX2RhdGEg
PSBbW1dLVmlld0RhdGEgYWxsb2NdIGluaXRdOwotICAgIF9kYXRhLT5fcGFnZUNsaWVudCA9IHN0
ZDo6bWFrZV91bmlxdWU8UGFnZUNsaWVudEltcGw+KHNlbGYpOworICAgIF9kYXRhLT5fcGFnZUNs
aWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZUNsaWVudEltcGw+KHNlbGYsIHdlYlZpZXcpOwog
ICAgIF9kYXRhLT5fcGFnZSA9IGNvbnRleHQuY3JlYXRlV2ViUGFnZSgqX2RhdGEtPl9wYWdlQ2xp
ZW50LCBzdGQ6Om1vdmUod2ViUGFnZUNvbmZpZ3VyYXRpb24pKTsKICAgICBfZGF0YS0+X3BhZ2Ut
PnNldEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKFtzZWxmIF9pbnRyaW5zaWNEZXZpY2VTY2Fs
ZUZhY3Rvcl0pOwogICAgIF9kYXRhLT5fcGFnZS0+aW5pdGlhbGl6ZVdlYlBhZ2UoKTsKQEAgLTM1
MDEsNyArMzUwMSw3IEBAIC0gKGlkKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBjb250ZXh0
UmVmOihXS0NvbnRleHRSZWYpY29udGV4dFJlZiBwYWdlR3JvdXBSCiAgICAgd2ViUGFnZUNvbmZp
Z3VyYXRpb24ucGFnZUdyb3VwID0gdG9JbXBsKHBhZ2VHcm91cFJlZik7CiAgICAgd2ViUGFnZUNv
bmZpZ3VyYXRpb24ucmVsYXRlZFBhZ2UgPSB0b0ltcGwocmVsYXRlZFBhZ2UpOwogCi0gICAgcmV0
dXJuIFtzZWxmIGluaXRXaXRoRnJhbWU6ZnJhbWUgY29udGV4dDoqdG9JbXBsKGNvbnRleHRSZWYp
IGNvbmZpZ3VyYXRpb246d2ViUGFnZUNvbmZpZ3VyYXRpb25dOworICAgIHJldHVybiBbc2VsZiBp
bml0V2l0aEZyYW1lOmZyYW1lIGNvbnRleHQ6KnRvSW1wbChjb250ZXh0UmVmKSBjb25maWd1cmF0
aW9uOndlYlBhZ2VDb25maWd1cmF0aW9uIHdlYlZpZXc6bmlsXTsKIH0KIAogI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA4MApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKaW5kZXggNGJjY2ZiZjdjMmVmNmQ2MDQ0
MDkyNTMzMzUyM2ZiZWE2MTQ5ZTUwMy4uMGJkYTI3MGEyNTc0NmIzNGE5NmU0ODhmMzg1YzE1ZTE3
OGM3YTMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXdJbnRlcm5hbC5oCkBAIC01NCwxMyArNTQsMTQgQEAgc3RydWN0IFdlYlBhZ2VDb25maWd1cmF0
aW9uOwogfQogCiBAY2xhc3MgV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcjsKK0BjbGFzcyBX
S1dlYlZpZXc7CiAjaWYgV0tfQVBJX0VOQUJMRUQKIEBjbGFzcyBfV0tUaHVtYm5haWxWaWV3Owog
I2VuZGlmCiAKIEBpbnRlcmZhY2UgV0tWaWV3ICgpCiAjaWYgV0tfQVBJX0VOQUJMRUQKLS0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29udGV4dDooV2ViS2l0OjpX
ZWJDb250ZXh0Jiljb250ZXh0IGNvbmZpZ3VyYXRpb246KFdlYktpdDo6V2ViUGFnZUNvbmZpZ3Vy
YXRpb24pd2ViUGFnZUNvbmZpZ3VyYXRpb247CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFt
ZTooQ0dSZWN0KWZyYW1lIGNvbnRleHQ6KFdlYktpdDo6V2ViQ29udGV4dCYpY29udGV4dCBjb25m
aWd1cmF0aW9uOihXZWJLaXQ6OldlYlBhZ2VDb25maWd1cmF0aW9uKXdlYlBhZ2VDb25maWd1cmF0
aW9uIHdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXc7CiAjZW5kaWYKIAogLSAoc3RkOjp1bmlx
dWVfcHRyPFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eT4pX2NyZWF0ZURyYXdpbmdBcmVhUHJveHk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvRG93bmxvYWRDbGll
bnQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvRG93bmxvYWRDbGllbnQubW0K
aW5kZXggYzkyZDllMDk4MTdjNzExZjM1MDk4ZGZlYzljZTZkMjM4ODA0Zjc2NC4uZTNmYTBkMjQ0
MDFhMDU2N2VjNzk0ZWI4YmVmYTI5NGFlOTk1OWNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL0Rvd25sb2FkQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9Eb3dubG9hZENsaWVudC5tbQpAQCAtNzcsNyArNzcsNyBAQCBTdHJp
bmcgRG93bmxvYWRDbGllbnQ6OmRlY2lkZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1l
KFdlYkNvbnRleHQqLCBEb3dubAogICAgIGlmICghbV9kZWxlZ2F0ZU1ldGhvZHMuZG93bmxvYWRE
ZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZUFsbG93T3ZlcndyaXRlKQogICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgCi0gICAgQk9PTCBhbGxvd092ZXJ3cml0ZTsKKyAg
ICBCT09MIGFsbG93T3ZlcndyaXRlID0gTk87CiAgICAgTlNTdHJpbmcgKmRlc3RpbmF0aW9uID0g
W21fZGVsZWdhdGUuZ2V0KCkgX2Rvd25sb2FkOndyYXBwZXIoKmRvd25sb2FkUHJveHkpIGRlY2lk
ZURlc3RpbmF0aW9uV2l0aFN1Z2dlc3RlZEZpbGVuYW1lOmZpbGVuYW1lIGFsbG93T3ZlcndyaXRl
OiZhbGxvd092ZXJ3cml0ZV07CiAgICAgYWxsb3dPdmVyd3JpdGVQYXJhbSA9IGFsbG93T3Zlcndy
aXRlOwogICAgIHJldHVybiBkZXN0aW5hdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oCmluZGV4IDU4OGNhMjE3YTUwY2Y2MTg4ZTY3OTJkYWYxNTc0YjgwOGRhODRkNmIuLmRi
OTQ4MDVjOTQ2ZTA0M2U3YWJkYmNjZWVmMTIwMjdjMzcwODY0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTQ2LDkgKzE0Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlVGV4dElucHV0U3RhdGUoKSA9IDA7CiAjZW5kaWYgLy8gUExBVEZPUk0o
RUZMKSB8fCBQTEFUT0ZSTShHVEspCiAKLSNpZiBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdU
SykKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkq
KSA9IDA7Ci0jZW5kaWYgLy8gUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShHVEspCiAKICNpZiBQ
TEFURk9STShFRkwpCiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUNvbnRlbnRTaXplKGNvbnN0
IFdlYkNvcmU6OkludFNpemUmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCmluZGV4IDA2N2M5MDZiMWMzOTY1NDA1YTczZTQ0ZDE3OTc5Zjc5NTg4ZDliNjcu
LjcyZWUyODU3Zjg2YmU5YTVmMDdlZDlhNTY0NzAyYmEwMjVkODZjZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNTMwLDEwICsxNTMwLDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIGFjdGlv
biwgV2ViRnJhbWVQcm94eSogZnIKICAgICAgICAgLy8gQ3JlYXRlIGEgZG93bmxvYWQgcHJveHku
CiAgICAgICAgIERvd25sb2FkUHJveHkqIGRvd25sb2FkID0gbV9wcm9jZXNzLT5jb250ZXh0KCku
Y3JlYXRlRG93bmxvYWRQcm94eSgpOwogICAgICAgICBkb3dubG9hZElEID0gZG93bmxvYWQtPmRv
d25sb2FkSUQoKTsKLSNpZiBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdUSykKLSAgICAgICAg
Ly8gT3VyIGRlc2lnbiBkb2VzIG5vdCBzdXBwcG9ydCBkb3dubG9hZHMgd2l0aG91dCBhIFdlYlBh
Z2UuCiAgICAgICAgIGhhbmRsZURvd25sb2FkUmVxdWVzdChkb3dubG9hZCk7Ci0jZW5kaWYKICAg
ICB9CiAKICAgICAvLyBJZiB3ZSByZWNlaXZlZCBhIHBvbGljeSBkZWNpc2lvbiB3aGlsZSBpbiBk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZSB0aGUgZGVjaXNpb24gd2lsbApAQCAtMjk4OCwxMiArMjk4
NSwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyhi
b29sIG1heVN0YXJ0TWVkaWEpCiAgICAgcHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6
OlNldE1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3cobWF5U3RhcnRNZWRpYSksIG1fcGFnZUlEKTsK
IH0KIAotI2lmIFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oR1RLKQogdm9pZCBXZWJQYWdlUHJv
eHk6OmhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5KiBkb3dubG9hZCkKIHsKICAg
ICBtX3BhZ2VDbGllbnQuaGFuZGxlRG93bmxvYWRSZXF1ZXN0KGRvd25sb2FkKTsKIH0KLSNlbmRp
ZiAvLyBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKEdUSykKIAogI2lmIFBMQVRGT1JNKEVGTCkK
IHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBJbnRTaXplJiBz
aXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDQ4NzNlNTg0
Yjc2NjFiMGVlMjE5OGUyZWZhNzkyYzIxYjVhZGI3YzguLmYyMWFlYTM1YjMwNzdkNmI3M2UyMzQ2
YWIzOGZjMDEzZWEzNjFlNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKQEAgLTkyMSw5ICs5MjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaW5kWm9vbWFibGVBcmVh
Rm9yUG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
Jik7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEVGTCkgfHwgUExBVEZPUk0oR1RLKQogICAgIHZv
aWQgaGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqKTsKLSNlbmRpZgogCiAgICAg
dm9pZCBhZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbik7
CiAgICAgdm9pZCBjaGFuZ2VTcGVsbGluZ1RvV29yZChjb25zdCBTdHJpbmcmIHdvcmQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4
IDk2ZmZlOTI1NTM5ZjBiNjQwNTk4N2FhODQ2YTE0OWZkZDA2NWM2ZTguLjI4NjhhMDIyZmJlMTlk
MDMyNDlhZDRkYmE5YmZlMmZiZDMxOWIzNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgUGFn
ZUNsaWVudEltcGwgOiBwdWJsaWMgUGFnZUNsaWVudAogI2VuZGlmCiAgICAgewogcHVibGljOgot
ICAgIGV4cGxpY2l0IFBhZ2VDbGllbnRJbXBsKFdLQ29udGVudFZpZXcgKiwgV0tXZWJWaWV3ICop
OworICAgIFBhZ2VDbGllbnRJbXBsKFdLQ29udGVudFZpZXcgKiwgV0tXZWJWaWV3ICopOwogICAg
IHZpcnR1YWwgflBhZ2VDbGllbnRJbXBsKCk7CiAgICAgCiBwcml2YXRlOgpAQCAtNjUsNiArNjUs
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB0b29sVGlwQ2hhbmdlZChjb25zdCBTdHJp
bmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9s
aWN5Rm9yR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJGcmFtZVByb3h5JiwgV2ViU2Vj
dXJpdHlPcmlnaW4mLCBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0UHJveHkmKSBvdmVycmlk
ZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZShjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBib29sIHVzZUN1c3RvbUNvbnRlbnRQcm92aWRlcikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5Kikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3Im
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1v
dmVzKGJvb2wpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFBy
b3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJikgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpp
bmRleCA2NGExZjdiOTRiMGYzZjlkZTMwNDNmZWUwYTUzMDllYjQzNjk4MmE3Li5hNzFjMzg0NTFk
YWFhZjBhZThhOWZjNWQyMDMyZjBhODhiMDM3ZTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTI4LDcgKzI4LDkgQEAKIAog
I2lmIFBMQVRGT1JNKElPUykKIAorI2ltcG9ydCAiX1dLRG93bmxvYWRJbnRlcm5hbC5oIgogI2lt
cG9ydCAiRGF0YVJlZmVyZW5jZS5oIgorI2ltcG9ydCAiRG93bmxvYWRQcm94eS5oIgogI2ltcG9y
dCAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgogI2ltcG9ydCAiSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24uaCIKICNpbXBvcnQgIldLQ29udGVudFZpZXcuaCIKQEAgLTE1NCw2ICsx
NTYsMTMgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZShj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIHVzZUMKICAgICBbbV9jb250ZW50VmlldyBfZGlk
Q29tbWl0TG9hZEZvck1haW5GcmFtZV07CiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmhhbmRs
ZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5KiBkb3dubG9hZCkKK3sKKyAgICBBU1NFUlRf
QVJHKGRvd25sb2FkLCBkb3dubG9hZCk7CisgICAgQVNTRVJUKFtkb3dubG9hZC0+d3JhcHBlcigp
IGlzS2luZE9mQ2xhc3M6W19XS0Rvd25sb2FkIGNsYXNzXV0pOworICAgIFtzdGF0aWNfY2FzdDxf
V0tEb3dubG9hZCAqPihkb3dubG9hZC0+d3JhcHBlcigpKSBzZXRPcmlnaW5hdGluZ1dlYlZpZXc6
bV93ZWJWaWV3XTsKK30KKwogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Q3Vyc29yKGNvbnN0IEN1
cnNvciYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaAppbmRleCBiMDQzODQ2OTQ1Njc3ZDBlNmYwODk1YmM1
MDIwNjE0YWM2OTIzMTZmLi40MjVkMjgwODNjYzgwMjM0Njk1ZjY3NmViMGRkODEyMjg0YmM5MTEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCkBA
IC0zNSw2ICszNSw3IEBACiAKIEBjbGFzcyBXS0VkaXRvclVuZG9UYXJnZXRPYmpDOwogQGNsYXNz
IFdLVmlldzsKK0BjbGFzcyBXS1dlYlZpZXc7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcjsKQEAgLTQ5LDcgKzUwLDcgQEAgY2xhc3MgUGFn
ZUNsaWVudEltcGwgZmluYWwgOiBwdWJsaWMgUGFnZUNsaWVudAogI2VuZGlmCiAgICAgewogcHVi
bGljOgotICAgIGV4cGxpY2l0IFBhZ2VDbGllbnRJbXBsKFdLVmlldyAqKTsKKyAgICBQYWdlQ2xp
ZW50SW1wbChXS1ZpZXcgKiwgV0tXZWJWaWV3ICopOwogICAgIHZpcnR1YWwgflBhZ2VDbGllbnRJ
bXBsKCk7CiAgICAgCiAgICAgdm9pZCB2aWV3V2lsbE1vdmVUb0Fub3RoZXJXaW5kb3coKTsKQEAg
LTgxLDYgKzgyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgdG9vbFRpcENoYW5nZWQo
Y29uc3QgU3RyaW5nJiBvbGRUb29sVGlwLCBjb25zdCBTdHJpbmcmIG5ld1Rvb2xUaXApOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIGJvb2wgdXNlQ3VzdG9tQ29udGVudFByb3ZpZGVyKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21Db250ZW50UHJvdmlkZXIoY29u
c3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9h
ZFByb3h5Kikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJD
b3JlOjpDdXJzb3ImKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3Vz
ZU1vdmVzKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRp
ZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJik7CkBAIC0xNjYsNiArMTY4LDcg
QEAgcHJpdmF0ZToKICAgICBOU1ZpZXcgKmFjdGl2ZVZpZXcoKSBjb25zdDsKIAogICAgIFdLVmll
dyAqbV93a1ZpZXc7CisgICAgV0tXZWJWaWV3ICptX3dlYlZpZXc7CiAgICAgUmV0YWluUHRyPFdL
RWRpdG9yVW5kb1RhcmdldE9iakM+IG1fdW5kb1RhcmdldDsKICNpZiBVU0UoQVVUT0NPUlJFQ1RJ
T05fUEFORUwpCiAgICAgQ29ycmVjdGlvblBhbmVsIG1fY29ycmVjdGlvblBhbmVsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggYTQwZGRh
ZmJjYTgwNGRkNzhiNGUwMWEyMzM0MTc2OTk1NzQ5NTg1Ni4uMTliNjM4YTZhN2EzMzNjZjI2N2Nk
ZjVkNzEwMjczZWUxYzNkZmQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsLm1tCkBAIC0yOCwxMCArMjgsMTIgQEAKIAogI2lmIFBMQVRGT1JNKE1B
QykKIAorI2ltcG9ydCAiX1dLRG93bmxvYWRJbnRlcm5hbC5oIgogI2ltcG9ydCAiQXR0cmlidXRl
ZFN0cmluZy5oIgogI2ltcG9ydCAiQ29sb3JTcGFjZURhdGEuaCIKICNpbXBvcnQgIkRhdGFSZWZl
cmVuY2UuaCIKICNpbXBvcnQgIkRpY3Rpb25hcnlQb3B1cEluZm8uaCIKKyNpbXBvcnQgIkRvd25s
b2FkUHJveHkuaCIKICNpbXBvcnQgIkZpbmRJbmRpY2F0b3IuaCIKICNpbXBvcnQgIk5hdGl2ZVdl
YktleWJvYXJkRXZlbnQuaCIKICNpbXBvcnQgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKQEAgLTEy
NiwxMyArMTI4LDE3IEBAIEBlbmQKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVBhZ2VDbGllbnRJ
bXBsOjpQYWdlQ2xpZW50SW1wbChXS1ZpZXcqIHdrVmlldykKK1BhZ2VDbGllbnRJbXBsOjpQYWdl
Q2xpZW50SW1wbChXS1ZpZXcqIHdrVmlldywgV0tXZWJWaWV3ICp3ZWJWaWV3KQogICAgIDogbV93
a1ZpZXcod2tWaWV3KQorICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCiAgICAgLCBtX3VuZG9UYXJn
ZXQoYWRvcHROUyhbW1dLRWRpdG9yVW5kb1RhcmdldE9iakMgYWxsb2NdIGluaXRdKSkKICNpZiBV
U0UoRElDVEFUSU9OX0FMVEVSTkFUSVZFUykKICAgICAsIG1fYWx0ZXJuYXRpdmVUZXh0VUlDb250
cm9sbGVyKGFkb3B0UHRyKG5ldyBBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIpKQogI2VuZGlm
CiB7CisjaWYgIVdLX0FQSV9FTkFCTEVECisgICAgQVNTRVJUX1VOVVNFRChtX3dlYlZpZXcsICFt
X3dlYlZpZXcpOworI2VuZGlmCiB9CiAKIFBhZ2VDbGllbnRJbXBsOjp+UGFnZUNsaWVudEltcGwo
KQpAQCAtMjkzLDYgKzI5OSwxNSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2Fk
aW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcmCiB7CiB9CiAKK3Zv
aWQgUGFnZUNsaWVudEltcGw6OmhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5KiBk
b3dubG9hZCkKK3sKKyAgICBBU1NFUlRfQVJHKGRvd25sb2FkLCBkb3dubG9hZCk7CisjaWYgV0tf
QVBJX0VOQUJMRUQKKyAgICBBU1NFUlQoW2Rvd25sb2FkLT53cmFwcGVyKCkgaXNLaW5kT2ZDbGFz
czpbX1dLRG93bmxvYWQgY2xhc3NdXSk7CisgICAgW3N0YXRpY19jYXN0PF9XS0Rvd25sb2FkICo+
KGRvd25sb2FkLT53cmFwcGVyKCkpIHNldE9yaWdpbmF0aW5nV2ViVmlldzptX3dlYlZpZXddOwor
I2VuZGlmCit9CisKIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldEN1cnNvcihjb25zdCBXZWJDb3Jl
OjpDdXJzb3ImIGN1cnNvcikKIHsKICAgICBpZiAoIVtOU0FwcCBfY3Vyc29yUmVjdEN1cnNvcl0p
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzNm
MmRhYjFmMTczM2I0MWM4ZDNhOWFkMWM1YzVlM2ZlOTBlYzA1OC4uNDNmYjc3NjViOThhMjY3MTQ5
ZTliMzlkZjcyMjI5ODg1YzYwMTY1MSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE0LTAzLTMwICBBbmR5IEVzdGVz
ICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEFkZCBhbiBvcmlnaW5hdGlu
Z1dlYlZpZXcgcHJvcGVydHkgdG8gX1dLRG93bmxvYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDk0NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvRG93bmxvYWQubW06CisgICAgICAgICgtW0Rvd25sb2FkRGVsZWdhdGUgX2Rvd25sb2FkRGlk
U3RhcnQ6XSk6CisgICAgICAgICgtW09yaWdpbmF0aW5nV2ViVmlld0Rvd25sb2FkRGVsZWdhdGUg
aW5pdFdpdGhXZWJWaWV3Ol0pOgorICAgICAgICAoLVtPcmlnaW5hdGluZ1dlYlZpZXdEb3dubG9h
ZERlbGVnYXRlIF9kb3dubG9hZERpZFN0YXJ0Ol0pOgorICAgICAgICAoVEVTVCk6CisKIDIwMTQt
MDMtMjggIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFJlbW92ZSBXZWJLaXQxIEdUSysgYm90cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvRG93bmxvYWQubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9Eb3dubG9hZC5tbQppbmRleCBiYWY4ZjJiYTUyNTUzYjAxOTdhMDI5
MWExZjNkMDFkMzc3MDI2N2JkLi45N2NiNDcwNDc5NzhjNWQxNjE0NTM5Y2RkNzJlODdkNzU1NjQy
OThkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9E
b3dubG9hZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9E
b3dubG9hZC5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMu
aCIKICNpbXBvcnQgIlRlc3QuaCIKICNpbXBvcnQgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2lt
cG9ydCA8V2ViS2l0Mi9fV0tEb3dubG9hZC5oPgogI2ltcG9ydCA8V2ViS2l0Mi9fV0tEb3dubG9h
ZERlbGVnYXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQyL1dLTmF2aWdhdGlvbkRlbGVnYXRlLmg+CiAj
aW1wb3J0IDxXZWJLaXQyL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CkBAIC01Niw2ICs1Nyw3IEBA
IC0gKHZvaWQpX2Rvd25sb2FkRGlkU3RhcnQ6KF9XS0Rvd25sb2FkICopZG93bmxvYWQKIHsKICAg
ICBFWFBFQ1RfTlVMTChfZG93bmxvYWQpOwogICAgIEVYUEVDVF9OT1RfTlVMTChkb3dubG9hZCk7
CisgICAgRVhQRUNUX1RSVUUoW1tbZG93bmxvYWQgcmVxdWVzdF0gVVJMXSBpc0VxdWFsOnNvdXJj
ZVVSTF0pOwogICAgIF9kb3dubG9hZCA9IGRvd25sb2FkOwogfQogCkBAIC0yMjAsNCArMjIyLDUw
IEBAIFRFU1QoX1dLRG93bmxvYWQsIENhbmNlbERvd25sb2FkKQogICAgIHJ1blRlc3QoYWRvcHRO
UyhbW0Rvd25sb2FkTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSkuZ2V0KCksIGFkb3B0
TlMoW1tDYW5jZWxsZWREb3dubG9hZERlbGVnYXRlIGFsbG9jXSBpbml0XSkuZ2V0KCksIHNvdXJj
ZVVSTCk7CiB9CiAKK0BpbnRlcmZhY2UgT3JpZ2luYXRpbmdXZWJWaWV3RG93bmxvYWREZWxlZ2F0
ZSA6IE5TT2JqZWN0IDxfV0tEb3dubG9hZERlbGVnYXRlPgorLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldzsKK0BlbmQKKworQGltcGxlbWVudGF0aW9u
IE9yaWdpbmF0aW5nV2ViVmlld0Rvd25sb2FkRGVsZWdhdGUgeworICAgIFJldGFpblB0cjxXS1dl
YlZpZXc+IF93ZWJWaWV3OworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhXZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3Cit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisg
ICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfd2ViVmlldyA9IHdlYlZpZXc7CisgICAgcmV0dXJu
IHNlbGY7Cit9CisKKy0gKHZvaWQpX2Rvd25sb2FkRGlkU3RhcnQ6KF9XS0Rvd25sb2FkICopZG93
bmxvYWQKK3sKKyAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgRVhQRUNUX0VRKFtkb3du
bG9hZCBvcmlnaW5hdGluZ1dlYlZpZXddLCBfd2ViVmlldyk7CisgICAgfQorCisgICAgX3dlYlZp
ZXcuY2xlYXIoKTsKKyAgICBFWFBFQ1RfTlVMTChbZG93bmxvYWQgb3JpZ2luYXRpbmdXZWJWaWV3
XSk7CisgICAgaXNEb25lID0gdHJ1ZTsKK30KKworQGVuZAorCitURVNUKF9XS0Rvd25sb2FkLCBP
cmlnaW5hdGluZ1dlYlZpZXcpCit7CisgICAgUmV0YWluUHRyPERvd25sb2FkTmF2aWdhdGlvbkRl
bGVnYXRlPiBuYXZpZ2F0aW9uRGVsZWdhdGUgPSBhZG9wdE5TKFtbRG93bmxvYWROYXZpZ2F0aW9u
RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsgICAgICAgICAgICAgICAgIAorICAgIFJldGFpblB0cjxP
cmlnaW5hdGluZ1dlYlZpZXdEb3dubG9hZERlbGVnYXRlPiBkb3dubG9hZERlbGVnYXRlOworICAg
IHsKKyAgICAgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsK
KyAgICAgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRpb25EZWxlZ2F0
ZS5nZXQoKV07CisgICAgICAgIGRvd25sb2FkRGVsZWdhdGUgPSBhZG9wdE5TKFtbT3JpZ2luYXRp
bmdXZWJWaWV3RG93bmxvYWREZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhXZWJWaWV3OndlYlZpZXcu
Z2V0KCldKTsKKyAgICAgICAgW1tbd2ViVmlldyBjb25maWd1cmF0aW9uXSBwcm9jZXNzUG9vbF0g
X3NldERvd25sb2FkRGVsZWdhdGU6ZG93bmxvYWREZWxlZ2F0ZS5nZXQoKV07CisgICAgICAgIFt3
ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6c291cmNlVVJM
XV07CisgICAgfQorCisgICAgaXNEb25lID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZpc0RvbmUpOworfQorCiAjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>