<?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>189631</bug_id>
          
          <creation_ts>2018-09-14 14:15:02 -0700</creation_ts>
          <short_desc>Refactoring related to Safe Browsing</short_desc>
          <delta_ts>2018-09-17 10:09:56 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jlewis3</cc>
    
    <cc>realdawei</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>thorton</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1459882</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-09-14 14:15:02 -0700</bug_when>
    <thetext>Refactoring related to Safe Browsing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459884</commentid>
    <comment_count>1</comment_count>
      <attachid>349803</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-09-14 14:20:24 -0700</bug_when>
    <thetext>Created attachment 349803
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459890</commentid>
    <comment_count>2</comment_count>
      <attachid>349807</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-09-14 14:29:37 -0700</bug_when>
    <thetext>Created attachment 349807
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459912</commentid>
    <comment_count>3</comment_count>
      <attachid>349807</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-14 15:09:39 -0700</bug_when>
    <thetext>Comment on attachment 349807
Patch

Clearing flags on attachment: 349807

Committed r236020: &lt;https://trac.webkit.org/changeset/236020&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459913</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-14 15:09:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459914</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-14 15:10:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/44470854&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1459934</commentid>
    <comment_count>6</comment_count>
    <who name="Dawei Fenton (:realdawei)">realdawei</who>
    <bug_when>2018-09-14 16:10:23 -0700</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #3)
&gt; Comment on attachment 349807 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 349807
&gt; 
&gt; Committed r236020: &lt;https://trac.webkit.org/changeset/236020&gt;


Seeing an API test failure on High Sierra WK1 after this revision:

sample output:
https://build.webkit.org/builders/Apple%20High%20Sierra%20Release%20WK1%20%28Tests%29/builds/7991/steps/run-api-tests/logs/stdio

  TestWebKitAPI.WKNavigation.NavigationActionHasNavigation
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:236
        Value of: !!navigationAction._mainFrameNavigation
          Actual: false
        Expected: true
        
        
        /Volumes/Data/slave/highsierra-release/build/Tools/TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:237
        Expected equality of these values:
          navigationAction._mainFrameNavigation
            Which is: NULL
          navigation
            Which is: 0x7f8421c36260</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460000</commentid>
    <comment_count>7</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2018-09-14 18:20:34 -0700</bug_when>
    <thetext>Reverted r236020 for reason:

This caused an api failure on High Sierra

Committed r236030: &lt;https://trac.webkit.org/changeset/236030&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460176</commentid>
    <comment_count>8</comment_count>
      <attachid>349892</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2018-09-17 09:32:17 -0700</bug_when>
    <thetext>Created attachment 349892
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460194</commentid>
    <comment_count>9</comment_count>
      <attachid>349892</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-17 10:09:54 -0700</bug_when>
    <thetext>Comment on attachment 349892
Patch

Clearing flags on attachment: 349892

Committed r236067: &lt;https://trac.webkit.org/changeset/236067&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460195</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-17 10:09:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349803</attachid>
            <date>2018-09-14 14:20:24 -0700</date>
            <delta_ts>2018-09-14 14:29:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189631-20180914142023.patch</filename>
            <type>text/plain</type>
            <size>17907</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzYwMTgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE4LTA5LTE0ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVmYWN0b3Jpbmcg
