<?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>48375</bug_id>
          
          <creation_ts>2010-10-26 14:33:16 -0700</creation_ts>
          <short_desc>Need delegate calls in PageLoaderClient to indicate if we have loaded insecure content</short_desc>
          <delta_ts>2010-10-26 16:25:37 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>299802</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-26 14:33:16 -0700</bug_when>
    <thetext>Like these WebKit1 Windows ones:

IWebFrameLoadDelegatePrivate2::didDisplayInsecureContent
IWebFrameLoadDelegatePrivate2::didRunInsecureContent</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299803</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-26 14:33:51 -0700</bug_when>
    <thetext>&lt;rdar://problem/8392724&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299811</commentid>
    <comment_count>2</comment_count>
      <attachid>71940</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-26 14:43:21 -0700</bug_when>
    <thetext>Created attachment 71940
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299816</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-26 14:45:36 -0700</bug_when>
    <thetext>Attachment 71940 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/UIProcess/API/C/WKPage.h:91:  Extra space between WKPageDidFirstLayoutForFrameCallback and didFirstLayoutForFrame  [whitespace/declaration] [3]
WebKit2/UIProcess/API/C/WKPage.h:92:  Extra space between WKPageDidFirstVisuallyNonEmptyLayoutForFrameCallback and didFirstVisuallyNonEmptyLayoutForFrame  [whitespace/declaration] [3]
WebKit2/UIProcess/API/C/WKPage.h:94:  Extra space between WKPageDidDisplayInsecureContentForFrameCallback and didDisplayInsecureContentForFrame  [whitespace/declaration] [3]
WebKit2/UIProcess/API/C/WKPage.h:95:  Extra space between WKPageDidRunInsecureContentForFrameCallback and didRunInsecureContentForFrame  [whitespace/declaration] [3]
Total errors found: 4 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299817</commentid>
    <comment_count>4</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-10-26 14:51:51 -0700</bug_when>
    <thetext>Attachment 71940 did not build on qt:
Build output: http://queues.webkit.org/results/4828036</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299819</commentid>
    <comment_count>5</comment_count>
      <attachid>71940</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-10-26 14:56:22 -0700</bug_when>
    <thetext>Comment on attachment 71940
proposed patch

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

&gt; WebKit2/ChangeLog:11
&gt; +        Added the delegate. Just like the bundle version, it misses WebOrigin parameter that Mac
&gt; +        delegate call used to have. It doesn&apos;t seem necessary for clients.
&gt; +

I believe the origin is necessary to implement origin tainting (eg. if a page in one origin runs insecure content, we need to taint all other pages in that origin).  This tracking may be something we should do in WebCore in WebKit instead of in the app though.

&gt; WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:785
&gt; +
&gt; +    RefPtr&lt;APIObject&gt; userData;
&gt; +    WebProcess::shared().connection()-&gt;send(Messages::WebPageProxy::DidDisplayInsecureContentForFrame(m_frame-&gt;frameID(), InjectedBundleUserMessageEncoder(userData.get())), webPage-&gt;pageID());
&gt;  }

This is just passing a null userData to the UIProcess.  We either need to pass the userData to the bundle callback or not pass it to the UIProcess.

&gt; WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:796
&gt;      webPage-&gt;injectedBundleLoaderClient().didRunInsecureContentForFrame(webPage, m_frame);
&gt; +
&gt; +    RefPtr&lt;APIObject&gt; userData;
&gt; +    WebProcess::shared().connection()-&gt;send(Messages::WebPageProxy::DidRunInsecureContentForFrame(m_frame-&gt;frameID(), InjectedBundleUserMessageEncoder(userData.get())), webPage-&gt;pageID());

Here too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299860</commentid>
    <comment_count>6</comment_count>
      <attachid>71954</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-26 15:49:09 -0700</bug_when>
    <thetext>Created attachment 71954
pass userData</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299861</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-26 15:52:26 -0700</bug_when>
    <thetext>Attachment 71954 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/UIProcess/API/C/WKPage.h:91:  Extra space between WKPageDidFirstLayoutForFrameCallback and didFirstLayoutForFrame  [whitespace/declaration] [3]
WebKit2/UIProcess/API/C/WKPage.h:92:  Extra space between WKPageDidFirstVisuallyNonEmptyLayoutForFrameCallback and didFirstVisuallyNonEmptyLayoutForFrame  [whitespace/declaration] [3]
WebKit2/UIProcess/API/C/WKPage.h:94:  Extra space between WKPageDidDisplayInsecureContentForFrameCallback and didDisplayInsecureContentForFrame  [whitespace/declaration] [3]
WebKit2/UIProcess/API/C/WKPage.h:95:  Extra space between WKPageDidRunInsecureContentForFrameCallback and didRunInsecureContentForFrame  [whitespace/declaration] [3]
Total errors found: 4 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299867</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-26 16:01:37 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/70584&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299871</commentid>
    <comment_count>9</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-10-26 16:08:59 -0700</bug_when>
    <thetext>Attachment 71954 did not build on qt:
Build output: http://queues.webkit.org/results/4857026</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299881</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-10-26 16:25:37 -0700</bug_when>
    <thetext>Landed build fix in &lt;http://trac.webkit.org/changeset/70587&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71940</attachid>
            <date>2010-10-26 14:43:21 -0700</date>
            <delta_ts>2010-10-26 15:49:09 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>InsecureContent.txt</filename>
            <type>text/plain</type>
            <size>13476</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDU3NSkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMTAtMjYgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4Mzc1CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84MzkyNzI0PiBOZWVkIGRlbGVnYXRlIGNhbGxzIGluIFBhZ2VMb2FkZXJD
