<?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>169772</bug_id>
          
          <creation_ts>2017-03-16 11:50:31 -0700</creation_ts>
          <short_desc>Clean up WKContentExtension API</short_desc>
          <delta_ts>2017-03-16 12:06:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1288644</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-03-16 11:50:31 -0700</bug_when>
    <thetext>Clean up WKContentExtension API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288645</commentid>
    <comment_count>1</comment_count>
      <attachid>304662</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-03-16 11:53:25 -0700</bug_when>
    <thetext>Created attachment 304662
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288651</commentid>
    <comment_count>2</comment_count>
      <attachid>304662</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-03-16 12:03:40 -0700</bug_when>
    <thetext>Comment on attachment 304662
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKContentExtension.h:34
&gt; +@property (nonatomic, readonly, copy) NSString *identifier;

If we&apos;re going to use this string in the file system, we need to give it name like &quot;fileSystemIdentifier&quot;, in order to communicate to clients the restrictions on what can go in this string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288654</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-03-16 12:06:58 -0700</bug_when>
    <thetext>http://trac.webkit.org/r214061</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304662</attachid>
            <date>2017-03-16 11:53:25 -0700</date>
            <delta_ts>2017-03-16 12:03:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169772-20170316115325.patch</filename>
            <type>text/plain</type>
            <size>18934</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMzk4OCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE3LTAzLTE2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ2xlYW4gdXAg
