<?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>213064</bug_id>
          
          <creation_ts>2020-06-10 20:42:06 -0700</creation_ts>
          <short_desc>Replace instances of blacklist in WebCore with blocklist</short_desc>
          <delta_ts>2020-06-11 13:20:17 -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>WebCore Misc.</component>
          <version>WebKit Local 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>
          
          <blocked>213092</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Beth Dakin">bdakin</reporter>
          <assigned_to name="Beth Dakin">bdakin</assigned_to>
          <cc>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1661486</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2020-06-10 20:42:06 -0700</bug_when>
    <thetext>Continue the work started in https://bugs.webkit.org/show_bug.cgi?id=213000 to replace instances of &quot;blacklist&quot; in WebCore with &quot;blocklist&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661487</commentid>
    <comment_count>1</comment_count>
      <attachid>401616</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2020-06-10 20:44:00 -0700</bug_when>
    <thetext>Created attachment 401616
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661492</commentid>
    <comment_count>2</comment_count>
      <attachid>401616</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-06-10 21:00:47 -0700</bug_when>
    <thetext>Comment on attachment 401616
Patch

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

&gt; Source/WebCore/page/UserContentURLPattern.cpp:37
&gt; +    // In order for a URL to be a match it has to be present in the whitelist and not present in the blocklist.

You missed a &quot;whitelist&quot;

&gt; Source/WebCore/page/UserContentURLPattern.cpp:61
&gt; +    return matchesWhitelist &amp;&amp; !matchesBlocklist;

and here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661494</commentid>
    <comment_count>3</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2020-06-10 21:02:58 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #2)
&gt; Comment on attachment 401616 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=401616&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/UserContentURLPattern.cpp:37
&gt; &gt; +    // In order for a URL to be a match it has to be present in the whitelist and not present in the blocklist.
&gt; 
&gt; You missed a &quot;whitelist&quot;
&gt; 
&gt; &gt; Source/WebCore/page/UserContentURLPattern.cpp:61
&gt; &gt; +    return matchesWhitelist &amp;&amp; !matchesBlocklist;
&gt; 
&gt; and here

Oh I missed ALL of whitelists! I thought I&apos;d do a second patch just to keep the patches smaller, but it&apos;s an arbitrary division.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661496</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-10 21:23:25 -0700</bug_when>
    <thetext>Committed r262894: &lt;https://trac.webkit.org/changeset/262894&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 401616.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661497</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-10 21:24:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/64238706&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1661674</commentid>
    <comment_count>6</comment_count>
      <attachid>401616</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-06-11 11:49:02 -0700</bug_when>
    <thetext>Comment on attachment 401616
Patch

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

&gt; Source/WebCore/page/UserStyleSheet.h:60
&gt;      const Vector&lt;String&gt;&amp; whitelist() const { return m_whitelist; }
&gt; -    const Vector&lt;String&gt;&amp; blacklist() const { return m_blacklist; }
&gt; +    const Vector&lt;String&gt;&amp; blocklist() const { return m_blocklist; }