cmVsYXRlZCB0byBTYWZlIEJyb3dzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODk2MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNYWtlIFNhZmVCcm93c2luZ1Jlc3VsdCBSZWZDb3VudGVkLgorICAg
ICAgICBNb3ZlIGxvZ2ljIGZyb20gYW4gdW5uYW1lZCBsYW1iZGEgdG8gV2ViUGFnZVByb3h5Ojpy
ZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpiZWdpblNhZmVCcm93c2luZ0NoZWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0ZVNhbmRib3hFeHRlbnNpb25z
SWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0YXJ0
RHJhZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0UHJvbWlz
ZWREYXRhRm9ySW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnNldERyYWdDYXJldFJlY3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OnBsYXRmb3JtUmVnaXN0ZXJBdHRhY2htZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpwbGF0Zm9ybUNsb25lQXR0YWNobWVudCk6IERlbGV0ZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL1NhZmVCcm93c2luZ1Jlc3VsdC5oOgorICAgICAgICAoV2ViS2l0OjpT
YWZlQnJvd3NpbmdSZXN1bHQ6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZyYW1l
UG9saWN5TGlzdGVuZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUG9saWN5
TGlzdGVuZXJQcm94eTo6ZGlkUmVjZWl2ZVNhZmVCcm93c2luZ1Jlc3VsdHMpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6
OnNldFVwUG9saWN5TGlzdGVuZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZyYW1l
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TmV3V2luZG93QWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
CiAyMDE4LTA5LTExICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1ha2UgR3JhcGhpY3NMYXllcnMgcmVmLWNvdW50ZWQsIHNvIHRoZWlyIHRyZWUgY2Fu
IHBlcnNpc3Qgd2hlbiBkaXNjb25uZWN0ZWQgZnJvbSBSZW5kZXJMYXllckJhY2tpbmdzCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TYWZlQnJvd3NpbmdSZXN1bHQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TYWZlQnJvd3NpbmdSZXN1bHQuaAkocmV2aXNp
b24gMjM2MDE3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2FmZUJyb3dzaW5nUmVzdWx0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE5ICsyNiwyMSBAQAogI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlIDxXZWJDb3JlL1VSTC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIE9CSkNfQ0xBU1MgU1NCU2VydmljZUxvb2t1
cFJlc3VsdDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFNhZmVCcm93c2luZ1Jlc3Vs
dCB7CitjbGFzcyBTYWZlQnJvd3NpbmdSZXN1bHQgOiBwdWJsaWMgUmVmQ291bnRlZDxTYWZlQnJv
d3NpbmdSZXN1bHQ+IHsKIHB1YmxpYzoKICNpZiBIQVZFKFNBRkVfQlJPV1NJTkcpCi0gICAgU2Fm
ZUJyb3dzaW5nUmVzdWx0KFdlYkNvcmU6OlVSTCYmLCBTU0JTZXJ2aWNlTG9va3VwUmVzdWx0ICop
OworICAgIHN0YXRpYyBSZWY8U2FmZUJyb3dzaW5nUmVzdWx0PiBjcmVhdGUoV2ViQ29yZTo6VVJM
JiYgdXJsLCBTU0JTZXJ2aWNlTG9va3VwUmVzdWx0ICpyZXN1bHQpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTYWZlQnJvd3NpbmdSZXN1bHQoV1RGTW92ZSh1cmwpLCByZXN1
bHQpKTsKKyAgICB9CiAjZW5kaWYKLSAgICBTYWZlQnJvd3NpbmdSZXN1bHQoKSA9IGRlZmF1bHQ7
Ci0KICAgICBjb25zdCBXZWJDb3JlOjpVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9
CiAgICAgY29uc3QgU3RyaW5nJiBwcm92aWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJvdmlkZXI7
IH0KICAgICBib29sIGlzUGhpc2hpbmcoKSBjb25zdCB7IHJldHVybiBtX2lzUGhpc2hpbmc7IH0K
QEAgLTQ3LDYgKzQ5LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNLbm93blRvQmVVbnNhZmUoKSBj
b25zdCB7IHJldHVybiBtX2lzS25vd25Ub0JlVW5zYWZlOyB9CiAKIHByaXZhdGU6CisjaWYgSEFW
RShTQUZFX0JST1dTSU5HKQorICAgIFNhZmVCcm93c2luZ1Jlc3VsdChXZWJDb3JlOjpVUkwmJiwg
U1NCU2VydmljZUxvb2t1cFJlc3VsdCAqKTsKKyNlbmRpZgogICAgIFdlYkNvcmU6OlVSTCBtX3Vy
bDsKICAgICBTdHJpbmcgbV9wcm92aWRlcjsKICAgICBib29sIG1faXNQaGlzaGluZyB7IGZhbHNl
IH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVBvbGljeUxpc3RlbmVy
UHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1l
UG9saWN5TGlzdGVuZXJQcm94eS5jcHAJKHJldmlzaW9uIDIzNjAxNykKKysrIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ1LDcgKzQ1LDcgQEAgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5OjpXZWJGcmFt
ZVBvbAogCiBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk6On5XZWJGcmFtZVBvbGljeUxpc3Rl
bmVyUHJveHkoKSA9IGRlZmF1bHQ7CiAKLXZvaWQgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5
OjpkaWRSZWNlaXZlU2FmZUJyb3dzaW5nUmVzdWx0cyhWZWN0b3I8U2FmZUJyb3dzaW5nUmVzdWx0
PiYmIHNhZmVCcm93c2luZ1Jlc3VsdHMpCit2b2lkIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94
eTo6ZGlkUmVjZWl2ZVNhZmVCcm93c2luZ1Jlc3VsdHMoVmVjdG9yPFJlZjxTYWZlQnJvd3NpbmdS
ZXN1bHQ+PiYmIHNhZmVCcm93c2luZ1Jlc3VsdHMpCiB7CiAgICAgQVNTRVJUKCFtX3NhZmVCcm93
c2luZ1Jlc3VsdHMpOwogICAgIGlmIChtX3BvbGljeVJlc3VsdCkgewpJbmRleDogU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmgJ
KHJldmlzaW9uIDIzNjAxNykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUG9s
aWN5TGlzdGVuZXJQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIGVudW0g
Y2xhc3MgU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWwKIGNsYXNzIFdlYkZyYW1lUG9saWN5
TGlzdGVuZXJQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6
OkZyYW1lUG9saWN5TGlzdGVuZXI+IHsKIHB1YmxpYzoKIAotICAgIHVzaW5nIFJlcGx5ID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBv
bGljaWVzKiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgVmVjdG9yPFNhZmVCcm93c2lu
Z1Jlc3VsdD4mJik+OworICAgIHVzaW5nIFJlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCwgVmVjdG9yPFJlZjxTYWZlQnJvd3NpbmdSZXN1bHQ+PiYmKT47CiAg
ICAgc3RhdGljIFJlZjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+IGNyZWF0ZShSZXBseSYm
IHJlcGx5LCBTaG91bGRFeHBlY3RTYWZlQnJvd3NpbmdSZXN1bHQgZXhwZWN0KQogICAgIHsKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5KFdU
Rk1vdmUocmVwbHkpLCBleHBlY3QpKTsKQEAgLTU4LDEzICs1OCwxMyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkb3dubG9hZCgpOwogICAgIHZvaWQgaWdub3JlKCk7CiAgICAgCi0gICAgdm9pZCBkaWRS
ZWNlaXZlU2FmZUJyb3dzaW5nUmVzdWx0cyhWZWN0b3I8U2FmZUJyb3dzaW5nUmVzdWx0PiYmKTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVTYWZlQnJvd3NpbmdSZXN1bHRzKFZlY3RvcjxSZWY8U2FmZUJy
b3dzaW5nUmVzdWx0Pj4mJik7CiAKIHByaXZhdGU6CiAgICAgV2ViRnJhbWVQb2xpY3lMaXN0ZW5l
clByb3h5KFJlcGx5JiYsIFNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdCk7CiAKICAgICBz
dGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+LCBQcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50Pj4gbV9wb2xpY3lSZXN1bHQ7Ci0gICAgc3RkOjpvcHRp
b25hbDxWZWN0b3I8U2FmZUJyb3dzaW5nUmVzdWx0Pj4gbV9zYWZlQnJvd3NpbmdSZXN1bHRzOwor
ICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTYWZlQnJvd3NpbmdSZXN1bHQ+Pj4gbV9zYWZl
QnJvd3NpbmdSZXN1bHRzOwogICAgIFJlcGx5IG1fcmVwbHk7CiB9OwogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAkocmV2aXNpb24gMjM2MDE3KQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE3NywxMSArMTc3LDExIEBAIHZvaWQgV2ViRnJhbWVQcm94eTo6ZGlkQ2hhbmdlVGl0bGUo
Y29uc3QKICAgICBtX3RpdGxlID0gdGl0bGU7CiB9CiAKLVdlYkZyYW1lUG9saWN5TGlzdGVuZXJQ
cm94eSYgV2ViRnJhbWVQcm94eTo6c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6UG9saWN5QWN0aW9uLCBBUEk6OldlYnNpdGVQb2xpY2llcyos
IFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFZlY3RvcjxTYWZlQnJvd3NpbmdSZXN1bHQ+
JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBTaG91bGRFeHBlY3RTYWZlQnJvd3NpbmdSZXN1bHQg
ZXhwZWN0KQorV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5JiBXZWJGcmFtZVByb3h5OjpzZXRV
cFBvbGljeUxpc3RlbmVyUHJveHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpQb2xp
Y3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNs
aWVudCwgVmVjdG9yPFJlZjxTYWZlQnJvd3NpbmdSZXN1bHQ+PiYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlciwgU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0IGV4cGVjdCkKIHsKICAgICBpZiAo
bV9hY3RpdmVMaXN0ZW5lcikKICAgICAgICAgbV9hY3RpdmVMaXN0ZW5lci0+aWdub3JlKCk7Ci0g
ICAgbV9hY3RpdmVMaXN0ZW5lciA9IFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eTo6Y3JlYXRl
KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChXZWJDb3JlOjpQb2xpY3lBY3Rpb24gYWN0
aW9uLCBBUEk6OldlYnNpdGVQb2xpY2llcyogcG9saWNpZXMsIFByb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgVmVjdG9yPFNhZmVCcm93c2lu
Z1Jlc3VsdD4mJiBzYWZlQnJvd3NpbmdSZXN1bHRzKSBtdXRhYmxlIHsKKyAgICBtX2FjdGl2ZUxp
c3RlbmVyID0gV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5OjpjcmVhdGUoW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0gKFdlYkNvcmU6OlBvbGljeUFjdGlvbiBhY3Rpb24sIEFQSTo6V2Vi
c2l0ZVBvbGljaWVzKiBwb2xpY2llcywgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBWZWN0b3I8UmVmPFNhZmVCcm93c2luZ1Jlc3VsdD4+
JiYgc2FmZUJyb3dzaW5nUmVzdWx0cykgbXV0YWJsZSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGFjdGlvbiwgcG9saWNpZXMsIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFdURk1v
dmUoc2FmZUJyb3dzaW5nUmVzdWx0cykpOwogICAgICAgICBtX2FjdGl2ZUxpc3RlbmVyID0gbnVs
bHB0cjsKICAgICB9LCBleHBlY3QpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
RnJhbWVQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZy
YW1lUHJveHkuaAkocmV2aXNpb24gMjM2MDE3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRnJhbWVQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsNyArMTE3LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbihjb25zdCBXZWJDb3JlOjpVUkwm
KTsgLy8gZWcuIGFuY2hvciBuYXZpZ2F0aW9uLCBzZXNzaW9uIHN0YXRlIGNoYW5nZS4KICAgICB2
b2lkIGRpZENoYW5nZVRpdGxlKGNvbnN0IFN0cmluZyYpOwogCi0gICAgV2ViRnJhbWVQb2xpY3lM
aXN0ZW5lclByb3h5JiBzZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgVmVjdG9yPFNhZmVCcm93c2luZ1Jlc3VsdD4mJik+JiYs
IFNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdCk7CisgICAgV2ViRnJhbWVQb2xpY3lMaXN0
ZW5lclByb3h5JiBzZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudCwgVmVjdG9yPFJlZjxTYWZlQnJvd3NpbmdSZXN1bHQ+PiYmKT4m
JiwgU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0KTsKIAogI2lmIEVOQUJMRShDT05URU5U
X0ZJTFRFUklORykKICAgICB2b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWQoV2ViQ29yZTo6
Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIGNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcikg
eyBtX2NvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciA9IFdURk1vdmUoY29udGVudEZpbHRlclVu
YmxvY2tIYW5kbGVyKTsgfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCShyZXZpc2lvbiAyMzYwMTcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDMxLDcgKzI0MzEsMzUgQEAgcHJpdmF0
ZToKIAogICAgIFNlbmRGdW5jdGlvbiBtX3NlbmRGdW5jdGlvbjsKIH07CisKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gYWN0
aW9uLCBBUEk6Ok5hdmlnYXRpb24qIG5hdmlnYXRpb24sIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBz
dGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgcG9saWNpZXMsIFJlZjxQb2xpY3lE
ZWNpc2lvblNlbmRlcj4mJiBzZW5kZXIpCit7CisgICAgaWYgKHBvbGljaWVzKSB7CisgICAgICAg
IGRhdGEgPSBwb2xpY2llcy0+ZGF0YSgpOworICAgICAgICBpZiAocG9saWNpZXMtPndlYnNpdGVE
YXRhU3RvcmUoKSkKKyAgICAgICAgICAgIGNoYW5nZVdlYnNpdGVEYXRhU3RvcmUocG9saWNpZXMt
PndlYnNpdGVEYXRhU3RvcmUoKS0+d2Vic2l0ZURhdGFTdG9yZSgpKTsKKyAgICB9CisgICAgCisg
ICAgaWYgKHBvbGljeUFjdGlvbiA9PSBQb2xpY3lBY3Rpb246OlVzZSAmJiBmcmFtZS5pc01haW5G
cmFtZSgpKSB7CisgICAgICAgIFN0cmluZyByZWFzb247CisgICAgICAgIGF1dG8gcHJvcG9zZWRQ
cm9jZXNzID0gcHJvY2VzcygpLnByb2Nlc3NQb29sKCkucHJvY2Vzc0Zvck5hdmlnYXRpb24oKnRo
aXMsICpuYXZpZ2F0aW9uLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBwb2xpY3lBY3Rp
b24sIHJlYXNvbik7CisgICAgICAgIEFTU0VSVCghcmVhc29uLmlzTnVsbCgpKTsKKyAgICAgICAg
CisgICAgICAgIGlmIChwcm9wb3NlZFByb2Nlc3MucHRyKCkgIT0gJnByb2Nlc3MoKSkgeworICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChQcm9jZXNzU3dhcHBpbmcsICIlcCAtIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiwgc3dhcHBpbmcgcHJv
Y2VzcyAlaSB3aXRoIHByb2Nlc3MgJWkgZm9yIG5hdmlnYXRpb24sIHJlYXNvbjogJXtwdWJsaWN9
cyIsIHRoaXMsIHByb2Nlc3NJZGVudGlmaWVyKCksIHByb3Bvc2VkUHJvY2Vzcy0+cHJvY2Vzc0lk
ZW50aWZpZXIoKSwgcmVhc29uLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgTE9HKFByb2Nl
c3NTd2FwcGluZywgIihQcm9jZXNzU3dhcHBpbmcpIFN3aXRjaGluZyBmcm9tIHByb2Nlc3MgJWkg
dG8gbmV3IHByb2Nlc3MgKCVpKSBmb3IgbmF2aWdhdGlvbiAlIiBQUkl1NjQgIiAnJXMnIiwgcHJv
Y2Vzc0lkZW50aWZpZXIoKSwgcHJvcG9zZWRQcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBu
YXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi0+bG9nZ2luZ1N0cmluZygpKTsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgbmF2aWdhdGlvbiA9IG1h
a2VSZWYoKm5hdmlnYXRpb24pLCBwcm9wb3NlZFByb2Nlc3MgPSBXVEZNb3ZlKHByb3Bvc2VkUHJv
Y2VzcyldKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgY29udGludWVOYXZpZ2F0aW9uSW5O
ZXdQcm9jZXNzKG5hdmlnYXRpb24uZ2V0KCksIFdURk1vdmUocHJvcG9zZWRQcm9jZXNzKSk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBSRUxFQVNFX0xPR19J
Rl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgIiVwIC0gV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uLCBrZWVwIHVzaW5nIHByb2Nlc3MgJWkgZm9yIG5hdmlnYXRp
b24sIHJlYXNvbjogJXtwdWJsaWN9cyIsIHRoaXMsIHByb2Nlc3NJZGVudGlmaWVyKCksIHJlYXNv
bi51dGY4KCkuZGF0YSgpKTsKKyAgICB9CiAgICAgCisgICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lv
bihwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb24uZ2V0KCksIFdURk1vdmUoZGF0YSksIFdURk1vdmUo
c2VuZGVyKSk7CisKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNp
b24oUG9saWN5QWN0aW9uIGFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBzdGQ6
Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgd2Vic2l0ZVBvbGljaWVzLCBSZWY8UG9s
aWN5RGVjaXNpb25TZW5kZXI+JiYgc2VuZGVyKQogewogICAgIGlmICghaXNWYWxpZCgpKSB7CkBA
IC00MDMzLDMzICs0MDYxLDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5h
dmlnYQogICAgIFVOVVNFRF9QQVJBTShuZXdOYXZpZ2F0aW9uSUQpOwogI2VuZGlmCiAKLSAgICBh
dXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGZyYW1lID0gbWFrZVJlZigqZnJh
bWUpLCBzZW5kZXIgPSBzZW5kZXIuY29weVJlZigpLCBuYXZpZ2F0aW9uXSAoV2ViQ29yZTo6UG9s
aWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgQVBJOjpXZWJzaXRlUG9saWNpZXMqIHBvbGljaWVzLCBQ
cm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQs
IFZlY3RvcjxTYWZlQnJvd3NpbmdSZXN1bHQ+JiYpIG11dGFibGUgeworICAgIGF1dG8gbGlzdGVu
ZXIgPSBtYWtlUmVmKGZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZnJhbWUgPSBtYWtlUmVmKCpmcmFtZSksIHNlbmRl
ciA9IFdURk1vdmUoc2VuZGVyKSwgbmF2aWdhdGlvbl0gKFdlYkNvcmU6OlBvbGljeUFjdGlvbiBw
b2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiBwb2xpY2llcywgUHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBWZWN0b3I8UmVm
PFNhZmVCcm93c2luZ1Jlc3VsdD4+JiYpIG11dGFibGUgewogICAgICAgICAvLyBGSVhNRTogZG8g
c29tZXRoaW5nIHdpdGggdGhlIFNhZmVCcm93c2luZ1Jlc3VsdHMuCi0KLSAgICAgICAgc3RkOjpv
cHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiBkYXRhOwotICAgICAgICBpZiAocG9saWNpZXMp
IHsKLSAgICAgICAgICAgIGRhdGEgPSBwb2xpY2llcy0+ZGF0YSgpOwotICAgICAgICAgICAgaWYg
KHBvbGljaWVzLT53ZWJzaXRlRGF0YVN0b3JlKCkpCi0gICAgICAgICAgICAgICAgY2hhbmdlV2Vi
c2l0ZURhdGFTdG9yZShwb2xpY2llcy0+d2Vic2l0ZURhdGFTdG9yZSgpLT53ZWJzaXRlRGF0YVN0
b3JlKCkpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHBvbGljeUFjdGlvbiA9PSBQb2xpY3lB
Y3Rpb246OlVzZSAmJiBmcmFtZS0+aXNNYWluRnJhbWUoKSkgewotICAgICAgICAgICAgU3RyaW5n
IHJlYXNvbjsKLSAgICAgICAgICAgIGF1dG8gcHJvcG9zZWRQcm9jZXNzID0gcHJvY2VzcygpLnBy
b2Nlc3NQb29sKCkucHJvY2Vzc0Zvck5hdmlnYXRpb24oKnRoaXMsICpuYXZpZ2F0aW9uLCBwcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBwb2xpY3lBY3Rpb24sIHJlYXNvbik7Ci0gICAgICAg
ICAgICBBU1NFUlQoIXJlYXNvbi5pc051bGwoKSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
IGlmIChwcm9wb3NlZFByb2Nlc3MucHRyKCkgIT0gJnByb2Nlc3MoKSkgewotICAgICAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiJXAgLSBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24sIHN3YXBwaW5nIHByb2Nlc3Mg
JWkgd2l0aCBwcm9jZXNzICVpIGZvciBuYXZpZ2F0aW9uLCByZWFzb246ICV7cHVibGljfXMiLCB0
aGlzLCBwcm9jZXNzSWRlbnRpZmllcigpLCBwcm9wb3NlZFByb2Nlc3MtPnByb2Nlc3NJZGVudGlm
aWVyKCksIHJlYXNvbi51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgICAgICAgICBMT0coUHJvY2Vz
c1N3YXBwaW5nLCAiKFByb2Nlc3NTd2FwcGluZykgU3dpdGNoaW5nIGZyb20gcHJvY2VzcyAlaSB0
byBuZXcgcHJvY2VzcyAoJWkpIGZvciBuYXZpZ2F0aW9uICUiIFBSSXU2NCAiICclcyciLCBwcm9j
ZXNzSWRlbnRpZmllcigpLCBwcm9wb3NlZFByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG5h
dmlnYXRpb24tPm5hdmlnYXRpb25JRCgpLCBuYXZpZ2F0aW9uLT5sb2dnaW5nU3RyaW5nKCkpOwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRj
aChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIG5hdmlnYXRp
b24gPSBtYWtlUmVmKCpuYXZpZ2F0aW9uKSwgcHJvcG9zZWRQcm9jZXNzID0gV1RGTW92ZShwcm9w
b3NlZFByb2Nlc3MpXSgpIG11dGFibGUgewotICAgICAgICAgICAgICAgICAgICBjb250aW51ZU5h
dmlnYXRpb25Jbk5ld1Byb2Nlc3MobmF2aWdhdGlvbi5nZXQoKSwgV1RGTW92ZShwcm9wb3NlZFBy
b2Nlc3MpKTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiJXAgLSBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24sIGtlZXAgdXNpbmcg
cHJvY2VzcyAlaSBmb3IgbmF2aWdhdGlvbiwgcmVhc29uOiAle3B1YmxpY31zIiwgdGhpcywgcHJv
Y2Vzc0lkZW50aWZpZXIoKSwgcmVhc29uLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb24uZ2V0
KCksIFdURk1vdmUoZGF0YSksIFdURk1vdmUoc2VuZGVyKSk7CisgICAgICAgIHJlY2VpdmVkTmF2
aWdhdGlvblBvbGljeURlY2lzaW9uKHBvbGljeUFjdGlvbiwgbmF2aWdhdGlvbiwgcHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudCwgZnJhbWUsIHBvbGljaWVzLCBXVEZNb3ZlKHNlbmRlcikpOwog
ICAgIH0sIHNob3VsZFNraXBTYWZlQnJvd3NpbmdDaGVjayA9PSBTaG91bGRTa2lwU2FmZUJyb3dz
aW5nQ2hlY2s6OlllcyA/IFNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdDo6Tm8gOiBTaG91
bGRFeHBlY3RTYWZlQnJvd3NpbmdSZXN1bHQ6OlllcykpOwogICAgIGlmIChzaG91bGRTa2lwU2Fm
ZUJyb3dzaW5nQ2hlY2sgPT0gU2hvdWxkU2tpcFNhZmVCcm93c2luZ0NoZWNrOjpObykKICAgICAg
ICAgYmVnaW5TYWZlQnJvd3NpbmdDaGVjayhyZXF1ZXN0LnVybCgpLCBsaXN0ZW5lcik7CkBAIC00
MTA4LDcgKzQxMTIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2lu
CiAgICAgTUVTU0FHRV9DSEVDSyhmcmFtZSk7CiAgICAgTUVTU0FHRV9DSEVDS19VUkwocmVxdWVz
dC51cmwoKSk7CiAKLSAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFtZS0+c2V0VXBQb2xp
Y3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGxp
c3RlbmVySUQsIGZyYW1lSURdIChXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBB
UEk6OldlYnNpdGVQb2xpY2llcyosIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgVmVjdG9yPFNhZmVCcm93c2luZ1Jlc3VsdD4mJiBzYWZl
QnJvd3NpbmdSZXN1bHRzKSBtdXRhYmxlIHsKKyAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihm
cmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIGxpc3RlbmVySUQsIGZyYW1lSURdIChXZWJDb3JlOjpQb2xpY3lBY3Rpb24g
cG9saWN5QWN0aW9uLCBBUEk6OldlYnNpdGVQb2xpY2llcyosIFByb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgVmVjdG9yPFJlZjxTYWZlQnJv
d3NpbmdSZXN1bHQ+PiYmIHNhZmVCcm93c2luZ1Jlc3VsdHMpIG11dGFibGUgewogICAgICAgICAv
LyBGSVhNRTogQXNzZXJ0IHRoZSBBUEk6OldlYnNpdGVQb2xpY2llcyogaXMgbnVsbHB0ciBoZXJl
IG9uY2UgY2xpZW50cyBvZiBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2VXaXRoUG9saWNpZXMgZ28g
YXdheS4KICAgICAgICAgUkVMRUFTRV9BU1NFUlQocHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVu
dCA9PSBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OjpObyk7CiAgICAgICAgIEFTU0VSVF9V
TlVTRUQoc2FmZUJyb3dzaW5nUmVzdWx0cywgc2FmZUJyb3dzaW5nUmVzdWx0cy5pc0VtcHR5KCkp
OwpAQCAtNDE0NCw3ICs0MTQ4LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
clJlc3BvbgogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKHJlc3BvbnNlLnVybCgpKTsKIAogICAgIFJl
ZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uSUQgPyAmbV9uYXZp
Z2F0aW9uU3RhdGUtPm5hdmlnYXRpb24obmF2aWdhdGlvbklEKSA6IG51bGxwdHI7Ci0gICAgYXV0
byBsaXN0ZW5lciA9IG1ha2VSZWYoZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBmcmFtZUlELCBsaXN0ZW5lcklELCBu
YXZpZ2F0aW9uID0gV1RGTW92ZShuYXZpZ2F0aW9uKV0gKFdlYkNvcmU6OlBvbGljeUFjdGlvbiBw
b2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRC
eUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBWZWN0b3I8U2FmZUJyb3dzaW5n
UmVzdWx0PiYmIHNhZmVCcm93c2luZ1Jlc3VsdHMpIG11dGFibGUgeworICAgIGF1dG8gbGlzdGVu
ZXIgPSBtYWtlUmVmKGZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZnJhbWVJRCwgbGlzdGVuZXJJRCwgbmF2aWdhdGlv
biA9IFdURk1vdmUobmF2aWdhdGlvbildIChXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0
aW9uLCBBUEk6OldlYnNpdGVQb2xpY2llcyosIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQg
cHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgVmVjdG9yPFJlZjxTYWZlQnJvd3NpbmdSZXN1
bHQ+PiYmIHNhZmVCcm93c2luZ1Jlc3VsdHMpIG11dGFibGUgewogICAgICAgICAvLyBGSVhNRTog
QXNzZXJ0IHRoZSBBUEk6OldlYnNpdGVQb2xpY2llcyogaXMgbnVsbHB0ciBoZXJlIG9uY2UgY2xp
ZW50cyBvZiBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2VXaXRoUG9saWNpZXMgZ28gYXdheS4KICAg
ICAgICAgUkVMRUFTRV9BU1NFUlQocHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCA9PSBQcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50OjpObyk7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQoc2Fm
ZUJyb3dzaW5nUmVzdWx0cywgc2FmZUJyb3dzaW5nUmVzdWx0cy5pc0VtcHR5KCkpOwpJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDIzNjAxNykKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBA
IC05MTMsNiArOTEzLDcgQEAgcHVibGljOgogCiAgICAgY2xhc3MgUG9saWN5RGVjaXNpb25TZW5k
ZXI7CiAgICAgdm9pZCByZWNlaXZlZFBvbGljeURlY2lzaW9uKFdlYkNvcmU6OlBvbGljeUFjdGlv
biwgQVBJOjpOYXZpZ2F0aW9uKiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYm
LCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYpOworICAgIHZvaWQgcmVjZWl2ZWROYXZpZ2F0
aW9uUG9saWN5RGVjaXNpb24oV2ViQ29yZTo6UG9saWN5QWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24q
LCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBXZWJGcmFtZVByb3h5Jiwgc3RkOjpvcHRp
b25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYp
CiAKICAgICB2b2lkIGJhY2tGb3J3YXJkUmVtb3ZlZEl0ZW0oY29uc3QgV2ViQ29yZTo6QmFja0Zv
cndhcmRJdGVtSWRlbnRpZmllciYpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQkocmV2aXNpb24gMjM2MDE3KQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0JKHdvcmtp
bmcgY29weSkKQEAgLTg1LDEwICs4NSwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6YmVnaW5TYWZl
QnJvd3NpbmdDaGVjCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIE5TQXJyYXk8U1NCU2Vy
dmljZUxvb2t1cFJlc3VsdCAqPiAqcmVzdWx0cyA9IFtyZXN1bHQgc2VydmljZUxvb2t1cFJlc3Vs
dHNdOwotICAgICAgICAgICAgVmVjdG9yPFNhZmVCcm93c2luZ1Jlc3VsdD4gcmVzdWx0c1ZlY3Rv
cjsKKyAgICAgICAgICAgIFZlY3RvcjxSZWY8U2FmZUJyb3dzaW5nUmVzdWx0Pj4gcmVzdWx0c1Zl
Y3RvcjsKICAgICAgICAgICAgIHJlc3VsdHNWZWN0b3IucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShb
cmVzdWx0cyBjb3VudF0pOwogICAgICAgICAgICAgZm9yIChTU0JTZXJ2aWNlTG9va3VwUmVzdWx0
ICpyZXN1bHQgaW4gcmVzdWx0cykKLSAgICAgICAgICAgICAgICByZXN1bHRzVmVjdG9yLnVuY2hl
Y2tlZEFwcGVuZCh7IFVSTCh1cmwpLCByZXN1bHQgfSk7CisgICAgICAgICAgICAgICAgcmVzdWx0
c1ZlY3Rvci51bmNoZWNrZWRBcHBlbmQoU2FmZUJyb3dzaW5nUmVzdWx0OjpjcmVhdGUoVVJMKHVy
bCksIHJlc3VsdCB9KSk7CiAgICAgICAgICAgICBsaXN0ZW5lci0+ZGlkUmVjZWl2ZVNhZmVCcm93
c2luZ1Jlc3VsdHMoV1RGTW92ZShyZXN1bHRzVmVjdG9yKSk7CiAgICAgICAgIH0pOwogICAgIH0p
LmdldCgpXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349807</attachid>
            <date>2018-09-14 14:29:37 -0700</date>
            <delta_ts>2018-09-17 09:32:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189631-20180914142936.patch</filename>
            <type>text/plain</type>
            <size>17994</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzYwMTgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE4LTA5LTE0ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVmYWN0b3Jpbmcg