bGllbnQgdG8gaW5kaWNhdGUgaWYgd2UgaGF2ZQorICAgICAgICBsb2FkZWQgaW5zZWN1cmUgY29u
dGVudAorCisgICAgICAgIEFkZGVkIHRoZSBkZWxlZ2F0ZS4gSnVzdCBsaWtlIHRoZSBidW5kbGUg
dmVyc2lvbiwgaXQgbWlzc2VzIFdlYk9yaWdpbiBwYXJhbWV0ZXIgdGhhdCBNYWMKKyAgICAgICAg
ZGVsZWdhdGUgY2FsbCB1c2VkIHRvIGhhdmUuIEl0IGRvZXNuJ3Qgc2VlbSBuZWNlc3NhcnkgZm9y
IGNsaWVudHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxv
YWRlckNsaWVudDo6ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAgICAgICAg
KFdlYktpdDo6V2ViTG9hZGVyQ2xpZW50OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRp
ZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpZFJ1bkluc2VjdXJlQ29udGVudCk6CisKIDIwMTAtMTAtMjYgIEplbm4g
QnJhaXRod2FpdGUgIDxqZW5uYkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RG1pdHJ5IFRpdG92LgpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwCShy
ZXZpc2lvbiA3MDQ1OSkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEzMyw2ICsxMzMsMjIgQEAgdm9pZCBXZWJMb2FkZXJDbGllbnQ6
OmRpZFJlbW92ZUZyYW1lRnJvbQogICAgIG1fcGFnZUxvYWRlckNsaWVudC5kaWRSZW1vdmVGcmFt
ZUZyb21IaWVyYXJjaHkodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkodXNlckRhdGEp
LCBtX3BhZ2VMb2FkZXJDbGllbnQuY2xpZW50SW5mbyk7CiB9CiAKK3ZvaWQgV2ViTG9hZGVyQ2xp
ZW50OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViUGFnZVByb3h5KiBwYWdl
LCBXZWJGcmFtZVByb3h5KiBmcmFtZSwgQVBJT2JqZWN0KiB1c2VyRGF0YSkKK3sKKyAgICBpZiAo
IW1fcGFnZUxvYWRlckNsaWVudC5kaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fcGFnZUxvYWRlckNsaWVudC5kaWREaXNwbGF5SW5zZWN1
cmVDb250ZW50Rm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkodXNlckRh
dGEpLCBtX3BhZ2VMb2FkZXJDbGllbnQuY2xpZW50SW5mbyk7Cit9CisKK3ZvaWQgV2ViTG9hZGVy
Q2xpZW50OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJQYWdlUHJveHkqIHBhZ2Us
IFdlYkZyYW1lUHJveHkqIGZyYW1lLCBBUElPYmplY3QqIHVzZXJEYXRhKQoreworICAgIGlmICgh
bV9wYWdlTG9hZGVyQ2xpZW50LmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3BhZ2VMb2FkZXJDbGllbnQuZGlkUnVuSW5zZWN1cmVDb250ZW50
Rm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgdG9BUEkodXNlckRhdGEpLCBtX3Bh
Z2VMb2FkZXJDbGllbnQuY2xpZW50SW5mbyk7Cit9CisKIHZvaWQgV2ViTG9hZGVyQ2xpZW50Ojpk
aWRTdGFydFByb2dyZXNzKFdlYlBhZ2VQcm94eSogcGFnZSkKIHsKICAgICBpZiAoIW1fcGFnZUxv
YWRlckNsaWVudC5kaWRTdGFydFByb2dyZXNzKQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
TG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVy
Q2xpZW50LmgJKHJldmlzaW9uIDcwNDU5KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVy
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDYgKzU1LDggQEAgcHVibGljOgogICAgIHZv
aWQgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZShXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5Kiwg
QVBJT2JqZWN0Kik7CiAgICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JG
cmFtZShXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgQVBJT2JqZWN0Kik7CiAgICAgdm9p
ZCBkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94
eSosIEFQSU9iamVjdCopOworICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZy
YW1lKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBBUElPYmplY3QqKTsKKyAgICB2b2lk
IGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJv
eHkqLCBBUElPYmplY3QqKTsKIAogICAgIHZvaWQgZGlkU3RhcnRQcm9ncmVzcyhXZWJQYWdlUHJv
eHkqKTsKICAgICB2b2lkIGRpZENoYW5nZVByb2dyZXNzKFdlYlBhZ2VQcm94eSopOwpJbmRleDog
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiA3MDQ1OSkKKysrIFdlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3Nyw2ICs3Nzcs
MzAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlbW92ZUZyYW1lRnJvbUhpZQogICAgIG1fbG9h
ZGVyQ2xpZW50LmRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeSh0aGlzLCBmcmFtZSwgdXNlckRh
dGEuZ2V0KCkpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRGlzcGxheUluc2VjdXJlQ29u
dGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rlciog
YXJndW1lbnRzKQoreworICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOworICAgIFdlYkNv
bnRleHRVc2VyTWVzc2FnZURlY29kZXIgbWVzc2FnZURlY29kZXIodXNlckRhdGEsIHBhZ2VOYW1l
c3BhY2UoKS0+Y29udGV4dCgpKTsKKyAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2RlKG1lc3NhZ2VE
ZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBw
cm9jZXNzKCktPndlYkZyYW1lKGZyYW1lSUQpOworCisgICAgbV9sb2FkZXJDbGllbnQuZGlkRGlz
cGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5nZXQoKSk7
Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1
aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sK
KyAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKKyAgICBXZWJDb250ZXh0VXNlck1lc3Nh
Z2VEZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBwYWdlTmFtZXNwYWNlKCktPmNvbnRl
eHQoKSk7CisgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAg
ICAgIHJldHVybjsKKworICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gcHJvY2VzcygpLT53ZWJG
cmFtZShmcmFtZUlEKTsKKworICAgIG1fbG9hZGVyQ2xpZW50LmRpZFJ1bkluc2VjdXJlQ29udGVu
dEZvckZyYW1lKHRoaXMsIGZyYW1lLCB1c2VyRGF0YS5nZXQoKSk7Cit9CisKIC8vIFBvbGljeUNs
aWVudAogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bih1aW50NjRfdCBmcmFtZUlELCB1aW50MzJfdCBvcGFxdWVOYXZpZ2F0aW9uVHlwZSwgdWludDMy
X3Qgb3BhcXVlTW9kaWZpZXJzLCBpbnQzMl90IG9wYXF1ZU1vdXNlQnV0dG9uLCBjb25zdCBTdHJp
bmcmIHVybCwgdWludDY0X3QgbGlzdGVuZXJJRCkKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCShyZXZpc2lvbiA3MDQ1OSkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yNDUsNiArMjQ1LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
ZEZpcnN0TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnRE
ZWNvZGVyKik7CiAgICAgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFt
ZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKICAgICB2b2lk
IGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqKTsKKyAgICB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JG
cmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqKTsKKyAgICB2
b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAgIHZvaWQgZGlkU3RhcnRQcm9ncmVzcygpOwogICAg
IHZvaWQgZGlkQ2hhbmdlUHJvZ3Jlc3MoZG91YmxlKTsKICAgICB2b2lkIGRpZEZpbmlzaFByb2dy
ZXNzKCk7CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CShyZXZpc2lvbiA3MDQ1OSkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsOCBAQCBtZXNzYWdlcyAtPiBXZWJQ
YWdlUHJveHkgewogICAgIERpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeSh1aW50NjRfdCBmcmFt
ZUlELCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQog
ICAgIERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV1RG
OjpTdHJpbmcgdXJsLCBib29sIGxvYWRpbmdTdWJzdGl0dXRlRGF0YUZvclVucmVhY2hhYmxlVVJM
LCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQogICAg
IERpZFJlY2VpdmVUaXRsZUZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3RyaW5nIHRp
dGxlLCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQor
ICAgIERpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBX
ZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQorICAgIERp
ZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29kZXIgdXNlckRhdGEpCiAKICAgICAjIEZvcm1zIG1l
c3NhZ2VzLgogICAgIFdpbGxTdWJtaXRGb3JtKHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHNv
dXJjZUZyYW1lSUQsIFdlYktpdDo6U3RyaW5nUGFpclZlY3RvciB0ZXh0RmllbGRWYWx1ZXMsIHVp
bnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUVuY29k
ZXIgdXNlckRhdGEpCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAkocmV2aXNpb24gNzA0
NTkpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAkod29ya2luZyBjb3B5KQpA
QCAtNTgsOSArNTgsMTEgQEAgdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkRmluaXNoRG9jdW1lbnRM
bwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkRmluaXNoTG9hZEZvckZyYW1lQ2FsbGJhY2spKFdL
UGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkRmFpbExvYWRXaXRo
RXJyb3JGb3JGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwg
V0tFcnJvclJlZiBlcnJvciwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZFJlY2VpdmVUaXRsZUZvckZyYW1lQ2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiB0aXRsZSwgV0tGcmFtZVJlZiBmcmFtZSwg
V0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKLXR5cGVkZWYgdm9p
ZCAoKldLUGFnZURpZEZpcnN0TGF5b3V0Rm9yRnJhbWUpKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1l
UmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwot
dHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJh
bWUpKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEs
IGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkRmlyc3RM
YXlvdXRGb3JGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwg
V0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9p
ZCAoKldLUGFnZURpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lQ2FsbGJhY2sp
KFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNv
bnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkUmVtb3ZlRnJh
bWVGcm9tSGllcmFyY2h5Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1l
LCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2
b2lkICgqV0tQYWdlRGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lQ2FsbGJhY2spKFdL
UGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkUnVuSW5zZWN1cmVD
b250ZW50Rm9yRnJhbWVDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUs
IFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiAKIC8vIFByb2dy
ZXNzIENsaWVudAogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkU3RhcnRQcm9ncmVzc0NhbGxiYWNr
KShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CkBAIC04Niw5ICs4OCwx
MSBAQCBzdHJ1Y3QgV0tQYWdlTG9hZGVyQ2xpZW50IHsKICAgICBXS1BhZ2VEaWRGaW5pc2hMb2Fk
Rm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZEZpbmlz
aExvYWRGb3JGcmFtZTsKICAgICBXS1BhZ2VEaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJh
bWU7CiAgICAgV0tQYWdlRGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZTsKLSAgICBXS1BhZ2VE
aWRGaXJzdExheW91dEZvckZyYW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRpZEZpcnN0TGF5b3V0Rm9yRnJhbWU7Ci0gICAgV0tQYWdlRGlkRmlyc3RWaXN1YWxseU5v
bkVtcHR5TGF5b3V0Rm9yRnJhbWUgICAgICAgICAgICAgICAgICAgICAgICBkaWRGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZTsKKyAgICBXS1BhZ2VEaWRGaXJzdExheW91dEZvckZy
YW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZEZpcnN0TGF5b3V0
Rm9yRnJhbWU7CisgICAgV0tQYWdlRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJh
bWVDYWxsYmFjayAgICAgICAgICAgICAgICBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRG
b3JGcmFtZTsKICAgICBXS1BhZ2VEaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHlDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeTsKKyAg
ICBXS1BhZ2VEaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWVDYWxsYmFjayAgICAgICAg
ICAgICAgICAgICAgIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZTsKKyAgICBXS1Bh
Z2VEaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAg
ICAgICAgIGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lOwogCiAgICAgLy8gRklYTUU6IE1v
dmUgdG8gcHJvZ3Jlc3MgY2xpZW50LgogICAgIFdLUGFnZURpZFN0YXJ0UHJvZ3Jlc3NDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkU3RhcnRQcm9ncmVzczsK
SW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVQYWdlLmgJKHJldmlzaW9uIDcwNDU5KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03
NiwxNCArNzYsMTQgQEAgdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkUmVjZWl2ZVRpdAog
dHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkRmlyc3RMYXlvdXRGb3JGcmFtZSkoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiogdXNlckRh
dGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdl
RGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUpKFdLQnVuZGxlUGFnZVJlZiBw
YWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2
b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZFJlbW92ZUZy
YW1lRnJvbUhpZXJhcmNoeUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVG
cmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5m
byk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWREaXNwbGF5SW5zZWN1cmVDb250ZW50
Rm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYg
ZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQ
YWdlRGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOyAv
LyBGSVhNRTogQWRkIFdLU2VjdXJpdHlPcmlnaW5SZWYuCiAvLyBGSVhNRTogVGhlcmUgYXJlIG5v
IFdLUGFnZSBlcXVpdmlsZW50IG9mIHRoZXNlIGZ1bmN0aW9ucyB5ZXQuCiB0eXBlZGVmIHZvaWQg
KCpXS0J1bmRsZVBhZ2VEaWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lQ2FsbGJhY2spKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS0J1bmRsZVNjcmlwdFdv
cmxkUmVmIHdvcmxkLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldL
QnVuZGxlUGFnZURpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWVDYWxsYmFjaykoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlV2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1l
UmVmIGZyYW1lLCBXS1VSTFJlZiB1cmwsIGRvdWJsZSBkZWxheSwgZG91YmxlIGRhdGUsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkQ2hhbmdl
TG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRl
ZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWVDYWxsYmFj
aykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwotdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkRGlzcGxheUlu
c2VjdXJlQ29udGVudEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1
bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKLXR5cGVkZWYgdm9p
ZCAoKldLQnVuZGxlUGFnZURpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lQ2FsbGJhY2spKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkICpj
bGllbnRJbmZvKTsgLy8gRklYTUU6IEFkZCBXS1NlY3VyaXR5T3JpZ2luUmVmLgogCiAKIHN0cnVj
dCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQgewpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCShy
ZXZpc2lvbiA3MDQ1OSkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3OCw4ICs3NzgsMTAgQEAg
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkRGlzcGxheUlucwogICAgIGlmICghd2ViUGFn
ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50Lgog
ICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlTG9hZGVyQ2xpZW50KCkuZGlkRGlzcGxheUluc2Vj
dXJlQ29udGVudEZvckZyYW1lKHdlYlBhZ2UsIG1fZnJhbWUpOworCisgICAgUmVmUHRyPEFQSU9i
amVjdD4gdXNlckRhdGE7CisgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JG
cmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVy
KHVzZXJEYXRhLmdldCgpKSksIHdlYlBhZ2UtPnBhZ2VJRCgpKTsKIH0KIAogdm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlkUnVuSW5zZWN1cmVDb250ZW50KFNlY3VyaXR5T3JpZ2luKikKQEAg
LTc4OCw4ICs3OTAsMTAgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkUnVuSW5zZWN1
cgogICAgIGlmICghd2ViUGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gTm90aWZ5IHRo
ZSBidW5kbGUgY2xpZW50LgogICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlTG9hZGVyQ2xpZW50
KCkuZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUod2ViUGFnZSwgbV9mcmFtZSk7CisKKyAg
ICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKKyAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5j
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUnVuSW5zZWN1cmVD
b250ZW50Rm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCBJbmplY3RlZEJ1bmRsZVVzZXJNZXNz
YWdlRW5jb2Rlcih1c2VyRGF0YS5nZXQoKSkpLCB3ZWJQYWdlLT5wYWdlSUQoKSk7CiB9CiAKIFJl
c291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbmNlbGxlZEVycm9yKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
</data>
<flag name="review"
          id="62094"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71954</attachid>
            <date>2010-10-26 15:49:09 -0700</date>
            <delta_ts>2010-10-26 15:52:45 -0700</delta_ts>
            <desc>pass userData</desc>
            <filename>InsecureContent.txt</filename>
            <type>text/plain</type>
            <size>23627</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MDU4MSkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMTAtMTAtMjYgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4Mzc1CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84MzkyNzI0PiBOZWVkIGRlbGVnYXRlIGNhbGxzIGluIFBhZ2VMb2FkZXJD