I think we should match the naming elsewhere, and rename these to includeMatchPatternStrings/excludeMatchPatternStrings. This has the added benefit of actually explaining what these do. Alternatively, we could use the terms the developer.apple.com uses (https://developer.apple.com/documentation/safariservices/safari_app_extensions/safari_app_extension_info_property_list_keys/about_content_script_and_style_sheet_keys), allowedURLPatterns/excludedURLPatterns.

Either way, we should use the same terminology for both UserStyleSheet and UserScript.

&gt; Source/WebCore/platform/mac/PasteboardMac.mm:570
&gt; -    // Blacklist types that might contain subframe information.
&gt; +    // Blocklist types that might contain subframe information.

This sentence no longer makes sense. I would replace Blocklist with &quot;Reject&quot;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401616</attachid>
            <date>2020-06-10 20:44:00 -0700</date>
            <delta_ts>2020-06-10 21:23:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>17011</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2Mjg5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDIwLTA2LTEwICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIGluc3RhbmNlcyBvZiBi
bGFja2xpc3QgaW4gV2ViQ29yZSB3aXRoIGJsb2NrbGlzdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzMDY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkb20vRXh0ZW5zaW9uU3R5bGVTaGVldHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RXh0ZW5zaW9uU3R5bGVTaGVldHM6OnVwZGF0ZUluamVjdGVk
U3R5bGVTaGVldENhY2hlIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lOjppbmplY3RVc2VyU2NyaXB0SW1tZWRpYXRlbHkpOgorICAgICAg
ICAqIHBhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVz
ZXJDb250ZW50VVJMUGF0dGVybjo6bWF0Y2hlc1BhdHRlcm5zKToKKyAgICAgICAgKiBwYWdlL1Vz
ZXJDb250ZW50VVJMUGF0dGVybi5oOgorICAgICAgICAqIHBhZ2UvVXNlclNjcmlwdC5oOgorICAg
ICAgICAoV2ViQ29yZTo6VXNlclNjcmlwdDo6VXNlclNjcmlwdCk6CisgICAgICAgIChXZWJDb3Jl
OjpVc2VyU2NyaXB0OjpibG9ja2xpc3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6VXNlclNj
cmlwdDo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJTY3JpcHQ6OmRlY29k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyU2NyaXB0OjpibGFja2xpc3QgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIHBhZ2UvVXNlclN0eWxlU2hlZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlVzZXJTdHlsZVNoZWV0OjpVc2VyU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJDb3JlOjpVc2Vy
U3R5bGVTaGVldDo6YmxvY2tsaXN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJTdHls
ZVNoZWV0OjpibGFja2xpc3QgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW06CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNoZWNrR1BVU3Rh
dHVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OmNvY29hVHlwZUZyb21IVE1MQ2xpcGJvYXJkVHlwZSk6CisgICAgICAgICogcGxh
dGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpw
cnVuZUJsb2NrbGlzdGVkQ29kZWNzKToKKyAgICAgICAgKFdlYkNvcmU6OmV4dGVuZFRleHRDb2Rl
Y01hcHMpOgorICAgICAgICAoV2ViQ29yZTo6cHJ1bmVCbGFja2xpc3RlZENvZGVjcyk6IERlbGV0
ZWQuCisKIDIwMjAtMDYtMTAgIEZyYW5rIFlhbmcgIDxndW93ZWlfeWFuZ0BhcHBsZS5jb20+CiAK
ICAgICAgICAgTXVsdGlwbGUgU1ZHIEZpbHRlcnMgVW5leHBlY3RlZGx5IGxpZ2h0ZW5zIGltYWdl
IHVzaW5nIGxpbmVhclJHQgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V4dGVuc2lvblN0eWxl
U2hlZXRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRXh0ZW5zaW9uU3R5
bGVTaGVldHMuY3BwCShyZXZpc2lvbiAyNjI4ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXh0
ZW5zaW9uU3R5bGVTaGVldHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDgsNyArMTQ4LDcgQEAg
dm9pZCBFeHRlbnNpb25TdHlsZVNoZWV0czo6dXBkYXRlSW5qZWN0ZQogICAgICAgICBpZiAodXNl
clN0eWxlU2hlZXQuaW5qZWN0ZWRGcmFtZXMoKSA9PSBVc2VyQ29udGVudEluamVjdGVkRnJhbWVz
OjpJbmplY3RJblRvcEZyYW1lT25seSAmJiBtX2RvY3VtZW50Lm93bmVyRWxlbWVudCgpKQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmICghVXNlckNvbnRlbnRVUkxQYXR0ZXJuOjpt
YXRjaGVzUGF0dGVybnMobV9kb2N1bWVudC51cmwoKSwgdXNlclN0eWxlU2hlZXQud2hpdGVsaXN0
KCksIHVzZXJTdHlsZVNoZWV0LmJsYWNrbGlzdCgpKSkKKyAgICAgICAgaWYgKCFVc2VyQ29udGVu
dFVSTFBhdHRlcm46Om1hdGNoZXNQYXR0ZXJucyhtX2RvY3VtZW50LnVybCgpLCB1c2VyU3R5bGVT
aGVldC53aGl0ZWxpc3QoKSwgdXNlclN0eWxlU2hlZXQuYmxvY2tsaXN0KCkpKQogICAgICAgICAg
ICAgcmV0dXJuOwogCiAgICAgICAgIGFkZFN0eWxlU2hlZXQodXNlclN0eWxlU2hlZXQpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZS5jcHAJKHJldmlzaW9uIDI2Mjg4MykKKysrIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NzEsNyArNjcxLDcgQEAgdm9pZCBG
cmFtZTo6aW5qZWN0VXNlclNjcmlwdEltbWVkaWF0ZWx5KAogICAgICAgICByZXR1cm47CiAgICAg
aWYgKHNjcmlwdC5pbmplY3RlZEZyYW1lcygpID09IFVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6
OkluamVjdEluVG9wRnJhbWVPbmx5ICYmICFpc01haW5GcmFtZSgpKQogICAgICAgICByZXR1cm47
Ci0gICAgaWYgKCFVc2VyQ29udGVudFVSTFBhdHRlcm46Om1hdGNoZXNQYXR0ZXJucyhkb2N1bWVu
dC0+dXJsKCksIHNjcmlwdC53aGl0ZWxpc3QoKSwgc2NyaXB0LmJsYWNrbGlzdCgpKSkKKyAgICBp
ZiAoIVVzZXJDb250ZW50VVJMUGF0dGVybjo6bWF0Y2hlc1BhdHRlcm5zKGRvY3VtZW50LT51cmwo
KSwgc2NyaXB0LndoaXRlbGlzdCgpLCBzY3JpcHQuYmxvY2tsaXN0KCkpKQogICAgICAgICByZXR1
cm47CiAgICAgaWYgKCFtX3NjcmlwdC0+c2hvdWxkQWxsb3dVc2VyQWdlbnRTY3JpcHRzKCpkb2N1
bWVudCkpCiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNv
bnRlbnRVUkxQYXR0ZXJuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1Vz
ZXJDb250ZW50VVJMUGF0dGVybi5jcHAJKHJldmlzaW9uIDI2Mjg4MykKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIs
OSArMzIsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgVXNlckNvbnRlbnRVUkxQ
YXR0ZXJuOjptYXRjaGVzUGF0dGVybnMoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiB3aGl0ZWxpc3QsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBibGFja2xpc3QpCitib29sIFVz
ZXJDb250ZW50VVJMUGF0dGVybjo6bWF0Y2hlc1BhdHRlcm5zKGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgd2hpdGVsaXN0LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxvY2ts
aXN0KQogewotICAgIC8vIEluIG9yZGVyIGZvciBhIFVSTCB0byBiZSBhIG1hdGNoIGl0IGhhcyB0
byBiZSBwcmVzZW50IGluIHRoZSB3aGl0ZWxpc3QgYW5kIG5vdCBwcmVzZW50IGluIHRoZSBibGFj
a2xpc3QuCisgICAgLy8gSW4gb3JkZXIgZm9yIGEgVVJMIHRvIGJlIGEgbWF0Y2ggaXQgaGFzIHRv
IGJlIHByZXNlbnQgaW4gdGhlIHdoaXRlbGlzdCBhbmQgbm90IHByZXNlbnQgaW4gdGhlIGJsb2Nr
bGlzdC4KICAgICAvLyBJZiB0aGVyZSBpcyBubyB3aGl0ZWxpc3QgYXQgYWxsLCB0aGVuIGFsbCBV
UkxzIGFyZSBhc3N1bWVkIHRvIGJlIGluIHRoZSB3aGl0ZWxpc3QuCiAgICAgYm9vbCBtYXRjaGVz
V2hpdGVsaXN0ID0gd2hpdGVsaXN0LmlzRW1wdHkoKTsKICAgICBpZiAoIW1hdGNoZXNXaGl0ZWxp
c3QpIHsKQEAgLTQ3LDE4ICs0NywxOCBAQCBib29sIFVzZXJDb250ZW50VVJMUGF0dGVybjo6bWF0
Y2hlc1BhdHRlCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBib29sIG1hdGNoZXNCbGFja2xpc3Qg
PSBmYWxzZTsKLSAgICBpZiAoIWJsYWNrbGlzdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgZm9yIChh
dXRvJiBlbnRyeSA6IGJsYWNrbGlzdCkgeworICAgIGJvb2wgbWF0Y2hlc0Jsb2NrbGlzdCA9IGZh
bHNlOworICAgIGlmICghYmxvY2tsaXN0LmlzRW1wdHkoKSkgeworICAgICAgICBmb3IgKGF1dG8m
IGVudHJ5IDogYmxvY2tsaXN0KSB7CiAgICAgICAgICAgICBVc2VyQ29udGVudFVSTFBhdHRlcm4g
Y29udGVudFBhdHRlcm4oZW50cnkpOwogICAgICAgICAgICAgaWYgKGNvbnRlbnRQYXR0ZXJuLm1h
dGNoZXModXJsKSkgewotICAgICAgICAgICAgICAgIG1hdGNoZXNCbGFja2xpc3QgPSB0cnVlOwor
ICAgICAgICAgICAgICAgIG1hdGNoZXNCbG9ja2xpc3QgPSB0cnVlOwogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIG1h
dGNoZXNXaGl0ZWxpc3QgJiYgIW1hdGNoZXNCbGFja2xpc3Q7CisgICAgcmV0dXJuIG1hdGNoZXNX
aGl0ZWxpc3QgJiYgIW1hdGNoZXNCbG9ja2xpc3Q7CiB9CiAKIGJvb2wgVXNlckNvbnRlbnRVUkxQ
YXR0ZXJuOjpwYXJzZShjb25zdCBTdHJpbmcmIHBhdHRlcm4pCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgJKHJldmlzaW9uIDI2Mjg4MykKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgJKHdvcmtpbmcgY29weSkK
QEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBtYXRjaFN1YmRvbWFpbnMoKSBj
b25zdCB7IHJldHVybiBtX21hdGNoU3ViZG9tYWluczsgfQogICAgIAotICAgIHN0YXRpYyBib29s
IG1hdGNoZXNQYXR0ZXJucyhjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgd2hpdGVs
aXN0LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYmxhY2tsaXN0KTsKKyAgICBzdGF0aWMgYm9vbCBt
YXRjaGVzUGF0dGVybnMoY29uc3QgVVJMJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHdoaXRlbGlz
dCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2NrbGlzdCk7CiAKIHByaXZhdGU6CiAgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBwYXJzZShjb25zdCBTdHJpbmcmIHBhdHRlcm4pOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9Vc2VyU2NyaXB0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS9Vc2VyU2NyaXB0LmgJKHJldmlzaW9uIDI2Mjg4MykKKysrIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvVXNlclNjcmlwdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSwxMSArNDEsMTEgQEAgcHVi
bGljOgogICAgIFVzZXJTY3JpcHQmIG9wZXJhdG9yPShjb25zdCBVc2VyU2NyaXB0JikgPSBkZWZh
dWx0OwogICAgIFVzZXJTY3JpcHQmIG9wZXJhdG9yPShVc2VyU2NyaXB0JiYpID0gZGVmYXVsdDsK
IAotICAgIFVzZXJTY3JpcHQoU3RyaW5nJiYgc291cmNlLCBVUkwmJiB1cmwsIFZlY3RvcjxTdHJp
bmc+JiYgd2hpdGVsaXN0LCBWZWN0b3I8U3RyaW5nPiYmIGJsYWNrbGlzdCwgVXNlclNjcmlwdElu
amVjdGlvblRpbWUgaW5qZWN0aW9uVGltZSwgVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyBpbmpl
Y3RlZEZyYW1lcywgV2FpdEZvck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGluZyB3YWl0Rm9yTm90
aWZpY2F0aW9uKQorICAgIFVzZXJTY3JpcHQoU3RyaW5nJiYgc291cmNlLCBVUkwmJiB1cmwsIFZl
Y3RvcjxTdHJpbmc+JiYgd2hpdGVsaXN0LCBWZWN0b3I8U3RyaW5nPiYmIGJsb2NrbGlzdCwgVXNl
clNjcmlwdEluamVjdGlvblRpbWUgaW5qZWN0aW9uVGltZSwgVXNlckNvbnRlbnRJbmplY3RlZEZy
YW1lcyBpbmplY3RlZEZyYW1lcywgV2FpdEZvck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGluZyB3
YWl0Rm9yTm90aWZpY2F0aW9uKQogICAgICAgICA6IG1fc291cmNlKFdURk1vdmUoc291cmNlKSkK
ICAgICAgICAgLCBtX3VybChXVEZNb3ZlKHVybCkpCiAgICAgICAgICwgbV93aGl0ZWxpc3QoV1RG
TW92ZSh3aGl0ZWxpc3QpKQotICAgICAgICAsIG1fYmxhY2tsaXN0KFdURk1vdmUoYmxhY2tsaXN0
KSkKKyAgICAgICAgLCBtX2Jsb2NrbGlzdChXVEZNb3ZlKGJsb2NrbGlzdCkpCiAgICAgICAgICwg
bV9pbmplY3Rpb25UaW1lKGluamVjdGlvblRpbWUpCiAgICAgICAgICwgbV9pbmplY3RlZEZyYW1l
cyhpbmplY3RlZEZyYW1lcykKICAgICAgICAgLCBtX3dhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJ
bmplY3Rpbmcod2FpdEZvck5vdGlmaWNhdGlvbikKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgog
ICAgIGNvbnN0IFN0cmluZyYgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2U7IH0KICAg
ICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9CiAgICAgY29uc3QgVmVj
dG9yPFN0cmluZz4mIHdoaXRlbGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fd2hpdGVsaXN0OyB9Ci0g
ICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsYWNrbGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fYmxh
Y2tsaXN0OyB9CisgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2NrbGlzdCgpIGNvbnN0IHsg
cmV0dXJuIG1fYmxvY2tsaXN0OyB9CiAgICAgVXNlclNjcmlwdEluamVjdGlvblRpbWUgaW5qZWN0
aW9uVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5qZWN0aW9uVGltZTsgfQogICAgIFVzZXJDb250
ZW50SW5qZWN0ZWRGcmFtZXMgaW5qZWN0ZWRGcmFtZXMoKSBjb25zdCB7IHJldHVybiBtX2luamVj
dGVkRnJhbWVzOyB9CiAgICAgV2FpdEZvck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGluZyB3YWl0
Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nKCkgY29uc3QgeyByZXR1cm4gbV93YWl0Rm9y
Tm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOyB9CkBAIC02Nyw3ICs2Nyw3IEBAIHByaXZhdGU6
CiAgICAgU3RyaW5nIG1fc291cmNlOwogICAgIFVSTCBtX3VybDsKICAgICBWZWN0b3I8U3RyaW5n
PiBtX3doaXRlbGlzdDsKLSAgICBWZWN0b3I8U3RyaW5nPiBtX2JsYWNrbGlzdDsKKyAgICBWZWN0
b3I8U3RyaW5nPiBtX2Jsb2NrbGlzdDsKICAgICBVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSBtX2lu
amVjdGlvblRpbWUgeyBVc2VyU2NyaXB0SW5qZWN0aW9uVGltZTo6RG9jdW1lbnRTdGFydCB9Owog
ICAgIFVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgbV9pbmplY3RlZEZyYW1lcyB7IFVzZXJDb250
ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVzIH07CiAgICAgV2FpdEZvck5vdGlm
aWNhdGlvbkJlZm9yZUluamVjdGluZyBtX3dhaXRGb3JOb3RpZmljYXRpb25CZWZvcmVJbmplY3Rp
bmcgeyBXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0aW5nOjpObyB9OwpAQCAtNzksNyAr
NzksNyBAQCB2b2lkIFVzZXJTY3JpcHQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyCiAgICAgZW5j
b2RlciA8PCBtX3NvdXJjZTsKICAgICBlbmNvZGVyIDw8IG1fdXJsOwogICAgIGVuY29kZXIgPDwg
bV93aGl0ZWxpc3Q7Ci0gICAgZW5jb2RlciA8PCBtX2JsYWNrbGlzdDsKKyAgICBlbmNvZGVyIDw8
IG1fYmxvY2tsaXN0OwogICAgIGVuY29kZXIgPDwgbV9pbmplY3Rpb25UaW1lOwogICAgIGVuY29k
ZXIgPDwgbV9pbmplY3RlZEZyYW1lczsKICAgICBlbmNvZGVyIDw8IG1fd2FpdEZvck5vdGlmaWNh
dGlvbkJlZm9yZUluamVjdGluZzsKQEAgLTEwMyw5ICsxMDMsOSBAQCBPcHRpb25hbDxVc2VyU2Ny
aXB0PiBVc2VyU2NyaXB0OjpkZWNvZGUoCiAgICAgaWYgKCF3aGl0ZWxpc3QpCiAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiAgICAgCi0gICAgT3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IGJs
YWNrbGlzdDsKLSAgICBkZWNvZGVyID4+IGJsYWNrbGlzdDsKLSAgICBpZiAoIWJsYWNrbGlzdCkK
KyAgICBPcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gYmxvY2tsaXN0OworICAgIGRlY29kZXIgPj4g
YmxvY2tsaXN0OworICAgIGlmICghYmxvY2tsaXN0KQogICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogICAgIAogICAgIE9wdGlvbmFsPFVzZXJTY3JpcHRJbmplY3Rpb25UaW1lPiBpbmplY3Rp
b25UaW1lOwpAQCAtMTI3LDcgKzEyNyw3IEBAIE9wdGlvbmFsPFVzZXJTY3JpcHQ+IFVzZXJTY3Jp
cHQ6OmRlY29kZSgKICAgICAgICAgV1RGTW92ZSgqc291cmNlKSwKICAgICAgICAgV1RGTW92ZSgq
dXJsKSwKICAgICAgICAgV1RGTW92ZSgqd2hpdGVsaXN0KSwKLSAgICAgICAgV1RGTW92ZSgqYmxh
Y2tsaXN0KSwKKyAgICAgICAgV1RGTW92ZSgqYmxvY2tsaXN0KSwKICAgICAgICAgV1RGTW92ZSgq
aW5qZWN0aW9uVGltZSksCiAgICAgICAgIFdURk1vdmUoKmluamVjdGVkRnJhbWVzKSwKICAgICAg
ICAgV1RGTW92ZSgqd2FpdEZvck5vdGlmaWNhdGlvbikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvVXNlclN0eWxlU2hlZXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1Vz
ZXJTdHlsZVNoZWV0LmgJKHJldmlzaW9uIDI2Mjg4MykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
VXNlclN0eWxlU2hlZXQuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTEgKzQzLDExIEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgfQogCi0gICAgVXNlclN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBzb3Vy
Y2UsIGNvbnN0IFVSTCYgdXJsLCBWZWN0b3I8U3RyaW5nPiYmIHdoaXRlbGlzdCwgVmVjdG9yPFN0
cmluZz4mJiBibGFja2xpc3QsIFVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgaW5qZWN0ZWRGcmFt
ZXMsIFVzZXJTdHlsZUxldmVsIGxldmVsLCBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gcGFnZUlE
ID0gV1RGOjpudWxsb3B0KQorICAgIFVzZXJTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgc291cmNl
LCBjb25zdCBVUkwmIHVybCwgVmVjdG9yPFN0cmluZz4mJiB3aGl0ZWxpc3QsIFZlY3RvcjxTdHJp
bmc+JiYgYmxvY2tsaXN0LCBVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGluamVjdGVkRnJhbWVz
LCBVc2VyU3R5bGVMZXZlbCBsZXZlbCwgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJRCA9
IFdURjo6bnVsbG9wdCkKICAgICAgICAgOiBtX3NvdXJjZShzb3VyY2UpCiAgICAgICAgICwgbV91
cmwodXJsKQogICAgICAgICAsIG1fd2hpdGVsaXN0KFdURk1vdmUod2hpdGVsaXN0KSkKLSAgICAg
ICAgLCBtX2JsYWNrbGlzdChXVEZNb3ZlKGJsYWNrbGlzdCkpCisgICAgICAgICwgbV9ibG9ja2xp
c3QoV1RGTW92ZShibG9ja2xpc3QpKQogICAgICAgICAsIG1faW5qZWN0ZWRGcmFtZXMoaW5qZWN0
ZWRGcmFtZXMpCiAgICAgICAgICwgbV9sZXZlbChsZXZlbCkKICAgICAgICAgLCBtX3BhZ2VJRChw
YWdlSUQpCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIHNvdXJj
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9CiAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25z
dCB7IHJldHVybiBtX3VybDsgfQogICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB3aGl0ZWxpc3Qo
KSBjb25zdCB7IHJldHVybiBtX3doaXRlbGlzdDsgfQotICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBibGFja2xpc3QoKSBjb25zdCB7IHJldHVybiBtX2JsYWNrbGlzdDsgfQorICAgIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBibG9ja2xpc3QoKSBjb25zdCB7IHJldHVybiBtX2Jsb2NrbGlzdDsgfQog
ICAgIFVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgaW5qZWN0ZWRGcmFtZXMoKSBjb25zdCB7IHJl
dHVybiBtX2luamVjdGVkRnJhbWVzOyB9CiAgICAgVXNlclN0eWxlTGV2ZWwgbGV2ZWwoKSBjb25z
dCB7IHJldHVybiBtX2xldmVsOyB9CiAgICAgT3B0aW9uYWw8UGFnZUlkZW50aWZpZXI+IHBhZ2VJ
RCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZUlEOyB9CkBAIC02Niw3ICs2Niw3IEBAIHByaXZhdGU6
CiAgICAgU3RyaW5nIG1fc291cmNlOwogICAgIFVSTCBtX3VybDsKICAgICBWZWN0b3I8U3RyaW5n
PiBtX3doaXRlbGlzdDsKLSAgICBWZWN0b3I8U3RyaW5nPiBtX2JsYWNrbGlzdDsKKyAgICBWZWN0
b3I8U3RyaW5nPiBtX2Jsb2NrbGlzdDsKICAgICBVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIG1f
aW5qZWN0ZWRGcmFtZXM7CiAgICAgVXNlclN0eWxlTGV2ZWwgbV9sZXZlbDsKICAgICBPcHRpb25h
bDxQYWdlSWRlbnRpZmllcj4gbV9wYWdlSUQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29hLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMQ29jb2EubW0JKHJldmlzaW9uIDI2Mjg4MykKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0J
KHdvcmtpbmcgY29weSkKQEAgLTI2OCw4ICsyNjgsOCBAQCBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDo6R3JhcGhpY3NDb250ZXh0CiAgICAgQ0dMQ29udGV4dE9iaiBzaGFyZWRDR0xDb250ZXh0ID0g
c2hhcmVkQ29udGV4dCA/IHN0YXRpY19jYXN0PENHTENvbnRleHRPYmo+KHNoYXJlZENvbnRleHQt
Pm1fY29udGV4dE9iaikgOiBudWxscHRyOwogCiAgICAgQ0dMRXJyb3IgZXJyID0gQ0dMQ3JlYXRl
Q29udGV4dChwaXhlbEZvcm1hdE9iaiwgc2hhcmVkQ0dMQ29udGV4dCwgJmNnbENvbnRleHQpOwot
ICAgIEdMaW50IGFib3J0T25CbGFja2xpc3QgPSAwOwotICAgIENHTFNldFBhcmFtZXRlcihjZ2xD
b250ZXh0LCBrQ0dMQ1BBYm9ydE9uR1BVUmVzdGFydFN0YXR1c0JsYWNrbGlzdGVkLCAmYWJvcnRP
bkJsYWNrbGlzdCk7CisgICAgR0xpbnQgYWJvcnRPbkJsb2NrbGlzdCA9IDA7CisgICAgQ0dMU2V0
UGFyYW1ldGVyKGNnbENvbnRleHQsIGtDR0xDUEFib3J0T25HUFVSZXN0YXJ0U3RhdHVzQmxhY2ts
aXN0ZWQsICZhYm9ydE9uQmxvY2tsaXN0KTsKIAogI2lmIFBMQVRGT1JNKE1BQykgLy8gRklYTUU6
IFRoaXMgcHJvYmFibHkgc2hvdWxkIGJlIFVTRShPUEVOR0wpIC0gc2VlIDxyZGFyOi8vNTMwNjI3
OTQ+LgogCkBAIC02NzYsNyArNjc2LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
Y2hlY2tHUFVTdAogICAgIENHTENvbnRleHRPYmogY2dsQ29udGV4dCA9IHN0YXRpY19jYXN0PENH
TENvbnRleHRPYmo+KHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0woKSk7CiAgICAgQ0dMR2V0UGFy
YW1ldGVyKGNnbENvbnRleHQsIGtDR0xDUEdQVVJlc3RhcnRTdGF0dXMsICZyZXN0YXJ0U3RhdHVz
KTsKICAgICBpZiAocmVzdGFydFN0YXR1cyA9PSBrQ0dMQ1BHUFVSZXN0YXJ0U3RhdHVzQmxhY2ts
aXN0ZWQpIHsKLSAgICAgICAgTE9HKFdlYkdMLCAiVGhlIEdQVSBoYXMgYmxhY2tsaXN0ZWQgdXMg
KCVwKS4gVGVybWluYXRpbmcuIiwgdGhpcyk7CisgICAgICAgIExPRyhXZWJHTCwgIlRoZSBHUFUg
aGFzIGJsb2NrbGlzdGVkIHVzICglcCkuIFRlcm1pbmF0aW5nLiIsIHRoaXMpOwogICAgICAgICBl
eGl0KEVYX09TRVJSKTsKICAgICB9CiAgICAgaWYgKHJlc3RhcnRTdGF0dXMgPT0ga0NHTENQR1BV
UmVzdGFydFN0YXR1c0NhdXNlZCkgewpAQCAtNjg4LDcgKzY4OCw3IEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0w6OmNoZWNrR1BVU3QKICAgICBFQUdMQ29udGV4dCogY3VycmVudENvbnRl
eHQgPSBzdGF0aWNfY2FzdDxFQUdMQ29udGV4dCo+KFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0R0wo
KSk7CiAgICAgW2N1cnJlbnRDb250ZXh0IGdldFBhcmFtZXRlcjprRUFHTENQR1BVUmVzdGFydFN0
YXR1cyB0bzomcmVzdGFydFN0YXR1c107CiAgICAgaWYgKHJlc3RhcnRTdGF0dXMgPT0ga0VBR0xD
UEdQVVJlc3RhcnRTdGF0dXNDYXVzZWQgfHwgcmVzdGFydFN0YXR1cyA9PSBrRUFHTENQR1BVUmVz
dGFydFN0YXR1c0JsYWNrbGlzdGVkKSB7Ci0gICAgICAgIExPRyhXZWJHTCwgIlRoZSBHUFUgaGFz
IGVpdGhlciByZXNldCBvciBibGFja2xpc3RlZCB1cyAoJXApLiBMb3NlIHRoZSBjb250ZXh0LiIs
IHRoaXMpOworICAgICAgICBMT0coV2ViR0wsICJUaGUgR1BVIGhhcyBlaXRoZXIgcmVzZXQgb3Ig
YmxvY2tsaXN0ZWQgdXMgKCVwKS4gTG9zZSB0aGUgY29udGV4dC4iLCB0aGlzKTsKICAgICAgICAg
Zm9yY2VDb250ZXh0TG9zdCgpOwogICAgICAgICBbRUFHTENvbnRleHQgc2V0Q3VycmVudENvbnRl
eHQ6MF07CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9h
cmRNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3Rl
Ym9hcmRNYWMubW0JKHJldmlzaW9uIDI2Mjg4MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QYXN0ZWJvYXJkTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01NjcsNyArNTY3LDcgQEAg
c3RhdGljIFN0cmluZyBjb2NvYVR5cGVGcm9tSFRNTENsaXBib2FyZAogICAgICAgICAgICAgcmV0
dXJuIHBsYXRmb3JtVHlwZTsKICAgICB9CiAKLSAgICAvLyBCbGFja2xpc3QgdHlwZXMgdGhhdCBt
aWdodCBjb250YWluIHN1YmZyYW1lIGluZm9ybWF0aW9uLgorICAgIC8vIEJsb2NrbGlzdCB0eXBl
cyB0aGF0IG1pZ2h0IGNvbnRhaW4gc3ViZnJhbWUgaW5mb3JtYXRpb24uCiAgICAgaWYgKHR5cGUg
PT0gInRleHQvcnRmIiB8fCB0eXBlID09ICJwdWJsaWMucnRmIiB8fCB0eXBlID09ICJjb20uYXBw
bGUudHJhZGl0aW9uYWwtbWFjLXBsYWluLXRleHQiKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0
cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVu
Y29kaW5nUmVnaXN0cnkuY3BwCShyZXZpc2lvbiAyNjI4ODMpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1RleHRFbmNvZGluZ1JlZ2lzdHJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
OTcsNyArOTcsNyBAQCBzdGF0aWMgYm9vbCBkaWRFeHRlbmRUZXh0Q29kZWNNYXBzOwogc3RhdGlj
IEhhc2hTZXQ8Y29uc3QgY2hhcio+KiBqYXBhbmVzZUVuY29kaW5nczsKIHN0YXRpYyBIYXNoU2V0
PGNvbnN0IGNoYXIqPiogbm9uQmFja3NsYXNoRW5jb2RpbmdzOwogCi1zdGF0aWMgY29uc3QgY2hh
ciogY29uc3QgdGV4dEVuY29kaW5nTmFtZUJsYWNrbGlzdFtdID0geyAiVVRGLTciLCAiQk9DVS0x
IiwgIlNDU1UiIH07CitzdGF0aWMgY29uc3QgY2hhciogY29uc3QgdGV4dEVuY29kaW5nTmFtZUJs
b2NrbGlzdFtdID0geyAiVVRGLTciLCAiQk9DVS0xIiwgIlNDU1UiIH07CiAKIHN0YXRpYyBib29s
IGlzVW5kZXNpcmVkQWxpYXMoY29uc3QgY2hhciogYWxpYXMpCiB7CkBAIC0xMzUsMTAgKzEzNSwx
MCBAQCBzdGF0aWMgdm9pZCBhZGRUb1RleHRDb2RlY01hcChjb25zdCBjaGFyCiAgICAgdGV4dENv
ZGVjTWFwLT5hZGQoYXRvbU5hbWUsIFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIAotc3RhdGljIHZv
aWQgcHJ1bmVCbGFja2xpc3RlZENvZGVjcygpCitzdGF0aWMgdm9pZCBwcnVuZUJsb2NrbGlzdGVk
Q29kZWNzKCkKIHsKLSAgICBmb3IgKGF1dG8mIG5hbWVGcm9tQmxhY2tsaXN0IDogdGV4dEVuY29k
aW5nTmFtZUJsYWNrbGlzdCkgewotICAgICAgICBhdXRvKiBhdG9tTmFtZSA9IHRleHRFbmNvZGlu
Z05hbWVNYXAtPmdldChuYW1lRnJvbUJsYWNrbGlzdCk7CisgICAgZm9yIChhdXRvJiBuYW1lRnJv
bUJsb2NrbGlzdCA6IHRleHRFbmNvZGluZ05hbWVCbG9ja2xpc3QpIHsKKyAgICAgICAgYXV0byog
YXRvbU5hbWUgPSB0ZXh0RW5jb2RpbmdOYW1lTWFwLT5nZXQobmFtZUZyb21CbG9ja2xpc3QpOwog
ICAgICAgICBpZiAoIWF0b21OYW1lKQogICAgICAgICAgICAgY29udGludWU7CiAKQEAgLTIzNyw3
ICsyMzcsNyBAQCBzdGF0aWMgdm9pZCBleHRlbmRUZXh0Q29kZWNNYXBzKCkKICAgICBUZXh0Q29k
ZWNJQ1U6OnJlZ2lzdGVyRW5jb2RpbmdOYW1lcyhhZGRUb1RleHRFbmNvZGluZ05hbWVNYXApOwog
ICAgIFRleHRDb2RlY0lDVTo6cmVnaXN0ZXJDb2RlY3MoYWRkVG9UZXh0Q29kZWNNYXApOwogCi0g
ICAgcHJ1bmVCbGFja2xpc3RlZENvZGVjcygpOworICAgIHBydW5lQmxvY2tsaXN0ZWRDb2RlY3Mo
KTsKICAgICBidWlsZFF1aXJrc1NldHMoKTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2
Mjg5MykKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMjAtMDYtMTAgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFJlcGxhY2UgaW5zdGFuY2VzIG9mIGJsYWNrbGlzdCBpbiBXZWJDb3JlIHdpdGggYmxv
Y2tsaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTMwNjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPFVzZXJTdHlsZVNoZWV0Pjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxVc2VyU3R5bGVTaGVldD46OmRlY29kZSk6CisKIDIwMjAtMDYtMTAgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gZWRpdGluZy9wYXN0
ZWJvYXJkL2RvbS1wYXN0ZSB0ZXN0cyBjb25zaXN0ZW50bHkgdGltZSBvdXQKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAkocmV2aXNpb24g
MjYyODgzKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjA4MSw3ICsyMDgxLDcgQEAgdm9pZCBBcmd1bWVudENvZGVy
PFVzZXJTdHlsZVNoZWV0Pjo6ZW5jbwogICAgIGVuY29kZXIgPDwgdXNlclN0eWxlU2hlZXQuc291
cmNlKCk7CiAgICAgZW5jb2RlciA8PCB1c2VyU3R5bGVTaGVldC51cmwoKTsKICAgICBlbmNvZGVy
IDw8IHVzZXJTdHlsZVNoZWV0LndoaXRlbGlzdCgpOwotICAgIGVuY29kZXIgPDwgdXNlclN0eWxl
U2hlZXQuYmxhY2tsaXN0KCk7CisgICAgZW5jb2RlciA8PCB1c2VyU3R5bGVTaGVldC5ibG9ja2xp
c3QoKTsKICAgICBlbmNvZGVyLmVuY29kZUVudW0odXNlclN0eWxlU2hlZXQuaW5qZWN0ZWRGcmFt
ZXMoKSk7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHVzZXJTdHlsZVNoZWV0LmxldmVsKCkpOwog
ICAgIGVuY29kZXIgPDwgdXNlclN0eWxlU2hlZXQucGFnZUlEKCk7CkBAIC0yMTAxLDggKzIxMDEs
OCBAQCBib29sIEFyZ3VtZW50Q29kZXI8VXNlclN0eWxlU2hlZXQ+OjpkZWNvCiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZSh3aGl0ZWxpc3QpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBW
ZWN0b3I8U3RyaW5nPiBibGFja2xpc3Q7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShibGFja2xp
c3QpKQorICAgIFZlY3RvcjxTdHJpbmc+IGJsb2NrbGlzdDsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGJsb2NrbGlzdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFVzZXJDb250ZW50
SW5qZWN0ZWRGcmFtZXMgaW5qZWN0ZWRGcmFtZXM7CkBAIC0yMTE4LDcgKzIxMTgsNyBAQCBib29s
IEFyZ3VtZW50Q29kZXI8VXNlclN0eWxlU2hlZXQ+OjpkZWNvCiAgICAgaWYgKCFwYWdlSUQpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHVzZXJTdHlsZVNoZWV0ID0gVXNlclN0eWxlU2hl
ZXQoc291cmNlLCB1cmwsIFdURk1vdmUod2hpdGVsaXN0KSwgV1RGTW92ZShibGFja2xpc3QpLCBp
bmplY3RlZEZyYW1lcywgbGV2ZWwsIFdURk1vdmUoKnBhZ2VJRCkpOworICAgIHVzZXJTdHlsZVNo
ZWV0ID0gVXNlclN0eWxlU2hlZXQoc291cmNlLCB1cmwsIFdURk1vdmUod2hpdGVsaXN0KSwgV1RG
TW92ZShibG9ja2xpc3QpLCBpbmplY3RlZEZyYW1lcywgbGV2ZWwsIFdURk1vdmUoKnBhZ2VJRCkp
OwogICAgIHJldHVybiB0cnVlOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>