cmVsYXRlZCB0byBTYWZlIEJyb3dzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODk2MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNYWtlIFNhZmVCcm93c2luZ1Jlc3VsdCBSZWZDb3VudGVkLgorICAg
ICAgICBNb3ZlIGxvZ2ljIGZyb20gYW4gdW5uYW1lZCBsYW1iZGEgdG8gV2ViUGFnZVByb3h5Ojpy
ZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpiZWdpblNhZmVCcm93c2luZ0NoZWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojpjb250ZW50RmlsdGVyRGlkQmxvY2tMb2FkRm9yRnJhbWUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmFkZFBsYXRmb3JtTG9hZFBhcmFtZXRlcnMpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0ZVNhbmRib3hFeHRlbnNpb25z
SWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0YXJ0
RHJhZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0UHJvbWlz
ZWREYXRhRm9ySW1hZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnNldERyYWdDYXJldFJlY3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OnBsYXRmb3JtUmVnaXN0ZXJBdHRhY2htZW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpwbGF0Zm9ybUNsb25lQXR0YWNobWVudCk6IERlbGV0ZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL1NhZmVCcm93c2luZ1Jlc3VsdC5oOgorICAgICAgICAoV2ViS2l0OjpT
YWZlQnJvd3NpbmdSZXN1bHQ6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZyYW1l
UG9saWN5TGlzdGVuZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUG9saWN5
TGlzdGVuZXJQcm94eTo6ZGlkUmVjZWl2ZVNhZmVCcm93c2luZ1Jlc3VsdHMpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViRnJhbWVQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUHJveHk6
OnNldFVwUG9saWN5TGlzdGVuZXJQcm94eSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZyYW1l
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TmV3V2luZG93QWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JSZXNwb25zZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
CiAyMDE4LTA5LTExICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIE1ha2UgR3JhcGhpY3NMYXllcnMgcmVmLWNvdW50ZWQsIHNvIHRoZWlyIHRyZWUgY2Fu
IHBlcnNpc3Qgd2hlbiBkaXNjb25uZWN0ZWQgZnJvbSBSZW5kZXJMYXllckJhY2tpbmdzCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TYWZlQnJvd3NpbmdSZXN1bHQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TYWZlQnJvd3NpbmdSZXN1bHQuaAkocmV2aXNp
b24gMjM2MDE3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2FmZUJyb3dzaW5nUmVzdWx0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE5ICsyNiwyMSBAQAogI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlIDxXZWJDb3JlL1VSTC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIE9CSkNfQ0xBU1MgU1NCU2VydmljZUxvb2t1
cFJlc3VsdDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFNhZmVCcm93c2luZ1Jlc3Vs
dCB7CitjbGFzcyBTYWZlQnJvd3NpbmdSZXN1bHQgOiBwdWJsaWMgUmVmQ291bnRlZDxTYWZlQnJv
d3NpbmdSZXN1bHQ+IHsKIHB1YmxpYzoKICNpZiBIQVZFKFNBRkVfQlJPV1NJTkcpCi0gICAgU2Fm
ZUJyb3dzaW5nUmVzdWx0KFdlYkNvcmU6OlVSTCYmLCBTU0JTZXJ2aWNlTG9va3VwUmVzdWx0ICop
OworICAgIHN0YXRpYyBSZWY8U2FmZUJyb3dzaW5nUmVzdWx0PiBjcmVhdGUoV2ViQ29yZTo6VVJM
JiYgdXJsLCBTU0JTZXJ2aWNlTG9va3VwUmVzdWx0ICpyZXN1bHQpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTYWZlQnJvd3NpbmdSZXN1bHQoV1RGTW92ZSh1cmwpLCByZXN1
bHQpKTsKKyAgICB9CiAjZW5kaWYKLSAgICBTYWZlQnJvd3NpbmdSZXN1bHQoKSA9IGRlZmF1bHQ7
Ci0KICAgICBjb25zdCBXZWJDb3JlOjpVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9
CiAgICAgY29uc3QgU3RyaW5nJiBwcm92aWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJvdmlkZXI7
IH0KICAgICBib29sIGlzUGhpc2hpbmcoKSBjb25zdCB7IHJldHVybiBtX2lzUGhpc2hpbmc7IH0K
QEAgLTQ3LDYgKzQ5LDkgQEAgcHVibGljOgogICAgIGJvb2wgaXNLbm93blRvQmVVbnNhZmUoKSBj
b25zdCB7IHJldHVybiBtX2lzS25vd25Ub0JlVW5zYWZlOyB9CiAKIHByaXZhdGU6CisjaWYgSEFW
RShTQUZFX0JST1dTSU5HKQorICAgIFNhZmVCcm93c2luZ1Jlc3VsdChXZWJDb3JlOjpVUkwmJiwg
U1NCU2VydmljZUxvb2t1cFJlc3VsdCAqKTsKKyNlbmRpZgogICAgIFdlYkNvcmU6OlVSTCBtX3Vy
bDsKICAgICBTdHJpbmcgbV9wcm92aWRlcjsKICAgICBib29sIG1faXNQaGlzaGluZyB7IGZhbHNl
IH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVBvbGljeUxpc3RlbmVy
UHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1l
UG9saWN5TGlzdGVuZXJQcm94eS5jcHAJKHJldmlzaW9uIDIzNjAxNykKKysrIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ1LDcgKzQ1LDcgQEAgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5OjpXZWJGcmFt
ZVBvbAogCiBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk6On5XZWJGcmFtZVBvbGljeUxpc3Rl
bmVyUHJveHkoKSA9IGRlZmF1bHQ7CiAKLXZvaWQgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5
OjpkaWRSZWNlaXZlU2FmZUJyb3dzaW5nUmVzdWx0cyhWZWN0b3I8U2FmZUJyb3dzaW5nUmVzdWx0
PiYmIHNhZmVCcm93c2luZ1Jlc3VsdHMpCit2b2lkIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94
eTo6ZGlkUmVjZWl2ZVNhZmVCcm93c2luZ1Jlc3VsdHMoVmVjdG9yPFJlZjxTYWZlQnJvd3NpbmdS
ZXN1bHQ+PiYmIHNhZmVCcm93c2luZ1Jlc3VsdHMpCiB7CiAgICAgQVNTRVJUKCFtX3NhZmVCcm93
c2luZ1Jlc3VsdHMpOwogICAgIGlmIChtX3BvbGljeVJlc3VsdCkgewpJbmRleDogU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmgJ
KHJldmlzaW9uIDIzNjAxNykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUG9s
aWN5TGlzdGVuZXJQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw3IEBAIGVudW0g
Y2xhc3MgU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWwKIGNsYXNzIFdlYkZyYW1lUG9saWN5
TGlzdGVuZXJQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6
OkZyYW1lUG9saWN5TGlzdGVuZXI+IHsKIHB1YmxpYzoKIAotICAgIHVzaW5nIFJlcGx5ID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBv
bGljaWVzKiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgVmVjdG9yPFNhZmVCcm93c2lu
Z1Jlc3VsdD4mJik+OworICAgIHVzaW5nIFJlcGx5ID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCwgVmVjdG9yPFJlZjxTYWZlQnJvd3NpbmdSZXN1bHQ+PiYmKT47CiAg
ICAgc3RhdGljIFJlZjxXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk+IGNyZWF0ZShSZXBseSYm
IHJlcGx5LCBTaG91bGRFeHBlY3RTYWZlQnJvd3NpbmdSZXN1bHQgZXhwZWN0KQogICAgIHsKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5KFdU
Rk1vdmUocmVwbHkpLCBleHBlY3QpKTsKQEAgLTU4LDEzICs1OCwxMyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkb3dubG9hZCgpOwogICAgIHZvaWQgaWdub3JlKCk7CiAgICAgCi0gICAgdm9pZCBkaWRS
ZWNlaXZlU2FmZUJyb3dzaW5nUmVzdWx0cyhWZWN0b3I8U2FmZUJyb3dzaW5nUmVzdWx0PiYmKTsK
KyAgICB2b2lkIGRpZFJlY2VpdmVTYWZlQnJvd3NpbmdSZXN1bHRzKFZlY3RvcjxSZWY8U2FmZUJy
b3dzaW5nUmVzdWx0Pj4mJik7CiAKIHByaXZhdGU6CiAgICAgV2ViRnJhbWVQb2xpY3lMaXN0ZW5l
clByb3h5KFJlcGx5JiYsIFNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdCk7CiAKICAgICBz
dGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+LCBQcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50Pj4gbV9wb2xpY3lSZXN1bHQ7Ci0gICAgc3RkOjpvcHRp
b25hbDxWZWN0b3I8U2FmZUJyb3dzaW5nUmVzdWx0Pj4gbV9zYWZlQnJvd3NpbmdSZXN1bHRzOwor
ICAgIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZjxTYWZlQnJvd3NpbmdSZXN1bHQ+Pj4gbV9zYWZl
QnJvd3NpbmdSZXN1bHRzOwogICAgIFJlcGx5IG1fcmVwbHk7CiB9OwogCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAkocmV2aXNpb24gMjM2MDE3KQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE3NywxMSArMTc3LDExIEBAIHZvaWQgV2ViRnJhbWVQcm94eTo6ZGlkQ2hhbmdlVGl0bGUo
Y29uc3QKICAgICBtX3RpdGxlID0gdGl0bGU7CiB9CiAKLVdlYkZyYW1lUG9saWN5TGlzdGVuZXJQ
cm94eSYgV2ViRnJhbWVQcm94eTo6c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6UG9saWN5QWN0aW9uLCBBUEk6OldlYnNpdGVQb2xpY2llcyos
IFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFZlY3RvcjxTYWZlQnJvd3NpbmdSZXN1bHQ+
JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyLCBTaG91bGRFeHBlY3RTYWZlQnJvd3NpbmdSZXN1bHQg
ZXhwZWN0KQorV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5JiBXZWJGcmFtZVByb3h5OjpzZXRV
cFBvbGljeUxpc3RlbmVyUHJveHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpQb2xp
Y3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNs
aWVudCwgVmVjdG9yPFJlZjxTYWZlQnJvd3NpbmdSZXN1bHQ+PiYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlciwgU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0IGV4cGVjdCkKIHsKICAgICBpZiAo
bV9hY3RpdmVMaXN0ZW5lcikKICAgICAgICAgbV9hY3RpdmVMaXN0ZW5lci0+aWdub3JlKCk7Ci0g
ICAgbV9hY3RpdmVMaXN0ZW5lciA9IFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eTo6Y3JlYXRl
KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChXZWJDb3JlOjpQb2xpY3lBY3Rpb24gYWN0
aW9uLCBBUEk6OldlYnNpdGVQb2xpY2llcyogcG9saWNpZXMsIFByb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgVmVjdG9yPFNhZmVCcm93c2lu
Z1Jlc3VsdD4mJiBzYWZlQnJvd3NpbmdSZXN1bHRzKSBtdXRhYmxlIHsKKyAgICBtX2FjdGl2ZUxp
c3RlbmVyID0gV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5OjpjcmVhdGUoW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0gKFdlYkNvcmU6OlBvbGljeUFjdGlvbiBhY3Rpb24sIEFQSTo6V2Vi
c2l0ZVBvbGljaWVzKiBwb2xpY2llcywgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBWZWN0b3I8UmVmPFNhZmVCcm93c2luZ1Jlc3VsdD4+
JiYgc2FmZUJyb3dzaW5nUmVzdWx0cykgbXV0YWJsZSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKGFjdGlvbiwgcG9saWNpZXMsIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFdURk1v
dmUoc2FmZUJyb3dzaW5nUmVzdWx0cykpOwogICAgICAgICBtX2FjdGl2ZUxpc3RlbmVyID0gbnVs
bHB0cjsKICAgICB9LCBleHBlY3QpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
RnJhbWVQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZy
YW1lUHJveHkuaAkocmV2aXNpb24gMjM2MDE3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRnJhbWVQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsNyArMTE3LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbihjb25zdCBXZWJDb3JlOjpVUkwm
KTsgLy8gZWcuIGFuY2hvciBuYXZpZ2F0aW9uLCBzZXNzaW9uIHN0YXRlIGNoYW5nZS4KICAgICB2
b2lkIGRpZENoYW5nZVRpdGxlKGNvbnN0IFN0cmluZyYpOwogCi0gICAgV2ViRnJhbWVQb2xpY3lM
aXN0ZW5lclByb3h5JiBzZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgVmVjdG9yPFNhZmVCcm93c2luZ1Jlc3VsdD4mJik+JiYs
IFNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdCk7CisgICAgV2ViRnJhbWVQb2xpY3lMaXN0
ZW5lclByb3h5JiBzZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudCwgVmVjdG9yPFJlZjxTYWZlQnJvd3NpbmdSZXN1bHQ+PiYmKT4m
JiwgU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0KTsKIAogI2lmIEVOQUJMRShDT05URU5U
X0ZJTFRFUklORykKICAgICB2b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWQoV2ViQ29yZTo6
Q29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIGNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcikg
eyBtX2NvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlciA9IFdURk1vdmUoY29udGVudEZpbHRlclVu
YmxvY2tIYW5kbGVyKTsgfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCShyZXZpc2lvbiAyMzYwMTcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDMxLDcgKzI0MzEsMzYgQEAgcHJpdmF0
ZToKIAogICAgIFNlbmRGdW5jdGlvbiBtX3NlbmRGdW5jdGlvbjsKIH07CisKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpyZWNlaXZlZE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gcG9s
aWN5QWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRpb24sIFByb2Nlc3NTd2FwUmVxdWVz
dGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgV2ViRnJhbWVQcm94eSYg
ZnJhbWUsIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiBwb2xpY2llcywgUmVmPFBvbGljeURlY2lzaW9u
U2VuZGVyPiYmIHNlbmRlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0Rh
dGE+IGRhdGE7CisgICAgaWYgKHBvbGljaWVzKSB7CisgICAgICAgIGRhdGEgPSBwb2xpY2llcy0+
ZGF0YSgpOworICAgICAgICBpZiAocG9saWNpZXMtPndlYnNpdGVEYXRhU3RvcmUoKSkKKyAgICAg
ICAgICAgIGNoYW5nZVdlYnNpdGVEYXRhU3RvcmUocG9saWNpZXMtPndlYnNpdGVEYXRhU3RvcmUo
KS0+d2Vic2l0ZURhdGFTdG9yZSgpKTsKKyAgICB9CisgICAgCisgICAgaWYgKHBvbGljeUFjdGlv
biA9PSBQb2xpY3lBY3Rpb246OlVzZSAmJiBmcmFtZS5pc01haW5GcmFtZSgpKSB7CisgICAgICAg
IFN0cmluZyByZWFzb247CisgICAgICAgIGF1dG8gcHJvcG9zZWRQcm9jZXNzID0gcHJvY2Vzcygp
LnByb2Nlc3NQb29sKCkucHJvY2Vzc0Zvck5hdmlnYXRpb24oKnRoaXMsIG5hdmlnYXRpb24sIHBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIHBvbGljeUFjdGlvbiwgcmVhc29uKTsKKyAgICAg
ICAgQVNTRVJUKCFyZWFzb24uaXNOdWxsKCkpOworICAgICAgICAKKyAgICAgICAgaWYgKHByb3Bv
c2VkUHJvY2Vzcy5wdHIoKSAhPSAmcHJvY2VzcygpKSB7CisgICAgICAgICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgIiVwIC0gV2ViUGFnZVByb3h5OjpkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uLCBzd2FwcGluZyBwcm9jZXNzICVpIHdpdGggcHJvY2Vz
cyAlaSBmb3IgbmF2aWdhdGlvbiwgcmVhc29uOiAle3B1YmxpY31zIiwgdGhpcywgcHJvY2Vzc0lk
ZW50aWZpZXIoKSwgcHJvcG9zZWRQcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCByZWFzb24u
dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBMT0coUHJvY2Vzc1N3YXBwaW5nLCAiKFByb2Nl
c3NTd2FwcGluZykgU3dpdGNoaW5nIGZyb20gcHJvY2VzcyAlaSB0byBuZXcgcHJvY2VzcyAoJWkp
IGZvciBuYXZpZ2F0aW9uICUiIFBSSXU2NCAiICclcyciLCBwcm9jZXNzSWRlbnRpZmllcigpLCBw
cm9wb3NlZFByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG5hdmlnYXRpb24ubmF2aWdhdGlv
bklEKCksIG5hdmlnYXRpb24ubG9nZ2luZ1N0cmluZygpKTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIG5hdmlnYXRpb24gPSBtYWtlUmVmKG5hdmlnYXRpb24pLCBwcm9wb3NlZFBy
b2Nlc3MgPSBXVEZNb3ZlKHByb3Bvc2VkUHJvY2VzcyldKCkgbXV0YWJsZSB7CisgICAgICAgICAg
ICAgICAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKG5hdmlnYXRpb24sIFdURk1vdmUo
cHJvcG9zZWRQcm9jZXNzKSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgIiVwIC0gV2Vi
UGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uLCBrZWVwIHVzaW5nIHBy
b2Nlc3MgJWkgZm9yIG5hdmlnYXRpb24sIHJlYXNvbjogJXtwdWJsaWN9cyIsIHRoaXMsIHByb2Nl
c3NJZGVudGlmaWVyKCksIHJlYXNvbi51dGY4KCkuZGF0YSgpKTsKKyAgICB9CiAgICAgCisgICAg
cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihwb2xpY3lBY3Rpb24sICZuYXZpZ2F0aW9uLCBXVEZNb3Zl
KGRhdGEpLCBXVEZNb3ZlKHNlbmRlcikpOworCit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpyZWNl
aXZlZFBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBhY3Rpb24sIEFQSTo6TmF2aWdhdGlvbiog
bmF2aWdhdGlvbiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQ
b2xpY2llcywgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVyPiYmIHNlbmRlcikKIHsKICAgICBpZiAo
IWlzVmFsaWQoKSkgewpAQCAtNDAzMywzMyArNDA2Miw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2EKICAgICBVTlVTRURfUEFSQU0obmV3TmF2aWdhdGlvbklEKTsK
ICNlbmRpZgogCi0gICAgYXV0byBsaXN0ZW5lciA9IG1ha2VSZWYoZnJhbWUtPnNldFVwUG9saWN5
TGlzdGVuZXJQcm94eShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBmcmFt
ZSA9IG1ha2VSZWYoKmZyYW1lKSwgc2VuZGVyID0gc2VuZGVyLmNvcHlSZWYoKSwgbmF2aWdhdGlv
bl0gKFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGlj
aWVzKiBwb2xpY2llcywgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJl
cXVlc3RlZEJ5Q2xpZW50LCBWZWN0b3I8U2FmZUJyb3dzaW5nUmVzdWx0PiYmKSBtdXRhYmxlIHsK
KyAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclBy
b3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGZyYW1lID0gbWFrZVJl
ZigqZnJhbWUpLCBzZW5kZXIgPSBXVEZNb3ZlKHNlbmRlciksIG5hdmlnYXRpb24gPSBuYXZpZ2F0
aW9uLnJlbGVhc2VOb25OdWxsKCldIChXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9u
LCBBUEk6OldlYnNpdGVQb2xpY2llcyogcG9saWNpZXMsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlD
bGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgVmVjdG9yPFJlZjxTYWZlQnJvd3Np
bmdSZXN1bHQ+PiYmKSBtdXRhYmxlIHsKICAgICAgICAgLy8gRklYTUU6IGRvIHNvbWV0aGluZyB3
aXRoIHRoZSBTYWZlQnJvd3NpbmdSZXN1bHRzLgotCi0gICAgICAgIHN0ZDo6b3B0aW9uYWw8V2Vi
c2l0ZVBvbGljaWVzRGF0YT4gZGF0YTsKLSAgICAgICAgaWYgKHBvbGljaWVzKSB7Ci0gICAgICAg
ICAgICBkYXRhID0gcG9saWNpZXMtPmRhdGEoKTsKLSAgICAgICAgICAgIGlmIChwb2xpY2llcy0+
d2Vic2l0ZURhdGFTdG9yZSgpKQotICAgICAgICAgICAgICAgIGNoYW5nZVdlYnNpdGVEYXRhU3Rv
cmUocG9saWNpZXMtPndlYnNpdGVEYXRhU3RvcmUoKS0+d2Vic2l0ZURhdGFTdG9yZSgpKTsKLSAg
ICAgICAgfQotCi0gICAgICAgIGlmIChwb2xpY3lBY3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2Ug
JiYgZnJhbWUtPmlzTWFpbkZyYW1lKCkpIHsKLSAgICAgICAgICAgIFN0cmluZyByZWFzb247Ci0g
ICAgICAgICAgICBhdXRvIHByb3Bvc2VkUHJvY2VzcyA9IHByb2Nlc3MoKS5wcm9jZXNzUG9vbCgp
LnByb2Nlc3NGb3JOYXZpZ2F0aW9uKCp0aGlzLCAqbmF2aWdhdGlvbiwgcHJvY2Vzc1N3YXBSZXF1
ZXN0ZWRCeUNsaWVudCwgcG9saWN5QWN0aW9uLCByZWFzb24pOwotICAgICAgICAgICAgQVNTRVJU
KCFyZWFzb24uaXNOdWxsKCkpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAocHJvcG9z
ZWRQcm9jZXNzLnB0cigpICE9ICZwcm9jZXNzKCkpIHsKLSAgICAgICAgICAgICAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgIiVwIC0gV2ViUGFnZVByb3h5OjpkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uLCBzd2FwcGluZyBwcm9jZXNzICVpIHdpdGggcHJv
Y2VzcyAlaSBmb3IgbmF2aWdhdGlvbiwgcmVhc29uOiAle3B1YmxpY31zIiwgdGhpcywgcHJvY2Vz
c0lkZW50aWZpZXIoKSwgcHJvcG9zZWRQcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCByZWFz
b24udXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICAgICAgTE9HKFByb2Nlc3NTd2FwcGluZywg
IihQcm9jZXNzU3dhcHBpbmcpIFN3aXRjaGluZyBmcm9tIHByb2Nlc3MgJWkgdG8gbmV3IHByb2Nl
c3MgKCVpKSBmb3IgbmF2aWdhdGlvbiAlIiBQUkl1NjQgIiAnJXMnIiwgcHJvY2Vzc0lkZW50aWZp
ZXIoKSwgcHJvcG9zZWRQcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCBuYXZpZ2F0aW9uLT5u
YXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi0+bG9nZ2luZ1N0cmluZygpKTsKLSAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBuYXZpZ2F0aW9uID0gbWFrZVJl
ZigqbmF2aWdhdGlvbiksIHByb3Bvc2VkUHJvY2VzcyA9IFdURk1vdmUocHJvcG9zZWRQcm9jZXNz
KV0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICAgICAgY29udGludWVOYXZpZ2F0aW9uSW5O
ZXdQcm9jZXNzKG5hdmlnYXRpb24uZ2V0KCksIFdURk1vdmUocHJvcG9zZWRQcm9jZXNzKSk7Ci0g
ICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgIiVwIC0gV2ViUGFnZVByb3h5
OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uLCBrZWVwIHVzaW5nIHByb2Nlc3MgJWkg
Zm9yIG5hdmlnYXRpb24sIHJlYXNvbjogJXtwdWJsaWN9cyIsIHRoaXMsIHByb2Nlc3NJZGVudGlm
aWVyKCksIHJlYXNvbi51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgfQotCi0gICAgICAgIHJlY2Vp
dmVkUG9saWN5RGVjaXNpb24ocG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLmdldCgpLCBXVEZNb3Zl
KGRhdGEpLCBXVEZNb3ZlKHNlbmRlcikpOworICAgICAgICByZWNlaXZlZE5hdmlnYXRpb25Qb2xp
Y3lEZWNpc2lvbihwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb24sIHByb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQsIGZyYW1lLCBwb2xpY2llcywgV1RGTW92ZShzZW5kZXIpKTsKICAgICB9LCBzaG91
bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2sgPT0gU2hvdWxkU2tpcFNhZmVCcm93c2luZ0NoZWNrOjpZ
ZXMgPyBTaG91bGRFeHBlY3RTYWZlQnJvd3NpbmdSZXN1bHQ6Ok5vIDogU2hvdWxkRXhwZWN0U2Fm
ZUJyb3dzaW5nUmVzdWx0OjpZZXMpKTsKICAgICBpZiAoc2hvdWxkU2tpcFNhZmVCcm93c2luZ0No
ZWNrID09IFNob3VsZFNraXBTYWZlQnJvd3NpbmdDaGVjazo6Tm8pCiAgICAgICAgIGJlZ2luU2Fm
ZUJyb3dzaW5nQ2hlY2socmVxdWVzdC51cmwoKSwgbGlzdGVuZXIpOwpAQCAtNDEwOCw3ICs0MTEz
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbgogICAgIE1FU1NB
R0VfQ0hFQ0soZnJhbWUpOwogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKHJlcXVlc3QudXJsKCkpOwog
Ci0gICAgYXV0byBsaXN0ZW5lciA9IG1ha2VSZWYoZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXJQ
cm94eShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBsaXN0ZW5lcklELCBm
cmFtZUlEXSAoV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgQVBJOjpXZWJzaXRl
UG9saWNpZXMqLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVz
dGVkQnlDbGllbnQsIFZlY3RvcjxTYWZlQnJvd3NpbmdSZXN1bHQ+JiYgc2FmZUJyb3dzaW5nUmVz
dWx0cykgbXV0YWJsZSB7CisgICAgYXV0byBsaXN0ZW5lciA9IG1ha2VSZWYoZnJhbWUtPnNldFVw
UG9saWN5TGlzdGVuZXJQcm94eShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBsaXN0ZW5lcklELCBmcmFtZUlEXSAoV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlv
biwgQVBJOjpXZWJzaXRlUG9saWNpZXMqLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFZlY3RvcjxSZWY8U2FmZUJyb3dzaW5nUmVzdWx0
Pj4mJiBzYWZlQnJvd3NpbmdSZXN1bHRzKSBtdXRhYmxlIHsKICAgICAgICAgLy8gRklYTUU6IEFz
c2VydCB0aGUgQVBJOjpXZWJzaXRlUG9saWNpZXMqIGlzIG51bGxwdHIgaGVyZSBvbmNlIGNsaWVu
dHMgb2YgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlV2l0aFBvbGljaWVzIGdvIGF3YXkuCiAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgPT0gUHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDo6Tm8pOwogICAgICAgICBBU1NFUlRfVU5VU0VEKHNhZmVC
cm93c2luZ1Jlc3VsdHMsIHNhZmVCcm93c2luZ1Jlc3VsdHMuaXNFbXB0eSgpKTsKQEAgLTQxNDQs
NyArNDE0OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JSZXNwb24KICAg
ICBNRVNTQUdFX0NIRUNLX1VSTChyZXNwb25zZS51cmwoKSk7CiAKICAgICBSZWZQdHI8QVBJOjpO
YXZpZ2F0aW9uPiBuYXZpZ2F0aW9uID0gbmF2aWdhdGlvbklEID8gJm1fbmF2aWdhdGlvblN0YXRl
LT5uYXZpZ2F0aW9uKG5hdmlnYXRpb25JRCkgOiBudWxscHRyOwotICAgIGF1dG8gbGlzdGVuZXIg
PSBtYWtlUmVmKGZyYW1lLT5zZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZnJhbWVJRCwgbGlzdGVuZXJJRCwgbmF2aWdhdGlvbiA9
IFdURk1vdmUobmF2aWdhdGlvbildIChXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9u
LCBBUEk6OldlYnNpdGVQb2xpY2llcyosIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJv
Y2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgVmVjdG9yPFNhZmVCcm93c2luZ1Jlc3VsdD4mJiBz
YWZlQnJvd3NpbmdSZXN1bHRzKSBtdXRhYmxlIHsKKyAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJl
ZihmcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIGZyYW1lSUQsIGxpc3RlbmVySUQsIG5hdmlnYXRpb24gPSBXVEZNb3Zl
KG5hdmlnYXRpb24pXSAoV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgQVBJOjpX
ZWJzaXRlUG9saWNpZXMqLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2Fw
UmVxdWVzdGVkQnlDbGllbnQsIFZlY3RvcjxSZWY8U2FmZUJyb3dzaW5nUmVzdWx0Pj4mJiBzYWZl
QnJvd3NpbmdSZXN1bHRzKSBtdXRhYmxlIHsKICAgICAgICAgLy8gRklYTUU6IEFzc2VydCB0aGUg
QVBJOjpXZWJzaXRlUG9saWNpZXMqIGlzIG51bGxwdHIgaGVyZSBvbmNlIGNsaWVudHMgb2YgV0tG
cmFtZVBvbGljeUxpc3RlbmVyVXNlV2l0aFBvbGljaWVzIGdvIGF3YXkuCiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgPT0gUHJvY2Vzc1N3YXBSZXF1
ZXN0ZWRCeUNsaWVudDo6Tm8pOwogICAgICAgICBBU1NFUlRfVU5VU0VEKHNhZmVCcm93c2luZ1Jl
c3VsdHMsIHNhZmVCcm93c2luZ1Jlc3VsdHMuaXNFbXB0eSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiAyMzYwMTcpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtOTEzLDYgKzkx
Myw3IEBAIHB1YmxpYzoKIAogICAgIGNsYXNzIFBvbGljeURlY2lzaW9uU2VuZGVyOwogICAgIHZv
aWQgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6TmF2
aWdhdGlvbiosIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiwgUmVmPFBvbGlj
eURlY2lzaW9uU2VuZGVyPiYmKTsKKyAgICB2b2lkIHJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURl
Y2lzaW9uKFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uJiwgUHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudCwgV2ViRnJhbWVQcm94eSYsIEFQSTo6V2Vic2l0ZVBvbGljaWVz
KiwgUmVmPFBvbGljeURlY2lzaW9uU2VuZGVyPiYmKTsKIAogICAgIHZvaWQgYmFja0ZvcndhcmRS
ZW1vdmVkSXRlbShjb25zdCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJik7CiAK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94
eUNvY29hLm1tCShyZXZpc2lvbiAyMzYwMTcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtODUsMTAgKzg1LDEw
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpiZWdpblNhZmVCcm93c2luZ0NoZWMKICAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgTlNBcnJheTxTU0JTZXJ2aWNlTG9va3VwUmVzdWx0ICo+ICpyZXN1
bHRzID0gW3Jlc3VsdCBzZXJ2aWNlTG9va3VwUmVzdWx0c107Ci0gICAgICAgICAgICBWZWN0b3I8
U2FmZUJyb3dzaW5nUmVzdWx0PiByZXN1bHRzVmVjdG9yOworICAgICAgICAgICAgVmVjdG9yPFJl
ZjxTYWZlQnJvd3NpbmdSZXN1bHQ+PiByZXN1bHRzVmVjdG9yOwogICAgICAgICAgICAgcmVzdWx0
c1ZlY3Rvci5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KFtyZXN1bHRzIGNvdW50XSk7CiAgICAgICAg
ICAgICBmb3IgKFNTQlNlcnZpY2VMb29rdXBSZXN1bHQgKnJlc3VsdCBpbiByZXN1bHRzKQotICAg
ICAgICAgICAgICAgIHJlc3VsdHNWZWN0b3IudW5jaGVja2VkQXBwZW5kKHsgVVJMKHVybCksIHJl
c3VsdCB9KTsKKyAgICAgICAgICAgICAgICByZXN1bHRzVmVjdG9yLnVuY2hlY2tlZEFwcGVuZChT
YWZlQnJvd3NpbmdSZXN1bHQ6OmNyZWF0ZShVUkwodXJsKSwgcmVzdWx0KSk7CiAgICAgICAgICAg
ICBsaXN0ZW5lci0+ZGlkUmVjZWl2ZVNhZmVCcm93c2luZ1Jlc3VsdHMoV1RGTW92ZShyZXN1bHRz
VmVjdG9yKSk7CiAgICAgICAgIH0pOwogICAgIH0pLmdldCgpXTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349892</attachid>
            <date>2018-09-17 09:32:17 -0700</date>
            <delta_ts>2018-09-17 10:09:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189631-20180917093216.patch</filename>
            <type>text/plain</type>
            <size>17927</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzYwNjQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE4LTA5LTE3ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVmYWN0b3Jpbmcg