bGllbnQgdG8gaW5kaWNhdGUgaWYgd2UgaGF2ZQorICAgICAgICBsb2FkZWQgaW5zZWN1cmUgY29u
dGVudAorCisgICAgICAgIEFkZGVkIHRoZSBkZWxlZ2F0ZS4gSnVzdCBsaWtlIHRoZSBidW5kbGUg
dmVyc2lvbiwgaXQgbWlzc2VzIFdlYk9yaWdpbiBwYXJhbWV0ZXIgdGhhdCBNYWMKKyAgICAgICAg
ZGVsZWdhdGUgY2FsbCB1c2VkIHRvIGhhdmUuIEl0IGRvZXNuJ3Qgc2VlbSBuZWNlc3NhcnkgZm9y
IGNsaWVudHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcDoKKyAgICAgICAgKFFXS1BhZ2U6OlFXS1Bh
Z2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJMb2FkZXJDbGllbnQ6OmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlckNsaWVudDo6ZGlkUnVuSW5zZWN1cmVDb250
ZW50Rm9yRnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6SW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50OjpkaWREaXNwbGF5SW5zZWN1cmVDb250
ZW50Rm9yRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJD
bGllbnQ6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlkRGlzcGxheUluc2Vj
dXJlQ29udGVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaWRS
dW5JbnNlY3VyZUNvbnRlbnQpOgorCiAyMDEwLTEwLTI2ICBKZW5uIEJyYWl0aHdhaXRlICA8amVu
bmJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KSW5k
ZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViTG9hZGVyQ2xpZW50LmNwcAkocmV2aXNpb24gNzA0NTkpCisr
KyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJMb2FkZXJDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMzMsNiArMTMzLDIyIEBAIHZvaWQgV2ViTG9hZGVyQ2xpZW50OjpkaWRSZW1vdmVGcmFtZUZy
b20KICAgICBtX3BhZ2VMb2FkZXJDbGllbnQuZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KHRv
QVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIHRvQVBJKHVzZXJEYXRhKSwgbV9wYWdlTG9hZGVyQ2xp
ZW50LmNsaWVudEluZm8pOwogfQogCit2b2lkIFdlYkxvYWRlckNsaWVudDo6ZGlkRGlzcGxheUlu
c2VjdXJlQ29udGVudEZvckZyYW1lKFdlYlBhZ2VQcm94eSogcGFnZSwgV2ViRnJhbWVQcm94eSog
ZnJhbWUsIEFQSU9iamVjdCogdXNlckRhdGEpCit7CisgICAgaWYgKCFtX3BhZ2VMb2FkZXJDbGll
bnQuZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX3BhZ2VMb2FkZXJDbGllbnQuZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1l
KHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIHRvQVBJKHVzZXJEYXRhKSwgbV9wYWdlTG9hZGVy
Q2xpZW50LmNsaWVudEluZm8pOworfQorCit2b2lkIFdlYkxvYWRlckNsaWVudDo6ZGlkUnVuSW5z
ZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViUGFnZVByb3h5KiBwYWdlLCBXZWJGcmFtZVByb3h5KiBm
cmFtZSwgQVBJT2JqZWN0KiB1c2VyRGF0YSkKK3sKKyAgICBpZiAoIW1fcGFnZUxvYWRlckNsaWVu
dC5kaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9wYWdlTG9hZGVyQ2xpZW50LmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKHRvQVBJKHBh
Z2UpLCB0b0FQSShmcmFtZSksIHRvQVBJKHVzZXJEYXRhKSwgbV9wYWdlTG9hZGVyQ2xpZW50LmNs
aWVudEluZm8pOworfQorCiB2b2lkIFdlYkxvYWRlckNsaWVudDo6ZGlkU3RhcnRQcm9ncmVzcyhX
ZWJQYWdlUHJveHkqIHBhZ2UpCiB7CiAgICAgaWYgKCFtX3BhZ2VMb2FkZXJDbGllbnQuZGlkU3Rh
cnRQcm9ncmVzcykKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oCShyZXZpc2lv
biA3MDQ1OSkKKysrIFdlYktpdDIvVUlQcm9jZXNzL1dlYkxvYWRlckNsaWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC01NSw2ICs1NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEZpcnN0TGF5b3V0
Rm9yRnJhbWUoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIEFQSU9iamVjdCopOwogICAg
IHZvaWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUoV2ViUGFnZVByb3h5
KiwgV2ViRnJhbWVQcm94eSosIEFQSU9iamVjdCopOwogICAgIHZvaWQgZGlkUmVtb3ZlRnJhbWVG
cm9tSGllcmFyY2h5KFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBBUElPYmplY3QqKTsK
KyAgICB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJQYWdlUHJveHkq
LCBXZWJGcmFtZVByb3h5KiwgQVBJT2JqZWN0Kik7CisgICAgdm9pZCBkaWRSdW5JbnNlY3VyZUNv
bnRlbnRGb3JGcmFtZShXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgQVBJT2JqZWN0Kik7
CiAKICAgICB2b2lkIGRpZFN0YXJ0UHJvZ3Jlc3MoV2ViUGFnZVByb3h5Kik7CiAgICAgdm9pZCBk
aWRDaGFuZ2VQcm9ncmVzcyhXZWJQYWdlUHJveHkqKTsKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAkocmV2aXNpb24gNzA0NTkpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NzcsNiArNzc3LDMwIEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRSZW1vdmVGcmFtZUZyb21IaWUKICAgICBtX2xvYWRlckNsaWVudC5kaWRSZW1v
dmVGcmFtZUZyb21IaWVyYXJjaHkodGhpcywgZnJhbWUsIHVzZXJEYXRhLmdldCgpKTsKIH0KIAor
dm9pZCBXZWJQYWdlUHJveHk6OmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKK3sKKyAg
ICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKKyAgICBXZWJDb250ZXh0VXNlck1lc3NhZ2VE
ZWNvZGVyIG1lc3NhZ2VEZWNvZGVyKHVzZXJEYXRhLCBwYWdlTmFtZXNwYWNlKCktPmNvbnRleHQo
KSk7CisgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShtZXNzYWdlRGVjb2RlcikpCisgICAgICAg
IHJldHVybjsKKworICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gcHJvY2VzcygpLT53ZWJGcmFt
ZShmcmFtZUlEKTsKKworICAgIG1fbG9hZGVyQ2xpZW50LmRpZERpc3BsYXlJbnNlY3VyZUNvbnRl
bnRGb3JGcmFtZSh0aGlzLCBmcmFtZSwgdXNlckRhdGEuZ2V0KCkpOworfQorCit2b2lkIFdlYlBh
Z2VQcm94eTo6ZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwg
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyKiBhcmd1bWVudHMpCit7CisgICAgUmVmUHRyPEFQSU9i
amVjdD4gdXNlckRhdGE7CisgICAgV2ViQ29udGV4dFVzZXJNZXNzYWdlRGVjb2RlciBtZXNzYWdl
RGVjb2Rlcih1c2VyRGF0YSwgcGFnZU5hbWVzcGFjZSgpLT5jb250ZXh0KCkpOworICAgIGlmICgh
YXJndW1lbnRzLT5kZWNvZGUobWVzc2FnZURlY29kZXIpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IHByb2Nlc3MoKS0+d2ViRnJhbWUoZnJhbWVJRCk7CisK
KyAgICBtX2xvYWRlckNsaWVudC5kaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh0aGlzLCBm
cmFtZSwgdXNlckRhdGEuZ2V0KCkpOworfQorCiAvLyBQb2xpY3lDbGllbnQKIAogdm9pZCBXZWJQ
YWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24odWludDY0X3QgZnJhbWVJ
RCwgdWludDMyX3Qgb3BhcXVlTmF2aWdhdGlvblR5cGUsIHVpbnQzMl90IG9wYXF1ZU1vZGlmaWVy
cywgaW50MzJfdCBvcGFxdWVNb3VzZUJ1dHRvbiwgY29uc3QgU3RyaW5nJiB1cmwsIHVpbnQ2NF90
IGxpc3RlbmVySUQpCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkocmV2aXNpb24gNzA0
NTkpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpA
QCAtMjQ1LDYgKzI0NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGaXJzdExheW91dEZvckZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciopOwogICAgIHZv
aWQgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CiAgICAgdm9pZCBkaWRSZW1vdmVGcmFtZUZy
b21IaWVyYXJjaHkodWludDY0X3QgZnJhbWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7
CisgICAgdm9pZCBkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJh
bWVJRCwgQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyKik7CisgICAgdm9pZCBkaWRSdW5JbnNlY3Vy
ZUNvbnRlbnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBDb3JlSVBDOjpBcmd1bWVudERlY29k
ZXIqKTsKICAgICB2b2lkIGRpZFN0YXJ0UHJvZ3Jlc3MoKTsKICAgICB2b2lkIGRpZENoYW5nZVBy
b2dyZXNzKGRvdWJsZSk7CiAgICAgdm9pZCBkaWRGaW5pc2hQcm9ncmVzcygpOwpJbmRleDogV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgkocmV2aXNpb24gNzA0NTkp
CisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4JKHdvcmtpbmcg
Y29weSkKQEAgLTY4LDYgKzY4LDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBE
aWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHkodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpJbmpl
Y3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkKICAgICBEaWRTdGFydFByb3Zp
c2lvbmFsTG9hZEZvckZyYW1lKHVpbnQ2NF90IGZyYW1lSUQsIFdURjo6U3RyaW5nIHVybCwgYm9v
bCBsb2FkaW5nU3Vic3RpdHV0ZURhdGFGb3JVbnJlYWNoYWJsZVVSTCwgV2ViS2l0OjpJbmplY3Rl
ZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkKICAgICBEaWRSZWNlaXZlVGl0bGVG
b3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXVEY6OlN0cmluZyB0aXRsZSwgV2ViS2l0OjpJbmpl
Y3RlZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkKKyAgICBEaWREaXNwbGF5SW5z
ZWN1cmVDb250ZW50Rm9yRnJhbWUodWludDY0X3QgZnJhbWVJRCwgV2ViS2l0OjpJbmplY3RlZEJ1
bmRsZVVzZXJNZXNzYWdlRW5jb2RlciB1c2VyRGF0YSkKKyAgICBEaWRSdW5JbnNlY3VyZUNvbnRl
bnRGb3JGcmFtZSh1aW50NjRfdCBmcmFtZUlELCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1l
c3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQogCiAgICAgIyBGb3JtcyBtZXNzYWdlcy4KICAgICBXaWxs
U3VibWl0Rm9ybSh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBzb3VyY2VGcmFtZUlELCBXZWJL
aXQ6OlN0cmluZ1BhaXJWZWN0b3IgdGV4dEZpZWxkVmFsdWVzLCB1aW50NjRfdCBsaXN0ZW5lcklE
LCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyIHVzZXJEYXRhKQpJbmRl
eDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgJKHJldmlzaW9uIDcwNDU5KQorKysgV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDkgKzU4LDExIEBA
IHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZEZpbmlzaERvY3VtZW50TG8KIHR5cGVkZWYgdm9pZCAo
KldLUGFnZURpZEZpbmlzaExvYWRGb3JGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tG
cmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZEZhaWxMb2FkV2l0aEVycm9yRm9yRnJhbWVDYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLRXJyb3JSZWYgZXJyb3Is
IFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZv
aWQgKCpXS1BhZ2VEaWRSZWNlaXZlVGl0bGVGb3JGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFn
ZSwgV0tTdHJpbmdSZWYgdGl0bGUsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0
YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Ci10eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRGaXJz
dExheW91dEZvckZyYW1lKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBl
UmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKLXR5cGVkZWYgdm9pZCAoKldL
UGFnZURpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKShXS1BhZ2VSZWYgcGFn
ZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZURpZEZpcnN0TGF5b3V0Rm9yRnJhbWVDYWxs
YmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiB1c2VyRGF0
YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRGaXJz
dFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwg
V0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeUNh
bGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJE
YXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZURpZERp
c3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tG
cmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KTsKK3R5cGVkZWYgdm9pZCAoKldLUGFnZURpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lQ2Fs
bGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRh
dGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogCiAvLyBQcm9ncmVzcyBDbGllbnQKIHR5cGVk
ZWYgdm9pZCAoKldLUGFnZURpZFN0YXJ0UHJvZ3Jlc3NDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2Us
IGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwpAQCAtODYsOSArODgsMTEgQEAgc3RydWN0IFdLUGFn
ZUxvYWRlckNsaWVudCB7CiAgICAgV0tQYWdlRGlkRmluaXNoTG9hZEZvckZyYW1lQ2FsbGJhY2sg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRGaW5pc2hMb2FkRm9yRnJhbWU7CiAg
ICAgV0tQYWdlRGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICBkaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lOwogICAgIFdLUGFnZURp
ZFJlY2VpdmVUaXRsZUZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWU7Ci0gICAgV0tQYWdlRGlkRmlyc3RMYXlvdXRGb3JG
cmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRGaXJzdExheW91
dEZvckZyYW1lOwotICAgIFdLUGFnZURpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZy
YW1lICAgICAgICAgICAgICAgICAgICAgICAgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
Rm9yRnJhbWU7CisgICAgV0tQYWdlRGlkRmlyc3RMYXlvdXRGb3JGcmFtZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRGaXJzdExheW91dEZvckZyYW1lOworICAgIFdL
UGFnZURpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWU7CiAgICAgV0tQ
YWdlRGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHk7CisgICAgV0tQYWdlRGlkRGlzcGxh
eUluc2VjdXJlQ29udGVudEZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICBkaWRE
aXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWU7CisgICAgV0tQYWdlRGlkUnVuSW5zZWN1cmVD
b250ZW50Rm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICBkaWRSdW5JbnNl
Y3VyZUNvbnRlbnRGb3JGcmFtZTsKIAogICAgIC8vIEZJWE1FOiBNb3ZlIHRvIHByb2dyZXNzIGNs
aWVudC4KICAgICBXS1BhZ2VEaWRTdGFydFByb2dyZXNzQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpZFN0YXJ0UHJvZ3Jlc3M7CkluZGV4OiBXZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3F3a3BhZ2UuY3BwCShyZXZpc2lvbiA3MDQ1OSkKKysrIFdlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xd2twYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg0LDYgKzI4NCw4IEBA
IFFXS1BhZ2U6OlFXS1BhZ2UoV0tQYWdlTmFtZXNwYWNlUmVmIG5hbWUKICAgICAgICAgcXRfd2tf
ZGlkRmlyc3RMYXlvdXRGb3JGcmFtZSwKICAgICAgICAgcXRfd2tfZGlkRmlyc3RWaXN1YWxseU5v
bkVtcHR5TGF5b3V0Rm9yRnJhbWUsCiAgICAgICAgIHF0X3drX2RpZFJlbW92ZUZyYW1lRnJvbUhp
ZXJhcmNoeSwKKyAgICAgICAgMCwgLyogZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1l
ICovCisgICAgICAgIDAsIC8qIGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lICovCiAgICAg
ICAgIHF0X3drX2RpZFN0YXJ0UHJvZ3Jlc3MsCiAgICAgICAgIHF0X3drX2RpZENoYW5nZVByb2dy
ZXNzLAogICAgICAgICBxdF93a19kaWRGaW5pc2hQcm9ncmVzcywKSW5kZXg6IFdlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwCShyZXZpc2lvbiA3MDQ1OSkKKysrIFdlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTgsMjAgKzE5OCwyNCBAQCB2b2lkIEluamVjdGVkQnVu
ZGxlUGFnZUxvYWRlckNsaWVudDo6ZGlkCiAgICAgbV9jbGllbnQuZGlkSGFuZGxlT25sb2FkRXZl
bnRzRm9yRnJhbWUodG9BUEkocGFnZSksIHRvQVBJKGZyYW1lKSwgbV9jbGllbnQuY2xpZW50SW5m
byk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50OjpkaWREaXNwbGF5
SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV2ViUGFnZSogcGFnZSwgV2ViRnJhbWUqIGZyYW1lKQor
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmRpZERpc3BsYXlJbnNlY3VyZUNv
bnRlbnRGb3JGcmFtZShXZWJQYWdlKiBwYWdlLCBXZWJGcmFtZSogZnJhbWUsIFJlZlB0cjxBUElP
YmplY3Q+JiB1c2VyRGF0YSkKIHsKICAgICBpZiAoIW1fY2xpZW50LmRpZERpc3BsYXlJbnNlY3Vy
ZUNvbnRlbnRGb3JGcmFtZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jbGllbnQuZGlkRGlz
cGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksIG1f
Y2xpZW50LmNsaWVudEluZm8pOworICAgIFdLVHlwZVJlZiB1c2VyRGF0YVRvUGFzcyA9IDA7Cisg
ICAgbV9jbGllbnQuZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKHRvQVBJKHBhZ2Up
LCB0b0FQSShmcmFtZSksICZ1c2VyRGF0YVRvUGFzcywgbV9jbGllbnQuY2xpZW50SW5mbyk7Cisg
ICAgdXNlckRhdGEgPSBhZG9wdFJlZih0b0ltcGwodXNlckRhdGFUb1Bhc3MpKTsKIH0KIAotdm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZv
ckZyYW1lKFdlYlBhZ2UqIHBhZ2UsIFdlYkZyYW1lKiBmcmFtZSkKK3ZvaWQgSW5qZWN0ZWRCdW5k
bGVQYWdlTG9hZGVyQ2xpZW50OjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJQYWdl
KiBwYWdlLCBXZWJGcmFtZSogZnJhbWUsIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSkKIHsK
ICAgICBpZiAoIW1fY2xpZW50LmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBtX2NsaWVudC5kaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh0
b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKKyAgICBXS1R5
cGVSZWYgdXNlckRhdGFUb1Bhc3MgPSAwOworICAgIG1fY2xpZW50LmRpZFJ1bkluc2VjdXJlQ29u
dGVudEZvckZyYW1lKHRvQVBJKHBhZ2UpLCB0b0FQSShmcmFtZSksICZ1c2VyRGF0YVRvUGFzcywg
bV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAgdXNlckRhdGEgPSBhZG9wdFJlZih0b0ltcGwodXNl
ckRhdGFUb1Bhc3MpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCShyZXZpc2lvbiA3MDQ1OSkKKysrIFdlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtNjMsOCArNjMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxs
UGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV2ViUGFnZSosIFdlYkZyYW1lKiwgY29uc3Qg
U3RyaW5nJiB1cmwsIGRvdWJsZSBkZWxheSwgZG91YmxlIGRhdGUpOwogICAgIHZvaWQgZGlkQ2hh
bmdlTG9jYXRpb25XaXRoaW5QYWdlRm9yRnJhbWUoV2ViUGFnZSosIFdlYkZyYW1lKik7CiAgICAg
dm9pZCBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqKTsK
LSAgICB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJQYWdlKiwgV2Vi
RnJhbWUqKTsKLSAgICB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKFdlYlBhZ2Uq
LCBXZWJGcmFtZSopOworICAgIHZvaWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1l
KFdlYlBhZ2UqLCBXZWJGcmFtZSosIFJlZlB0cjxBUElPYmplY3Q+JiB1c2VyRGF0YSk7CisgICAg
dm9pZCBkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZShXZWJQYWdlKiwgV2ViRnJhbWUqLCBS
ZWZQdHI8QVBJT2JqZWN0PiYgdXNlckRhdGEpOwogCiBwcml2YXRlOgogICAgIFdLQnVuZGxlUGFn
ZUxvYWRlckNsaWVudCBtX2NsaWVudDsKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgJKHJldmlzaW9uIDcwNDU5
KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFn
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC03NiwxNCArNzYsMTQgQEAgdHlwZWRlZiB2b2lkICgqV0tC
dW5kbGVQYWdlRGlkUmVjZWl2ZVRpdAogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkRmly
c3RMYXlvdXRGb3JGcmFtZSkoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYg
ZnJhbWUsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlw
ZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9y
RnJhbWUpKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5
cGVSZWYqIHVzZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAo
KldLQnVuZGxlUGFnZURpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeUNhbGxiYWNrKShXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmKiB1c2VyRGF0
YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VE
aWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0
IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkUnVuSW5z
ZWN1cmVDb250ZW50Rm9yRnJhbWVDYWxsYmFjaykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVu
ZGxlRnJhbWVSZWYgZnJhbWUsIFdLVHlwZVJlZiogdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pOwogLy8gRklYTUU6IFRoZXJlIGFyZSBubyBXS1BhZ2UgZXF1aXZpbGVudCBvZiB0aGVz
ZSBmdW5jdGlvbnMgeWV0LgogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkQ2xlYXJXaW5k
b3dPYmplY3RGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVG
cmFtZVJlZiBmcmFtZSwgV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiB3b3JsZCwgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRDYW5jZWxDbGllbnRS
ZWRpcmVjdEZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZy
YW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldL
QnVuZGxlUGFnZVdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZUNhbGxiYWNrKShXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tVUkxSZWYgdXJsLCBk
b3VibGUgZGVsYXksIGRvdWJsZSBkYXRlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVk
ZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZUZvckZyYW1l
Q2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBj
b25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZURpZEhh
bmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lQ2FsbGJhY2spKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBX
S0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKLXR5cGVkZWYg
dm9pZCAoKldLQnVuZGxlUGFnZURpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZUNhbGxi
YWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qg
dm9pZCAqY2xpZW50SW5mbyk7Ci10eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VEaWRSdW5JbnNl
Y3VyZUNvbnRlbnRGb3JGcmFtZUNhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5k
bGVGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7IC8vIEZJWE1FOiBBZGQg
V0tTZWN1cml0eU9yaWdpblJlZi4KIAogCiBzdHJ1Y3QgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
IHsKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAkocmV2aXNpb24gNzA0NTkpCisrKyBXZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03NzgsOCArNzc4LDExIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpZERpc3BsYXlJbnMKICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAg
IC8vIE5vdGlmeSB0aGUgYnVuZGxlIGNsaWVudC4KLSAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRs
ZUxvYWRlckNsaWVudCgpLmRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSh3ZWJQYWdl
LCBtX2ZyYW1lKTsKKyAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKKworICAgIHdlYlBh
Z2UtPmluamVjdGVkQnVuZGxlTG9hZGVyQ2xpZW50KCkuZGlkRGlzcGxheUluc2VjdXJlQ29udGVu
dEZvckZyYW1lKHdlYlBhZ2UsIG1fZnJhbWUsIHVzZXJEYXRhKTsKKworICAgIFdlYlByb2Nlc3M6
OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRE
aXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCBJbmplY3Rl
ZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YS5nZXQoKSkpLCB3ZWJQYWdlLT5wYWdl
SUQoKSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpZFJ1bkluc2VjdXJlQ29u
dGVudChTZWN1cml0eU9yaWdpbiopCkBAIC03ODgsOCArNzkxLDExIEBAIHZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpZFJ1bkluc2VjdXIKICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxlIGNsaWVudC4KLSAgICB3ZWJQYWdlLT5p
bmplY3RlZEJ1bmRsZUxvYWRlckNsaWVudCgpLmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1l
KHdlYlBhZ2UsIG1fZnJhbWUpOworICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOworCisg
ICAgd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoKS5kaWRSdW5JbnNlY3VyZUNv
bnRlbnRGb3JGcmFtZSh3ZWJQYWdlLCBtX2ZyYW1lLCB1c2VyRGF0YSk7CisKKyAgICBXZWJQcm9j
ZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCBJbmplY3Rl
ZEJ1bmRsZVVzZXJNZXNzYWdlRW5jb2Rlcih1c2VyRGF0YS5nZXQoKSkpLCB3ZWJQYWdlLT5wYWdl
SUQoKSk7CiB9CiAKIFJlc291cmNlRXJyb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhbmNlbGxl
ZEVycm9yKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKSW5kZXg6IFdlYktpdFRvb2xz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDcwNTgxKQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjUgQEAKKzIwMTAtMTAtMjYgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4Mzc1CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS84MzkyNzI0PiBOZWVkIGRlbGVnYXRlIGNhbGxzIGluIFBhZ2VMb2FkZXJDbGllbnQg
dG8gaW5kaWNhdGUgaWYgd2UgaGF2ZQorICAgICAgICBsb2FkZWQgaW5zZWN1cmUgY29udGVudAor
CisgICAgICAgIFVwZGF0ZWQgZm9yIFdlYktpdDIgY2hhbmdlcy4KKworICAgICAgICAqIE1pbmlC
cm93c2VyL21hYy9Ccm93c2VyV2luZG93Q29udHJvbGxlci5tOgorICAgICAgICAoZGlkRGlzcGxh
eUluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAgICAgICAgKGRpZFJ1bkluc2VjdXJlQ29udGVu
dEZvckZyYW1lKToKKyAgICAgICAgKC1bQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgYXdha2VGcm9t
TmliXSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OkluamVj
dGVkQnVuZGxlUGFnZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRGlz
cGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5k
bGVQYWdlOjpkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSk6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaDoKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OmluaXRpYWxpemUpOgorCiAyMDEwLTEwLTI2ICBBZGFtIFJvYmVuICA8YXJv
YmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBDbGVhciB1cCBjb25mdXNpb24gYmV0d2VlbiAiM0Qg
cmVuZGVyaW5nIiBhbmQgImFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIgpJbmRleDogV2ViS2l0VG9v
bHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJXaW5kb3dDb250cm9sbGVyLm0J
KHJldmlzaW9uIDcwNDU5KQorKysgV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvbWFjL0Jyb3dzZXJX
aW5kb3dDb250cm9sbGVyLm0JKHdvcmtpbmcgY29weSkKQEAgLTMwNSw2ICszMDUsMTYgQEAgc3Rh
dGljIHZvaWQgZGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5KAogICAgIExPRyhAImRpZFJlbW92
ZUZyYW1lRnJvbUhpZXJhcmNoeSIpOwogfQogCitzdGF0aWMgdm9pZCBkaWREaXNwbGF5SW5zZWN1
cmVDb250ZW50Rm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLVHlw
ZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3sKKyAgICBMT0coQCJkaWRE
aXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUiKTsKK30KKworc3RhdGljIHZvaWQgZGlkUnVu
SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUs
IFdLVHlwZVJlZiB1c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3sKKyAgICBMT0co
QCJkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSIpOworfQorCiBzdGF0aWMgdm9pZCBkaWRT
dGFydFByb2dyZXNzKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQogewog
ICAgIFsoQnJvd3NlcldpbmRvd0NvbnRyb2xsZXIgKiljbGllbnRJbmZvIGRpZFN0YXJ0UHJvZ3Jl
c3NdOwpAQCAtNTQ3LDYgKzU1Nyw4IEBAIC0gKHZvaWQpYXdha2VGcm9tTmliCiAgICAgICAgIGRp
ZEZpcnN0TGF5b3V0Rm9yRnJhbWUsCiAgICAgICAgIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxh
eW91dEZvckZyYW1lLAogICAgICAgICBkaWRSZW1vdmVGcmFtZUZyb21IaWVyYXJjaHksCisgICAg
ICAgIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSwKKyAgICAgICAgZGlkUnVuSW5z
ZWN1cmVDb250ZW50Rm9yRnJhbWUsCiAgICAgICAgIGRpZFN0YXJ0UHJvZ3Jlc3MsCiAgICAgICAg
IGRpZENoYW5nZVByb2dyZXNzLAogICAgICAgICBkaWRGaW5pc2hQcm9ncmVzcywKSW5kZXg6IFdl
YktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCShyZXZp
c2lvbiA3MDQ1OSkKKysrIFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjQsNiArMjI0LDggQEAgdm9pZCBUZXN0Q29udHJv
bGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYwogICAgICAgICAwLCAvLyBkaWRGaXJzdExheW91dEZv
ckZyYW1lCiAgICAgICAgIDAsIC8vIGRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZy
YW1lCiAgICAgICAgIDAsIC8vIGRpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeQorICAgICAgICAw
LCAvLyBkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUKKyAgICAgICAgMCwgLy8gZGlk
UnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUKICAgICAgICAgMCwgLy8gZGlkU3RhcnRQcm9ncmVz
cwogICAgICAgICAwLCAvLyBkaWRDaGFuZ2VQcm9ncmVzcwogICAgICAgICAwLCAvLyBkaWRGaW5p
c2hQcm9ncmVzcwpJbmRleDogV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAkocmV2
aXNpb24gNzA0NTkpCisrKyBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3MSwxMyArMTcx
LDEzIEBAIEluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKFcKICAgICAgICAg
MCwKICAgICAgICAgMCwKICAgICAgICAgMCwKKyAgICAgICAgZGlkRGlzcGxheUluc2VjdXJlQ29u
dGVudEZvckZyYW1lLAorICAgICAgICBkaWRSdW5JbnNlY3VyZUNvbnRlbnRGb3JGcmFtZSwKICAg
ICAgICAgZGlkQ2xlYXJXaW5kb3dGb3JGcmFtZSwKICAgICAgICAgZGlkQ2FuY2VsQ2xpZW50UmVk
aXJlY3RGb3JGcmFtZSwKICAgICAgICAgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1l
LAogICAgICAgICBkaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZSwKLSAgICAgICAg
ZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUsCi0gICAgICAgIGRpZERpc3BsYXlJbnNlY3Vy
ZUNvbnRlbnRGb3JGcmFtZSwKLSAgICAgICAgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUK
KyAgICAgICAgZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUKICAgICB9OwogICAgIFdLQnVu
ZGxlUGFnZVNldExvYWRlckNsaWVudChtX3BhZ2UsICZsb2FkZXJDbGllbnQpOwogCkBAIC0yOTYs
MTIgKzI5NiwxMiBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkSGFuZGxlT25sb2FkCiAg
ICAgc3RhdGljX2Nhc3Q8SW5qZWN0ZWRCdW5kbGVQYWdlKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xp
ZW50SW5mbykpLT5kaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZShmcmFtZSk7CiB9CiAKLXZv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50Rm9yRnJhbWUo
V0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkRGlzcGxheUluc2VjdXJl
Q29udGVudEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZy
YW1lLCBXS1R5cGVSZWYqLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIHN0YXRpY19j
YXN0PEluamVjdGVkQnVuZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+
ZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKGZyYW1lKTsKIH0KIAotdm9pZCBJbmpl
Y3RlZEJ1bmRsZVBhZ2U6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1l
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYq
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIHN0YXRpY19jYXN0PEluamVjdGVkQnVu
ZGxlUGFnZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlkUnVuSW5zZWN1cmVD
b250ZW50Rm9yRnJhbWUoZnJhbWUpOwogfQpJbmRleDogV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZS5oCShyZXZpc2lvbiA3MDQ1OSkKKysrIFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTYw
LDggKzYwLDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJl
ZGlyZWN0Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBXS1VSTFJl
ZiB1cmwsIGRvdWJsZSBkZWxheSwgZG91YmxlIGRhdGUsIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0
aWMgdm9pZCBkaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZShXS0J1bmRsZVBhZ2VS
ZWYsIFdLQnVuZGxlRnJhbWVSZWYsIGNvbnN0IHZvaWQqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRI
YW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZShXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlRnJhbWVS
ZWYsIGNvbnN0IHZvaWQqKTsKLSAgICBzdGF0aWMgdm9pZCBkaWREaXNwbGF5SW5zZWN1cmVDb250
ZW50Rm9yRnJhbWUoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBjb25zdCB2b2lk
Kik7Ci0gICAgc3RhdGljIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50Rm9yRnJhbWUoV0tCdW5k
bGVQYWdlUmVmLCBXS0J1bmRsZUZyYW1lUmVmLCBjb25zdCB2b2lkKik7CisgICAgc3RhdGljIHZv
aWQgZGlkRGlzcGxheUluc2VjdXJlQ29udGVudEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tC
dW5kbGVGcmFtZVJlZiwgV0tUeXBlUmVmKiwgY29uc3Qgdm9pZCopOworICAgIHN0YXRpYyB2b2lk
IGRpZFJ1bkluc2VjdXJlQ29udGVudEZvckZyYW1lKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVG
cmFtZVJlZiwgV0tUeXBlUmVmKiwgY29uc3Qgdm9pZCopOwogICAgIHZvaWQgZGlkU3RhcnRQcm92
aXNpb25hbExvYWRGb3JGcmFtZShXS0J1bmRsZUZyYW1lUmVmKTsKICAgICB2b2lkIGRpZFJlY2Vp
dmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKFdLQnVuZGxlRnJhbWVS
ZWYpOwogICAgIHZvaWQgZGlkRmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lKFdL
QnVuZGxlRnJhbWVSZWYsIFdLRXJyb3JSZWYpOwo=
</data>
<flag name="review"
          id="62102"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>