V0tDb250ZW50RXh0ZW5zaW9uIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY5NzcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQmFzZWQgb24gZmVlZGJhY2sgSSBoYXZlIGRlY2lkZWQgdG8gZG8gdGhl
IGZvbGxvd2luZzoKKyAgICAgICAgMS4gUmVuYW1lIGxvb2t1cCB0byBsb29rVXAgYmVjYXVzZSBs
b29rIGFuZCB1cCBhcmUgdHdvIHdvcmRzLgorICAgICAgICAyLiBDaGFuZ2UgdGhlIHBhcmFtZXRl
ciBvZiByZW1vdmVDb250ZW50RXh0ZW5zaW9uIHRvIGEgV0tDb250ZW50RXh0ZW5zaW9uKiB0byBt
YXRjaCBhZGRDb250ZW50RXh0ZW5zaW9uLgorICAgICAgICAzLiBBZGQgYW4gaWRlbnRpZmllciBw
cm9wZXJ0eSBhY2Nlc3NvciB0byBXS0NvbnRlbnRFeHRlbnNpb24uCisgICAgICAgIDQuIENoYW5n
ZSB0aGUgb3JkZXIgb2YgdGhlIG5ldyBlcnJvciB0eXBlcy4gIFRoaXMgd2Fzbid0IGV4YWN0bHkg
YmFzZWQgb24gYW55IGZlZWRiYWNrLCBidXQgdGhleSBsb29rIG1vcmUgb3JnYW5pemVkIG5vdy4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50RXh0ZW5zaW9uLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRFeHRlbnNpb24ubW06CisgICAg
ICAgICgtW1dLQ29udGVudEV4dGVuc2lvbiBpZGVudGlmaWVyXSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRFeHRlbnNpb25TdG9yZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50RXh0ZW5zaW9uU3RvcmUubW06CisgICAgICAgICh0b1dL
RXJyb3JDb2RlKToKKyAgICAgICAgKC1bV0tDb250ZW50RXh0ZW5zaW9uU3RvcmUgbG9va1VwQ29u
dGVudEV4dGVuc2lvbkZvcklkZW50aWZpZXI6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAg
ICgtW1dLQ29udGVudEV4dGVuc2lvblN0b3JlIGxvb2t1cENvbnRlbnRFeHRlbnNpb25Gb3JJZGVu
dGlmaWVyOmNvbXBsZXRpb25IYW5kbGVyOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tFcnJvci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tF
cnJvci5tbToKKyAgICAgICAgKGxvY2FsaXplZERlc2NyaXB0aW9uRm9yRXJyb3JDb2RlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5tbToK
KyAgICAgICAgKC1bV0tVc2VyQ29udGVudENvbnRyb2xsZXIgcmVtb3ZlQ29udGVudEV4dGVuc2lv
bjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RXh0ZW5z
aW9uU3RvcmUubW06CisgICAgICAgICh0b1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVFcnJvcik6
CisgICAgICAgICgtW19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUgbG9va3VwQ29udGVudEV4
dGVuc2lvbkZvcklkZW50aWZpZXI6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisKIDIwMTctMDMtMTUg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBD
b21waWxlZCBjb250ZW50IGV4dGVuc2lvbnMgc2hvdWxkIGluY2x1ZGUgdGhlIEpTT04gc291cmNl
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVudEV4dGVu
c2lvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tDb250ZW50RXh0ZW5zaW9uLmgJKHJldmlzaW9uIDIxMzk2MCkKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50RXh0ZW5zaW9uLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDYgKzMwLDkgQEAKIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSkKIEBpbnRlcmZhY2UgV0tDb250ZW50RXh0ZW5zaW9uIDogTlNPYmpl
Y3QKIAorLyohIEBhYnN0cmFjdCBBIGNvcHkgb2YgdGhlIGlkZW50aWZpZXIgb2YgdGhlIGNvbnRl
bnQgZXh0ZW5zaW9uLiAqLworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBO
U1N0cmluZyAqaWRlbnRpZmllcjsKKwogQGVuZAogCiAjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50RXh0ZW5z
aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tDb250ZW50RXh0ZW5zaW9uLm1tCShyZXZpc2lvbiAyMTM5NjApCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVudEV4dGVuc2lvbi5tbQkod29ya2luZyBjb3B5
KQpAQCAtNDYsNiArNDYsMTEgQEAgLSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKICAgICByZXR1
cm4gKl9jb250ZW50RXh0ZW5zaW9uOwogfQogCistIChOU1N0cmluZyAqKWlkZW50aWZpZXIKK3sK
KyAgICByZXR1cm4gX2NvbnRlbnRFeHRlbnNpb24tPm5hbWUoKTsKK30KKwogQGVuZAogCiAjZW5k
aWYgLy8gV0tfQVBJX0VOQUJMRUQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tDb250ZW50RXh0ZW5zaW9uU3RvcmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVudEV4dGVuc2lvblN0b3JlLmgJKHJldmlz
aW9uIDIxMzk2MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250
ZW50RXh0ZW5zaW9uU3RvcmUuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBXS19D
TEFTU19BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpCiArIChpbnN0YW5jZXR5cGUpc3Rv
cmVXaXRoVVJMOihOU1VSTCAqKXVybDsKIAogLSAodm9pZCljb21waWxlQ29udGVudEV4dGVuc2lv
bkZvcklkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllciBlbmNvZGVkQ29udGVudEV4dGVu
c2lvbjooTlNTdHJpbmcgKikgZW5jb2RlZENvbnRlbnRFeHRlbnNpb24gY29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQgKF4pKFdLQ29udGVudEV4dGVuc2lvbiAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25I
YW5kbGVyOwotLSAodm9pZClsb29rdXBDb250ZW50RXh0ZW5zaW9uRm9ySWRlbnRpZmllcjooTlNT
dHJpbmcgKilpZGVudGlmaWVyIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXS0NvbnRlbnRF
eHRlbnNpb24gKiwgTlNFcnJvciAqKSljb21wbGV0aW9uSGFuZGxlcjsKKy0gKHZvaWQpbG9va1Vw
Q29udGVudEV4dGVuc2lvbkZvcklkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllciBjb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV0tDb250ZW50RXh0ZW5zaW9uICosIE5TRXJyb3IgKikp
Y29tcGxldGlvbkhhbmRsZXI7CiAtICh2b2lkKXJlbW92ZUNvbnRlbnRFeHRlbnNpb25Gb3JJZGVu
dGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXIgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4p
KE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXI7CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRFeHRl
bnNpb25TdG9yZS5tbQkocmV2aXNpb24gMjEzOTg4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRFeHRlbnNpb25TdG9yZS5tbQkod29ya2luZyBjb3B5KQpA
QCAtMzcsNyArMzcsNyBAQCBzdGF0aWMgV0tFcnJvckNvZGUgdG9XS0Vycm9yQ29kZShjb25zdCBz
CiAgICAgQVNTRVJUKGVycm9yLmNhdGVnb3J5KCkgPT0gQVBJOjpjb250ZW50RXh0ZW5zaW9uU3Rv
cmVFcnJvckNhdGVnb3J5KCkpOwogICAgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8QVBJOjpDb250ZW50
RXh0ZW5zaW9uU3RvcmU6OkVycm9yPihlcnJvci52YWx1ZSgpKSkgewogICAgIGNhc2UgQVBJOjpD
b250ZW50RXh0ZW5zaW9uU3RvcmU6OkVycm9yOjpMb29rdXBGYWlsZWQ6Ci0gICAgICAgIHJldHVy
biBXS0Vycm9yQ29udGVudEV4dGVuc2lvblN0b3JlTG9va3VwRmFpbGVkOworICAgICAgICByZXR1
cm4gV0tFcnJvckNvbnRlbnRFeHRlbnNpb25TdG9yZUxvb2tVcEZhaWxlZDsKICAgICBjYXNlIEFQ
STo6Q29udGVudEV4dGVuc2lvblN0b3JlOjpFcnJvcjo6VmVyc2lvbk1pc21hdGNoOgogICAgICAg
ICByZXR1cm4gV0tFcnJvckNvbnRlbnRFeHRlbnNpb25TdG9yZVZlcnNpb25NaXNtYXRjaDsKICAg
ICBjYXNlIEFQSTo6Q29udGVudEV4dGVuc2lvblN0b3JlOjpFcnJvcjo6Q29tcGlsZUZhaWxlZDoK
QEAgLTEwMSw3ICsxMDEsNyBAQCAtICh2b2lkKV9jb21waWxlQ29udGVudEV4dGVuc2lvbkZvcklk
ZW50CiAgICAgfSk7CiB9CiAKLS0gKHZvaWQpbG9va3VwQ29udGVudEV4dGVuc2lvbkZvcklkZW50
aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmllciBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXiko
V0tDb250ZW50RXh0ZW5zaW9uICosIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIKKy0gKHZv
aWQpbG9va1VwQ29udGVudEV4dGVuc2lvbkZvcklkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRp
ZmllciBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV0tDb250ZW50RXh0ZW5zaW9uICosIE5T
RXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5T
KFtjb21wbGV0aW9uSGFuZGxlciBjb3B5XSk7CiAKQEAgLTExMSw3ICsxMTEsNyBAQCAtICh2b2lk
KWxvb2t1cENvbnRlbnRFeHRlbnNpb25Gb3JJZGVudGlmCiAKICAgICAgICAgICAgIGF1dG8gdXNl
ckluZm8gPSBAe05TSGVscEFuY2hvckVycm9yS2V5OiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1h
dDpAIkV4dGVuc2lvbiBsb29rdXAgZmFpbGVkOiAlcyIsIGVycm9yLm1lc3NhZ2UoKS5jX3N0cigp
XX07CiAgICAgICAgICAgICBhdXRvIHdrRXJyb3IgPSB0b1dLRXJyb3JDb2RlKGVycm9yKTsKLSAg
ICAgICAgICAgIEFTU0VSVCh3a0Vycm9yID09IFdLRXJyb3JDb250ZW50RXh0ZW5zaW9uU3RvcmVM
b29rdXBGYWlsZWQgfHwgd2tFcnJvciA9PSBXS0Vycm9yQ29udGVudEV4dGVuc2lvblN0b3JlVmVy
c2lvbk1pc21hdGNoKTsKKyAgICAgICAgICAgIEFTU0VSVCh3a0Vycm9yID09IFdLRXJyb3JDb250
ZW50RXh0ZW5zaW9uU3RvcmVMb29rVXBGYWlsZWQgfHwgd2tFcnJvciA9PSBXS0Vycm9yQ29udGVu
dEV4dGVuc2lvblN0b3JlVmVyc2lvbk1pc21hdGNoKTsKICAgICAgICAgICAgIHJhd0hhbmRsZXIo
bmlsLCBbTlNFcnJvciBlcnJvcldpdGhEb21haW46V0tFcnJvckRvbWFpbiBjb2RlOndrRXJyb3Ig
dXNlckluZm86dXNlckluZm9dKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9yLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9yLmgJKHJldmlz
aW9uIDIxMzk4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJv
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSwxMCArNDEsMTAgQEAgV0tfRVhURVJOIE5TU3RyaW5n
ICogY29uc3QgV0tFcnJvckRvbWFpbgogIEBjb25zdGFudCBXS0Vycm9yV2ViVmlld0ludmFsaWRh
dGVkICAgICAgICAgICAgICAgICAgIEluZGljYXRlcyB0aGF0IHRoZSBXS1dlYlZpZXcgd2FzIGlu
dmFsaWRhdGVkLgogIEBjb25zdGFudCBXS0Vycm9ySmF2YVNjcmlwdEV4Y2VwdGlvbk9jY3VycmVk
ICAgICAgICAgIEluZGljYXRlcyB0aGF0IGEgSmF2YVNjcmlwdCBleGNlcHRpb24gb2NjdXJyZWQu
CiAgQGNvbnN0YW50IFdLRXJyb3JKYXZhU2NyaXB0UmVzdWx0VHlwZUlzVW5zdXBwb3J0ZWQgICAg
SW5kaWNhdGVzIHRoYXQgdGhlIHJlc3VsdCBvZiBKYXZhU2NyaXB0IGV4ZWN1dGlvbiBjb3VsZCBu
b3QgYmUgcmV0dXJuZWQuCi0gQGNvbnN0YW50IFdLRXJyb3JDb250ZW50RXh0ZW5zaW9uU3RvcmVM
b29rdXBGYWlsZWQgICAgSW5kaWNhdGVzIHRoYXQgbG9va2luZyB1cCBhIFdLVXNlckNvbnRlbnRF
eHRlbnNpb24gZmFpbGVkLgotIEBjb25zdGFudCBXS0Vycm9yQ29udGVudEV4dGVuc2lvblN0b3Jl
VmVyc2lvbk1pc21hdGNoIEluZGljYXRlcyB0aGF0IHRoZSBXS1VzZXJDb250ZW50RXh0ZW5zaW9u
IHZlcnNpb24gZGlkIG5vdCBtYXRjaCB0aGUgbGF0ZXN0LgogIEBjb25zdGFudCBXS0Vycm9yQ29u
dGVudEV4dGVuc2lvblN0b3JlQ29tcGlsZUZhaWxlZCAgIEluZGljYXRlcyB0aGF0IGNvbXBpbGlu
ZyBhIFdLVXNlckNvbnRlbnRFeHRlbnNpb24gZmFpbGVkLgorIEBjb25zdGFudCBXS0Vycm9yQ29u
dGVudEV4dGVuc2lvblN0b3JlTG9va1VwRmFpbGVkICAgIEluZGljYXRlcyB0aGF0IGxvb2tpbmcg
dXAgYSBXS1VzZXJDb250ZW50RXh0ZW5zaW9uIGZhaWxlZC4KICBAY29uc3RhbnQgV0tFcnJvckNv
bnRlbnRFeHRlbnNpb25TdG9yZVJlbW92ZUZhaWxlZCAgICBJbmRpY2F0ZXMgdGhhdCByZW1vdmlu
ZyBhIFdLVXNlckNvbnRlbnRFeHRlbnNpb24gZmFpbGVkLgorIEBjb25zdGFudCBXS0Vycm9yQ29u
dGVudEV4dGVuc2lvblN0b3JlVmVyc2lvbk1pc21hdGNoIEluZGljYXRlcyB0aGF0IHRoZSBXS1Vz
ZXJDb250ZW50RXh0ZW5zaW9uIHZlcnNpb24gZGlkIG5vdCBtYXRjaCB0aGUgbGF0ZXN0LgogICov
CiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS0Vycm9yQ29kZSkgewogICAgIFdLRXJyb3JV
bmtub3duID0gMSwKQEAgLTUyLDEwICs1MiwxMCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2Vy
LCBXS0Vycm9yQ29kZSkgCiAgICAgV0tFcnJvcldlYlZpZXdJbnZhbGlkYXRlZCwKICAgICBXS0Vy
cm9ySmF2YVNjcmlwdEV4Y2VwdGlvbk9jY3VycmVkLAogICAgIFdLRXJyb3JKYXZhU2NyaXB0UmVz
dWx0VHlwZUlzVW5zdXBwb3J0ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTEpLCBpb3Mo
OS4wKSksCi0gICAgV0tFcnJvckNvbnRlbnRFeHRlbnNpb25TdG9yZUxvb2t1cEZhaWxlZCBXS19B
UElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKSwKLSAgICBX
S0Vycm9yQ29udGVudEV4dGVuc2lvblN0b3JlVmVyc2lvbk1pc21hdGNoIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpLAogICAgIFdLRXJyb3JDb250
ZW50RXh0ZW5zaW9uU3RvcmVDb21waWxlRmFpbGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdL
X01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpLAorICAgIFdLRXJyb3JDb250ZW50RXh0ZW5zaW9u
U3RvcmVMb29rVXBGYWlsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSksCiAgICAgV0tFcnJvckNvbnRlbnRFeHRlbnNpb25TdG9yZVJlbW92ZUZh
aWxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KSwKKyAgICBXS0Vycm9yQ29udGVudEV4dGVuc2lvblN0b3JlVmVyc2lvbk1pc21hdGNoIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpLAogfSBXS19B
UElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKTsKIAogTlNfQVNTVU1FX05PTk5V
TExfRU5ECkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3Iu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vy
cm9yLm1tCShyZXZpc2lvbiAyMTM5NjApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLRXJyb3IubW0JKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgTlNTdHJp
bmcgKmxvY2FsaXplZERlc2NyaXB0aW9uRm9yRXJyb3JDbwogICAgIGNhc2UgV0tFcnJvckphdmFT
Y3JpcHRSZXN1bHRUeXBlSXNVbnN1cHBvcnRlZDoKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIkphdmFTY3JpcHQgZXhlY3V0aW9uIHJldHVybmVkIGEgcmVzdWx0IG9mIGFuIHVuc3VwcG9y
dGVkIHR5cGUiLCAiV0tFcnJvckphdmFTY3JpcHRSZXN1bHRUeXBlSXNVbnN1cHBvcnRlZCBkZXNj
cmlwdGlvbiIpOwogCi0gICAgY2FzZSBXS0Vycm9yQ29udGVudEV4dGVuc2lvblN0b3JlTG9va3Vw
RmFpbGVkOgorICAgIGNhc2UgV0tFcnJvckNvbnRlbnRFeHRlbnNpb25TdG9yZUxvb2tVcEZhaWxl
ZDoKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIkxvb2tpbmcgdXAgYSBXS1VzZXJDb250
ZW50RXh0ZW5zaW9uIGZhaWxlZCIsICJXS0Vycm9yQ29udGVudEV4dGVuc2lvblN0b3JlTG9va3Vw
RmFpbGVkIGRlc2NyaXB0aW9uIik7CiAKICAgICBjYXNlIFdLRXJyb3JDb250ZW50RXh0ZW5zaW9u
U3RvcmVWZXJzaW9uTWlzbWF0Y2g6CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oCShyZXZp
c2lvbiAyMTM5NjApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVXNl
ckNvbnRlbnRDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDcgKzc5LDcgQEAgV0tf
Q0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LgogLyohIEBhYnN0cmFjdCBSZW1v
dmVzIGEgdXNlciBjb250ZW50IGV4dGVuc2lvbi4KICBAcGFyYW0gbmFtZSBUaGUgaWRlbnRpZmll
ciBvZiB0aGUgdXNlciBjb250ZW50IGV4dGVuc2lvbiB0byByZW1vdmUuCiAgKi8KLS0gKHZvaWQp
cmVtb3ZlQ29udGVudEV4dGVuc2lvbjooTlNTdHJpbmcgKilpZGVudGlmaWVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClyZW1v
dmVDb250ZW50RXh0ZW5zaW9uOihXS0NvbnRlbnRFeHRlbnNpb24gKiljb250ZW50RXh0ZW5zaW9u
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
CiAvKiEgQGFic3RyYWN0IFJlbW92ZXMgYWxsIGFzc29jaWF0ZWQgdXNlciBjb250ZW50IGV4dGVu
c2lvbnMuCiAgKi8KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
c2VyQ29udGVudENvbnRyb2xsZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5tbQkocmV2aXNpb24gMjEz
OTYwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50
Q29udHJvbGxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtOTksMTAgKzk5LDEwIEBAIC0gKHZvaWQp
YWRkQ29udGVudEV4dGVuc2lvbjooV0tDb250ZW50RXgKICNlbmRpZgogfQogCi0tICh2b2lkKXJl
bW92ZUNvbnRlbnRFeHRlbnNpb246KE5TU3RyaW5nICopaWRlbnRpZmllcgorLSAodm9pZClyZW1v
dmVDb250ZW50RXh0ZW5zaW9uOihXS0NvbnRlbnRFeHRlbnNpb24gKiljb250ZW50RXh0ZW5zaW9u
CiB7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKLSAgICBfdXNlckNvbnRlbnRDb250
cm9sbGVyUHJveHktPnJlbW92ZUNvbnRlbnRFeHRlbnNpb24oaWRlbnRpZmllcik7CisgICAgX3Vz
ZXJDb250ZW50Q29udHJvbGxlclByb3h5LT5yZW1vdmVDb250ZW50RXh0ZW5zaW9uKGNvbnRlbnRF
eHRlbnNpb24tPl9jb250ZW50RXh0ZW5zaW9uLT5uYW1lKCkpOwogI2VuZGlmCiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNp
b25TdG9yZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0JKHJldmlzaW9uIDIxMzk4OCkKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRFeHRlbnNp
b25TdG9yZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBzdGF0aWMgTlNFcnJv
ciAqdG9Vc2VyQ29udGVudEV4dGVuc2lvblN0CiAKICAgICBBU1NFUlQoZXJyb3IuZG9tYWluID09
IFdLRXJyb3JEb21haW4pOwogICAgIHN3aXRjaCAoZXJyb3IuY29kZSkgewotICAgIGNhc2UgV0tF
cnJvckNvbnRlbnRFeHRlbnNpb25TdG9yZUxvb2t1cEZhaWxlZDoKKyAgICBjYXNlIFdLRXJyb3JD
b250ZW50RXh0ZW5zaW9uU3RvcmVMb29rVXBGYWlsZWQ6CiAgICAgICAgIHJldHVybiBbTlNFcnJv
ciBlcnJvcldpdGhEb21haW46X1dLVXNlckNvbnRlbnRFeHRlbnNpb25zRG9tYWluIGNvZGU6X1dL
VXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZUVycm9yTG9va3VwRmFpbGVkIHVzZXJJbmZvOmVycm9y
LnVzZXJJbmZvXTsKICAgICBjYXNlIFdLRXJyb3JDb250ZW50RXh0ZW5zaW9uU3RvcmVWZXJzaW9u
TWlzbWF0Y2g6CiAgICAgICAgIHJldHVybiBbTlNFcnJvciBlcnJvcldpdGhEb21haW46X1dLVXNl
ckNvbnRlbnRFeHRlbnNpb25zRG9tYWluIGNvZGU6X1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9y
ZUVycm9yVmVyc2lvbk1pc21hdGNoIHVzZXJJbmZvOmVycm9yLnVzZXJJbmZvXTsKQEAgLTgwLDcg
KzgwLDcgQEAgLSAodm9pZCljb21waWxlQ29udGVudEV4dGVuc2lvbkZvcklkZW50aQogCiAtICh2
b2lkKWxvb2t1cENvbnRlbnRFeHRlbnNpb25Gb3JJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50
aWZpZXIgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKF9XS1VzZXJDb250ZW50RmlsdGVyICos
IE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIKIHsKLSAgICBbX2NvbnRlbnRFeHRlbnNpb25T
dG9yZSBsb29rdXBDb250ZW50RXh0ZW5zaW9uRm9ySWRlbnRpZmllcjppZGVudGlmaWVyIGNvbXBs
ZXRpb25IYW5kbGVyOl4oV0tDb250ZW50RXh0ZW5zaW9uICpjb250ZW50RXh0ZW5zaW9uLCBOU0Vy
cm9yICplcnJvcikgeworICAgIFtfY29udGVudEV4dGVuc2lvblN0b3JlIGxvb2tVcENvbnRlbnRF
eHRlbnNpb25Gb3JJZGVudGlmaWVyOmlkZW50aWZpZXIgY29tcGxldGlvbkhhbmRsZXI6XihXS0Nv
bnRlbnRFeHRlbnNpb24gKmNvbnRlbnRFeHRlbnNpb24sIE5TRXJyb3IgKmVycm9yKSB7CiAgICAg
ICAgIF9XS1VzZXJDb250ZW50RmlsdGVyICpjb250ZW50RmlsdGVyID0gY29udGVudEV4dGVuc2lv
biA/IFtbW19XS1VzZXJDb250ZW50RmlsdGVyIGFsbG9jXSBfaW5pdFdpdGhXS0NvbnRlbnRFeHRl
bnNpb246Y29udGVudEV4dGVuc2lvbl0gYXV0b3JlbGVhc2VdIDogbmlsOwogICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihjb250ZW50RmlsdGVyLCB0b1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVF
cnJvcihlcnJvcikpOwogICAgIH1dOwpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjE0MDU5KQorKysgVG9vbHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDMtMTYgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBDbGVhbiB1cCBXS0Nv
bnRlbnRFeHRlbnNpb24gQVBJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjk3NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dLVXNlckNvbnRl
bnRFeHRlbnNpb25TdG9yZS5tbToKKyAgICAgICAgKFRFU1RfRik6CisgICAgICAgICgtW0NvbnRl
bnRFeHRlbnNpb25EZWxlZ2F0ZSB3ZWJWaWV3OnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1l
c3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKwogMjAxNy0wMy0x
NiAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgd2Via3Rw
eTogRml4IGRldmljZSByZWd1bGFyIGV4cHJlc3Npb24gZm9yIHBhcnNpbmcgc2ltY3RsIG91dHB1
dApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tVc2VyQ29u
dGVudEV4dGVuc2lvblN0b3JlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZS5tbQkocmV2aXNp
b24gMjEzOTg4KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV0tV
c2VyQ29udGVudEV4dGVuc2lvblN0b3JlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3
IEBACiAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXN0LmgiCisj
aW1wb3J0IDxXZWJLaXQvV0tDb250ZW50RXh0ZW5zaW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tD
b250ZW50RXh0ZW5zaW9uU3RvcmVQcml2YXRlLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CiAKQEAgLTkyLDggKzkzLDkgQEAgVEVTVF9GKFdLQ29udGVudEV4dGVuc2lvblN0b3JlVGVzdCwg
TG9vawogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUNvbXBpbGluZyk7CiAKICAg
ICBfX2Jsb2NrIGJvb2wgZG9uZUxvb2tpbmdVcCA9IGZhbHNlOwotICAgIFtbV0tDb250ZW50RXh0
ZW5zaW9uU3RvcmUgZGVmYXVsdFN0b3JlXSBsb29rdXBDb250ZW50RXh0ZW5zaW9uRm9ySWRlbnRp
ZmllcjpAIlRlc3RFeHRlbnNpb24iIGNvbXBsZXRpb25IYW5kbGVyOl4oV0tDb250ZW50RXh0ZW5z
aW9uICpmaWx0ZXIsIE5TRXJyb3IgKmVycm9yKSB7Ci0gICAgCisgICAgW1tXS0NvbnRlbnRFeHRl
bnNpb25TdG9yZSBkZWZhdWx0U3RvcmVdIGxvb2tVcENvbnRlbnRFeHRlbnNpb25Gb3JJZGVudGlm
aWVyOkAiVGVzdEV4dGVuc2lvbiIgY29tcGxldGlvbkhhbmRsZXI6XihXS0NvbnRlbnRFeHRlbnNp
b24gKmZpbHRlciwgTlNFcnJvciAqZXJyb3IpIHsKKworICAgICAgICBFWFBFQ1RfU1RSRVEoZmls
dGVyLmlkZW50aWZpZXIuVVRGOFN0cmluZywgIlRlc3RFeHRlbnNpb24iKTsKICAgICAgICAgRVhQ
RUNUX05PVF9OVUxMKGZpbHRlcik7CiAgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKIApAQCAt
MTA1LDEyICsxMDcsMTIgQEAgVEVTVF9GKFdLQ29udGVudEV4dGVuc2lvblN0b3JlVGVzdCwgTG9v
awogVEVTVF9GKFdLQ29udGVudEV4dGVuc2lvblN0b3JlVGVzdCwgTm9uRXhpc3RpbmdJZGVudGlm
aWVyTG9va3VwKQogewogICAgIF9fYmxvY2sgYm9vbCBkb25lTG9va2luZ1VwID0gZmFsc2U7Ci0g
ICAgW1tXS0NvbnRlbnRFeHRlbnNpb25TdG9yZSBkZWZhdWx0U3RvcmVdIGxvb2t1cENvbnRlbnRF
eHRlbnNpb25Gb3JJZGVudGlmaWVyOkAiRG9lc05vdEV4aXN0IiBjb21wbGV0aW9uSGFuZGxlcjpe
KFdLQ29udGVudEV4dGVuc2lvbiAqZmlsdGVyLCBOU0Vycm9yICplcnJvcikgeworICAgIFtbV0tD
b250ZW50RXh0ZW5zaW9uU3RvcmUgZGVmYXVsdFN0b3JlXSBsb29rVXBDb250ZW50RXh0ZW5zaW9u
Rm9ySWRlbnRpZmllcjpAIkRvZXNOb3RFeGlzdCIgY29tcGxldGlvbkhhbmRsZXI6XihXS0NvbnRl
bnRFeHRlbnNpb24gKmZpbHRlciwgTlNFcnJvciAqZXJyb3IpIHsKICAgICAKICAgICAgICAgRVhQ
RUNUX05VTEwoZmlsdGVyKTsKICAgICAgICAgRVhQRUNUX05PVF9OVUxMKGVycm9yKTsKICAgICAg
ICAgY2hlY2tEb21haW4oZXJyb3IpOwotICAgICAgICBFWFBFQ1RfRVEoZXJyb3IuY29kZSwgV0tF
cnJvckNvbnRlbnRFeHRlbnNpb25TdG9yZUxvb2t1cEZhaWxlZCk7CisgICAgICAgIEVYUEVDVF9F
UShlcnJvci5jb2RlLCBXS0Vycm9yQ29udGVudEV4dGVuc2lvblN0b3JlTG9va1VwRmFpbGVkKTsK
ICAgICAgICAgRVhQRUNUX1NUUkVRKCJFeHRlbnNpb24gbG9va3VwIGZhaWxlZDogVW5zcGVjaWZp
ZWQgZXJyb3IgZHVyaW5nIGxvb2t1cC4iLCBbW2Vycm9yIGhlbHBBbmNob3JdIFVURjhTdHJpbmdd
KTsKICAgICAgICAgCiAgICAgICAgIGRvbmVMb29raW5nVXAgPSB0cnVlOwpAQCAtMTM0LDcgKzEz
Niw3IEBAIFRFU1RfRihXS0NvbnRlbnRFeHRlbnNpb25TdG9yZVRlc3QsIFZlcnMKICAgICBbW1dL
Q29udGVudEV4dGVuc2lvblN0b3JlIGRlZmF1bHRTdG9yZV0gX2ludmFsaWRhdGVDb250ZW50RXh0
ZW5zaW9uVmVyc2lvbkZvcklkZW50aWZpZXI6QCJUZXN0RXh0ZW5zaW9uIl07CiAgICAgCiAgICAg
X19ibG9jayBib29sIGRvbmVMb29raW5nVXAgPSBmYWxzZTsKLSAgICBbW1dLQ29udGVudEV4dGVu
c2lvblN0b3JlIGRlZmF1bHRTdG9yZV0gbG9va3VwQ29udGVudEV4dGVuc2lvbkZvcklkZW50aWZp
ZXI6QCJUZXN0RXh0ZW5zaW9uIiBjb21wbGV0aW9uSGFuZGxlcjpeKFdLQ29udGVudEV4dGVuc2lv
biAqZmlsdGVyLCBOU0Vycm9yICplcnJvcikKKyAgICBbW1dLQ29udGVudEV4dGVuc2lvblN0b3Jl
IGRlZmF1bHRTdG9yZV0gbG9va1VwQ29udGVudEV4dGVuc2lvbkZvcklkZW50aWZpZXI6QCJUZXN0
RXh0ZW5zaW9uIiBjb21wbGV0aW9uSGFuZGxlcjpeKFdLQ29udGVudEV4dGVuc2lvbiAqZmlsdGVy
LCBOU0Vycm9yICplcnJvcikKICAgICB7CiAgICAgICAgIAogICAgICAgICBFWFBFQ1RfTlVMTChm
aWx0ZXIpOwpAQCAtMjU1LDQgKzI1Nyw4MSBAQCBURVNUX0YoV0tDb250ZW50RXh0ZW5zaW9uU3Rv
cmVUZXN0LCBOb25BCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIH0KIAor
c3RhdGljIHNpemVfdCBhbGVydENvdW50IHsgMCB9Oworc3RhdGljIGJvb2wgcmVjZWl2ZWRBbGVy
dCB7IGZhbHNlIH07CisKK0BpbnRlcmZhY2UgQ29udGVudEV4dGVuc2lvbkRlbGVnYXRlIDogTlNP
YmplY3QgPFdLVUlEZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIENvbnRlbnRFeHRl
bnNpb25EZWxlZ2F0ZQorCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcnVu
SmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTooTlNTdHJpbmcgKiltZXNzYWdlIGluaXRp
YXRlZEJ5RnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgc3dpdGNoIChhbGVydENvdW50Kysp
IHsKKyAgICBjYXNlIDA6CisgICAgICAgIC8vIEZJWE1FOiBUaGUgZmlyc3QgY29udGVudCBibG9j
a2VyIHNob3VsZCBiZSBlbmFibGVkIGhlcmUuCisgICAgICAgIC8vIENvbnRlbnRFeHRlbnNpb25z
QmFja2VuZDo6YWRkQ29udGVudEV4dGVuc2lvbiBpc24ndCBiZWluZyBjYWxsZWQgaW4gdGhlIFdl
YlByb2Nlc3MKKyAgICAgICAgLy8gdW50aWwgYWZ0ZXIgdGhlIGZpcnN0IG1haW4gcmVzb3VyY2Ug
c3RhcnRzIGxvYWRpbmcsIHNvIHdlIG5lZWQgdG8gc2VuZCBhIG1lc3NhZ2UgdG8gdGhlCisgICAg
ICAgIC8vIFdlYlByb2Nlc3MgYmVmb3JlIGxvYWRpbmcgaWYgd2UgaGF2ZSBpbnN0YWxsZWQgY29u
dGVudCBibG9ja2Vycy4KKyAgICAgICAgLy8gU2VlIHJkYXI6Ly9wcm9ibGVtLzI3Nzg4NzU1Cisg
ICAgICAgIEVYUEVDVF9TVFJFUSgiY29udGVudCBibG9ja2VycyBkaXNhYmxlZCIsIG1lc3NhZ2Uu
VVRGOFN0cmluZyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMToKKyAgICAgICAgLy8gRGVm
YXVsdCBiZWhhdmlvci4KKyAgICAgICAgRVhQRUNUX1NUUkVRKCJjb250ZW50IGJsb2NrZXJzIGVu
YWJsZWQiLCBtZXNzYWdlLlVURjhTdHJpbmcpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIDI6
CisgICAgICAgIC8vIEFmdGVyIGhhdmluZyByZW1vdmVkIHRoZSBjb250ZW50IGV4dGVuc2lvbi4K
KyAgICAgICAgRVhQRUNUX1NUUkVRKCJjb250ZW50IGJsb2NrZXJzIGRpc2FibGVkIiwgbWVzc2Fn
ZS5VVEY4U3RyaW5nKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgRVhQ
RUNUX1RSVUUoZmFsc2UpOworICAgIH0KKyAgICByZWNlaXZlZEFsZXJ0ID0gdHJ1ZTsKKyAgICBj
b21wbGV0aW9uSGFuZGxlcigpOworfQorCitAZW5kCisKK1RFU1RfRihXS0NvbnRlbnRFeHRlbnNp
b25TdG9yZVRlc3QsIEFkZFJlbW92ZSkKK3sKKyAgICBbW1dLQ29udGVudEV4dGVuc2lvblN0b3Jl
IGRlZmF1bHRTdG9yZV0gX3JlbW92ZUFsbENvbnRlbnRFeHRlbnNpb25zXTsKKworICAgIF9fYmxv
Y2sgYm9vbCBkb25lQ29tcGlsaW5nID0gZmFsc2U7CisgICAgTlNTdHJpbmcqIGNvbnRlbnRCbG9j
a2VyID0gQCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiY3NzLWRpc3BsYXktbm9uZVwiLFwic2Vs
ZWN0b3JcIjpcIi5oaWRkZW5cIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiLipcIn19
XSI7CisgICAgX19ibG9jayBSZXRhaW5QdHI8V0tDb250ZW50RXh0ZW5zaW9uPiBleHRlbnNpb247
CisgICAgW1tXS0NvbnRlbnRFeHRlbnNpb25TdG9yZSBkZWZhdWx0U3RvcmVdIGNvbXBpbGVDb250
ZW50RXh0ZW5zaW9uRm9ySWRlbnRpZmllcjpAIlRlc3RBZGRSZW1vdmUiIGVuY29kZWRDb250ZW50
RXh0ZW5zaW9uOmNvbnRlbnRCbG9ja2VyIGNvbXBsZXRpb25IYW5kbGVyOl4oV0tDb250ZW50RXh0
ZW5zaW9uICpjb21waWxlZEV4dGVuc2lvbiwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgRVhQ
RUNUX1RSVUUoZXJyb3IgPT0gbmlsKTsKKyAgICAgICAgZXh0ZW5zaW9uID0gY29tcGlsZWRFeHRl
bnNpb247CisgICAgICAgIGRvbmVDb21waWxpbmcgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZUNvbXBpbGluZyk7CisgICAgRVhQRUNUX05PVF9OVUxM
KGV4dGVuc2lvbik7CisKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFtbY29uZmlndXJhdGlvbiB1c2Vy
Q29udGVudENvbnRyb2xsZXJdIGFkZENvbnRlbnRFeHRlbnNpb246ZXh0ZW5zaW9uLmdldCgpXTsK
KworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uLmdldCgpXSk7CisKKyAgICBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbW0NvbnRlbnRFeHRl
bnNpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6
ZGVsZWdhdGUuZ2V0KCldOworCisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNl
OkAiY29udGVudEJsb2NrZXJDaGVjayIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIGFsZXJ0Q291bnQgPSAwOworICAg
IHJlY2VpdmVkQWxlcnQgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkQWxlcnQpOworCisgICAg
cmVjZWl2ZWRBbGVydCA9IGZhbHNlOworICAgIFt3ZWJWaWV3IHJlbG9hZF07CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZEFsZXJ0KTsKKworICAgIFtbY29uZmlndXJhdGlv
biB1c2VyQ29udGVudENvbnRyb2xsZXJdIHJlbW92ZUNvbnRlbnRFeHRlbnNpb246ZXh0ZW5zaW9u
LmdldCgpXTsKKworICAgIHJlY2VpdmVkQWxlcnQgPSBmYWxzZTsKKyAgICBbd2ViVmlldyByZWxv
YWRdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRBbGVydCk7Cit9CisK
KwogI2VuZGlmCg==
</data>
<flag name="review"
          id="326172"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>