cmVsYXRlZCB0byBTYWZlIEJyb3dzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODk2MzEKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9u
LgorCisgICAgICAgIE1ha2UgU2FmZUJyb3dzaW5nUmVzdWx0IFJlZkNvdW50ZWQuCisgICAgICAg
IE1vdmUgbG9naWMgZnJvbSBhbiB1bm5hbWVkIGxhbWJkYSB0byBXZWJQYWdlUHJveHk6OnJlY2Vp
dmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1dlYlBhZ2VQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmJl
Z2luU2FmZUJyb3dzaW5nQ2hlY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNv
bnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWRGb3JGcmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6YWRkUGxhdGZvcm1Mb2FkUGFyYW1ldGVycyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRlU2FuZGJveEV4dGVuc2lvbnNJZk5l
ZWRlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RhcnREcmFn
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRQcm9taXNlZERh
dGFGb3JJbWFnZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0
RHJhZ0NhcmV0UmVjdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
cGxhdGZvcm1SZWdpc3RlckF0dGFjaG1lbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OnBsYXRmb3JtQ2xvbmVBdHRhY2htZW50KTogRGVsZXRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvU2FmZUJyb3dzaW5nUmVzdWx0Lmg6CisgICAgICAgIChXZWJLaXQ6OlNhZmVC
cm93c2luZ1Jlc3VsdDo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQb2xp
Y3lMaXN0ZW5lclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQb2xpY3lMaXN0
ZW5lclByb3h5OjpkaWRSZWNlaXZlU2FmZUJyb3dzaW5nUmVzdWx0cyk6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJGcmFtZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQcm94eTo6c2V0
VXBQb2xpY3lMaXN0ZW5lclByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOZXdX
aW5kb3dBY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvclJlc3BvbnNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisKIDIw
MTgtMDktMTcgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIGZpeCBpbmNvcnJlY3QgV1BFIGJ1aWxkIGZpeCBtYWRlIGluIHIy
MzYwMDkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NhZmVCcm93c2luZ1Jlc3VsdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NhZmVCcm93c2luZ1Jlc3Vs
dC5oCShyZXZpc2lvbiAyMzYwMTcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TYWZlQnJv
d3NpbmdSZXN1bHQuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTkgKzI2LDIxIEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgPFdlYkNvcmUvVVJMLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogT0JKQ19DTEFTUyBTU0JT
ZXJ2aWNlTG9va3VwUmVzdWx0OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgU2FmZUJy
b3dzaW5nUmVzdWx0IHsKK2NsYXNzIFNhZmVCcm93c2luZ1Jlc3VsdCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPFNhZmVCcm93c2luZ1Jlc3VsdD4gewogcHVibGljOgogI2lmIEhBVkUoU0FGRV9CUk9XU0lO
RykKLSAgICBTYWZlQnJvd3NpbmdSZXN1bHQoV2ViQ29yZTo6VVJMJiYsIFNTQlNlcnZpY2VMb29r
dXBSZXN1bHQgKik7CisgICAgc3RhdGljIFJlZjxTYWZlQnJvd3NpbmdSZXN1bHQ+IGNyZWF0ZShX
ZWJDb3JlOjpVUkwmJiB1cmwsIFNTQlNlcnZpY2VMb29rdXBSZXN1bHQgKnJlc3VsdCkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNhZmVCcm93c2luZ1Jlc3VsdChXVEZNb3Zl
KHVybCksIHJlc3VsdCkpOworICAgIH0KICNlbmRpZgotICAgIFNhZmVCcm93c2luZ1Jlc3VsdCgp
ID0gZGVmYXVsdDsKLQogICAgIGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsKCkgY29uc3QgeyByZXR1
cm4gbV91cmw7IH0KICAgICBjb25zdCBTdHJpbmcmIHByb3ZpZGVyKCkgY29uc3QgeyByZXR1cm4g
bV9wcm92aWRlcjsgfQogICAgIGJvb2wgaXNQaGlzaGluZygpIGNvbnN0IHsgcmV0dXJuIG1faXNQ
aGlzaGluZzsgfQpAQCAtNDcsNiArNDksOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0tub3duVG9C
ZVVuc2FmZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNLbm93blRvQmVVbnNhZmU7IH0KIAogcHJpdmF0
ZToKKyNpZiBIQVZFKFNBRkVfQlJPV1NJTkcpCisgICAgU2FmZUJyb3dzaW5nUmVzdWx0KFdlYkNv
cmU6OlVSTCYmLCBTU0JTZXJ2aWNlTG9va3VwUmVzdWx0ICopOworI2VuZGlmCiAgICAgV2ViQ29y
ZTo6VVJMIG1fdXJsOwogICAgIFN0cmluZyBtX3Byb3ZpZGVyOwogICAgIGJvb2wgbV9pc1BoaXNo
aW5nIHsgZmFsc2UgfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUG9s
aWN5TGlzdGVuZXJQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmNwcAkocmV2aXNpb24gMjM2MDE3KQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDUsNyArNDUsNyBAQCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJv
eHk6OldlYkZyYW1lUG9sCiAKIFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eTo6fldlYkZyYW1l
UG9saWN5TGlzdGVuZXJQcm94eSgpID0gZGVmYXVsdDsKIAotdm9pZCBXZWJGcmFtZVBvbGljeUxp
c3RlbmVyUHJveHk6OmRpZFJlY2VpdmVTYWZlQnJvd3NpbmdSZXN1bHRzKFZlY3RvcjxTYWZlQnJv
d3NpbmdSZXN1bHQ+JiYgc2FmZUJyb3dzaW5nUmVzdWx0cykKK3ZvaWQgV2ViRnJhbWVQb2xpY3lM
aXN0ZW5lclByb3h5OjpkaWRSZWNlaXZlU2FmZUJyb3dzaW5nUmVzdWx0cyhWZWN0b3I8UmVmPFNh
ZmVCcm93c2luZ1Jlc3VsdD4+JiYgc2FmZUJyb3dzaW5nUmVzdWx0cykKIHsKICAgICBBU1NFUlQo
IW1fc2FmZUJyb3dzaW5nUmVzdWx0cyk7CiAgICAgaWYgKG1fcG9saWN5UmVzdWx0KSB7CkluZGV4
OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVBvbGljeUxpc3Rl
bmVyUHJveHkuaAkocmV2aXNpb24gMjM2MDE3KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3
LDcgQEAgZW51bSBjbGFzcyBTaG91bGRFeHBlY3RTYWZlQnJvd3NpbmdSZXN1bAogY2xhc3MgV2Vi
RnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9i
amVjdDo6VHlwZTo6RnJhbWVQb2xpY3lMaXN0ZW5lcj4gewogcHVibGljOgogCi0gICAgdXNpbmcg
UmVwbHkgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgQVBJ
OjpXZWJzaXRlUG9saWNpZXMqLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBWZWN0b3I8
U2FmZUJyb3dzaW5nUmVzdWx0PiYmKT47CisgICAgdXNpbmcgUmVwbHkgPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgQVBJOjpXZWJzaXRlUG9saWNpZXMqLCBQ
cm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBWZWN0b3I8UmVmPFNhZmVCcm93c2luZ1Jlc3Vs
dD4+JiYpPjsKICAgICBzdGF0aWMgUmVmPFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eT4gY3Jl
YXRlKFJlcGx5JiYgcmVwbHksIFNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdCBleHBlY3Qp
CiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJGcmFtZVBvbGljeUxpc3Rl
bmVyUHJveHkoV1RGTW92ZShyZXBseSksIGV4cGVjdCkpOwpAQCAtNTgsMTMgKzU4LDEzIEBAIHB1
YmxpYzoKICAgICB2b2lkIGRvd25sb2FkKCk7CiAgICAgdm9pZCBpZ25vcmUoKTsKICAgICAKLSAg
ICB2b2lkIGRpZFJlY2VpdmVTYWZlQnJvd3NpbmdSZXN1bHRzKFZlY3RvcjxTYWZlQnJvd3NpbmdS
ZXN1bHQ+JiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVNhZmVCcm93c2luZ1Jlc3VsdHMoVmVjdG9y
PFJlZjxTYWZlQnJvd3NpbmdSZXN1bHQ+PiYmKTsKIAogcHJpdmF0ZToKICAgICBXZWJGcmFtZVBv
bGljeUxpc3RlbmVyUHJveHkoUmVwbHkmJiwgU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0
KTsKIAogICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFJlZlB0cjxBUEk6OldlYnNpdGVQb2xp
Y2llcz4sIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ+PiBtX3BvbGljeVJlc3VsdDsKLSAg
ICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxTYWZlQnJvd3NpbmdSZXN1bHQ+PiBtX3NhZmVCcm93c2lu
Z1Jlc3VsdHM7CisgICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8UmVmPFNhZmVCcm93c2luZ1Jlc3Vs
dD4+PiBtX3NhZmVCcm93c2luZ1Jlc3VsdHM7CiAgICAgUmVwbHkgbV9yZXBseTsKIH07CiAKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuY3BwCShyZXZpc2lvbiAy
MzYwMTcpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTc3LDExICsxNzcsMTEgQEAgdm9pZCBXZWJGcmFtZVByb3h5OjpkaWRD
aGFuZ2VUaXRsZShjb25zdAogICAgIG1fdGl0bGUgPSB0aXRsZTsKIH0KIAotV2ViRnJhbWVQb2xp
Y3lMaXN0ZW5lclByb3h5JiBXZWJGcmFtZVByb3h5OjpzZXRVcFBvbGljeUxpc3RlbmVyUHJveHko
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0
ZVBvbGljaWVzKiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgVmVjdG9yPFNhZmVCcm93
c2luZ1Jlc3VsdD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIsIFNob3VsZEV4cGVjdFNhZmVCcm93
c2luZ1Jlc3VsdCBleHBlY3QpCitXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkmIFdlYkZyYW1l
UHJveHk6OnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OlBvbGljeUFjdGlvbiwgQVBJOjpXZWJzaXRlUG9saWNpZXMqLCBQcm9jZXNzU3dhcFJl
cXVlc3RlZEJ5Q2xpZW50LCBWZWN0b3I8UmVmPFNhZmVCcm93c2luZ1Jlc3VsdD4+JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyLCBTaG91bGRFeHBlY3RTYWZlQnJvd3NpbmdSZXN1bHQgZXhwZWN0KQog
ewogICAgIGlmIChtX2FjdGl2ZUxpc3RlbmVyKQogICAgICAgICBtX2FjdGl2ZUxpc3RlbmVyLT5p
Z25vcmUoKTsKLSAgICBtX2FjdGl2ZUxpc3RlbmVyID0gV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclBy
b3h5OjpjcmVhdGUoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKFdlYkNvcmU6OlBvbGlj
eUFjdGlvbiBhY3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiBwb2xpY2llcywgUHJvY2Vzc1N3
YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBWZWN0b3I8
U2FmZUJyb3dzaW5nUmVzdWx0PiYmIHNhZmVCcm93c2luZ1Jlc3VsdHMpIG11dGFibGUgeworICAg
IG1fYWN0aXZlTGlzdGVuZXIgPSBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk6OmNyZWF0ZShb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoV2ViQ29yZTo6UG9saWN5QWN0aW9uIGFjdGlv
biwgQVBJOjpXZWJzaXRlUG9saWNpZXMqIHBvbGljaWVzLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFZlY3RvcjxSZWY8U2FmZUJyb3dz
aW5nUmVzdWx0Pj4mJiBzYWZlQnJvd3NpbmdSZXN1bHRzKSBtdXRhYmxlIHsKICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoYWN0aW9uLCBwb2xpY2llcywgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNs
aWVudCwgV1RGTW92ZShzYWZlQnJvd3NpbmdSZXN1bHRzKSk7CiAgICAgICAgIG1fYWN0aXZlTGlz
dGVuZXIgPSBudWxscHRyOwogICAgIH0sIGV4cGVjdCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViRnJhbWVQcm94eS5oCShyZXZpc2lvbiAyMzYwMTcpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTExNyw3ICsxMTcs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uKGNvbnN0IFdl
YkNvcmU6OlVSTCYpOyAvLyBlZy4gYW5jaG9yIG5hdmlnYXRpb24sIHNlc3Npb24gc3RhdGUgY2hh
bmdlLgogICAgIHZvaWQgZGlkQ2hhbmdlVGl0bGUoY29uc3QgU3RyaW5nJik7CiAKLSAgICBXZWJG
cmFtZVBvbGljeUxpc3RlbmVyUHJveHkmIHNldFVwUG9saWN5TGlzdGVuZXJQcm94eShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgQVBJOjpXZWJzaXRlUG9saWNp
ZXMqLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBWZWN0b3I8U2FmZUJyb3dzaW5nUmVz
dWx0PiYmKT4mJiwgU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0KTsKKyAgICBXZWJGcmFt
ZVBvbGljeUxpc3RlbmVyUHJveHkmIHNldFVwUG9saWN5TGlzdGVuZXJQcm94eShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgQVBJOjpXZWJzaXRlUG9saWNpZXMq
LCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBWZWN0b3I8UmVmPFNhZmVCcm93c2luZ1Jl
c3VsdD4+JiYpPiYmLCBTaG91bGRFeHBlY3RTYWZlQnJvd3NpbmdSZXN1bHQpOwogCiAjaWYgRU5B
QkxFKENPTlRFTlRfRklMVEVSSU5HKQogICAgIHZvaWQgY29udGVudEZpbHRlckRpZEJsb2NrTG9h
ZChXZWJDb3JlOjpDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgY29udGVudEZpbHRlclVuYmxv
Y2tIYW5kbGVyKSB7IG1fY29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyID0gV1RGTW92ZShjb250
ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIpOyB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDIzNjAxNykKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0MzEsNyArMjQzMSwz
NiBAQCBwcml2YXRlOgogCiAgICAgU2VuZEZ1bmN0aW9uIG1fc2VuZEZ1bmN0aW9uOwogfTsKKwor
dm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKFBvbGlj
eUFjdGlvbiBwb2xpY3lBY3Rpb24sIEFQSTo6TmF2aWdhdGlvbiogbmF2aWdhdGlvbiwgUHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBXZWJG
cmFtZVByb3h5JiBmcmFtZSwgQVBJOjpXZWJzaXRlUG9saWNpZXMqIHBvbGljaWVzLCBSZWY8UG9s
aWN5RGVjaXNpb25TZW5kZXI+JiYgc2VuZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8V2Vic2l0
ZVBvbGljaWVzRGF0YT4gZGF0YTsKKyAgICBpZiAocG9saWNpZXMpIHsKKyAgICAgICAgZGF0YSA9
IHBvbGljaWVzLT5kYXRhKCk7CisgICAgICAgIGlmIChwb2xpY2llcy0+d2Vic2l0ZURhdGFTdG9y
ZSgpKQorICAgICAgICAgICAgY2hhbmdlV2Vic2l0ZURhdGFTdG9yZShwb2xpY2llcy0+d2Vic2l0
ZURhdGFTdG9yZSgpLT53ZWJzaXRlRGF0YVN0b3JlKCkpOworICAgIH0KKyAgICAKKyAgICBpZiAo
cG9saWN5QWN0aW9uID09IFBvbGljeUFjdGlvbjo6VXNlICYmIGZyYW1lLmlzTWFpbkZyYW1lKCkp
IHsKKyAgICAgICAgU3RyaW5nIHJlYXNvbjsKKyAgICAgICAgYXV0byBwcm9wb3NlZFByb2Nlc3Mg
PSBwcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5wcm9jZXNzRm9yTmF2aWdhdGlvbigqdGhpcywgKm5h
dmlnYXRpb24sIHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIHBvbGljeUFjdGlvbiwgcmVh
c29uKTsKKyAgICAgICAgQVNTRVJUKCFyZWFzb24uaXNOdWxsKCkpOworICAgICAgICAKKyAgICAg
ICAgaWYgKHByb3Bvc2VkUHJvY2Vzcy5wdHIoKSAhPSAmcHJvY2VzcygpKSB7CisgICAgICAgICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2FwcGluZywgIiVwIC0gV2ViUGFnZVBy
b3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uLCBzd2FwcGluZyBwcm9jZXNzICVp
IHdpdGggcHJvY2VzcyAlaSBmb3IgbmF2aWdhdGlvbiwgcmVhc29uOiAle3B1YmxpY31zIiwgdGhp
cywgcHJvY2Vzc0lkZW50aWZpZXIoKSwgcHJvcG9zZWRQcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmll
cigpLCByZWFzb24udXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBMT0coUHJvY2Vzc1N3YXBw
aW5nLCAiKFByb2Nlc3NTd2FwcGluZykgU3dpdGNoaW5nIGZyb20gcHJvY2VzcyAlaSB0byBuZXcg
cHJvY2VzcyAoJWkpIGZvciBuYXZpZ2F0aW9uICUiIFBSSXU2NCAiICclcyciLCBwcm9jZXNzSWRl
bnRpZmllcigpLCBwcm9wb3NlZFByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG5hdmlnYXRp
b24tPm5hdmlnYXRpb25JRCgpLCBuYXZpZ2F0aW9uLT5sb2dnaW5nU3RyaW5nKCkpOworICAgICAg
ICAgICAgCisgICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbmF2aWdhdGlvbiA9IG1ha2VSZWYoKm5hdmlnYXRp
b24pLCBwcm9wb3NlZFByb2Nlc3MgPSBXVEZNb3ZlKHByb3Bvc2VkUHJvY2VzcyldKCkgbXV0YWJs
ZSB7CisgICAgICAgICAgICAgICAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKG5hdmln
YXRpb24sIFdURk1vdmUocHJvcG9zZWRQcm9jZXNzKSk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKFByb2Nlc3NTd2Fw
cGluZywgIiVwIC0gV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
LCBrZWVwIHVzaW5nIHByb2Nlc3MgJWkgZm9yIG5hdmlnYXRpb24sIHJlYXNvbjogJXtwdWJsaWN9
cyIsIHRoaXMsIHByb2Nlc3NJZGVudGlmaWVyKCksIHJlYXNvbi51dGY4KCkuZGF0YSgpKTsKKyAg
ICB9CiAgICAgCisgICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihwb2xpY3lBY3Rpb24sIG5hdmln
YXRpb24sIFdURk1vdmUoZGF0YSksIFdURk1vdmUoc2VuZGVyKSk7CisKK30KKwogdm9pZCBXZWJQ
YWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIGFjdGlvbiwgQVBJ
OjpOYXZpZ2F0aW9uKiBuYXZpZ2F0aW9uLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0Rh
dGE+JiYgd2Vic2l0ZVBvbGljaWVzLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYgc2VuZGVy
KQogewogICAgIGlmICghaXNWYWxpZCgpKSB7CkBAIC00MDMzLDMzICs0MDYyLDkgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYQogICAgIFVOVVNFRF9QQVJBTShuZXdO
YXZpZ2F0aW9uSUQpOwogI2VuZGlmCiAKLSAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFt
ZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIGZyYW1lID0gbWFrZVJlZigqZnJhbWUpLCBzZW5kZXIgPSBzZW5kZXIuY29weVJl
ZigpLCBuYXZpZ2F0aW9uXSAoV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgQVBJ
OjpXZWJzaXRlUG9saWNpZXMqIHBvbGljaWVzLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50
IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFZlY3RvcjxTYWZlQnJvd3NpbmdSZXN1bHQ+
JiYpIG11dGFibGUgeworICAgIGF1dG8gbGlzdGVuZXIgPSBtYWtlUmVmKGZyYW1lLT5zZXRVcFBv
bGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
ZnJhbWUgPSBtYWtlUmVmKCpmcmFtZSksIHNlbmRlciA9IFdURk1vdmUoc2VuZGVyKSwgbmF2aWdh
dGlvbl0gKFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0ZVBv
bGljaWVzKiBwb2xpY2llcywgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50LCBWZWN0b3I8UmVmPFNhZmVCcm93c2luZ1Jlc3VsdD4+JiYpIG11
dGFibGUgewogICAgICAgICAvLyBGSVhNRTogZG8gc29tZXRoaW5nIHdpdGggdGhlIFNhZmVCcm93
c2luZ1Jlc3VsdHMuCi0KLSAgICAgICAgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRh
PiBkYXRhOwotICAgICAgICBpZiAocG9saWNpZXMpIHsKLSAgICAgICAgICAgIGRhdGEgPSBwb2xp
Y2llcy0+ZGF0YSgpOwotICAgICAgICAgICAgaWYgKHBvbGljaWVzLT53ZWJzaXRlRGF0YVN0b3Jl
KCkpCi0gICAgICAgICAgICAgICAgY2hhbmdlV2Vic2l0ZURhdGFTdG9yZShwb2xpY2llcy0+d2Vi
c2l0ZURhdGFTdG9yZSgpLT53ZWJzaXRlRGF0YVN0b3JlKCkpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgaWYgKHBvbGljeUFjdGlvbiA9PSBQb2xpY3lBY3Rpb246OlVzZSAmJiBmcmFtZS0+aXNNYWlu
RnJhbWUoKSkgewotICAgICAgICAgICAgU3RyaW5nIHJlYXNvbjsKLSAgICAgICAgICAgIGF1dG8g
cHJvcG9zZWRQcm9jZXNzID0gcHJvY2VzcygpLnByb2Nlc3NQb29sKCkucHJvY2Vzc0Zvck5hdmln
YXRpb24oKnRoaXMsICpuYXZpZ2F0aW9uLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBw
b2xpY3lBY3Rpb24sIHJlYXNvbik7Ci0gICAgICAgICAgICBBU1NFUlQoIXJlYXNvbi5pc051bGwo
KSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChwcm9wb3NlZFByb2Nlc3MucHRyKCkg
IT0gJnByb2Nlc3MoKSkgewotICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
UHJvY2Vzc1N3YXBwaW5nLCAiJXAgLSBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24sIHN3YXBwaW5nIHByb2Nlc3MgJWkgd2l0aCBwcm9jZXNzICVpIGZvciBuYXZp
Z2F0aW9uLCByZWFzb246ICV7cHVibGljfXMiLCB0aGlzLCBwcm9jZXNzSWRlbnRpZmllcigpLCBw
cm9wb3NlZFByb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIHJlYXNvbi51dGY4KCkuZGF0YSgp
KTsKLSAgICAgICAgICAgICAgICBMT0coUHJvY2Vzc1N3YXBwaW5nLCAiKFByb2Nlc3NTd2FwcGlu
ZykgU3dpdGNoaW5nIGZyb20gcHJvY2VzcyAlaSB0byBuZXcgcHJvY2VzcyAoJWkpIGZvciBuYXZp
Z2F0aW9uICUiIFBSSXU2NCAiICclcyciLCBwcm9jZXNzSWRlbnRpZmllcigpLCBwcm9wb3NlZFBy
b2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCksIG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpLCBu
YXZpZ2F0aW9uLT5sb2dnaW5nU3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdU
Rk1vdmUocHJvdGVjdGVkVGhpcyksIG5hdmlnYXRpb24gPSBtYWtlUmVmKCpuYXZpZ2F0aW9uKSwg
cHJvcG9zZWRQcm9jZXNzID0gV1RGTW92ZShwcm9wb3NlZFByb2Nlc3MpXSgpIG11dGFibGUgewot
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MobmF2aWdh
dGlvbi5nZXQoKSwgV1RGTW92ZShwcm9wb3NlZFByb2Nlc3MpKTsKLSAgICAgICAgICAgICAgICB9
KTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoUHJvY2Vzc1N3YXBwaW5nLCAiJXAgLSBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24sIGtlZXAgdXNpbmcgcHJvY2VzcyAlaSBmb3IgbmF2aWdhdGlvbiwg
cmVhc29uOiAle3B1YmxpY31zIiwgdGhpcywgcHJvY2Vzc0lkZW50aWZpZXIoKSwgcmVhc29uLnV0
ZjgoKS5kYXRhKCkpOwotICAgICAgICB9Ci0KLSAgICAgICAgcmVjZWl2ZWRQb2xpY3lEZWNpc2lv
bihwb2xpY3lBY3Rpb24sIG5hdmlnYXRpb24uZ2V0KCksIFdURk1vdmUoZGF0YSksIFdURk1vdmUo
c2VuZGVyKSk7CisgICAgICAgIHJlY2VpdmVkTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKHBvbGlj
eUFjdGlvbiwgbmF2aWdhdGlvbi5nZXQoKSwgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwg
ZnJhbWUsIHBvbGljaWVzLCBXVEZNb3ZlKHNlbmRlcikpOwogICAgIH0sIHNob3VsZFNraXBTYWZl
QnJvd3NpbmdDaGVjayA9PSBTaG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2s6OlllcyA/IFNob3Vs
ZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdDo6Tm8gOiBTaG91bGRFeHBlY3RTYWZlQnJvd3NpbmdS
ZXN1bHQ6OlllcykpOwogICAgIGlmIChzaG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2sgPT0gU2hv
dWxkU2tpcFNhZmVCcm93c2luZ0NoZWNrOjpObykKICAgICAgICAgYmVnaW5TYWZlQnJvd3NpbmdD
aGVjayhyZXF1ZXN0LnVybCgpLCBsaXN0ZW5lcik7CkBAIC00MTA4LDcgKzQxMTMsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmV3V2luCiAgICAgTUVTU0FHRV9DSEVDSyhm
cmFtZSk7CiAgICAgTUVTU0FHRV9DSEVDS19VUkwocmVxdWVzdC51cmwoKSk7CiAKLSAgICBhdXRv
IGxpc3RlbmVyID0gbWFrZVJlZihmcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGxpc3RlbmVySUQsIGZyYW1lSURdIChX
ZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBBUEk6OldlYnNpdGVQb2xpY2llcyos
IFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVu
dCwgVmVjdG9yPFNhZmVCcm93c2luZ1Jlc3VsdD4mJiBzYWZlQnJvd3NpbmdSZXN1bHRzKSBtdXRh
YmxlIHsKKyAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFtZS0+c2V0VXBQb2xpY3lMaXN0
ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGxpc3RlbmVy
SUQsIGZyYW1lSURdIChXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBBUEk6Oldl
YnNpdGVQb2xpY2llcyosIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudCwgVmVjdG9yPFJlZjxTYWZlQnJvd3NpbmdSZXN1bHQ+PiYmIHNhZmVC
cm93c2luZ1Jlc3VsdHMpIG11dGFibGUgewogICAgICAgICAvLyBGSVhNRTogQXNzZXJ0IHRoZSBB
UEk6OldlYnNpdGVQb2xpY2llcyogaXMgbnVsbHB0ciBoZXJlIG9uY2UgY2xpZW50cyBvZiBXS0Zy
YW1lUG9saWN5TGlzdGVuZXJVc2VXaXRoUG9saWNpZXMgZ28gYXdheS4KICAgICAgICAgUkVMRUFT
RV9BU1NFUlQocHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCA9PSBQcm9jZXNzU3dhcFJlcXVl
c3RlZEJ5Q2xpZW50OjpObyk7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQoc2FmZUJyb3dzaW5nUmVz
dWx0cywgc2FmZUJyb3dzaW5nUmVzdWx0cy5pc0VtcHR5KCkpOwpAQCAtNDE0NCw3ICs0MTQ5LDcg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvclJlc3BvbgogICAgIE1FU1NBR0Vf
Q0hFQ0tfVVJMKHJlc3BvbnNlLnVybCgpKTsKIAogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+
IG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uSUQgPyAmbV9uYXZpZ2F0aW9uU3RhdGUtPm5hdmlnYXRp
b24obmF2aWdhdGlvbklEKSA6IG51bGxwdHI7Ci0gICAgYXV0byBsaXN0ZW5lciA9IG1ha2VSZWYo
ZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBmcmFtZUlELCBsaXN0ZW5lcklELCBuYXZpZ2F0aW9uID0gV1RGTW92ZShu
YXZpZ2F0aW9uKV0gKFdlYkNvcmU6OlBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEFQSTo6V2Vi
c2l0ZVBvbGljaWVzKiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dhcFJl
cXVlc3RlZEJ5Q2xpZW50LCBWZWN0b3I8U2FmZUJyb3dzaW5nUmVzdWx0PiYmIHNhZmVCcm93c2lu
Z1Jlc3VsdHMpIG11dGFibGUgeworICAgIGF1dG8gbGlzdGVuZXIgPSBtYWtlUmVmKGZyYW1lLT5z
ZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgZnJhbWVJRCwgbGlzdGVuZXJJRCwgbmF2aWdhdGlvbiA9IFdURk1vdmUobmF2aWdhdGlv
bildIChXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBBUEk6OldlYnNpdGVQb2xp
Y2llcyosIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRC
eUNsaWVudCwgVmVjdG9yPFJlZjxTYWZlQnJvd3NpbmdSZXN1bHQ+PiYmIHNhZmVCcm93c2luZ1Jl
c3VsdHMpIG11dGFibGUgewogICAgICAgICAvLyBGSVhNRTogQXNzZXJ0IHRoZSBBUEk6OldlYnNp
dGVQb2xpY2llcyogaXMgbnVsbHB0ciBoZXJlIG9uY2UgY2xpZW50cyBvZiBXS0ZyYW1lUG9saWN5
TGlzdGVuZXJVc2VXaXRoUG9saWNpZXMgZ28gYXdheS4KICAgICAgICAgUkVMRUFTRV9BU1NFUlQo
cHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCA9PSBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xp
ZW50OjpObyk7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQoc2FmZUJyb3dzaW5nUmVzdWx0cywgc2Fm
ZUJyb3dzaW5nUmVzdWx0cy5pc0VtcHR5KCkpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDIzNjAxNykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC05MTMsNiArOTEzLDcgQEAgcHVi
bGljOgogCiAgICAgY2xhc3MgUG9saWN5RGVjaXNpb25TZW5kZXI7CiAgICAgdm9pZCByZWNlaXZl
ZFBvbGljeURlY2lzaW9uKFdlYkNvcmU6OlBvbGljeUFjdGlvbiwgQVBJOjpOYXZpZ2F0aW9uKiwg
c3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBSZWY8UG9saWN5RGVjaXNpb25T
ZW5kZXI+JiYpOworICAgIHZvaWQgcmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24oV2Vi
Q29yZTo6UG9saWN5QWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qLCBQcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50LCBXZWJGcmFtZVByb3h5JiwgQVBJOjpXZWJzaXRlUG9saWNpZXMqLCBSZWY8UG9s
aWN5RGVjaXNpb25TZW5kZXI+JiYpOwogCiAgICAgdm9pZCBiYWNrRm9yd2FyZFJlbW92ZWRJdGVt
KGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImKTsKIApJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0J
KHJldmlzaW9uIDIzNjAxNykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBh
Z2VQcm94eUNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04NSwxMCArODUsMTAgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmJlZ2luU2FmZUJyb3dzaW5nQ2hlYwogICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICBOU0FycmF5PFNTQlNlcnZpY2VMb29rdXBSZXN1bHQgKj4gKnJlc3VsdHMgPSBbcmVz
dWx0IHNlcnZpY2VMb29rdXBSZXN1bHRzXTsKLSAgICAgICAgICAgIFZlY3RvcjxTYWZlQnJvd3Np
bmdSZXN1bHQ+IHJlc3VsdHNWZWN0b3I7CisgICAgICAgICAgICBWZWN0b3I8UmVmPFNhZmVCcm93
c2luZ1Jlc3VsdD4+IHJlc3VsdHNWZWN0b3I7CiAgICAgICAgICAgICByZXN1bHRzVmVjdG9yLnJl
c2VydmVJbml0aWFsQ2FwYWNpdHkoW3Jlc3VsdHMgY291bnRdKTsKICAgICAgICAgICAgIGZvciAo
U1NCU2VydmljZUxvb2t1cFJlc3VsdCAqcmVzdWx0IGluIHJlc3VsdHMpCi0gICAgICAgICAgICAg
ICAgcmVzdWx0c1ZlY3Rvci51bmNoZWNrZWRBcHBlbmQoeyBVUkwodXJsKSwgcmVzdWx0IH0pOwor
ICAgICAgICAgICAgICAgIHJlc3VsdHNWZWN0b3IudW5jaGVja2VkQXBwZW5kKFNhZmVCcm93c2lu
Z1Jlc3VsdDo6Y3JlYXRlKFVSTCh1cmwpLCByZXN1bHQpKTsKICAgICAgICAgICAgIGxpc3RlbmVy
LT5kaWRSZWNlaXZlU2FmZUJyb3dzaW5nUmVzdWx0cyhXVEZNb3ZlKHJlc3VsdHNWZWN0b3IpKTsK
ICAgICAgICAgfSk7CiAgICAgfSkuZ2V0KCldOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>