<?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>162064</bug_id>
          
          <creation_ts>2016-09-16 10:18:44 -0700</creation_ts>
          <short_desc>Tighten region style map to use RenderElement instead of RenderObject</short_desc>
          <delta_ts>2016-09-16 14:41:42 -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>Layout and Rendering</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>WebkitBugTracker</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1230442</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-09-16 10:18:44 -0700</bug_when>
    <thetext>This allow RenderObject cleanups.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230444</commentid>
    <comment_count>1</comment_count>
      <attachid>289069</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2016-09-16 10:22:29 -0700</bug_when>
    <thetext>Created attachment 289069
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230620</commentid>
    <comment_count>2</comment_count>
      <attachid>289069</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-16 14:41:37 -0700</bug_when>
    <thetext>Comment on attachment 289069
patch

Clearing flags on attachment: 289069

Committed r206049: &lt;http://trac.webkit.org/changeset/206049&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1230621</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-16 14:41:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>289069</attachid>
            <date>2016-09-16 10:22:29 -0700</date>
            <delta_ts>2016-09-16 14:41:37 -0700</delta_ts>
            <desc>patch</desc>
            <filename>flowthreadinfo-element-4.patch</filename>
            <type>text/plain</type>
            <size>23607</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNjAyOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDE2LTA5LTE2ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBUaWdodGVuIHJlZ2lvbiBzdHls
ZSBtYXAgdG8gdXNlIFJlbmRlckVsZW1lbnQgaW5zdGVhZCBvZiBSZW5kZXJPYmplY3QKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjA2NAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlclRleHRzIGRv
bid0IGhhdmUgc3R5bGVzIG9mIHRoZWlyIG93biBzbyB0aGUgbWFwIGNhbiBvcGVyYXRlIG9uIFJl
bmRlckVsZW1lbnRzLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVudDo6d2lsbEJlUmVtb3ZlZEZyb21UcmVlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnJlbW92ZUZyb21SZW5kZXJGbG93VGhy
ZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnJlbW92ZUZyb21SZW5kZXJG
bG93VGhyZWFkSW5jbHVkaW5nRGVzY2VuZGFudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
RWxlbWVudDo6aW52YWxpZGF0ZUZsb3dUaHJlYWRDb250YWluaW5nQmxvY2tJbmNsdWRpbmdEZXNj
ZW5kYW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJGbG93VGhyZWFkOjpyZW1vdmVGbG93Q2hpbGRJbmZvKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRmxvd1RocmVhZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dG
cmFnbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dGcmFnbWVudDo6
Y29tcHV0ZUNoaWxkcmVuU3R5bGVJblJlZ2lvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJO
YW1lZEZsb3dGcmFnbWVudDo6c2V0UmVuZGVyZXJTdHlsZUluUmVnaW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck5hbWVkRmxvd0ZyYWdtZW50OjpjbGVhck9iamVjdFN0eWxlSW5SZWdpb24p
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQ6OnNldFJlZ2lvbk9i
amVjdHNSZWdpb25TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dGcmFn
bWVudDo6cmVzdG9yZVJlZ2lvbk9iamVjdHNPcmlnaW5hbFN0eWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck5hbWVkRmxvd0ZyYWdtZW50OjpzZXRPYmplY3RTdHlsZUluUmVnaW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck5hbWVkRmxvd1RocmVhZDo6Y2xlYXJSZW5kZXJPYmplY3RDdXN0b21TdHls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJlbW92ZUZsb3dD
aGlsZEluZm8pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6d2lsbEJlUmVtb3ZlZEZyb21UcmVlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6cmVtb3ZlRnJvbVJlbmRlckZsb3dUaHJlYWQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpyZW1vdmVGcm9tUmVuZGVyRmxvd1RocmVhZElu
Y2x1ZGluZ0Rlc2NlbmRhbnRzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9i
amVjdDo6aW52YWxpZGF0ZUZsb3dUaHJlYWRDb250YWluaW5nQmxvY2tJbmNsdWRpbmdEZXNjZW5k
YW50cyk6IERlbGV0ZWQuCisKKyAgICAgICAgICAgIFRoZXNlIGNhbiBub3cgbW92ZSB0byBSZW5k
ZXJFbGVtZW50LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorCiAyMDE2
LTA5LTE2ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFttZWRp
YS1zb3VyY2VdIEZpeCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJj
ZS9tZWRpYXNvdXJjZS10aW1lc3RhbXAtb2Zmc2V0Lmh0bWwKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDIwNTkyNykKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTA4Niw2ICsxMDg2LDggQEAgdm9pZCBSZW5kZXJFbGVtZW50Ojp3aWxsQmVSZW1vdmVkRnJvbVRy
ZQogICAgIGlmIChhdXRvKiBjb250YWluZXJGbG93VGhyZWFkID0gcGFyZW50KCktPnJlbmRlck5h
bWVkRmxvd1RocmVhZFdyYXBwZXIoKSkKICAgICAgICAgY29udGFpbmVyRmxvd1RocmVhZC0+cmVt
b3ZlRmxvd0NoaWxkKCp0aGlzKTsKIAorICAgIHJlbW92ZUZyb21SZW5kZXJGbG93VGhyZWFkKCk7
CisKICAgICBSZW5kZXJPYmplY3Q6OndpbGxCZVJlbW92ZWRGcm9tVHJlZSgpOwogfQogCkBAIC0y
MTkxLDYgKzIxOTMsNzggQEAgYm9vbCBSZW5kZXJFbGVtZW50OjpjaGVja0ZvclJlcGFpbnREdXJp
bgogICAgIHJldHVybiAhZG9jdW1lbnQoKS52aWV3KCktPm5lZWRzRnVsbFJlcGFpbnQoKSAmJiBl
dmVySGFkTGF5b3V0KCkgJiYgIWhhc1NlbGZQYWludGluZ0xheWVyKCk7CiB9CiAKK3ZvaWQgUmVu
ZGVyRWxlbWVudDo6cmVtb3ZlRnJvbVJlbmRlckZsb3dUaHJlYWQoKQoreworICAgIGlmIChmbG93
VGhyZWFkU3RhdGUoKSA9PSBOb3RJbnNpZGVGbG93VGhyZWFkKQorICAgICAgICByZXR1cm47CisK
KyAgICAvLyBTb21ldGltZXMgd2UgcmVtb3ZlIHRoZSBlbGVtZW50IGZyb20gdGhlIGZsb3csIGJ1
dCBpdCdzIG5vdCBkZXN0cm95ZWQgYXQgdGhhdCB0aW1lLgorICAgIC8vIEl0J3Mgb25seSB1bnRp
bCBsYXRlciB3aGVuIHdlIGFjdHVhbGx5IGRlc3Ryb3kgaXQgYW5kIHJlbW92ZSBhbGwgdGhlIGNo
aWxkcmVuIGZyb20gaXQuCisgICAgLy8gQ3VycmVudGx5LCB0aGF0IGhhcHBlbnMgZm9yIGZpcnN0
TGV0dGVyIGVsZW1lbnRzIGFuZCBsaXN0IG1hcmtlcnMuCisgICAgLy8gUGFzcyBpbiB0aGUgZmxv
dyB0aHJlYWQgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIGxvb2sgaXQgdXAgZm9yIGFsbCB0aGUg
Y2hpbGRyZW4uCisgICAgcmVtb3ZlRnJvbVJlbmRlckZsb3dUaHJlYWRJbmNsdWRpbmdEZXNjZW5k
YW50cyh0cnVlKTsKK30KKwordm9pZCBSZW5kZXJFbGVtZW50OjpyZW1vdmVGcm9tUmVuZGVyRmxv
d1RocmVhZEluY2x1ZGluZ0Rlc2NlbmRhbnRzKGJvb2wgc2hvdWxkVXBkYXRlU3RhdGUpCit7Cisg
ICAgLy8gT25jZSB3ZSByZWFjaCBhbm90aGVyIGZsb3cgdGhyZWFkIHdlIGRvbid0IG5lZWQgdG8g
dXBkYXRlIHRoZSBmbG93IHRocmVhZCBzdGF0ZQorICAgIC8vIGJ1dCB3ZSBoYXZlIHRvIGNvbnRp
bnVlIGNsZWFudXAgdGhlIGZsb3cgdGhyZWFkIGluZm8uCisgICAgaWYgKGlzUmVuZGVyRmxvd1Ro
cmVhZCgpKQorICAgICAgICBzaG91bGRVcGRhdGVTdGF0ZSA9IGZhbHNlOworCisgICAgZm9yIChh
dXRvJiBjaGlsZCA6IGNoaWxkcmVuT2ZUeXBlPFJlbmRlck9iamVjdD4oKnRoaXMpKSB7CisgICAg
ICAgIGlmIChpczxSZW5kZXJFbGVtZW50PihjaGlsZCkpIHsKKyAgICAgICAgICAgIGRvd25jYXN0
PFJlbmRlckVsZW1lbnQ+KGNoaWxkKS5yZW1vdmVGcm9tUmVuZGVyRmxvd1RocmVhZEluY2x1ZGlu
Z0Rlc2NlbmRhbnRzKHNob3VsZFVwZGF0ZVN0YXRlKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICB9CisgICAgICAgIGlmIChzaG91bGRVcGRhdGVTdGF0ZSkKKyAgICAgICAgICAgIGNo
aWxkLnNldEZsb3dUaHJlYWRTdGF0ZShOb3RJbnNpZGVGbG93VGhyZWFkKTsKKyAgICB9CisKKyAg
ICAvLyBXZSBoYXZlIHRvIGFzayBmb3Igb3VyIGNvbnRhaW5pbmcgZmxvdyB0aHJlYWQgYXMgaXQg
bWF5IGJlIGFib3ZlIHRoZSByZW1vdmVkIHN1Yi10cmVlLgorICAgIFJlbmRlckZsb3dUaHJlYWQq
IGZsb3dUaHJlYWRDb250YWluaW5nQmxvY2sgPSB0aGlzLT5mbG93VGhyZWFkQ29udGFpbmluZ0Js
b2NrKCk7CisgICAgd2hpbGUgKGZsb3dUaHJlYWRDb250YWluaW5nQmxvY2spIHsKKyAgICAgICAg
Zmxvd1RocmVhZENvbnRhaW5pbmdCbG9jay0+cmVtb3ZlRmxvd0NoaWxkSW5mbyh0aGlzKTsKKwor
ICAgICAgICBpZiAoZmxvd1RocmVhZENvbnRhaW5pbmdCbG9jay0+Zmxvd1RocmVhZFN0YXRlKCkg
PT0gTm90SW5zaWRlRmxvd1RocmVhZCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBhdXRv
KiBwYXJlbnQgPSBmbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrLT5wYXJlbnQoKTsKKyAgICAgICAg
aWYgKCFwYXJlbnQpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZmxvd1RocmVhZENvbnRh
aW5pbmdCbG9jayA9IHBhcmVudC0+Zmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpOworICAgIH0K
KyAgICBpZiAoaXM8UmVuZGVyQmxvY2s+KCp0aGlzKSkKKyAgICAgICAgZG93bmNhc3Q8UmVuZGVy
QmxvY2s+KCp0aGlzKS5zZXRDYWNoZWRGbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrTmVlZHNVcGRh
dGUoKTsKKworICAgIGlmIChzaG91bGRVcGRhdGVTdGF0ZSkKKyAgICAgICAgc2V0Rmxvd1RocmVh
ZFN0YXRlKE5vdEluc2lkZUZsb3dUaHJlYWQpOworfQorCit2b2lkIFJlbmRlckVsZW1lbnQ6Omlu
dmFsaWRhdGVGbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrSW5jbHVkaW5nRGVzY2VuZGFudHMoUmVu
ZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCkKK3sKKyAgICBpZiAoZmxvd1RocmVhZFN0YXRlKCkg
PT0gTm90SW5zaWRlRmxvd1RocmVhZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGlzPFJl
bmRlckJsb2NrPigqdGhpcykpIHsKKyAgICAgICAgUmVuZGVyQmxvY2smIGJsb2NrID0gZG93bmNh
c3Q8UmVuZGVyQmxvY2s+KCp0aGlzKTsKKworICAgICAgICBpZiAoYmxvY2suY2FjaGVkRmxvd1Ro
cmVhZENvbnRhaW5pbmdCbG9ja05lZWRzVXBkYXRlKCkpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgZmxvd1RocmVhZCA9IGJsb2NrLmNhY2hlZEZsb3dUaHJlYWRDb250YWluaW5nQmxv
Y2soKTsKKyAgICAgICAgYmxvY2suc2V0Q2FjaGVkRmxvd1RocmVhZENvbnRhaW5pbmdCbG9ja05l
ZWRzVXBkYXRlKCk7CisgICAgfQorCisgICAgaWYgKGZsb3dUaHJlYWQpCisgICAgICAgIGZsb3dU
aHJlYWQtPnJlbW92ZUZsb3dDaGlsZEluZm8odGhpcyk7CisKKyAgICBpZiAoIWlzPFJlbmRlckVs
ZW1lbnQ+KCp0aGlzKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvJiBjaGlsZCA6
IGNoaWxkcmVuT2ZUeXBlPFJlbmRlckVsZW1lbnQ+KCp0aGlzKSkKKyAgICAgICAgY2hpbGQuaW52
YWxpZGF0ZUZsb3dUaHJlYWRDb250YWluaW5nQmxvY2tJbmNsdWRpbmdEZXNjZW5kYW50cyhmbG93
VGhyZWFkKTsKK30KKwogI2lmIEVOQUJMRShJT1NfVEVYVF9BVVRPU0laSU5HKQogc3RhdGljIFJl
bmRlck9iamVjdDo6QmxvY2tDb250ZW50SGVpZ2h0VHlwZSBpbmNsdWRlTm9uRml4ZWRIZWlnaHQo
Y29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckVsZW1lbnQuaAkocmV2aXNpb24gMjA1OTI3KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjI3LDYgKzIy
Nyw5IEBAIHB1YmxpYzoKICAgICBSZW5kZXJCbG9jayogY29udGFpbmluZ0Jsb2NrRm9yRml4ZWRQ
b3NpdGlvbigpIGNvbnN0OwogICAgIFJlbmRlckJsb2NrKiBjb250YWluaW5nQmxvY2tGb3JBYnNv
bHV0ZVBvc2l0aW9uKCkgY29uc3Q7CiAKKyAgICB2b2lkIHJlbW92ZUZyb21SZW5kZXJGbG93VGhy
ZWFkKCk7CisgICAgdm9pZCBpbnZhbGlkYXRlRmxvd1RocmVhZENvbnRhaW5pbmdCbG9ja0luY2x1
ZGluZ0Rlc2NlbmRhbnRzKFJlbmRlckZsb3dUaHJlYWQqID0gbnVsbHB0cik7CisKIHByb3RlY3Rl
ZDoKICAgICBlbnVtIEJhc2VUeXBlRmxhZyB7CiAgICAgICAgIFJlbmRlckxheWVyTW9kZWxPYmpl
Y3RGbGFnICA9IDEgPDwgMCwKQEAgLTI4Miw2ICsyODUsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9p
ZCBwYWludE91dGxpbmUoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UmVjdCYpOwogICAgIHZvaWQg
dXBkYXRlT3V0bGluZUF1dG9BbmNlc3Rvcihib29sIGhhc091dGxpbmVBdXRvKTsKIAorICAgIHZv
aWQgcmVtb3ZlRnJvbVJlbmRlckZsb3dUaHJlYWRJbmNsdWRpbmdEZXNjZW5kYW50cyhib29sIHNo
b3VsZFVwZGF0ZVN0YXRlKTsKKwogcHJpdmF0ZToKICAgICBSZW5kZXJFbGVtZW50KENvbnRhaW5l
ck5vZGUmLCBSZW5kZXJTdHlsZSYmLCBCYXNlVHlwZUZsYWdzKTsKICAgICB2b2lkIG5vZGUoKSBj
b25zdCA9IGRlbGV0ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93
VGhyZWFkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Rmxvd1RocmVhZC5jcHAJKHJldmlzaW9uIDIwNTkyNikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTIsNyArOTIsNyBA
QCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OnN0eWxlRGlkQ2hhbmdlKFN0CiAgICAgICAgIGludmFs
aWRhdGVSZWdpb25zKCk7CiB9CiAKLXZvaWQgUmVuZGVyRmxvd1RocmVhZDo6cmVtb3ZlRmxvd0No
aWxkSW5mbyhSZW5kZXJPYmplY3QqIGNoaWxkKQordm9pZCBSZW5kZXJGbG93VGhyZWFkOjpyZW1v
dmVGbG93Q2hpbGRJbmZvKFJlbmRlckVsZW1lbnQqIGNoaWxkKQogewogICAgIGlmIChpczxSZW5k
ZXJCbG9ja0Zsb3c+KCpjaGlsZCkpCiAgICAgICAgIHJlbW92ZUxpbmVSZWdpb25JbmZvKGRvd25j
YXN0PFJlbmRlckJsb2NrRmxvdz4oY2hpbGQpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbG93VGhyZWFkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAkocmV2aXNpb24gMjA1OTI2KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAkod29ya2luZyBjb3B5KQpAQCAtNjAs
NyArNjAsNyBAQCBjbGFzcyBSZW5kZXJGbG93VGhyZWFkOiBwdWJsaWMgUmVuZGVyQmxvCiBwdWJs
aWM6CiAgICAgdmlydHVhbCB+UmVuZGVyRmxvd1RocmVhZCgpIHsgfQogCi0gICAgdmlydHVhbCB2
b2lkIHJlbW92ZUZsb3dDaGlsZEluZm8oUmVuZGVyT2JqZWN0Kik7CisgICAgdmlydHVhbCB2b2lk
IHJlbW92ZUZsb3dDaGlsZEluZm8oUmVuZGVyRWxlbWVudCopOwogI2lmbmRlZiBOREVCVUcKICAg
ICBib29sIGhhc0NoaWxkSW5mbyhSZW5kZXJPYmplY3QqIGNoaWxkKSBjb25zdCB7IHJldHVybiBp
czxSZW5kZXJCb3g+KGNoaWxkKSAmJiBtX3JlZ2lvblJhbmdlTWFwLmNvbnRhaW5zKGRvd25jYXN0
PFJlbmRlckJveD4oY2hpbGQpKTsgfQogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5jcHAJKHJldmlzaW9uIDIw
NTkyNikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1OSw2MiArMzU5LDU2IEBAIHN0ZDo6dW5pcXVlX3B0
cjxSZW5kZXJTdHlsZT4gUmVuZGVyTmFtZWQKIAogdm9pZCBSZW5kZXJOYW1lZEZsb3dGcmFnbWVu
dDo6Y29tcHV0ZUNoaWxkcmVuU3R5bGVJblJlZ2lvbihSZW5kZXJFbGVtZW50JiByZW5kZXJlcikK
IHsKLSAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW5PZlR5cGU8UmVuZGVyT2JqZWN0Pihy
ZW5kZXJlcikpIHsKLQotICAgICAgICBhdXRvIGl0ID0gbV9yZW5kZXJPYmplY3RSZWdpb25TdHls
ZS5maW5kKCZjaGlsZCk7CisgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuT2ZUeXBlPFJl
bmRlckVsZW1lbnQ+KHJlbmRlcmVyKSkgeworICAgICAgICBhdXRvIGl0ID0gbV9yZW5kZXJlclJl
Z2lvblN0eWxlLmZpbmQoJmNoaWxkKTsKIAogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVy
U3R5bGU+IGNoaWxkU3R5bGVJblJlZ2lvbjsKICAgICAgICAgYm9vbCBvYmplY3RSZWdpb25TdHls
ZUNhY2hlZCA9IGZhbHNlOwotICAgICAgICBpZiAoaXQgIT0gbV9yZW5kZXJPYmplY3RSZWdpb25T
dHlsZS5lbmQoKSkgeworICAgICAgICBpZiAoaXQgIT0gbV9yZW5kZXJlclJlZ2lvblN0eWxlLmVu
ZCgpKSB7CiAgICAgICAgICAgICBjaGlsZFN0eWxlSW5SZWdpb24gPSBSZW5kZXJTdHlsZTo6Y2xv
bmVQdHIoKml0LT52YWx1ZS5zdHlsZSk7CiAgICAgICAgICAgICBvYmplY3RSZWdpb25TdHlsZUNh
Y2hlZCA9IHRydWU7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBpZiAoY2hpbGQuaXNB
bm9ueW1vdXMoKSB8fCBjaGlsZC5pc0luRmxvd1JlbmRlckZsb3dUaHJlYWQoKSkKICAgICAgICAg
ICAgICAgICBjaGlsZFN0eWxlSW5SZWdpb24gPSAgc3RkOjptYWtlX3VuaXF1ZTxSZW5kZXJTdHls
ZT4oUmVuZGVyU3R5bGU6OmNyZWF0ZUFub255bW91c1N0eWxlV2l0aERpc3BsYXkocmVuZGVyZXIu
c3R5bGUoKSwgY2hpbGQuc3R5bGUoKS5kaXNwbGF5KCkpKTsKLSAgICAgICAgICAgIGVsc2UgaWYg
KGlzPFJlbmRlclRleHQ+KGNoaWxkKSkKLSAgICAgICAgICAgICAgICBjaGlsZFN0eWxlSW5SZWdp
b24gPSBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIocmVuZGVyZXIuc3R5bGUoKSk7CiAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgY2hpbGRTdHlsZUluUmVnaW9uID0gY29tcHV0ZVN0eWxl
SW5SZWdpb24oZG93bmNhc3Q8UmVuZGVyRWxlbWVudD4oY2hpbGQpLCByZW5kZXJlci5zdHlsZSgp
KTsKKyAgICAgICAgICAgICAgICBjaGlsZFN0eWxlSW5SZWdpb24gPSBjb21wdXRlU3R5bGVJblJl
Z2lvbihjaGlsZCwgcmVuZGVyZXIuc3R5bGUoKSk7CiAgICAgICAgIH0KIAotICAgICAgICBzZXRP
YmplY3RTdHlsZUluUmVnaW9uKCZjaGlsZCwgV1RGTW92ZShjaGlsZFN0eWxlSW5SZWdpb24pLCBv
YmplY3RSZWdpb25TdHlsZUNhY2hlZCk7Ci0KLSAgICAgICAgaWYgKGlzPFJlbmRlckVsZW1lbnQ+
KGNoaWxkKSkKLSAgICAgICAgICAgIGNvbXB1dGVDaGlsZHJlblN0eWxlSW5SZWdpb24oZG93bmNh
c3Q8UmVuZGVyRWxlbWVudD4oY2hpbGQpKTsKKyAgICAgICAgc2V0UmVuZGVyZXJTdHlsZUluUmVn
aW9uKGNoaWxkLCBXVEZNb3ZlKGNoaWxkU3R5bGVJblJlZ2lvbiksIG9iamVjdFJlZ2lvblN0eWxl
Q2FjaGVkKTsKKyAgICAgICAgY29tcHV0ZUNoaWxkcmVuU3R5bGVJblJlZ2lvbihjaGlsZCk7CiAg
ICAgfQogfQogCi12b2lkIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50OjpzZXRPYmplY3RTdHlsZUlu
UmVnaW9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+
IHN0eWxlSW5SZWdpb24sIGJvb2wgb2JqZWN0UmVnaW9uU3R5bGVDYWNoZWQpCit2b2lkIFJlbmRl
ck5hbWVkRmxvd0ZyYWdtZW50OjpzZXRSZW5kZXJlclN0eWxlSW5SZWdpb24oUmVuZGVyRWxlbWVu
dCYgcmVuZGVyZXIsIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gc3R5bGVJblJlZ2lvbiwg
Ym9vbCBvYmplY3RSZWdpb25TdHlsZUNhY2hlZCkKIHsKLSAgICBBU1NFUlQob2JqZWN0LT5mbG93
VGhyZWFkQ29udGFpbmluZ0Jsb2NrKCkpOworICAgIEFTU0VSVChyZW5kZXJlci5mbG93VGhyZWFk
Q29udGFpbmluZ0Jsb2NrKCkpOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBv
YmplY3RPcmlnaW5hbFN0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25lUHRyKG9iamVjdC0+c3R5bGUo
KSk7Ci0gICAgaWYgKGlzPFJlbmRlckVsZW1lbnQ+KCpvYmplY3QpKQotICAgICAgICBkb3duY2Fz
dDxSZW5kZXJFbGVtZW50Pigqb2JqZWN0KS5zZXRTdHlsZUludGVybmFsKFdURk1vdmUoKnN0eWxl
SW5SZWdpb24pKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IG9iamVjdE9yaWdp
bmFsU3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIocmVuZGVyZXIuc3R5bGUoKSk7CisgICAg
cmVuZGVyZXIuc2V0U3R5bGVJbnRlcm5hbChXVEZNb3ZlKCpzdHlsZUluUmVnaW9uKSk7CiAKLSAg
ICBpZiAoaXM8UmVuZGVyQm94TW9kZWxPYmplY3Q+KCpvYmplY3QpICYmICFvYmplY3QtPmhhc1Zp
c2libGVCb3hEZWNvcmF0aW9ucygpKSB7Ci0gICAgICAgIGJvb2wgaGFzVmlzaWJsZUJveERlY29y
YXRpb25zID0gaXM8UmVuZGVyVGFibGVDZWxsPigqb2JqZWN0KQotICAgICAgICB8fCBvYmplY3Qt
PnN0eWxlKCkuaGFzQmFja2dyb3VuZCgpCi0gICAgICAgIHx8IG9iamVjdC0+c3R5bGUoKS5oYXNW
aXNpYmxlQm9yZGVyKCkKLSAgICAgICAgfHwgb2JqZWN0LT5zdHlsZSgpLmhhc0FwcGVhcmFuY2Uo
KQotICAgICAgICB8fCBvYmplY3QtPnN0eWxlKCkuYm94U2hhZG93KCk7Ci0gICAgICAgIG9iamVj
dC0+c2V0SGFzVmlzaWJsZUJveERlY29yYXRpb25zKGhhc1Zpc2libGVCb3hEZWNvcmF0aW9ucyk7
CisgICAgaWYgKGlzPFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5kZXJlcikgJiYgIXJlbmRlcmVy
Lmhhc1Zpc2libGVCb3hEZWNvcmF0aW9ucygpKSB7CisgICAgICAgIGJvb2wgaGFzVmlzaWJsZUJv
eERlY29yYXRpb25zID0gaXM8UmVuZGVyVGFibGVDZWxsPihyZW5kZXJlcikKKyAgICAgICAgfHwg
cmVuZGVyZXIuc3R5bGUoKS5oYXNCYWNrZ3JvdW5kKCkKKyAgICAgICAgfHwgcmVuZGVyZXIuc3R5
bGUoKS5oYXNWaXNpYmxlQm9yZGVyKCkKKyAgICAgICAgfHwgcmVuZGVyZXIuc3R5bGUoKS5oYXNB
cHBlYXJhbmNlKCkKKyAgICAgICAgfHwgcmVuZGVyZXIuc3R5bGUoKS5ib3hTaGFkb3coKTsKKyAg
ICAgICAgcmVuZGVyZXIuc2V0SGFzVmlzaWJsZUJveERlY29yYXRpb25zKGhhc1Zpc2libGVCb3hE
ZWNvcmF0aW9ucyk7CiAgICAgfQogCiAgICAgT2JqZWN0UmVnaW9uU3R5bGVJbmZvIHN0eWxlSW5m
bzsKICAgICBzdHlsZUluZm8uc3R5bGUgPSBXVEZNb3ZlKG9iamVjdE9yaWdpbmFsU3R5bGUpOwog
ICAgIHN0eWxlSW5mby5jYWNoZWQgPSBvYmplY3RSZWdpb25TdHlsZUNhY2hlZDsKLSAgICBtX3Jl
bmRlck9iamVjdFJlZ2lvblN0eWxlLnNldChvYmplY3QsIFdURk1vdmUoc3R5bGVJbmZvKSk7Cisg
ICAgbV9yZW5kZXJlclJlZ2lvblN0eWxlLnNldCgmcmVuZGVyZXIsIFdURk1vdmUoc3R5bGVJbmZv
KSk7CiB9CiAKLXZvaWQgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQ6OmNsZWFyT2JqZWN0U3R5bGVJ
blJlZ2lvbihjb25zdCBSZW5kZXJPYmplY3QqIG9iamVjdCkKK3ZvaWQgUmVuZGVyTmFtZWRGbG93
RnJhZ21lbnQ6OmNsZWFyT2JqZWN0U3R5bGVJblJlZ2lvbihjb25zdCBSZW5kZXJFbGVtZW50KiBv
YmplY3QpCiB7CiAgICAgQVNTRVJUKG9iamVjdCk7Ci0gICAgbV9yZW5kZXJPYmplY3RSZWdpb25T
dHlsZS5yZW1vdmUob2JqZWN0KTsKKyAgICBtX3JlbmRlcmVyUmVnaW9uU3R5bGUucmVtb3ZlKG9i
amVjdCk7CiAKICAgICAvLyBDbGVhciB0aGUgc3R5bGUgZm9yIHRoZSBjaGlsZHJlbiBvZiB0aGlz
IG9iamVjdC4KLSAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBvYmplY3QtPmZpcnN0Q2hp
bGRTbG93KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQotICAgICAgICBj
bGVhck9iamVjdFN0eWxlSW5SZWdpb24oY2hpbGQpOworICAgIGZvciAoYXV0byYgY2hpbGQgOiBj
aGlsZHJlbk9mVHlwZTxSZW5kZXJFbGVtZW50Pigqb2JqZWN0KSkKKyAgICAgICAgY2xlYXJPYmpl
Y3RTdHlsZUluUmVnaW9uKCZjaGlsZCk7CiB9CiAKIHZvaWQgUmVuZGVyTmFtZWRGbG93RnJhZ21l
bnQ6OnNldFJlZ2lvbk9iamVjdHNSZWdpb25TdHlsZSgpCkBAIC00MzEsMjcgKzQyNSwyNyBAQCB2
b2lkIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50OjpzZXRSZWdpb25PCiAgICAgICAgIC8vIFRoZSBs
aXN0IG9mIGNvbnRlbnQgbm9kZXMgY29udGFpbnMgYWxzbyB0aGUgbm9kZXMgd2l0aCBkaXNwbGF5
Om5vbmUuCiAgICAgICAgIGlmICghZWxlbWVudC0+cmVuZGVyZXIoKSkKICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICBhdXRvJiByZW5kZXJlciA9ICplbGVtZW50LT5yZW5kZXJlcigpOwog
Ci0gICAgICAgIFJlbmRlckVsZW1lbnQqIG9iamVjdCA9IGVsZW1lbnQtPnJlbmRlcmVyKCk7CiAg
ICAgICAgIC8vIElmIHRoZSBjb250ZW50IG5vZGUgZG9lcyBub3QgZmxvdyBhbnkgb2YgaXRzIGNo
aWxkcmVuIGluIHRoaXMgcmVnaW9uLAogICAgICAgICAvLyB3ZSBkbyBub3QgY29tcHV0ZSBhbnkg
c3R5bGUgZm9yIHRoZW0gaW4gdGhpcyByZWdpb24uCi0gICAgICAgIGlmICghZmxvd1RocmVhZCgp
LT5vYmplY3RJbkZsb3dSZWdpb24ob2JqZWN0LCB0aGlzKSkKKyAgICAgICAgaWYgKCFmbG93VGhy
ZWFkKCktPm9iamVjdEluRmxvd1JlZ2lvbigmcmVuZGVyZXIsIHRoaXMpKQogICAgICAgICAgICAg
Y29udGludWU7CiAKICAgICAgICAgLy8gSWYgdGhlIG9iamVjdCBoYXMgc3R5bGUgaW4gcmVnaW9u
LCB1c2UgdGhhdCBpbnN0ZWFkIG9mIGNvbXB1dGluZyBhIG5ldyBvbmUuCi0gICAgICAgIGF1dG8g
aXQgPSBtX3JlbmRlck9iamVjdFJlZ2lvblN0eWxlLmZpbmQob2JqZWN0KTsKKyAgICAgICAgYXV0
byBpdCA9IG1fcmVuZGVyZXJSZWdpb25TdHlsZS5maW5kKCZyZW5kZXJlcik7CiAgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gb2JqZWN0U3R5bGVJblJlZ2lvbjsKICAgICAgICAg
Ym9vbCBvYmplY3RSZWdpb25TdHlsZUNhY2hlZCA9IGZhbHNlOwotICAgICAgICBpZiAoaXQgIT0g
bV9yZW5kZXJPYmplY3RSZWdpb25TdHlsZS5lbmQoKSkgeworICAgICAgICBpZiAoaXQgIT0gbV9y
ZW5kZXJlclJlZ2lvblN0eWxlLmVuZCgpKSB7CiAgICAgICAgICAgICBvYmplY3RTdHlsZUluUmVn
aW9uID0gUmVuZGVyU3R5bGU6OmNsb25lUHRyKCppdC0+dmFsdWUuc3R5bGUpOwogICAgICAgICAg
ICAgQVNTRVJUKGl0LT52YWx1ZS5jYWNoZWQpOwogICAgICAgICAgICAgb2JqZWN0UmVnaW9uU3R5
bGVDYWNoZWQgPSB0cnVlOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG9iamVjdFN0eWxl
SW5SZWdpb24gPSBjb21wdXRlU3R5bGVJblJlZ2lvbigqb2JqZWN0LCBzdHlsZSgpKTsKKyAgICAg
ICAgICAgIG9iamVjdFN0eWxlSW5SZWdpb24gPSBjb21wdXRlU3R5bGVJblJlZ2lvbihyZW5kZXJl
ciwgc3R5bGUoKSk7CiAKLSAgICAgICAgc2V0T2JqZWN0U3R5bGVJblJlZ2lvbihvYmplY3QsIFdU
Rk1vdmUob2JqZWN0U3R5bGVJblJlZ2lvbiksIG9iamVjdFJlZ2lvblN0eWxlQ2FjaGVkKTsKKyAg
ICAgICAgc2V0UmVuZGVyZXJTdHlsZUluUmVnaW9uKHJlbmRlcmVyLCBXVEZNb3ZlKG9iamVjdFN0
eWxlSW5SZWdpb24pLCBvYmplY3RSZWdpb25TdHlsZUNhY2hlZCk7CiAKLSAgICAgICAgY29tcHV0
ZUNoaWxkcmVuU3R5bGVJblJlZ2lvbigqb2JqZWN0KTsKKyAgICAgICAgY29tcHV0ZUNoaWxkcmVu
U3R5bGVJblJlZ2lvbihyZW5kZXJlcik7CiAgICAgfQogfQogCkBAIC00NjAsOSArNDU0LDkgQEAg
dm9pZCBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudDo6cmVzdG9yZVJlZwogICAgIGlmICghaGFzQ3Vz
dG9tUmVnaW9uU3R5bGUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVuZGVyT2JqZWN0UmVn
aW9uU3R5bGVNYXAgdGVtcDsKLSAgICBmb3IgKGF1dG8mIG9iamVjdFBhaXIgOiBtX3JlbmRlck9i
amVjdFJlZ2lvblN0eWxlKSB7Ci0gICAgICAgIFJlbmRlck9iamVjdCogb2JqZWN0ID0gY29uc3Rf
Y2FzdDxSZW5kZXJPYmplY3QqPihvYmplY3RQYWlyLmtleSk7CisgICAgUmVuZGVyZXJSZWdpb25T
dHlsZU1hcCB0ZW1wOworICAgIGZvciAoYXV0byYgb2JqZWN0UGFpciA6IG1fcmVuZGVyZXJSZWdp
b25TdHlsZSkgeworICAgICAgICBhdXRvKiBvYmplY3QgPSBjb25zdF9jYXN0PFJlbmRlckVsZW1l
bnQqPihvYmplY3RQYWlyLmtleSk7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHls
ZT4gb2JqZWN0UmVnaW9uU3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIob2JqZWN0LT5zdHls
ZSgpKTsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBvYmplY3RPcmlnaW5h
bFN0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25lUHRyKCpvYmplY3RQYWlyLnZhbHVlLnN0eWxlKTsK
IApAQCAtNDgwLDExICs0NzQsMTAgQEAgdm9pZCBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudDo6cmVz
dG9yZVJlZwogICAgICAgICAgICAgc3R5bGVJbmZvLmNhY2hlZCA9IHRydWU7CiAgICAgICAgICAg
ICB0ZW1wLnNldChvYmplY3QsIFdURk1vdmUoc3R5bGVJbmZvKSk7CiAgICAgICAgIH0KLSAgICAg
ICAgaWYgKGlzPFJlbmRlckVsZW1lbnQ+KCpvYmplY3QpKQotICAgICAgICAgICAgZG93bmNhc3Q8
UmVuZGVyRWxlbWVudD4oKm9iamVjdCkuc2V0U3R5bGVJbnRlcm5hbChXVEZNb3ZlKCpvYmplY3RP
cmlnaW5hbFN0eWxlKSk7CisgICAgICAgIG9iamVjdC0+c2V0U3R5bGVJbnRlcm5hbChXVEZNb3Zl
KCpvYmplY3RPcmlnaW5hbFN0eWxlKSk7CiAgICAgfQogCi0gICAgbV9yZW5kZXJPYmplY3RSZWdp
b25TdHlsZS5zd2FwKHRlbXApOworICAgIG1fcmVuZGVyZXJSZWdpb25TdHlsZS5zd2FwKHRlbXAp
OwogfQogCiBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIFJlbmRlck5hbWVkRmxvd0ZyYWdtZW50Ojpu
YW1lZEZsb3dUaHJlYWQoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck5hbWVkRmxvd0ZyYWdtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50LmgJKHJldmlzaW9uIDIwNTkyNikKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoKICAgICBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0JiBsYXllck93bmVyKCkgY29uc3QgeyByZXR1cm4gZG93bmNhc3Q8UmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdD4oKnBhcmVudCgpKTsgfQogCiAgICAgYm9vbCBoYXNDdXN0b21SZWdpb25TdHlsZSgp
IGNvbnN0IHsgcmV0dXJuIG1faGFzQ3VzdG9tUmVnaW9uU3R5bGU7IH0KLSAgICB2b2lkIGNsZWFy
T2JqZWN0U3R5bGVJblJlZ2lvbihjb25zdCBSZW5kZXJPYmplY3QqKTsKKyAgICB2b2lkIGNsZWFy
T2JqZWN0U3R5bGVJblJlZ2lvbihjb25zdCBSZW5kZXJFbGVtZW50Kik7CiAKICAgICB2b2lkIHNl
dFJlZ2lvbk9iamVjdHNSZWdpb25TdHlsZSgpOwogICAgIHZvaWQgcmVzdG9yZVJlZ2lvbk9iamVj
dHNPcmlnaW5hbFN0eWxlKCk7CkBAIC0xMjUsNyArMTI1LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gY29tcHV0ZVN0eWxlSW5SZWdpb24oUmVuZGVyRWxl
bWVudCYsIGNvbnN0IFJlbmRlclN0eWxlJiBwYXJlbnRTdHlsZSkgY29uc3Q7CiAgICAgdm9pZCBj
b21wdXRlQ2hpbGRyZW5TdHlsZUluUmVnaW9uKFJlbmRlckVsZW1lbnQmKTsKLSAgICB2b2lkIHNl
dE9iamVjdFN0eWxlSW5SZWdpb24oUmVuZGVyT2JqZWN0Kiwgc3RkOjp1bmlxdWVfcHRyPFJlbmRl
clN0eWxlPiwgYm9vbCBvYmplY3RSZWdpb25TdHlsZUNhY2hlZCk7CisgICAgdm9pZCBzZXRSZW5k
ZXJlclN0eWxlSW5SZWdpb24oUmVuZGVyRWxlbWVudCYsIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJT
dHlsZT4sIGJvb2wgb2JqZWN0UmVnaW9uU3R5bGVDYWNoZWQpOwogCiAgICAgdm9pZCBjaGVja1Jl
Z2lvblN0eWxlKCk7CiAgICAgdm9pZCBzZXRIYXNDdXN0b21SZWdpb25TdHlsZShib29sIGhhc0N1
c3RvbVJlZ2lvblN0eWxlKSB7IG1faGFzQ3VzdG9tUmVnaW9uU3R5bGUgPSBoYXNDdXN0b21SZWdp
b25TdHlsZTsgfQpAQCAtMTUzLDggKzE1Myw4IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgY2Fj
aGVkOwogICAgIH07CiAKLSAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgUmVuZGVyT2JqZWN0Kiwg
T2JqZWN0UmVnaW9uU3R5bGVJbmZvID4gUmVuZGVyT2JqZWN0UmVnaW9uU3R5bGVNYXA7Ci0gICAg
UmVuZGVyT2JqZWN0UmVnaW9uU3R5bGVNYXAgbV9yZW5kZXJPYmplY3RSZWdpb25TdHlsZTsKKyAg
ICB1c2luZyBSZW5kZXJlclJlZ2lvblN0eWxlTWFwID0gSGFzaE1hcDxjb25zdCBSZW5kZXJFbGVt
ZW50KiwgT2JqZWN0UmVnaW9uU3R5bGVJbmZvPjsKKyAgICBSZW5kZXJlclJlZ2lvblN0eWxlTWFw
IG1fcmVuZGVyZXJSZWdpb25TdHlsZTsKIAogICAgIGJvb2wgbV9oYXNDdXN0b21SZWdpb25TdHls
ZSA6IDE7CiAgICAgYm9vbCBtX2hhc0F1dG9Mb2dpY2FsSGVpZ2h0IDogMTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwCShy
ZXZpc2lvbiAyMDU5MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRG
bG93VGhyZWFkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODEyLDcgKzgxMiw3IEBAIHZvaWQgUmVu
ZGVyTmFtZWRGbG93VGhyZWFkOjpjaGVja1JlZ2lvbnMKICAgICBtX2hhc1JlZ2lvbnNXaXRoU3R5
bGluZyA9IGhhc1JlZ2lvbnNXaXRoU3R5bGluZzsKIH0KIAotdm9pZCBSZW5kZXJOYW1lZEZsb3dU
aHJlYWQ6OmNsZWFyUmVuZGVyT2JqZWN0Q3VzdG9tU3R5bGUoY29uc3QgUmVuZGVyT2JqZWN0KiBv
YmplY3QpCit2b2lkIFJlbmRlck5hbWVkRmxvd1RocmVhZDo6Y2xlYXJSZW5kZXJPYmplY3RDdXN0
b21TdHlsZShjb25zdCBSZW5kZXJFbGVtZW50KiBvYmplY3QpCiB7CiAgICAgLy8gQ2xlYXIgdGhl
IHN0eWxlcyBmb3IgdGhlIG9iamVjdCBpbiB0aGUgcmVnaW9ucy4KICAgICAvLyBGSVhNRTogUmVn
aW9uIHN0eWxpbmcgaXMgbm90IGNvbXB1dGVkIG9ubHkgZm9yIHRoZSByZWdpb24gcmFuZ2Ugb2Yg
dGhlIG9iamVjdCBzbyB0aGlzIGlzIHdoeSB3ZSBuZWVkIHRvIHdhbGsgdGhlIHdob2xlIGNoYWlu
LgpAQCAtODIwLDcgKzgyMCw3IEBAIHZvaWQgUmVuZGVyTmFtZWRGbG93VGhyZWFkOjpjbGVhclJl
bmRlck8KICAgICAgICAgZG93bmNhc3Q8UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQ+KCpyZWdpb24p
LmNsZWFyT2JqZWN0U3R5bGVJblJlZ2lvbihvYmplY3QpOwogfQogCi12b2lkIFJlbmRlck5hbWVk
Rmxvd1RocmVhZDo6cmVtb3ZlRmxvd0NoaWxkSW5mbyhSZW5kZXJPYmplY3QqIGNoaWxkKQordm9p
ZCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQ6OnJlbW92ZUZsb3dDaGlsZEluZm8oUmVuZGVyRWxlbWVu
dCogY2hpbGQpCiB7CiAgICAgUmVuZGVyRmxvd1RocmVhZDo6cmVtb3ZlRmxvd0NoaWxkSW5mbyhj
aGlsZCk7CiAgICAgY2xlYXJSZW5kZXJPYmplY3RDdXN0b21TdHlsZShjaGlsZCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5oCShy
ZXZpc2lvbiAyMDU5MjYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRG
bG93VGhyZWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTkxLDkgKzkxLDkgQEAgcHVibGljOgogICAg
IGJvb2wgaGFzUmVnaW9uc1dpdGhTdHlsaW5nKCkgY29uc3QgeyByZXR1cm4gbV9oYXNSZWdpb25z
V2l0aFN0eWxpbmc7IH0KICAgICB2b2lkIGNoZWNrUmVnaW9uc1dpdGhTdHlsaW5nKCk7CiAKLSAg
ICB2b2lkIGNsZWFyUmVuZGVyT2JqZWN0Q3VzdG9tU3R5bGUoY29uc3QgUmVuZGVyT2JqZWN0Kik7
CisgICAgdm9pZCBjbGVhclJlbmRlck9iamVjdEN1c3RvbVN0eWxlKGNvbnN0IFJlbmRlckVsZW1l
bnQqKTsKIAotICAgIHZvaWQgcmVtb3ZlRmxvd0NoaWxkSW5mbyhSZW5kZXJPYmplY3QqKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHJlbW92ZUZsb3dDaGlsZEluZm8oUmVuZGVyRWxlbWVudCopIG92ZXJy
aWRlOwogCiAgICAgTGF5b3V0VW5pdCBmbG93Q29udGVudEJvdHRvbSgpIGNvbnN0IHsgcmV0dXJu
IG1fZmxvd0NvbnRlbnRCb3R0b207IH0KICAgICB2b2lkIGRpc3BhdGNoTmFtZWRGbG93RXZlbnRz
KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkocmV2
aXNpb24gMjA1OTg1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MzgsNzkgKzE0MzgsMTIgQEAgdm9pZCBSZW5kZXJPYmpl
Y3Q6OndpbGxCZVJlbW92ZWRGcm9tVHJlZQogewogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgQVNT
RVJUKGlzUm9vdGVkKCkpIGJ1dCB3ZSBoYXZlIHNvbWUgb3V0LW9mLW9yZGVyIHJlbW92YWxzIHdo
aWNoIHdvdWxkIG5lZWQgdG8gYmUgZml4ZWQgZmlyc3QuCiAKLSAgICByZW1vdmVGcm9tUmVuZGVy
Rmxvd1RocmVhZCgpOworICAgIHNldEZsb3dUaHJlYWRTdGF0ZShOb3RJbnNpZGVGbG93VGhyZWFk
KTsKIAogICAgIC8vIFVwZGF0ZSBjYWNoZWQgYm91bmRhcmllcyBpbiBTVkcgcmVuZGVyZXJzLCBp
ZiBhIGNoaWxkIGlzIHJlbW92ZWQuCiAgICAgcGFyZW50KCktPnNldE5lZWRzQm91bmRhcmllc1Vw
ZGF0ZSgpOwogfQogCi12b2lkIFJlbmRlck9iamVjdDo6cmVtb3ZlRnJvbVJlbmRlckZsb3dUaHJl
YWQoKQotewotICAgIGlmIChmbG93VGhyZWFkU3RhdGUoKSA9PSBOb3RJbnNpZGVGbG93VGhyZWFk
KQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBTb21ldGltZXMgd2UgcmVtb3ZlIHRoZSBlbGVt
ZW50IGZyb20gdGhlIGZsb3csIGJ1dCBpdCdzIG5vdCBkZXN0cm95ZWQgYXQgdGhhdCB0aW1lLgot
ICAgIC8vIEl0J3Mgb25seSB1bnRpbCBsYXRlciB3aGVuIHdlIGFjdHVhbGx5IGRlc3Ryb3kgaXQg
YW5kIHJlbW92ZSBhbGwgdGhlIGNoaWxkcmVuIGZyb20gaXQuCi0gICAgLy8gQ3VycmVudGx5LCB0
aGF0IGhhcHBlbnMgZm9yIGZpcnN0TGV0dGVyIGVsZW1lbnRzIGFuZCBsaXN0IG1hcmtlcnMuCi0g
ICAgLy8gUGFzcyBpbiB0aGUgZmxvdyB0aHJlYWQgc28gdGhhdCB3ZSBkb24ndCBoYXZlIHRvIGxv
b2sgaXQgdXAgZm9yIGFsbCB0aGUgY2hpbGRyZW4uCi0gICAgcmVtb3ZlRnJvbVJlbmRlckZsb3dU
aHJlYWRJbmNsdWRpbmdEZXNjZW5kYW50cyh0cnVlKTsKLX0KLQotdm9pZCBSZW5kZXJPYmplY3Q6
OnJlbW92ZUZyb21SZW5kZXJGbG93VGhyZWFkSW5jbHVkaW5nRGVzY2VuZGFudHMoYm9vbCBzaG91
bGRVcGRhdGVTdGF0ZSkKLXsKLSAgICAvLyBPbmNlIHdlIHJlYWNoIGFub3RoZXIgZmxvdyB0aHJl
YWQgd2UgZG9uJ3QgbmVlZCB0byB1cGRhdGUgdGhlIGZsb3cgdGhyZWFkIHN0YXRlCi0gICAgLy8g
YnV0IHdlIGhhdmUgdG8gY29udGludWUgY2xlYW51cCB0aGUgZmxvdyB0aHJlYWQgaW5mby4KLSAg
ICBpZiAoaXNSZW5kZXJGbG93VGhyZWFkKCkpCi0gICAgICAgIHNob3VsZFVwZGF0ZVN0YXRlID0g
ZmFsc2U7Ci0KLSAgICBpZiAoaXM8UmVuZGVyRWxlbWVudD4oKnRoaXMpKSB7Ci0gICAgICAgIGZv
ciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbk9mVHlwZTxSZW5kZXJPYmplY3Q+KGRvd25jYXN0PFJl
bmRlckVsZW1lbnQ+KCp0aGlzKSkpCi0gICAgICAgICAgICBjaGlsZC5yZW1vdmVGcm9tUmVuZGVy
Rmxvd1RocmVhZEluY2x1ZGluZ0Rlc2NlbmRhbnRzKHNob3VsZFVwZGF0ZVN0YXRlKTsKLSAgICB9
Ci0KLSAgICAvLyBXZSBoYXZlIHRvIGFzayBmb3Igb3VyIGNvbnRhaW5pbmcgZmxvdyB0aHJlYWQg
YXMgaXQgbWF5IGJlIGFib3ZlIHRoZSByZW1vdmVkIHN1Yi10cmVlLgotICAgIFJlbmRlckZsb3dU
aHJlYWQqIGZsb3dUaHJlYWRDb250YWluaW5nQmxvY2sgPSB0aGlzLT5mbG93VGhyZWFkQ29udGFp
bmluZ0Jsb2NrKCk7Ci0gICAgd2hpbGUgKGZsb3dUaHJlYWRDb250YWluaW5nQmxvY2spIHsKLSAg
ICAgICAgZmxvd1RocmVhZENvbnRhaW5pbmdCbG9jay0+cmVtb3ZlRmxvd0NoaWxkSW5mbyh0aGlz
KTsKLSAgICAgICAgaWYgKGZsb3dUaHJlYWRDb250YWluaW5nQmxvY2stPmZsb3dUaHJlYWRTdGF0
ZSgpID09IE5vdEluc2lkZUZsb3dUaHJlYWQpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
UmVuZGVyT2JqZWN0KiBwYXJlbnQgPSBmbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrLT5wYXJlbnQo
KTsKLSAgICAgICAgaWYgKCFwYXJlbnQpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZmxv
d1RocmVhZENvbnRhaW5pbmdCbG9jayA9IHBhcmVudC0+Zmxvd1RocmVhZENvbnRhaW5pbmdCbG9j
aygpOwotICAgIH0KLSAgICBpZiAoaXM8UmVuZGVyQmxvY2s+KCp0aGlzKSkKLSAgICAgICAgZG93
bmNhc3Q8UmVuZGVyQmxvY2s+KCp0aGlzKS5zZXRDYWNoZWRGbG93VGhyZWFkQ29udGFpbmluZ0Js
b2NrTmVlZHNVcGRhdGUoKTsKLQotICAgIGlmIChzaG91bGRVcGRhdGVTdGF0ZSkKLSAgICAgICAg
c2V0Rmxvd1RocmVhZFN0YXRlKE5vdEluc2lkZUZsb3dUaHJlYWQpOwotfQotCi12b2lkIFJlbmRl
ck9iamVjdDo6aW52YWxpZGF0ZUZsb3dUaHJlYWRDb250YWluaW5nQmxvY2tJbmNsdWRpbmdEZXNj
ZW5kYW50cyhSZW5kZXJGbG93VGhyZWFkKiBmbG93VGhyZWFkKQotewotICAgIGlmIChmbG93VGhy
ZWFkU3RhdGUoKSA9PSBOb3RJbnNpZGVGbG93VGhyZWFkKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBpZiAoaXM8UmVuZGVyQmxvY2s+KCp0aGlzKSkgewotICAgICAgICBSZW5kZXJCbG9jayYgYmxv
Y2sgPSBkb3duY2FzdDxSZW5kZXJCbG9jaz4oKnRoaXMpOwotCi0gICAgICAgIGlmIChibG9jay5j
YWNoZWRGbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrTmVlZHNVcGRhdGUoKSkKLSAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICBmbG93VGhyZWFkID0gYmxvY2suY2FjaGVkRmxvd1RocmVhZENv
bnRhaW5pbmdCbG9jaygpOwotICAgICAgICBibG9jay5zZXRDYWNoZWRGbG93VGhyZWFkQ29udGFp
bmluZ0Jsb2NrTmVlZHNVcGRhdGUoKTsKLSAgICB9Ci0KLSAgICBpZiAoZmxvd1RocmVhZCkKLSAg
ICAgICAgZmxvd1RocmVhZC0+cmVtb3ZlRmxvd0NoaWxkSW5mbyh0aGlzKTsKLQotICAgIGlmICgh
aXM8UmVuZGVyRWxlbWVudD4oKnRoaXMpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKGF1
dG8mIGNoaWxkIDogY2hpbGRyZW5PZlR5cGU8UmVuZGVyT2JqZWN0Pihkb3duY2FzdDxSZW5kZXJF
bGVtZW50PigqdGhpcykpKQotICAgICAgICBjaGlsZC5pbnZhbGlkYXRlRmxvd1RocmVhZENvbnRh
aW5pbmdCbG9ja0luY2x1ZGluZ0Rlc2NlbmRhbnRzKGZsb3dUaHJlYWQpOwotfQotCiB2b2lkIFJl
bmRlck9iamVjdDo6ZGVzdHJveUFuZENsZWFudXBBbm9ueW1vdXNXcmFwcGVycygpCiB7CiAgICAg
Ly8gSWYgdGhlIHRyZWUgaXMgZGVzdHJveWVkLCB0aGVyZSBpcyBubyBuZWVkIGZvciBhIGNsZWFu
LXVwIHBoYXNlLgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAko
cmV2aXNpb24gMjA1OTg1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC04MTgsNyArODE4LDYgQEAgcHJvdGVjdGVkOgogICAgIHZv
aWQgc2V0TmVlZHNTaW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dEJpdChib29sIGIpIHsgbV9iaXRm
aWVsZHMuc2V0TmVlZHNTaW1wbGlmaWVkTm9ybWFsRmxvd0xheW91dChiKTsgfQogCiAgICAgdmly
dHVhbCBSZW5kZXJGbG93VGhyZWFkKiBsb2NhdGVGbG93VGhyZWFkQ29udGFpbmluZ0Jsb2NrKCkg
Y29uc3Q7Ci0gICAgdm9pZCBpbnZhbGlkYXRlRmxvd1RocmVhZENvbnRhaW5pbmdCbG9ja0luY2x1
ZGluZ0Rlc2NlbmRhbnRzKFJlbmRlckZsb3dUaHJlYWQqID0gbnVsbHB0cik7CiAgICAgc3RhdGlj
IHZvaWQgY2FsY3VsYXRlQm9yZGVyU3R5bGVDb2xvcihjb25zdCBFQm9yZGVyU3R5bGUmLCBjb25z
dCBCb3hTaWRlJiwgQ29sb3ImKTsKIAogcHJpdmF0ZToKQEAgLTgzMSw4ICs4MzAsNiBAQCBwcml2
YXRlOgogICAgIHZvaWQgc2V0TGF5ZXJOZWVkc0Z1bGxSZXBhaW50KCk7CiAgICAgdm9pZCBzZXRM
YXllck5lZWRzRnVsbFJlcGFpbnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQoKTsKIAotICAg
IHZvaWQgcmVtb3ZlRnJvbVJlbmRlckZsb3dUaHJlYWQoKTsKLSAgICB2b2lkIHJlbW92ZUZyb21S
ZW5kZXJGbG93VGhyZWFkSW5jbHVkaW5nRGVzY2VuZGFudHMoYm9vbCk7CiAgICAgTm9kZSogZ2Vu
ZXJhdGluZ1BzZXVkb0hvc3RFbGVtZW50KCkgY29uc3Q7CiAKICAgICB2b2lkIHByb3BhZ2F0ZVJl
cGFpbnRUb1BhcmVudFdpdGhPdXRsaW5lQXV0b0lmTmVlZGVkKGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QmIHJlcGFpbnRDb250YWluZXIsIGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0
KSBjb25zdDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>