<?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>141528</bug_id>
          
          <creation_ts>2015-02-12 12:28:01 -0800</creation_ts>
          <short_desc>Fix multiple issues with text-underline-position:under</short_desc>
          <delta_ts>2015-02-16 10:03:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1068705</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2015-02-12 12:28:01 -0800</bug_when>
    <thetext>text-underline-position: under has multiple correctness issues:

(1) Doesn&apos;t work with vertical-lr
(2) Is always including replaced elements in the &quot;under&quot; check
(3) Doesn&apos;t limit the &quot;under&quot; check to the containing element with the text-decoration specified</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068708</commentid>
    <comment_count>1</comment_count>
      <attachid>246465</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2015-02-12 12:32:18 -0800</bug_when>
    <thetext>Created attachment 246465
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068709</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-12 12:34:05 -0800</bug_when>
    <thetext>Attachment 246465 did not pass style-queue:


ERROR: Source/WebCore/rendering/RenderObject.cpp:2114:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebCore/rendering/InlineFlowBox.h:297:  The parameter name &quot;textDecoration&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/rendering/InlineFlowBox.h:298:  The parameter name &quot;textDecoration&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/rendering/RenderElement.h:195:  The parameter name &quot;textDecoration&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 4 in 18 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068712</commentid>
    <comment_count>3</comment_count>
      <attachid>246468</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2015-02-12 12:45:12 -0800</bug_when>
    <thetext>Created attachment 246468
Patch

Patch updated to Tot and with style fixes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069474</commentid>
    <comment_count>4</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2015-02-16 10:03:48 -0800</bug_when>
    <thetext>Fixed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246465</attachid>
            <date>2015-02-12 12:32:18 -0800</date>
            <delta_ts>2015-02-12 12:45:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>25747</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MDAwMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDE1LTAyLTEyICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICB0ZXh0LXVuZGVybGluZS1wb3NpdGlv
bjp1bmRlciBoYXMgbXVsdGlwbGUgY29ycmVjdG5lc3MgaXNzdWVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE1MjgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIGJ1bmNoIG9mIG5ldyB0ZXN0
cyBpbiBmYXN0L3RleHQKKworICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6Om1heExvZ2ljYWxCb3R0b21Gb3JUZXh0
RGVjb3JhdGlvbkxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6bWluTG9n
aWNhbFRvcEZvclRleHREZWNvcmF0aW9uTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVG
bG93Qm94Ojpjb21wdXRlTWF4TG9naWNhbEJvdHRvbSk6IERlbGV0ZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL0lubGluZUZsb3dCb3guaDoKKyAgICAgICAgVGhlc2UgZnVuY3Rpb25zIGhhdmUgYmVl
biByZS13cml0dGVuIHRvIHRha2UgYW4gZW5jbG9zaW5nIHJlbmRlcmVyIHRoYXQgc3BlY2lmaWVk
IHRoZQorICAgICAgICBkZWNvcmF0aW9uLiBUaGlzIHdheSB0aGV5IGNhbiBwcm9wZXJseSBsaW1p
dCB0aGUgYm90dG9tL3RvcCBjb21wdXRhdGlvbiB0byBvbmx5IGxpbmUgYm94ZXMKKyAgICAgICAg
dGhhdCBhcmUgY29udGFpbmVkIGluc2lkZSB0aGUgcmVuZGVyZXIuCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvSW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94
OjpwYWludERlY29yYXRpb24pOgorICAgICAgICBUd2VhayB0aGUgY2FsbCB0byBnZXQgdGhlIGRl
Y29yYXRpb24gY29sb3JzIG5vdyB0aGF0IHF1aXJrcyBtb2RlIGhhcyBiZWVuIHJlbW92ZWQuCisK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJFbGVtZW50OjplbmNsb3NpbmdSZW5kZXJlcldpdGhUZXh0RGVjb3JhdGlvbik6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaDoKKyAgICAgICAgTmV3IGZ1bmN0aW9u
IHRoYXQgZmluZHMgdGhlIGVuY2xvc2luZyByZW5kZXJlciB0aGF0IHNwZWNpZmllZCBhIHRleHQg
ZGVjb3JhdGlvbi4gRm9yIG5vdworICAgICAgICB0aGlzIGlzIG9ubHkgdXNlZCBpbiB0aGUgInVu
ZGVyIiBwb3NpdGlvbiBjb21wdXRhdGlvbiwgYnV0IHNvb24gd2UnbGwgYmUgdXNpbmcgaXQKKyAg
ICAgICAgZXZlcnl3aGVyZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpnZXRUZXh0RGVjb3JhdGlvbkNvbG9y
cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICBSZW1vdmUg
dGhlIHF1aXJrcyBtb2RlIGFyZ3VtZW50LCBzaW5jZSB3ZSB3ZXJlIGFsd2F5cyBwYXNzaW5nIHRy
dWUgYW55d2F5IChtYWtpbmcgdGhlIGFyZ3VtZW50IGRlYWQpLgorCisgICAgICAgICogcmVuZGVy
aW5nL1Jvb3RJbmxpbmVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6
bWF4TG9naWNhbEJvdHRvbSk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1Jvb3RJbmxp
bmVCb3guaDoKKyAgICAgICAgR2V0IHJpZCBvZiB0aGVzZSBmdW5jdGlvbnMgYW5kIGp1c3QgaGF2
ZSBJbmxpbmVUZXh0Qm94U3R5bGUncyBjb21wdXRlVW5kZXJMaW5lT2Zmc2V0IGZ1bmN0aW9uIGNh
bGwKKyAgICAgICAgdGhlIElubGluZUZsb3dCb3ggZnVuY3Rpb25zIGRpcmVjdGx5LgorCisgICAg
ICAgICogc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNv
bXB1dGVVbmRlcmxpbmVPZmZzZXQpOgorICAgICAgICBSZS13cml0dGVuIHRvIGZldGNoIHRoZSBl
bmNsb3NpbmdSZW5kZXJlcldpdGhUZXh0RGVjb3JhdGlvbiBzbyB0aGF0IGl0IGNhbiBiZSBwYXNz
ZWQgdG8gdGhlIGxvZ2ljYWwgdG9wL2JvdHRvbQorICAgICAgICBjb21wdXRhdGlvbiB0byBsaW1p
dCB3aGljaCBsaW5lIGJveGVzIGdldCBpbmNsdWRlZC4KKwogMjAxNS0wMi0xMiAgQ29tbWl0IFF1
ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjE3OTk4Ny4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVG
bG93Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5l
Rmxvd0JveC5jcHAJKHJldmlzaW9uIDE3OTg4MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9JbmxpbmVGbG93Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQ4LDE4ICs3NDgsNDUgQEAg
dm9pZCBJbmxpbmVGbG93Qm94OjpwbGFjZUJveGVzSW5CbG9ja0RpcgogICAgIH0KIH0KIAotdm9p
ZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlTWF4TG9naWNhbEJvdHRvbShmbG9hdCYgbWF4TG9naWNh
bEJvdHRvbSkgY29uc3QKK3ZvaWQgSW5saW5lRmxvd0JveDo6bWF4TG9naWNhbEJvdHRvbUZvclRl
eHREZWNvcmF0aW9uTGluZShmbG9hdCYgbWF4TG9naWNhbEJvdHRvbSwgY29uc3QgUmVuZGVyRWxl
bWVudCogZGVjb3JhdGlvblJlbmRlcmVyLCBUZXh0RGVjb3JhdGlvbiB0ZXh0RGVjb3JhdGlvbikg
Y29uc3QKIHsKICAgICBmb3IgKElubGluZUJveCogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxk
OyBjaGlsZCA9IGNoaWxkLT5uZXh0T25MaW5lKCkpIHsKICAgICAgICAgaWYgKGNoaWxkLT5yZW5k
ZXJlcigpLmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKQogICAgICAgICAgICAgY29udGludWU7IC8v
IFBvc2l0aW9uZWQgcGxhY2Vob2xkZXJzIGRvbid0IGFmZmVjdCBjYWxjdWxhdGlvbnMuCi0KLSAg
ICAgICAgaWYgKGRlc2NlbmRhbnRzSGF2ZVNhbWVMaW5lSGVpZ2h0QW5kQmFzZWxpbmUoKSkKKyAg
ICAgICAgCisgICAgICAgIGlmICghKGNoaWxkLT5saW5lU3R5bGUoKS50ZXh0RGVjb3JhdGlvbnNJ
bkVmZmVjdCgpICYgdGV4dERlY29yYXRpb24pKQorICAgICAgICAgICAgY29udGludWU7IC8vIElm
IHRoZSB0ZXh0IGRlY29yYXRpb24gaXNuJ3QgaW4gZWZmZWN0IG9uIHRoZSBjaGlsZCwgdGhlbiBp
dCBtdXN0IGJlIG91dHNpZGUgb2YgfGRlY29yYXRpb25SZW5kZXJlcnwncyBoaWVyYXJjaHkuCisg
ICAgICAgIAorICAgICAgICBpZiAoZGVjb3JhdGlvblJlbmRlcmVyICYmIGRlY29yYXRpb25SZW5k
ZXJlci0+aXNSZW5kZXJJbmxpbmUoKSAmJiAhaXNBbmNlc3RvckFuZFdpdGhpbkJsb2NrKGRvd25j
YXN0PFJlbmRlcklubGluZT4oKmRlY29yYXRpb25SZW5kZXJlciksICZjaGlsZC0+cmVuZGVyZXIo
KSkpCiAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgCisgICAgICAgIGlmIChpczxJbmxp
bmVGbG93Qm94PigqY2hpbGQpKQorICAgICAgICAgICAgZG93bmNhc3Q8SW5saW5lRmxvd0JveD4o
KmNoaWxkKS5tYXhMb2dpY2FsQm90dG9tRm9yVGV4dERlY29yYXRpb25MaW5lKG1heExvZ2ljYWxC
b3R0b20sIGRlY29yYXRpb25SZW5kZXJlciwgdGV4dERlY29yYXRpb24pOworICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgIGlmIChjaGlsZC0+aXNJbmxpbmVUZXh0Qm94KCkgfHwgY2hpbGQtPmxp
bmVTdHlsZSgpLnRleHREZWNvcmF0aW9uU2tpcCgpID09IFRleHREZWNvcmF0aW9uU2tpcE5vbmUp
CisgICAgICAgICAgICAgICAgbWF4TG9naWNhbEJvdHRvbSA9IHN0ZDo6bWF4PGZsb2F0PihtYXhM
b2dpY2FsQm90dG9tLCBjaGlsZC0+bG9naWNhbEJvdHRvbSgpKTsKKyAgICAgICAgfQorICAgIH0K
K30KIAotICAgICAgICBtYXhMb2dpY2FsQm90dG9tID0gc3RkOjptYXg8ZmxvYXQ+KG1heExvZ2lj
YWxCb3R0b20sIGNoaWxkLT5sb2dpY2FsQm90dG9tKCkpOwordm9pZCBJbmxpbmVGbG93Qm94Ojpt
aW5Mb2dpY2FsVG9wRm9yVGV4dERlY29yYXRpb25MaW5lKGZsb2F0JiBtaW5Mb2dpY2FsVG9wLCBj
b25zdCBSZW5kZXJFbGVtZW50KiBkZWNvcmF0aW9uUmVuZGVyZXIsIFRleHREZWNvcmF0aW9uIHRl
eHREZWNvcmF0aW9uKSBjb25zdAoreworICAgIGZvciAoSW5saW5lQm94KiBjaGlsZCA9IGZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRPbkxpbmUoKSkgeworICAgICAgICBp
ZiAoY2hpbGQtPnJlbmRlcmVyKCkuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCisgICAgICAgICAg
ICBjb250aW51ZTsgLy8gUG9zaXRpb25lZCBwbGFjZWhvbGRlcnMgZG9uJ3QgYWZmZWN0IGNhbGN1
bGF0aW9ucy4KKyAgICAgICAgCisgICAgICAgIGlmICghKGNoaWxkLT5saW5lU3R5bGUoKS50ZXh0
RGVjb3JhdGlvbnNJbkVmZmVjdCgpICYgdGV4dERlY29yYXRpb24pKQorICAgICAgICAgICAgY29u
dGludWU7IC8vIElmIHRoZSB0ZXh0IGRlY29yYXRpb24gaXNuJ3QgaW4gZWZmZWN0IG9uIHRoZSBj
aGlsZCwgdGhlbiBpdCBtdXN0IGJlIG91dHNpZGUgb2YgfGRlY29yYXRpb25SZW5kZXJlcnwncyBo
aWVyYXJjaHkuCisgICAgICAgIAorICAgICAgICBpZiAoZGVjb3JhdGlvblJlbmRlcmVyICYmIGRl
Y29yYXRpb25SZW5kZXJlci0+aXNSZW5kZXJJbmxpbmUoKSAmJiAhaXNBbmNlc3RvckFuZFdpdGhp
bkJsb2NrKGRvd25jYXN0PFJlbmRlcklubGluZT4oKmRlY29yYXRpb25SZW5kZXJlciksICZjaGls
ZC0+cmVuZGVyZXIoKSkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgCiAgICAgICAg
IGlmIChpczxJbmxpbmVGbG93Qm94PigqY2hpbGQpKQotICAgICAgICAgICAgZG93bmNhc3Q8SW5s
aW5lRmxvd0JveD4oKmNoaWxkKS5jb21wdXRlTWF4TG9naWNhbEJvdHRvbShtYXhMb2dpY2FsQm90
dG9tKTsKKyAgICAgICAgICAgIGRvd25jYXN0PElubGluZUZsb3dCb3g+KCpjaGlsZCkubWluTG9n
aWNhbFRvcEZvclRleHREZWNvcmF0aW9uTGluZShtaW5Mb2dpY2FsVG9wLCBkZWNvcmF0aW9uUmVu
ZGVyZXIsIHRleHREZWNvcmF0aW9uKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAo
Y2hpbGQtPmlzSW5saW5lVGV4dEJveCgpIHx8IGNoaWxkLT5saW5lU3R5bGUoKS50ZXh0RGVjb3Jh
dGlvblNraXAoKSA9PSBUZXh0RGVjb3JhdGlvblNraXBOb25lKQorICAgICAgICAgICAgICAgIG1p
bkxvZ2ljYWxUb3AgPSBzdGQ6Om1pbjxmbG9hdD4obWluTG9naWNhbFRvcCwgY2hpbGQtPmxvZ2lj
YWxUb3AoKSk7CisgICAgICAgIH0KICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVGbG93Qm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZUZsb3dCb3guaAkocmV2aXNpb24gMTc5ODgzKQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaAkod29ya2luZyBjb3B5KQpAQCAtMjkzLDYgKzI5
MywxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvbXB1dGVSZXBsYWNlZEFuZFRleHRMaW5lVG9w
QW5kQm90dG9tKExheW91dFVuaXQmIGxpbmVUb3AsIExheW91dFVuaXQmIGxpbmVCb3R0b20pIGNv
bnN0OwogICAgIAorICAgIC8vIFVzZWQgdG8gY2FsY3VsYXRlIHRoZSB1bmRlcmxpbmUgb2Zmc2V0
IGZvciBUZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlci4KKyAgICB2b2lkIG1heExvZ2ljYWxCb3R0
b21Gb3JUZXh0RGVjb3JhdGlvbkxpbmUoZmxvYXQmIG1heExvZ2ljYWxCb3R0b20sIGNvbnN0IFJl
bmRlckVsZW1lbnQqIGRlY29yYXRpb25SZW5kZXJlciwgVGV4dERlY29yYXRpb24gdGV4dERlY29y
YXRpb24pIGNvbnN0OworICAgIHZvaWQgbWluTG9naWNhbFRvcEZvclRleHREZWNvcmF0aW9uTGlu
ZShmbG9hdCYgbWluTG9naWNhbFRvcCwgY29uc3QgUmVuZGVyRWxlbWVudCogZGVjb3JhdGlvblJl
bmRlcmVyLCBUZXh0RGVjb3JhdGlvbiB0ZXh0RGVjb3JhdGlvbikgY29uc3Q7CisKIHByaXZhdGU6
CiAgICAgdmlydHVhbCBib29sIGlzSW5saW5lRmxvd0JveCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFs
IHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGJveE1vZGVsT2JqZWN0KCkgY29uc3QgPSBkZWxl
dGU7CkBAIC0zMTIsOSArMzE2LDYgQEAgcHJvdGVjdGVkOgogICAgIElubGluZUZsb3dCb3gqIG1f
cHJldkxpbmVCb3g7IC8vIFRoZSBwcmV2aW91cyBib3ggdGhhdCBhbHNvIHVzZXMgb3VyIFJlbmRl
ck9iamVjdAogICAgIElubGluZUZsb3dCb3gqIG1fbmV4dExpbmVCb3g7IC8vIFRoZSBuZXh0IGJv
eCB0aGF0IGFsc28gdXNlcyBvdXIgUmVuZGVyT2JqZWN0CiAKLSAgICAvLyBNYXhpbXVtIGxvZ2lj
YWxCb3R0b20gYW1vbmcgYWxsIGNoaWxkcmVuIG9mIGFuIElubGluZUZsb3dCb3guIFVzZWQgdG8K
LSAgICAvLyBjYWxjdWxhdGUgdGhlIG9mZnNldCBmb3IgVGV4dFVuZGVybGluZVBvc2l0aW9uVW5k
ZXIuCi0gICAgdm9pZCBjb21wdXRlTWF4TG9naWNhbEJvdHRvbShmbG9hdCYgbWF4TG9naWNhbEJv
dHRvbSkgY29uc3Q7CiBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1faW5jbHVkZUxvZ2ljYWxMZWZ0
RWRnZSA6IDE7CiAgICAgdW5zaWduZWQgbV9pbmNsdWRlTG9naWNhbFJpZ2h0RWRnZSA6IDE7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCShyZXZpc2lv
biAxNzk4ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTkxNSw5ICs5MTUsOSBAQCB2b2lkIElubGluZVRleHRCb3g6OnBh
aW50RGVjb3JhdGlvbihHcmFwCiAgICAgCiAgICAgLy8gR2V0IHRoZSB0ZXh0IGRlY29yYXRpb24g
Y29sb3JzLgogICAgIENvbG9yIHVuZGVybGluZSwgb3ZlcmxpbmUsIGxpbmV0aHJvdWdoOwotICAg
IHJlbmRlcmVyKCkuZ2V0VGV4dERlY29yYXRpb25Db2xvcnMoZGVjb3JhdGlvbiwgdW5kZXJsaW5l
LCBvdmVybGluZSwgbGluZXRocm91Z2gsIHRydWUpOworICAgIHJlbmRlcmVyKCkuZ2V0VGV4dERl
Y29yYXRpb25Db2xvcnMoZGVjb3JhdGlvbiwgdW5kZXJsaW5lLCBvdmVybGluZSwgbGluZXRocm91
Z2gpOwogICAgIGlmIChpc0ZpcnN0TGluZSgpKQotICAgICAgICByZW5kZXJlcigpLmdldFRleHRE
ZWNvcmF0aW9uQ29sb3JzKGRlY29yYXRpb24sIHVuZGVybGluZSwgb3ZlcmxpbmUsIGxpbmV0aHJv
dWdoLCB0cnVlLCB0cnVlKTsKKyAgICAgICAgcmVuZGVyZXIoKS5nZXRUZXh0RGVjb3JhdGlvbkNv
bG9ycyhkZWNvcmF0aW9uLCB1bmRlcmxpbmUsIG92ZXJsaW5lLCBsaW5ldGhyb3VnaCwgdHJ1ZSk7
CiAgICAgCiAgICAgLy8gVXNlIGEgc3BlY2lhbCBmdW5jdGlvbiBmb3IgdW5kZXJsaW5lcyB0byBn
ZXQgdGhlIHBvc2l0aW9uaW5nIGV4YWN0bHkgcmlnaHQuCiAgICAgYm9vbCBpc1ByaW50aW5nID0g
cmVuZGVyZXIoKS5kb2N1bWVudCgpLnByaW50aW5nKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCShyZXZpc2lvbiAxNzk4ODIpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2
NzUsNCArMTY3NSwyMiBAQCBMYXlvdXRSZWN0IFJlbmRlckVsZW1lbnQ6OmFuY2hvclJlY3QoKSBj
CiAgICAgcmV0dXJuIGVuY2xvc2luZ0xheW91dFJlY3QoRmxvYXRSZWN0KHVwcGVyTGVmdCwgbG93
ZXJSaWdodC5leHBhbmRlZFRvKHVwcGVyTGVmdCkgLSB1cHBlckxlZnQpKTsKIH0KIAorY29uc3Qg
UmVuZGVyRWxlbWVudCogUmVuZGVyRWxlbWVudDo6ZW5jbG9zaW5nUmVuZGVyZXJXaXRoVGV4dERl
Y29yYXRpb24oVGV4dERlY29yYXRpb24gdGV4dERlY29yYXRpb24sIGJvb2wgZmlyc3RMaW5lKSBj
b25zdAoreworICAgIGNvbnN0IFJlbmRlckVsZW1lbnQqIGN1cnJlbnQgPSB0aGlzOworICAgIGRv
IHsKKyAgICAgICAgaWYgKGN1cnJlbnQtPmlzUmVuZGVyQmxvY2soKSkKKyAgICAgICAgICAgIHJl
dHVybiBjdXJyZW50OworICAgICAgICBpZiAoIWN1cnJlbnQtPmlzUmVuZGVySW5saW5lKCkgfHwg
Y3VycmVudC0+aXNSdWJ5VGV4dCgpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
ICAgIAorICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGVUb1VzZSA9IGZpcnN0TGluZSA/
IGN1cnJlbnQtPmZpcnN0TGluZVN0eWxlKCkgOiBjdXJyZW50LT5zdHlsZSgpOworICAgICAgICBp
ZiAoc3R5bGVUb1VzZS50ZXh0RGVjb3JhdGlvbigpICYgdGV4dERlY29yYXRpb24pCisgICAgICAg
ICAgICByZXR1cm4gY3VycmVudDsKKyAgICAgICAgY3VycmVudCA9IGN1cnJlbnQtPnBhcmVudCgp
OworICAgIH0gd2hpbGUgKGN1cnJlbnQgJiYgKCFjdXJyZW50LT5lbGVtZW50KCkgfHwgKCFpczxI
VE1MQW5jaG9yRWxlbWVudD4oKmN1cnJlbnQtPmVsZW1lbnQoKSkgJiYgIWN1cnJlbnQtPmVsZW1l
bnQoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmZvbnRUYWcpKSkpOworCisgICAgcmV0dXJuIGN1
cnJlbnQ7Cit9CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1l
bnQuaAkocmV2aXNpb24gMTc5ODgyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTkxLDYgKzE5MSw4IEBAIHB1YmxpYzoKIAog
ICAgIGJvb2wgaXNDU1NBbmltYXRpbmcoKSBjb25zdCB7IHJldHVybiBtX2lzQ1NTQW5pbWF0aW5n
OyB9CiAgICAgdm9pZCBzZXRJc0NTU0FuaW1hdGluZyhib29sIGIpIHsgbV9pc0NTU0FuaW1hdGlu
ZyA9IGI7IH0KKyAgICAKKyAgICBjb25zdCBSZW5kZXJFbGVtZW50KiBlbmNsb3NpbmdSZW5kZXJl
cldpdGhUZXh0RGVjb3JhdGlvbihUZXh0RGVjb3JhdGlvbiB0ZXh0RGVjb3JhdGlvbiwgYm9vbCBm
aXJzdExpbmUpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBCYXNlVHlwZUZsYWdzIHsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCShyZXZpc2lv
biAxNzk4ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjExMSw3ICsyMTExLDcgQEAgc3RhdGljIENvbG9yIGRlY29yYXRp
b25Db2xvcihSZW5kZXJTdHlsZQogfQogCiB2b2lkIFJlbmRlck9iamVjdDo6Z2V0VGV4dERlY29y
YXRpb25Db2xvcnMoaW50IGRlY29yYXRpb25zLCBDb2xvciYgdW5kZXJsaW5lLCBDb2xvciYgb3Zl
cmxpbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3Im
IGxpbmV0aHJvdWdoLCBib29sIHF1aXJrc01vZGUsIGJvb2wgZmlyc3RsaW5lU3R5bGUpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sb3ImIGxpbmV0aHJvdWdo
LCBib29sIGZpcnN0bGluZVN0eWxlKQogewogICAgIFJlbmRlck9iamVjdCogY3VycmVudCA9IHRo
aXM7CiAgICAgUmVuZGVyU3R5bGUqIHN0eWxlVG9Vc2UgPSBudWxscHRyOwpAQCAtMjE0MSw3ICsy
MTQxLDcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OmdldFRleHREZWNvcmF0aW9uQ29sbwogICAgICAg
ICBjdXJyZW50ID0gY3VycmVudC0+cGFyZW50KCk7CiAgICAgICAgIGlmIChjdXJyZW50ICYmIGN1
cnJlbnQtPmlzQW5vbnltb3VzQmxvY2soKSAmJiBkb3duY2FzdDxSZW5kZXJCbG9jaz4oKmN1cnJl
bnQpLmNvbnRpbnVhdGlvbigpKQogICAgICAgICAgICAgY3VycmVudCA9IGRvd25jYXN0PFJlbmRl
ckJsb2NrPigqY3VycmVudCkuY29udGludWF0aW9uKCk7Ci0gICAgfSB3aGlsZSAoY3VycmVudCAm
JiBkZWNvcmF0aW9ucyAmJiAoIXF1aXJrc01vZGUgfHwgIWN1cnJlbnQtPm5vZGUoKSB8fCAoIWlz
PEhUTUxBbmNob3JFbGVtZW50PigqY3VycmVudC0+bm9kZSgpKSAmJiAhY3VycmVudC0+bm9kZSgp
LT5oYXNUYWdOYW1lKGZvbnRUYWcpKSkpOworICAgIH0gd2hpbGUgKGN1cnJlbnQgJiYgZGVjb3Jh
dGlvbnMgJiYgKCFjdXJyZW50LT5ub2RlKCkgfHwgKCFpczxIVE1MQW5jaG9yRWxlbWVudD4oKmN1
cnJlbnQtPm5vZGUoKSkgJiYgIWN1cnJlbnQtPm5vZGUoKS0+aGFzVGFnTmFtZShmb250VGFnKSkp
KTsKIAogICAgIC8vIElmIHdlIGJhaWxlZCBvdXQsIHVzZSB0aGUgZWxlbWVudCB3ZSBiYWlsZWQg
b3V0IGF0ICh0eXBpY2FsbHkgYSA8Zm9udD4gb3IgPGE+IGVsZW1lbnQpLgogICAgIGlmIChkZWNv
cmF0aW9ucyAmJiBjdXJyZW50KSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oCShyZXZpc2lvbiAxNzk4ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTcwMiw3ICs3MDIsNyBAQCBwdWJsaWM6
CiAgICAgCiAgICAgdmlydHVhbCBDdXJzb3JEaXJlY3RpdmUgZ2V0Q3Vyc29yKGNvbnN0IExheW91
dFBvaW50JiwgQ3Vyc29yJikgY29uc3Q7CiAKLSAgICB2b2lkIGdldFRleHREZWNvcmF0aW9uQ29s
b3JzKGludCBkZWNvcmF0aW9ucywgQ29sb3ImIHVuZGVybGluZSwgQ29sb3ImIG92ZXJsaW5lLCBD
b2xvciYgbGluZXRocm91Z2gsIGJvb2wgcXVpcmtzTW9kZSA9IGZhbHNlLCBib29sIGZpcnN0bGlu
ZVN0eWxlID0gZmFsc2UpOworICAgIHZvaWQgZ2V0VGV4dERlY29yYXRpb25Db2xvcnMoaW50IGRl
Y29yYXRpb25zLCBDb2xvciYgdW5kZXJsaW5lLCBDb2xvciYgb3ZlcmxpbmUsIENvbG9yJiBsaW5l
dGhyb3VnaCwgYm9vbCBmaXJzdGxpbmVTdHlsZSA9IGZhbHNlKTsKIAogICAgIC8vIFJldHVybiB0
aGUgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCBpbiB0aGUgY29udGFpbmVyIGNoYWluIHdoaWNoIGlz
IHJlc3BvbnNpYmxlIGZvciBwYWludGluZyB0aGlzIG9iamVjdCwgb3IgMAogICAgIC8vIGlmIHBh
aW50aW5nIGlzIHJvb3QtcmVsYXRpdmUuIFRoaXMgaXMgdGhlIGNvbnRhaW5lciB0aGF0IHNob3Vs
ZCBiZSBwYXNzZWQgdG8gdGhlICdmb3JSZXBhaW50JwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9Sb290SW5saW5lQm94LmNwcAkocmV2aXNpb24gMTc5ODgzKQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTQs
MTMgKzMxNCw2IEBAIExheW91dFVuaXQgUm9vdElubGluZUJveDo6YWxpZ25Cb3hlc0luQmwKICAg
ICByZXR1cm4gaGVpZ2h0T2ZCbG9jayArIG1heEhlaWdodDsKIH0KIAotZmxvYXQgUm9vdElubGlu
ZUJveDo6bWF4TG9naWNhbEJvdHRvbSgpIGNvbnN0Ci17Ci0gICAgZmxvYXQgbWF4TG9naWNhbEJv
dHRvbSA9IGxvZ2ljYWxCb3R0b20oKTsKLSAgICBjb21wdXRlTWF4TG9naWNhbEJvdHRvbShtYXhM
b2dpY2FsQm90dG9tKTsKLSAgICByZXR1cm4gbWF4TG9naWNhbEJvdHRvbTsKLX0KLQogTGF5b3V0
VW5pdCBSb290SW5saW5lQm94OjpiZWZvcmVBbm5vdGF0aW9uc0FkanVzdG1lbnQoKSBjb25zdAog
ewogICAgIExheW91dFVuaXQgcmVzdWx0ID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9Sb290SW5saW5lQm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1Jvb3RJbmxpbmVCb3guaAkocmV2aXNpb24gMTc5ODgzKQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaAkod29ya2luZyBjb3B5KQpAQCAtMTg3LDkgKzE4Nyw2
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIElubGluZUZsb3dCb3g6OmxvZ2ljYWxCb3R0b21M
YXlvdXRPdmVyZmxvdyhsaW5lQm90dG9tKCkpOwogICAgIH0KIAotICAgIC8vIFVzZWQgdG8gY2Fs
Y3VsYXRlIHRoZSB1bmRlcmxpbmUgb2Zmc2V0IGZvciBUZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRl
ci4KLSAgICBmbG9hdCBtYXhMb2dpY2FsQm90dG9tKCkgY29uc3Q7Ci0KICAgICBOb2RlKiBnZXRM
b2dpY2FsU3RhcnRCb3hXaXRoTm9kZShJbmxpbmVCb3gqJikgY29uc3Q7CiAgICAgTm9kZSogZ2V0
TG9naWNhbEVuZEJveFdpdGhOb2RlKElubGluZUJveComKSBjb25zdDsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwCShyZXZpc2lvbiAxNzk4ODMp
CisrKyBTb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00Niw3ICs0NiwxOSBAQCBpbnQgY29tcHV0ZVVuZGVybGluZU9mZnNldChUZXh0
VW5kZXJsaW5lCiAgICAgY2FzZSBUZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlcjogewogICAgICAg
ICBBU1NFUlQoaW5saW5lVGV4dEJveCk7CiAgICAgICAgIC8vIFBvc2l0aW9uIHVuZGVybGluZSBy
ZWxhdGl2ZSB0byB0aGUgYm90dG9tIGVkZ2Ugb2YgdGhlIGxvd2VzdCBlbGVtZW50J3MgY29udGVu
dCBib3guCi0gICAgICAgIGZsb2F0IG9mZnNldCA9IGlubGluZVRleHRCb3gtPnJvb3QoKS5tYXhM
b2dpY2FsQm90dG9tKCkgLSBpbmxpbmVUZXh0Qm94LT5sb2dpY2FsQm90dG9tKCk7CisgICAgICAg
IGNvbnN0IFJvb3RJbmxpbmVCb3gmIHJvb3RCb3ggPSBpbmxpbmVUZXh0Qm94LT5yb290KCk7Cisg
ICAgICAgIGNvbnN0IFJlbmRlckVsZW1lbnQqIGRlY29yYXRpb25SZW5kZXJlciA9IGlubGluZVRl
eHRCb3gtPnBhcmVudCgpLT5yZW5kZXJlcigpLmVuY2xvc2luZ1JlbmRlcmVyV2l0aFRleHREZWNv
cmF0aW9uKFRleHREZWNvcmF0aW9uVW5kZXJsaW5lLCBpbmxpbmVUZXh0Qm94LT5pc0ZpcnN0TGlu
ZSgpKTsKKyAgICAgICAgCisgICAgICAgIGZsb2F0IG9mZnNldDsKKyAgICAgICAgaWYgKGlubGlu
ZVRleHRCb3gtPnJlbmRlcmVyKCkuc3R5bGUoKS5pc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKCkp
IHsKKyAgICAgICAgICAgIG9mZnNldCA9IGlubGluZVRleHRCb3gtPmxvZ2ljYWxUb3AoKTsKKyAg
ICAgICAgICAgIHJvb3RCb3gubWluTG9naWNhbFRvcEZvclRleHREZWNvcmF0aW9uTGluZShvZmZz
ZXQsIGRlY29yYXRpb25SZW5kZXJlciwgVGV4dERlY29yYXRpb25VbmRlcmxpbmUpOworICAgICAg
ICAgICAgb2Zmc2V0ID0gaW5saW5lVGV4dEJveC0+bG9naWNhbFRvcCgpIC0gb2Zmc2V0OworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgb2Zmc2V0ID0gaW5saW5lVGV4dEJveC0+bG9naWNh
bEJvdHRvbSgpOworICAgICAgICAgICAgcm9vdEJveC5tYXhMb2dpY2FsQm90dG9tRm9yVGV4dERl
Y29yYXRpb25MaW5lKG9mZnNldCwgZGVjb3JhdGlvblJlbmRlcmVyLCBUZXh0RGVjb3JhdGlvblVu
ZGVybGluZSk7CisgICAgICAgICAgICBvZmZzZXQgLT0gaW5saW5lVGV4dEJveC0+bG9naWNhbEJv
dHRvbSgpOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBpbmxpbmVUZXh0Qm94LT5sb2dpY2Fs
SGVpZ2h0KCkgKyBnYXAgKyBzdGQ6Om1heDxmbG9hdD4ob2Zmc2V0LCAwKTsKICAgICB9CiAgICAg
fQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gMTgwMDAzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTUtMDItMTIgIERhdmlkIEh5YXR0ICA8
aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIHRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOnVuZGVy
IGhhcyBtdWx0aXBsZSBjb3JyZWN0bmVzcyBpc3N1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTUyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC90ZXh0L3RleHQtdW5kZXJsaW5lLWZpcnN0
LWxpbmUtZGVjb3JhdGlvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3Rl
eHQvdGV4dC11bmRlcmxpbmUtZmlyc3QtbGluZS1kZWNvcmF0aW9uLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvdGV4dC90ZXh0LXVuZGVybGluZS1wb3NpdGlvbi1taXhlZC1mb250cy1leHBl
Y3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvdGV4dC11bmRlcmxpbmUtcG9z
aXRpb24tbWl4ZWQtZm9udHMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0L3RleHQt
dW5kZXJsaW5lLXBvc2l0aW9uLXN1YnNjcmlwdC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3RleHQvdGV4dC11bmRlcmxpbmUtcG9zaXRpb24tc3Vic2NyaXB0Lmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC90ZXh0LXVuZGVybGluZS12ZXJ0aWNhbC1maXJzdC1s
aW5lLWRlY29yYXRpb24tZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0
L3RleHQtdW5kZXJsaW5lLXZlcnRpY2FsLWZpcnN0LWxpbmUtZGVjb3JhdGlvbi5odG1sOiBBZGRl
ZC4KKwogMjAxNS0wMi0xMiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE3OTk4Ny4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LXVuZGVybGluZS1maXJzdC1saW5lLWRlY29yYXRpb24tZXhw
ZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC11bmRl
cmxpbmUtZmlyc3QtbGluZS1kZWNvcmF0aW9uLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC11bmRlcmxpbmUtZmlyc3QtbGluZS1kZWNvcmF0
aW9uLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMyBAQAorPD94bWwg
dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCis8IURPQ1RZUEUgaHRtbCBQVUJMSUMg
Ii0vL1czQy8vRFREIFhIVE1MIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEx
L0RURC94aHRtbDExLmR0ZCI+DQorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiIHhtbG5zOmlib29rcz0iaHR0cDovL2FwcGxlLmNvbS9pYm9va3MvaHRtbC1leHRlbnNp
b25zIiB4bWxuczplcHViPSJodHRwOi8vd3d3LmlkcGYub3JnLzIwMDcvb3BzIj4NCis8aGVhZD4N
Cis8L2hlYWQ+DQorPGJvZHkgc3R5bGU9Im92ZXJmbG93OmhpZGRlbiI+DQorPHA+VGVzdCB0byBt
YWtlIHN1cmUgdGhhdCB0aGUgZGVjb3JhdGlvbiBsaW5lIHBhaW50cyBwcm9wZXJseSB1bmRlcm5l
YXRoIHRoZSBzdWJzY3JpcHQuDQorPC9wPg0KKw0KKzxwIGNsYXNzPSJkZWNvcmF0ZSIgc3R5bGU9
ImZvbnQtc2l6ZToyNHB4OyBmbG9hdDpsZWZ0Oy13ZWJraXQtdGV4dC11bmRlcmxpbmUtcG9zaXRp
b246dW5kZXI7IGJvcmRlcjoxcHggZG90dGVkIG9yYW5nZSI+DQorPHNwYW4gc3R5bGU9InRleHQt
ZGVjb3JhdGlvbjp1bmRlcmxpbmUiPlRoZSBmaXJzdCBsaW5lIDxzcGFuIHN0eWxlPSJ2ZXJ0aWNh
bC1hbGlnbjotMjBweCI+aGFzIGEgZGVjb3JhdGlvbiw8L3NwYW4+IGJ1dCBub3QgPC9zcGFuPjxp
bWcgc3R5bGU9InZlcnRpY2FsLWFsaWduOi0xMDBweDsgaGVpZ2h0OjIwcHg7d2lkdGg6MjBweDti
YWNrZ3JvdW5kLWNvbG9yOmxpbWUiPjxzcGFuIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246dW5kZXJs
aW5lIj4gdW5kZXIgdGhlIGltYWdlLjwvc3Bhbj48YnI+DQorVGhlIHNlY29uZCBsaW5lIHNob3Vs
ZCBub3QuDQorPC9wPg0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LXVuZGVybGlu
ZS1maXJzdC1saW5lLWRlY29yYXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L3RleHQvdGV4dC11bmRlcmxpbmUtZmlyc3QtbGluZS1kZWNvcmF0aW9uLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC11bmRlcmxpbmUtZmlyc3QtbGlu
ZS1kZWNvcmF0aW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNiBAQAorPD94bWwg
dmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCis8IURPQ1RZUEUgaHRtbCBQVUJMSUMg
Ii0vL1czQy8vRFREIFhIVE1MIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEx
L0RURC94aHRtbDExLmR0ZCI+DQorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwiIHhtbG5zOmlib29rcz0iaHR0cDovL2FwcGxlLmNvbS9pYm9va3MvaHRtbC1leHRlbnNp
b25zIiB4bWxuczplcHViPSJodHRwOi8vd3d3LmlkcGYub3JnLzIwMDcvb3BzIj4NCis8aGVhZD4N
Cis8c3R5bGU+DQorLmRlY29yYXRlOjpmaXJzdC1saW5lIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVy
bGluZSB9DQorPC9zdHlsZT4NCis8L2hlYWQ+DQorPGJvZHkgc3R5bGU9Im92ZXJmbG93OmhpZGRl
biI+DQorPHA+VGVzdCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgZGVjb3JhdGlvbiBsaW5lIHBhaW50
cyBwcm9wZXJseSB1bmRlcm5lYXRoIHRoZSBzdWJzY3JpcHQuDQorPC9wPg0KKw0KKzxwIGNsYXNz
PSJkZWNvcmF0ZSIgc3R5bGU9ImZvbnQtc2l6ZToyNHB4OyBmbG9hdDpsZWZ0Oy13ZWJraXQtdGV4
dC11bmRlcmxpbmUtcG9zaXRpb246dW5kZXI7IGJvcmRlcjoxcHggZG90dGVkIG9yYW5nZSI+DQor
VGhlIGZpcnN0IGxpbmUgPHNwYW4gc3R5bGU9InZlcnRpY2FsLWFsaWduOi0yMHB4Ij5oYXMgYSBk
ZWNvcmF0aW9uLDwvc3Bhbj4gYnV0IG5vdCA8aW1nIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjotMTAw
cHg7IGhlaWdodDoyMHB4O3dpZHRoOjIwcHg7YmFja2dyb3VuZC1jb2xvcjpsaW1lIj4gdW5kZXIg
dGhlIGltYWdlLjxicj4NCitUaGUgc2Vjb25kIGxpbmUgc2hvdWxkIG5vdC4NCis8L3A+DQpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQtdW5kZXJsaW5lLXBvc2l0aW9uLW1peGVkLWZv
bnRzLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3Rl
eHQtdW5kZXJsaW5lLXBvc2l0aW9uLW1peGVkLWZvbnRzLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC11bmRlcmxpbmUtcG9zaXRpb24tbWl4
ZWQtZm9udHMtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKKzw/
eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+DQorPCFET0NUWVBFIGh0bWwgUFVC
TElDICItLy9XM0MvL0RURCBYSFRNTCAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0
bWwxMS9EVEQveGh0bWwxMS5kdGQiPg0KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIiB4bWxuczppYm9va3M9Imh0dHA6Ly9hcHBsZS5jb20vaWJvb2tzL2h0bWwtZXh0
ZW5zaW9ucyIgeG1sbnM6ZXB1Yj0iaHR0cDovL3d3dy5pZHBmLm9yZy8yMDA3L29wcyI+DQorPGJv
ZHkgc3R5bGU9Im92ZXJmbG93OmhpZGRlbiI+DQorPHA+VGVzdCB0byBtYWtlIHN1cmUgZ2lnYW50
aWMgZm9udHMgdGhhdCBhcmVuJ3QgaW5zaWRlIHRoZSB0ZXh0IGRlY29yYXRpb24gZG9uJ3QgYWZm
ZWN0IHRoZSBwb3NpdGlvbiBvZg0KK3RoZSBsaW5lLiBUaGUgZ2lhbnQgZm9udCBpcyBpbnZpc2li
bGUgKGNvbG9yOnRyYW5zcGFyZW50KSBpbiB0aGlzIHRlc3QuDQorPC9wPg0KKw0KKzxzcGFuIHN0
eWxlPSJ0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOy13ZWJraXQtdGV4dC11bmRlcmxpbmUtcG9z
aXRpb246dW5kZXIiPlRoaXMgdGV4dCBzaG91bGQgYmUgdW5kZXJsaW5lZCBqdXN0IHVuZGVyIHRo
ZSBkZXNjZW5kZXJzLjwvc3Bhbj4gDQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQt
dW5kZXJsaW5lLXBvc2l0aW9uLW1peGVkLWZvbnRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC90ZXh0L3RleHQtdW5kZXJsaW5lLXBvc2l0aW9uLW1peGVkLWZvbnRzLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC11bmRlcmxpbmUtcG9z
aXRpb24tbWl4ZWQtZm9udHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKKzw/
eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+DQorPCFET0NUWVBFIGh0bWwgUFVC
TElDICItLy9XM0MvL0RURCBYSFRNTCAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0
bWwxMS9EVEQveGh0bWwxMS5kdGQiPg0KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIiB4bWxuczppYm9va3M9Imh0dHA6Ly9hcHBsZS5jb20vaWJvb2tzL2h0bWwtZXh0
ZW5zaW9ucyIgeG1sbnM6ZXB1Yj0iaHR0cDovL3d3dy5pZHBmLm9yZy8yMDA3L29wcyI+DQorPGJv
ZHkgc3R5bGU9Im92ZXJmbG93OmhpZGRlbiI+DQorPHA+VGVzdCB0byBtYWtlIHN1cmUgZ2lnYW50
aWMgZm9udHMgdGhhdCBhcmVuJ3QgaW5zaWRlIHRoZSB0ZXh0IGRlY29yYXRpb24gZG9uJ3QgYWZm
ZWN0IHRoZSBwb3NpdGlvbiBvZg0KK3RoZSBsaW5lLiBUaGUgZ2lhbnQgZm9udCBpcyBpbnZpc2li
bGUgKGNvbG9yOnRyYW5zcGFyZW50KSBpbiB0aGlzIHRlc3QuDQorPC9wPg0KKw0KKzxzcGFuIHN0
eWxlPSJ0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOy13ZWJraXQtdGV4dC11bmRlcmxpbmUtcG9z
aXRpb246dW5kZXIiPlRoaXMgdGV4dCBzaG91bGQgYmUgdW5kZXJsaW5lZCBqdXN0IHVuZGVyIHRo
ZSBkZXNjZW5kZXJzLjwvc3Bhbj4gPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTo2NHB4OyB2ZXJ0aWNh
bC1hbGlnbjotMjU2cHg7IGNvbG9yOnRyYW5zcGFyZW50Ij5TaG91bGQgbm90IGJlIHVuZGVybGlu
ZWQuPC9zcGFuPg0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LXVuZGVybGluZS1w
b3NpdGlvbi1zdWJzY3JpcHQtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L3RleHQvdGV4dC11bmRlcmxpbmUtcG9zaXRpb24tc3Vic2NyaXB0LWV4cGVjdGVkLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC11bmRlcmxpbmUt
cG9zaXRpb24tc3Vic2NyaXB0LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCis8IURPQ1RZ
UEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMS8vRU4iICJodHRwOi8vd3d3Lncz
Lm9yZy9UUi94aHRtbDExL0RURC94aHRtbDExLmR0ZCI+DQorPGh0bWwgeG1sbnM9Imh0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbG5zOmlib29rcz0iaHR0cDovL2FwcGxlLmNvbS9pYm9v
a3MvaHRtbC1leHRlbnNpb25zIiB4bWxuczplcHViPSJodHRwOi8vd3d3LmlkcGYub3JnLzIwMDcv
b3BzIj4NCis8aGVhZD4NCis8c3R5bGU+DQorLnllbGxvdzo6Zmlyc3QtbGluZSB7IGNvbG9yOmdy
ZXkgfQ0KKzwvc3R5bGU+DQorPC9oZWFkPg0KKzxib2R5Pg0KKzxwPlRlc3QgdG8gbWFrZSBzdXJl
IHRoYXQgdGhlIGRlY29yYXRpb24gbGluZSBwYWludHMgcHJvcGVybHkgdW5kZXJuZWF0aCB0aGUg
c3Vic2NyaXB0Lg0KKzwvcD4NCisNCis8cCBjbGFzcz0ieWVsbG93IiBzdHlsZT0iZm9udC1zaXpl
OjQwcHg7IHBhZGRpbmctdG9wOjVweDsgZmxvYXQ6bGVmdDsgdGV4dC1kZWNvcmF0aW9uOnVuZGVy
bGluZTstd2Via2l0LXRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOnVuZGVyOyBib3JkZXI6MXB4IGRv
dHRlZCBvcmFuZ2UiPjxzcGFuIHN0eWxlPSJwb3NpdGlvbjpyZWxhdGl2ZTsiPkhlcmUgaXMgdGhl
IHN1YnNjcmlwdCBmb3IgdGhpcyBsaW5lLjwvc3Bhbj4NCis8L3A+DQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L3RleHQtdW5kZXJsaW5lLXBvc2l0aW9uLXN1YnNjcmlwdC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LXVuZGVybGluZS1wb3NpdGlvbi1z
dWJzY3JpcHQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0
LXVuZGVybGluZS1wb3NpdGlvbi1zdWJzY3JpcHQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDE0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pg0KKzwhRE9D
VFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4xLy9FTiIgImh0dHA6Ly93d3cu
dzMub3JnL1RSL3hodG1sMTEvRFREL3hodG1sMTEuZHRkIj4NCis8aHRtbCB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sbnM6aWJvb2tzPSJodHRwOi8vYXBwbGUuY29tL2li
b29rcy9odG1sLWV4dGVuc2lvbnMiIHhtbG5zOmVwdWI9Imh0dHA6Ly93d3cuaWRwZi5vcmcvMjAw
Ny9vcHMiPg0KKzxoZWFkPg0KKzxzdHlsZT4NCisueWVsbG93OjpmaXJzdC1saW5lIHsgY29sb3I6
Z3JleSB9DQorPC9zdHlsZT4NCis8L2hlYWQ+DQorPGJvZHk+DQorPHA+VGVzdCB0byBtYWtlIHN1
cmUgdGhhdCB0aGUgZGVjb3JhdGlvbiBsaW5lIHBhaW50cyBwcm9wZXJseSB1bmRlcm5lYXRoIHRo
ZSBzdWJzY3JpcHQuDQorPC9wPg0KKw0KKzxwIGNsYXNzPSJ5ZWxsb3ciIHN0eWxlPSJmb250LXNp
emU6NDBweDsgZmxvYXQ6bGVmdDsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTstd2Via2l0LXRl
eHQtdW5kZXJsaW5lLXBvc2l0aW9uOnVuZGVyOyBib3JkZXI6MXB4IGRvdHRlZCBvcmFuZ2UiPjxz
cGFuIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjotNXB4OyI+SGVyZSBpcyB0aGUgc3Vic2NyaXB0IGZv
ciB0aGlzIGxpbmUuPC9zcGFuPg0KKzwvcD4NCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RleHQv
dGV4dC11bmRlcmxpbmUtdmVydGljYWwtZmlyc3QtbGluZS1kZWNvcmF0aW9uLWV4cGVjdGVkLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQtdW5kZXJsaW5lLXZl
cnRpY2FsLWZpcnN0LWxpbmUtZGVjb3JhdGlvbi1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQtdW5kZXJsaW5lLXZlcnRpY2FsLWZpcnN0LWxp
bmUtZGVjb3JhdGlvbi1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTgg
QEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+DQorPCFET0NUWVBFIGh0
bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcv
VFIveGh0bWwxMS9EVEQveGh0bWwxMS5kdGQiPg0KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sIiB4bWxuczppYm9va3M9Imh0dHA6Ly9hcHBsZS5jb20vaWJvb2tzL2h0
bWwtZXh0ZW5zaW9ucyIgeG1sbnM6ZXB1Yj0iaHR0cDovL3d3dy5pZHBmLm9yZy8yMDA3L29wcyI+
DQorPGhlYWQ+DQorPC9oZWFkPg0KKzxib2R5IHN0eWxlPSJvdmVyZmxvdzpoaWRkZW4iPg0KKzxw
PlRlc3QgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29yYXRpb24gbGluZSBwYWludHMgcHJvcGVy
bHkgdW5kZXJuZWF0aCB0aGUgc3Vic2NyaXB0Lg0KKzwvcD4NCisNCis8cCBjbGFzcz0iZGVjb3Jh
dGUiIHN0eWxlPSItd2Via2l0LXdyaXRpbmctbW9kZTp2ZXJ0aWNhbC1scjsgbWFyZ2luLXJpZ2h0
OjEwcHg7IGZvbnQtc2l6ZToyNHB4OyBmbG9hdDpsZWZ0Oy13ZWJraXQtdGV4dC11bmRlcmxpbmUt
cG9zaXRpb246dW5kZXI7IGJvcmRlcjoxcHggZG90dGVkIG9yYW5nZSI+DQorPHNwYW4gc3R5bGU9
InRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUiPlRoZSBmaXJzdCBsaW5lIDxzcGFuIHN0eWxlPSJ2
ZXJ0aWNhbC1hbGlnbjotMjBweCI+aGFzIGEgZGVjb3JhdGlvbiw8L3NwYW4+IGJ1dCBub3QgPC9z
cGFuPjxpbWcgc3R5bGU9InZlcnRpY2FsLWFsaWduOi0xMDBweDsgaGVpZ2h0OjIwcHg7d2lkdGg6
MjBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpbWUiPjxzcGFuIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246
dW5kZXJsaW5lIj4gdW5kZXIgdGhlIGltYWdlLjwvc3Bhbj48YnI+DQorVGhlIHNlY29uZCBsaW5l
IHNob3VsZCBub3QuDQorPC9wPg0KKw0KKzxwIGNsYXNzPSJkZWNvcmF0ZSIgc3R5bGU9Ii13ZWJr
aXQtd3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsOyBtYXJnaW4tcmlnaHQ6MTBweDsgZm9udC1zaXpl
OjI0cHg7IGZsb2F0OmxlZnQ7LXdlYmtpdC10ZXh0LXVuZGVybGluZS1wb3NpdGlvbjp1bmRlcjsg
Ym9yZGVyOjFweCBkb3R0ZWQgb3JhbmdlIj4NCis8c3BhbiBzdHlsZT0idGV4dC1kZWNvcmF0aW9u
OnVuZGVybGluZSI+VGhlIGZpcnN0IGxpbmUgPHNwYW4gc3R5bGU9InZlcnRpY2FsLWFsaWduOi0y
MHB4Ij5oYXMgYSBkZWNvcmF0aW9uLDwvc3Bhbj4gYnV0IG5vdCA8L3NwYW4+PGltZyBzdHlsZT0i
dmVydGljYWwtYWxpZ246LTEwMHB4OyBoZWlnaHQ6MjBweDt3aWR0aDoyMHB4O2JhY2tncm91bmQt
Y29sb3I6bGltZSI+PHNwYW4gc3R5bGU9InRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUiPiB1bmRl
ciB0aGUgaW1hZ2UuPC9zcGFuPjxicj4NCitUaGUgc2Vjb25kIGxpbmUgc2hvdWxkIG5vdC4NCis8
L3A+DQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQtdW5kZXJsaW5lLXZlcnRpY2Fs
LWZpcnN0LWxpbmUtZGVjb3JhdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvdGV4dC90ZXh0LXVuZGVybGluZS12ZXJ0aWNhbC1maXJzdC1saW5lLWRlY29yYXRpb24uaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LXVuZGVybGluZS12
ZXJ0aWNhbC1maXJzdC1saW5lLWRlY29yYXRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDIxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Pg0KKzwhRE9D
VFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4xLy9FTiIgImh0dHA6Ly93d3cu
dzMub3JnL1RSL3hodG1sMTEvRFREL3hodG1sMTEuZHRkIj4NCis8aHRtbCB4bWxucz0iaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sbnM6aWJvb2tzPSJodHRwOi8vYXBwbGUuY29tL2li
b29rcy9odG1sLWV4dGVuc2lvbnMiIHhtbG5zOmVwdWI9Imh0dHA6Ly93d3cuaWRwZi5vcmcvMjAw
Ny9vcHMiPg0KKzxoZWFkPg0KKzxzdHlsZT4NCisuZGVjb3JhdGU6OmZpcnN0LWxpbmUgeyB0ZXh0
LWRlY29yYXRpb246dW5kZXJsaW5lIH0NCis8L3N0eWxlPg0KKzwvaGVhZD4NCis8Ym9keSBzdHls
ZT0ib3ZlcmZsb3c6aGlkZGVuIj4NCis8cD5UZXN0IHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBkZWNv
cmF0aW9uIGxpbmUgcGFpbnRzIHByb3Blcmx5IHVuZGVybmVhdGggdGhlIHN1YnNjcmlwdC4NCis8
L3A+DQorDQorPHAgY2xhc3M9ImRlY29yYXRlIiBzdHlsZT0iLXdlYmtpdC13cml0aW5nLW1vZGU6
dmVydGljYWwtbHI7IG1hcmdpbi1yaWdodDoxMHB4OyBmb250LXNpemU6MjRweDsgZmxvYXQ6bGVm
dDstd2Via2l0LXRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOnVuZGVyOyBib3JkZXI6MXB4IGRvdHRl
ZCBvcmFuZ2UiPg0KK1RoZSBmaXJzdCBsaW5lIDxzcGFuIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjot
MjBweCI+aGFzIGEgZGVjb3JhdGlvbiw8L3NwYW4+IGJ1dCBub3QgPGltZyBzdHlsZT0idmVydGlj
YWwtYWxpZ246LTEwMHB4OyBoZWlnaHQ6MjBweDt3aWR0aDoyMHB4O2JhY2tncm91bmQtY29sb3I6
bGltZSI+IHVuZGVyIHRoZSBpbWFnZS48YnI+DQorVGhlIHNlY29uZCBsaW5lIHNob3VsZCBub3Qu
DQorPC9wPg0KKw0KKzxwIGNsYXNzPSJkZWNvcmF0ZSIgc3R5bGU9Ii13ZWJraXQtd3JpdGluZy1t
b2RlOnZlcnRpY2FsLXJsOyBtYXJnaW4tcmlnaHQ6MTBweDsgZm9udC1zaXplOjI0cHg7IGZsb2F0
OmxlZnQ7LXdlYmtpdC10ZXh0LXVuZGVybGluZS1wb3NpdGlvbjp1bmRlcjsgYm9yZGVyOjFweCBk
b3R0ZWQgb3JhbmdlIj4NCitUaGUgZmlyc3QgbGluZSA8c3BhbiBzdHlsZT0idmVydGljYWwtYWxp
Z246LTIwcHgiPmhhcyBhIGRlY29yYXRpb24sPC9zcGFuPiBidXQgbm90IDxpbWcgc3R5bGU9InZl
cnRpY2FsLWFsaWduOi0xMDBweDsgaGVpZ2h0OjIwcHg7d2lkdGg6MjBweDtiYWNrZ3JvdW5kLWNv
bG9yOmxpbWUiPiB1bmRlciB0aGUgaW1hZ2UuPGJyPg0KK1RoZSBzZWNvbmQgbGluZSBzaG91bGQg
bm90Lg0KKzwvcD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246468</attachid>
            <date>2015-02-12 12:45:12 -0800</date>
            <delta_ts>2015-02-12 13:16:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>25774</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MDAwNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDE1LTAyLTEyICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICB0ZXh0LXVuZGVybGluZS1wb3NpdGlv
bjp1bmRlciBoYXMgbXVsdGlwbGUgY29ycmVjdG5lc3MgaXNzdWVzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDE1MjgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIGJ1bmNoIG9mIG5ldyB0ZXN0
cyBpbiBmYXN0L3RleHQKKworICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVGbG93Qm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklubGluZUZsb3dCb3g6Om1heExvZ2ljYWxCb3R0b21Gb3JUZXh0
RGVjb3JhdGlvbkxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lRmxvd0JveDo6bWluTG9n
aWNhbFRvcEZvclRleHREZWNvcmF0aW9uTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVG
bG93Qm94Ojpjb21wdXRlTWF4TG9naWNhbEJvdHRvbSk6IERlbGV0ZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL0lubGluZUZsb3dCb3guaDoKKyAgICAgICAgVGhlc2UgZnVuY3Rpb25zIGhhdmUgYmVl
biByZS13cml0dGVuIHRvIHRha2UgYW4gZW5jbG9zaW5nIHJlbmRlcmVyIHRoYXQgc3BlY2lmaWVk
IHRoZQorICAgICAgICBkZWNvcmF0aW9uLiBUaGlzIHdheSB0aGV5IGNhbiBwcm9wZXJseSBsaW1p
dCB0aGUgYm90dG9tL3RvcCBjb21wdXRhdGlvbiB0byBvbmx5IGxpbmUgYm94ZXMKKyAgICAgICAg
dGhhdCBhcmUgY29udGFpbmVkIGluc2lkZSB0aGUgcmVuZGVyZXIuCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvSW5saW5lVGV4dEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94
OjpwYWludERlY29yYXRpb24pOgorICAgICAgICBUd2VhayB0aGUgY2FsbCB0byBnZXQgdGhlIGRl
Y29yYXRpb24gY29sb3JzIG5vdyB0aGF0IHF1aXJrcyBtb2RlIGhhcyBiZWVuIHJlbW92ZWQuCisK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJFbGVtZW50OjplbmNsb3NpbmdSZW5kZXJlcldpdGhUZXh0RGVjb3JhdGlvbik6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaDoKKyAgICAgICAgTmV3IGZ1bmN0aW9u
IHRoYXQgZmluZHMgdGhlIGVuY2xvc2luZyByZW5kZXJlciB0aGF0IHNwZWNpZmllZCBhIHRleHQg
ZGVjb3JhdGlvbi4gRm9yIG5vdworICAgICAgICB0aGlzIGlzIG9ubHkgdXNlZCBpbiB0aGUgInVu
ZGVyIiBwb3NpdGlvbiBjb21wdXRhdGlvbiwgYnV0IHNvb24gd2UnbGwgYmUgdXNpbmcgaXQKKyAg
ICAgICAgZXZlcnl3aGVyZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpnZXRUZXh0RGVjb3JhdGlvbkNvbG9y
cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICBSZW1vdmUg
dGhlIHF1aXJrcyBtb2RlIGFyZ3VtZW50LCBzaW5jZSB3ZSB3ZXJlIGFsd2F5cyBwYXNzaW5nIHRy
dWUgYW55d2F5IChtYWtpbmcgdGhlIGFyZ3VtZW50IGRlYWQpLgorCisgICAgICAgICogcmVuZGVy
aW5nL1Jvb3RJbmxpbmVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6Um9vdElubGluZUJveDo6
bWF4TG9naWNhbEJvdHRvbSk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1Jvb3RJbmxp
bmVCb3guaDoKKyAgICAgICAgR2V0IHJpZCBvZiB0aGVzZSBmdW5jdGlvbnMgYW5kIGp1c3QgaGF2
ZSBJbmxpbmVUZXh0Qm94U3R5bGUncyBjb21wdXRlVW5kZXJMaW5lT2Zmc2V0IGZ1bmN0aW9uIGNh
bGwKKyAgICAgICAgdGhlIElubGluZUZsb3dCb3ggZnVuY3Rpb25zIGRpcmVjdGx5LgorCisgICAg
ICAgICogc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNv
bXB1dGVVbmRlcmxpbmVPZmZzZXQpOgorICAgICAgICBSZS13cml0dGVuIHRvIGZldGNoIHRoZSBl
bmNsb3NpbmdSZW5kZXJlcldpdGhUZXh0RGVjb3JhdGlvbiBzbyB0aGF0IGl0IGNhbiBiZSBwYXNz
ZWQgdG8gdGhlIGxvZ2ljYWwgdG9wL2JvdHRvbQorICAgICAgICBjb21wdXRhdGlvbiB0byBsaW1p
dCB3aGljaCBsaW5lIGJveGVzIGdldCBpbmNsdWRlZC4KKwogMjAxNS0wMi0xMiAgQ29tbWl0IFF1
ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjE3OTk4Ny4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVG
bG93Qm94LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5l
Rmxvd0JveC5jcHAJKHJldmlzaW9uIDE4MDAwNCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9JbmxpbmVGbG93Qm94LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzQ4LDE4ICs3NDgsNDUgQEAg
dm9pZCBJbmxpbmVGbG93Qm94OjpwbGFjZUJveGVzSW5CbG9ja0RpcgogICAgIH0KIH0KIAotdm9p
ZCBJbmxpbmVGbG93Qm94Ojpjb21wdXRlTWF4TG9naWNhbEJvdHRvbShmbG9hdCYgbWF4TG9naWNh
bEJvdHRvbSkgY29uc3QKK3ZvaWQgSW5saW5lRmxvd0JveDo6bWF4TG9naWNhbEJvdHRvbUZvclRl
eHREZWNvcmF0aW9uTGluZShmbG9hdCYgbWF4TG9naWNhbEJvdHRvbSwgY29uc3QgUmVuZGVyRWxl
bWVudCogZGVjb3JhdGlvblJlbmRlcmVyLCBUZXh0RGVjb3JhdGlvbiB0ZXh0RGVjb3JhdGlvbikg
Y29uc3QKIHsKICAgICBmb3IgKElubGluZUJveCogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxk
OyBjaGlsZCA9IGNoaWxkLT5uZXh0T25MaW5lKCkpIHsKICAgICAgICAgaWYgKGNoaWxkLT5yZW5k
ZXJlcigpLmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKQogICAgICAgICAgICAgY29udGludWU7IC8v
IFBvc2l0aW9uZWQgcGxhY2Vob2xkZXJzIGRvbid0IGFmZmVjdCBjYWxjdWxhdGlvbnMuCi0KLSAg
ICAgICAgaWYgKGRlc2NlbmRhbnRzSGF2ZVNhbWVMaW5lSGVpZ2h0QW5kQmFzZWxpbmUoKSkKKyAg
ICAgICAgCisgICAgICAgIGlmICghKGNoaWxkLT5saW5lU3R5bGUoKS50ZXh0RGVjb3JhdGlvbnNJ
bkVmZmVjdCgpICYgdGV4dERlY29yYXRpb24pKQorICAgICAgICAgICAgY29udGludWU7IC8vIElm
IHRoZSB0ZXh0IGRlY29yYXRpb24gaXNuJ3QgaW4gZWZmZWN0IG9uIHRoZSBjaGlsZCwgdGhlbiBp
dCBtdXN0IGJlIG91dHNpZGUgb2YgfGRlY29yYXRpb25SZW5kZXJlcnwncyBoaWVyYXJjaHkuCisg
ICAgICAgIAorICAgICAgICBpZiAoZGVjb3JhdGlvblJlbmRlcmVyICYmIGRlY29yYXRpb25SZW5k
ZXJlci0+aXNSZW5kZXJJbmxpbmUoKSAmJiAhaXNBbmNlc3RvckFuZFdpdGhpbkJsb2NrKGRvd25j
YXN0PFJlbmRlcklubGluZT4oKmRlY29yYXRpb25SZW5kZXJlciksICZjaGlsZC0+cmVuZGVyZXIo
KSkpCiAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgCisgICAgICAgIGlmIChpczxJbmxp
bmVGbG93Qm94PigqY2hpbGQpKQorICAgICAgICAgICAgZG93bmNhc3Q8SW5saW5lRmxvd0JveD4o
KmNoaWxkKS5tYXhMb2dpY2FsQm90dG9tRm9yVGV4dERlY29yYXRpb25MaW5lKG1heExvZ2ljYWxC
b3R0b20sIGRlY29yYXRpb25SZW5kZXJlciwgdGV4dERlY29yYXRpb24pOworICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgIGlmIChjaGlsZC0+aXNJbmxpbmVUZXh0Qm94KCkgfHwgY2hpbGQtPmxp
bmVTdHlsZSgpLnRleHREZWNvcmF0aW9uU2tpcCgpID09IFRleHREZWNvcmF0aW9uU2tpcE5vbmUp
CisgICAgICAgICAgICAgICAgbWF4TG9naWNhbEJvdHRvbSA9IHN0ZDo6bWF4PGZsb2F0PihtYXhM
b2dpY2FsQm90dG9tLCBjaGlsZC0+bG9naWNhbEJvdHRvbSgpKTsKKyAgICAgICAgfQorICAgIH0K
K30KIAotICAgICAgICBtYXhMb2dpY2FsQm90dG9tID0gc3RkOjptYXg8ZmxvYXQ+KG1heExvZ2lj
YWxCb3R0b20sIGNoaWxkLT5sb2dpY2FsQm90dG9tKCkpOwordm9pZCBJbmxpbmVGbG93Qm94Ojpt
aW5Mb2dpY2FsVG9wRm9yVGV4dERlY29yYXRpb25MaW5lKGZsb2F0JiBtaW5Mb2dpY2FsVG9wLCBj
b25zdCBSZW5kZXJFbGVtZW50KiBkZWNvcmF0aW9uUmVuZGVyZXIsIFRleHREZWNvcmF0aW9uIHRl
eHREZWNvcmF0aW9uKSBjb25zdAoreworICAgIGZvciAoSW5saW5lQm94KiBjaGlsZCA9IGZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRPbkxpbmUoKSkgeworICAgICAgICBp
ZiAoY2hpbGQtPnJlbmRlcmVyKCkuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCisgICAgICAgICAg
ICBjb250aW51ZTsgLy8gUG9zaXRpb25lZCBwbGFjZWhvbGRlcnMgZG9uJ3QgYWZmZWN0IGNhbGN1
bGF0aW9ucy4KKyAgICAgICAgCisgICAgICAgIGlmICghKGNoaWxkLT5saW5lU3R5bGUoKS50ZXh0
RGVjb3JhdGlvbnNJbkVmZmVjdCgpICYgdGV4dERlY29yYXRpb24pKQorICAgICAgICAgICAgY29u
dGludWU7IC8vIElmIHRoZSB0ZXh0IGRlY29yYXRpb24gaXNuJ3QgaW4gZWZmZWN0IG9uIHRoZSBj
aGlsZCwgdGhlbiBpdCBtdXN0IGJlIG91dHNpZGUgb2YgfGRlY29yYXRpb25SZW5kZXJlcnwncyBo
aWVyYXJjaHkuCisgICAgICAgIAorICAgICAgICBpZiAoZGVjb3JhdGlvblJlbmRlcmVyICYmIGRl
Y29yYXRpb25SZW5kZXJlci0+aXNSZW5kZXJJbmxpbmUoKSAmJiAhaXNBbmNlc3RvckFuZFdpdGhp
bkJsb2NrKGRvd25jYXN0PFJlbmRlcklubGluZT4oKmRlY29yYXRpb25SZW5kZXJlciksICZjaGls
ZC0+cmVuZGVyZXIoKSkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgCiAgICAgICAg
IGlmIChpczxJbmxpbmVGbG93Qm94PigqY2hpbGQpKQotICAgICAgICAgICAgZG93bmNhc3Q8SW5s
aW5lRmxvd0JveD4oKmNoaWxkKS5jb21wdXRlTWF4TG9naWNhbEJvdHRvbShtYXhMb2dpY2FsQm90
dG9tKTsKKyAgICAgICAgICAgIGRvd25jYXN0PElubGluZUZsb3dCb3g+KCpjaGlsZCkubWluTG9n
aWNhbFRvcEZvclRleHREZWNvcmF0aW9uTGluZShtaW5Mb2dpY2FsVG9wLCBkZWNvcmF0aW9uUmVu
ZGVyZXIsIHRleHREZWNvcmF0aW9uKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAo
Y2hpbGQtPmlzSW5saW5lVGV4dEJveCgpIHx8IGNoaWxkLT5saW5lU3R5bGUoKS50ZXh0RGVjb3Jh
dGlvblNraXAoKSA9PSBUZXh0RGVjb3JhdGlvblNraXBOb25lKQorICAgICAgICAgICAgICAgIG1p
bkxvZ2ljYWxUb3AgPSBzdGQ6Om1pbjxmbG9hdD4obWluTG9naWNhbFRvcCwgY2hpbGQtPmxvZ2lj
YWxUb3AoKSk7CisgICAgICAgIH0KICAgICB9CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVGbG93Qm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZUZsb3dCb3guaAkocmV2aXNpb24gMTgwMDA0KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0lubGluZUZsb3dCb3guaAkod29ya2luZyBjb3B5KQpAQCAtMjkzLDYgKzI5
MywxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvbXB1dGVSZXBsYWNlZEFuZFRleHRMaW5lVG9w
QW5kQm90dG9tKExheW91dFVuaXQmIGxpbmVUb3AsIExheW91dFVuaXQmIGxpbmVCb3R0b20pIGNv
bnN0OwogICAgIAorICAgIC8vIFVzZWQgdG8gY2FsY3VsYXRlIHRoZSB1bmRlcmxpbmUgb2Zmc2V0
IGZvciBUZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlci4KKyAgICB2b2lkIG1heExvZ2ljYWxCb3R0
b21Gb3JUZXh0RGVjb3JhdGlvbkxpbmUoZmxvYXQmIG1heExvZ2ljYWxCb3R0b20sIGNvbnN0IFJl
bmRlckVsZW1lbnQqIGRlY29yYXRpb25SZW5kZXJlciwgVGV4dERlY29yYXRpb24pIGNvbnN0Owor
ICAgIHZvaWQgbWluTG9naWNhbFRvcEZvclRleHREZWNvcmF0aW9uTGluZShmbG9hdCYgbWluTG9n
aWNhbFRvcCwgY29uc3QgUmVuZGVyRWxlbWVudCogZGVjb3JhdGlvblJlbmRlcmVyLCBUZXh0RGVj
b3JhdGlvbikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzSW5saW5lRmxv
d0JveCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGJv
eE1vZGVsT2JqZWN0KCkgY29uc3QgPSBkZWxldGU7CkBAIC0zMTIsOSArMzE2LDYgQEAgcHJvdGVj
dGVkOgogICAgIElubGluZUZsb3dCb3gqIG1fcHJldkxpbmVCb3g7IC8vIFRoZSBwcmV2aW91cyBi
b3ggdGhhdCBhbHNvIHVzZXMgb3VyIFJlbmRlck9iamVjdAogICAgIElubGluZUZsb3dCb3gqIG1f
bmV4dExpbmVCb3g7IC8vIFRoZSBuZXh0IGJveCB0aGF0IGFsc28gdXNlcyBvdXIgUmVuZGVyT2Jq
ZWN0CiAKLSAgICAvLyBNYXhpbXVtIGxvZ2ljYWxCb3R0b20gYW1vbmcgYWxsIGNoaWxkcmVuIG9m
IGFuIElubGluZUZsb3dCb3guIFVzZWQgdG8KLSAgICAvLyBjYWxjdWxhdGUgdGhlIG9mZnNldCBm
b3IgVGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXIuCi0gICAgdm9pZCBjb21wdXRlTWF4TG9naWNh
bEJvdHRvbShmbG9hdCYgbWF4TG9naWNhbEJvdHRvbSkgY29uc3Q7CiBwcml2YXRlOgogICAgIHVu
c2lnbmVkIG1faW5jbHVkZUxvZ2ljYWxMZWZ0RWRnZSA6IDE7CiAgICAgdW5zaWduZWQgbV9pbmNs
dWRlTG9naWNhbFJpZ2h0RWRnZSA6IDE7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SW5saW5lVGV4dEJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0lubGluZVRleHRCb3guY3BwCShyZXZpc2lvbiAxODAwMDQpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkxNSw5ICs5MTUs
OSBAQCB2b2lkIElubGluZVRleHRCb3g6OnBhaW50RGVjb3JhdGlvbihHcmFwCiAgICAgCiAgICAg
Ly8gR2V0IHRoZSB0ZXh0IGRlY29yYXRpb24gY29sb3JzLgogICAgIENvbG9yIHVuZGVybGluZSwg
b3ZlcmxpbmUsIGxpbmV0aHJvdWdoOwotICAgIHJlbmRlcmVyKCkuZ2V0VGV4dERlY29yYXRpb25D
b2xvcnMoZGVjb3JhdGlvbiwgdW5kZXJsaW5lLCBvdmVybGluZSwgbGluZXRocm91Z2gsIHRydWUp
OworICAgIHJlbmRlcmVyKCkuZ2V0VGV4dERlY29yYXRpb25Db2xvcnMoZGVjb3JhdGlvbiwgdW5k
ZXJsaW5lLCBvdmVybGluZSwgbGluZXRocm91Z2gpOwogICAgIGlmIChpc0ZpcnN0TGluZSgpKQot
ICAgICAgICByZW5kZXJlcigpLmdldFRleHREZWNvcmF0aW9uQ29sb3JzKGRlY29yYXRpb24sIHVu
ZGVybGluZSwgb3ZlcmxpbmUsIGxpbmV0aHJvdWdoLCB0cnVlLCB0cnVlKTsKKyAgICAgICAgcmVu
ZGVyZXIoKS5nZXRUZXh0RGVjb3JhdGlvbkNvbG9ycyhkZWNvcmF0aW9uLCB1bmRlcmxpbmUsIG92
ZXJsaW5lLCBsaW5ldGhyb3VnaCwgdHJ1ZSk7CiAgICAgCiAgICAgLy8gVXNlIGEgc3BlY2lhbCBm
dW5jdGlvbiBmb3IgdW5kZXJsaW5lcyB0byBnZXQgdGhlIHBvc2l0aW9uaW5nIGV4YWN0bHkgcmln
aHQuCiAgICAgYm9vbCBpc1ByaW50aW5nID0gcmVuZGVyZXIoKS5kb2N1bWVudCgpLnByaW50aW5n
KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCShy
ZXZpc2lvbiAxODAwMDQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NzUsNCArMTY3NSwyMiBAQCBMYXlvdXRSZWN0IFJl
bmRlckVsZW1lbnQ6OmFuY2hvclJlY3QoKSBjCiAgICAgcmV0dXJuIGVuY2xvc2luZ0xheW91dFJl
Y3QoRmxvYXRSZWN0KHVwcGVyTGVmdCwgbG93ZXJSaWdodC5leHBhbmRlZFRvKHVwcGVyTGVmdCkg
LSB1cHBlckxlZnQpKTsKIH0KIAorY29uc3QgUmVuZGVyRWxlbWVudCogUmVuZGVyRWxlbWVudDo6
ZW5jbG9zaW5nUmVuZGVyZXJXaXRoVGV4dERlY29yYXRpb24oVGV4dERlY29yYXRpb24gdGV4dERl
Y29yYXRpb24sIGJvb2wgZmlyc3RMaW5lKSBjb25zdAoreworICAgIGNvbnN0IFJlbmRlckVsZW1l
bnQqIGN1cnJlbnQgPSB0aGlzOworICAgIGRvIHsKKyAgICAgICAgaWYgKGN1cnJlbnQtPmlzUmVu
ZGVyQmxvY2soKSkKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50OworICAgICAgICBpZiAoIWN1
cnJlbnQtPmlzUmVuZGVySW5saW5lKCkgfHwgY3VycmVudC0+aXNSdWJ5VGV4dCgpKQorICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIAorICAgICAgICBjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGVUb1VzZSA9IGZpcnN0TGluZSA/IGN1cnJlbnQtPmZpcnN0TGluZVN0eWxlKCkgOiBj
dXJyZW50LT5zdHlsZSgpOworICAgICAgICBpZiAoc3R5bGVUb1VzZS50ZXh0RGVjb3JhdGlvbigp
ICYgdGV4dERlY29yYXRpb24pCisgICAgICAgICAgICByZXR1cm4gY3VycmVudDsKKyAgICAgICAg
Y3VycmVudCA9IGN1cnJlbnQtPnBhcmVudCgpOworICAgIH0gd2hpbGUgKGN1cnJlbnQgJiYgKCFj
dXJyZW50LT5lbGVtZW50KCkgfHwgKCFpczxIVE1MQW5jaG9yRWxlbWVudD4oKmN1cnJlbnQtPmVs
ZW1lbnQoKSkgJiYgIWN1cnJlbnQtPmVsZW1lbnQoKS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmZv
bnRUYWcpKSkpOworCisgICAgcmV0dXJuIGN1cnJlbnQ7Cit9CisKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAkocmV2aXNpb24gMTgwMDA0KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MTkxLDYgKzE5MSw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNDU1NBbmltYXRpbmcoKSBjb25z
dCB7IHJldHVybiBtX2lzQ1NTQW5pbWF0aW5nOyB9CiAgICAgdm9pZCBzZXRJc0NTU0FuaW1hdGlu
Zyhib29sIGIpIHsgbV9pc0NTU0FuaW1hdGluZyA9IGI7IH0KKyAgICAKKyAgICBjb25zdCBSZW5k
ZXJFbGVtZW50KiBlbmNsb3NpbmdSZW5kZXJlcldpdGhUZXh0RGVjb3JhdGlvbihUZXh0RGVjb3Jh
dGlvbiwgYm9vbCBmaXJzdExpbmUpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBCYXNl
VHlwZUZsYWdzIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwCShyZXZpc2lvbiAxODAwMDQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjExMCw4ICsyMTEwLDcgQEAgc3RhdGljIENv
bG9yIGRlY29yYXRpb25Db2xvcihSZW5kZXJTdHlsZQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LXZvaWQgUmVuZGVyT2JqZWN0OjpnZXRUZXh0RGVjb3JhdGlvbkNvbG9ycyhpbnQgZGVjb3JhdGlv
bnMsIENvbG9yJiB1bmRlcmxpbmUsIENvbG9yJiBvdmVybGluZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBDb2xvciYgbGluZXRocm91Z2gsIGJvb2wgcXVpcmtz
TW9kZSwgYm9vbCBmaXJzdGxpbmVTdHlsZSkKK3ZvaWQgUmVuZGVyT2JqZWN0OjpnZXRUZXh0RGVj
b3JhdGlvbkNvbG9ycyhpbnQgZGVjb3JhdGlvbnMsIENvbG9yJiB1bmRlcmxpbmUsIENvbG9yJiBv
dmVybGluZSwgQ29sb3ImIGxpbmV0aHJvdWdoLCBib29sIGZpcnN0bGluZVN0eWxlKQogewogICAg
IFJlbmRlck9iamVjdCogY3VycmVudCA9IHRoaXM7CiAgICAgUmVuZGVyU3R5bGUqIHN0eWxlVG9V
c2UgPSBudWxscHRyOwpAQCAtMjE0MSw3ICsyMTQwLDcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6Omdl
dFRleHREZWNvcmF0aW9uQ29sbwogICAgICAgICBjdXJyZW50ID0gY3VycmVudC0+cGFyZW50KCk7
CiAgICAgICAgIGlmIChjdXJyZW50ICYmIGN1cnJlbnQtPmlzQW5vbnltb3VzQmxvY2soKSAmJiBk
b3duY2FzdDxSZW5kZXJCbG9jaz4oKmN1cnJlbnQpLmNvbnRpbnVhdGlvbigpKQogICAgICAgICAg
ICAgY3VycmVudCA9IGRvd25jYXN0PFJlbmRlckJsb2NrPigqY3VycmVudCkuY29udGludWF0aW9u
KCk7Ci0gICAgfSB3aGlsZSAoY3VycmVudCAmJiBkZWNvcmF0aW9ucyAmJiAoIXF1aXJrc01vZGUg
fHwgIWN1cnJlbnQtPm5vZGUoKSB8fCAoIWlzPEhUTUxBbmNob3JFbGVtZW50PigqY3VycmVudC0+
bm9kZSgpKSAmJiAhY3VycmVudC0+bm9kZSgpLT5oYXNUYWdOYW1lKGZvbnRUYWcpKSkpOworICAg
IH0gd2hpbGUgKGN1cnJlbnQgJiYgZGVjb3JhdGlvbnMgJiYgKCFjdXJyZW50LT5ub2RlKCkgfHwg
KCFpczxIVE1MQW5jaG9yRWxlbWVudD4oKmN1cnJlbnQtPm5vZGUoKSkgJiYgIWN1cnJlbnQtPm5v
ZGUoKS0+aGFzVGFnTmFtZShmb250VGFnKSkpKTsKIAogICAgIC8vIElmIHdlIGJhaWxlZCBvdXQs
IHVzZSB0aGUgZWxlbWVudCB3ZSBiYWlsZWQgb3V0IGF0ICh0eXBpY2FsbHkgYSA8Zm9udD4gb3Ig
PGE+IGVsZW1lbnQpLgogICAgIGlmIChkZWNvcmF0aW9ucyAmJiBjdXJyZW50KSB7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCShyZXZpc2lvbiAxODAwMDQpCisr
KyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTcwMiw3ICs3MDIsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCBDdXJzb3JEaXJl
Y3RpdmUgZ2V0Q3Vyc29yKGNvbnN0IExheW91dFBvaW50JiwgQ3Vyc29yJikgY29uc3Q7CiAKLSAg
ICB2b2lkIGdldFRleHREZWNvcmF0aW9uQ29sb3JzKGludCBkZWNvcmF0aW9ucywgQ29sb3ImIHVu
ZGVybGluZSwgQ29sb3ImIG92ZXJsaW5lLCBDb2xvciYgbGluZXRocm91Z2gsIGJvb2wgcXVpcmtz
TW9kZSA9IGZhbHNlLCBib29sIGZpcnN0bGluZVN0eWxlID0gZmFsc2UpOworICAgIHZvaWQgZ2V0
VGV4dERlY29yYXRpb25Db2xvcnMoaW50IGRlY29yYXRpb25zLCBDb2xvciYgdW5kZXJsaW5lLCBD
b2xvciYgb3ZlcmxpbmUsIENvbG9yJiBsaW5ldGhyb3VnaCwgYm9vbCBmaXJzdGxpbmVTdHlsZSA9
IGZhbHNlKTsKIAogICAgIC8vIFJldHVybiB0aGUgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCBpbiB0
aGUgY29udGFpbmVyIGNoYWluIHdoaWNoIGlzIHJlc3BvbnNpYmxlIGZvciBwYWludGluZyB0aGlz
IG9iamVjdCwgb3IgMAogICAgIC8vIGlmIHBhaW50aW5nIGlzIHJvb3QtcmVsYXRpdmUuIFRoaXMg
aXMgdGhlIGNvbnRhaW5lciB0aGF0IHNob3VsZCBiZSBwYXNzZWQgdG8gdGhlICdmb3JSZXBhaW50
JwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmNwcAkocmV2
aXNpb24gMTgwMDA0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3gu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTQsMTMgKzMxNCw2IEBAIExheW91dFVuaXQgUm9vdElu
bGluZUJveDo6YWxpZ25Cb3hlc0luQmwKICAgICByZXR1cm4gaGVpZ2h0T2ZCbG9jayArIG1heEhl
aWdodDsKIH0KIAotZmxvYXQgUm9vdElubGluZUJveDo6bWF4TG9naWNhbEJvdHRvbSgpIGNvbnN0
Ci17Ci0gICAgZmxvYXQgbWF4TG9naWNhbEJvdHRvbSA9IGxvZ2ljYWxCb3R0b20oKTsKLSAgICBj
b21wdXRlTWF4TG9naWNhbEJvdHRvbShtYXhMb2dpY2FsQm90dG9tKTsKLSAgICByZXR1cm4gbWF4
TG9naWNhbEJvdHRvbTsKLX0KLQogTGF5b3V0VW5pdCBSb290SW5saW5lQm94OjpiZWZvcmVBbm5v
dGF0aW9uc0FkanVzdG1lbnQoKSBjb25zdAogewogICAgIExheW91dFVuaXQgcmVzdWx0ID0gMDsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Sb290SW5saW5lQm94LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaAkocmV2aXNpb24g
MTgwMDA0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jvb3RJbmxpbmVCb3guaAkod29y
a2luZyBjb3B5KQpAQCAtMTg3LDkgKzE4Nyw2IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIElu
bGluZUZsb3dCb3g6OmxvZ2ljYWxCb3R0b21MYXlvdXRPdmVyZmxvdyhsaW5lQm90dG9tKCkpOwog
ICAgIH0KIAotICAgIC8vIFVzZWQgdG8gY2FsY3VsYXRlIHRoZSB1bmRlcmxpbmUgb2Zmc2V0IGZv
ciBUZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlci4KLSAgICBmbG9hdCBtYXhMb2dpY2FsQm90dG9t
KCkgY29uc3Q7Ci0KICAgICBOb2RlKiBnZXRMb2dpY2FsU3RhcnRCb3hXaXRoTm9kZShJbmxpbmVC
b3gqJikgY29uc3Q7CiAgICAgTm9kZSogZ2V0TG9naWNhbEVuZEJveFdpdGhOb2RlKElubGluZUJv
eComKSBjb25zdDsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0
eWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94
U3R5bGUuY3BwCShyZXZpc2lvbiAxODAwMDQpCisrKyBTb3VyY2UvV2ViQ29yZS9zdHlsZS9Jbmxp
bmVUZXh0Qm94U3R5bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0NiwxOSBAQCBpbnQg
Y29tcHV0ZVVuZGVybGluZU9mZnNldChUZXh0VW5kZXJsaW5lCiAgICAgY2FzZSBUZXh0VW5kZXJs
aW5lUG9zaXRpb25VbmRlcjogewogICAgICAgICBBU1NFUlQoaW5saW5lVGV4dEJveCk7CiAgICAg
ICAgIC8vIFBvc2l0aW9uIHVuZGVybGluZSByZWxhdGl2ZSB0byB0aGUgYm90dG9tIGVkZ2Ugb2Yg
dGhlIGxvd2VzdCBlbGVtZW50J3MgY29udGVudCBib3guCi0gICAgICAgIGZsb2F0IG9mZnNldCA9
IGlubGluZVRleHRCb3gtPnJvb3QoKS5tYXhMb2dpY2FsQm90dG9tKCkgLSBpbmxpbmVUZXh0Qm94
LT5sb2dpY2FsQm90dG9tKCk7CisgICAgICAgIGNvbnN0IFJvb3RJbmxpbmVCb3gmIHJvb3RCb3gg
PSBpbmxpbmVUZXh0Qm94LT5yb290KCk7CisgICAgICAgIGNvbnN0IFJlbmRlckVsZW1lbnQqIGRl
Y29yYXRpb25SZW5kZXJlciA9IGlubGluZVRleHRCb3gtPnBhcmVudCgpLT5yZW5kZXJlcigpLmVu
Y2xvc2luZ1JlbmRlcmVyV2l0aFRleHREZWNvcmF0aW9uKFRleHREZWNvcmF0aW9uVW5kZXJsaW5l
LCBpbmxpbmVUZXh0Qm94LT5pc0ZpcnN0TGluZSgpKTsKKyAgICAgICAgCisgICAgICAgIGZsb2F0
IG9mZnNldDsKKyAgICAgICAgaWYgKGlubGluZVRleHRCb3gtPnJlbmRlcmVyKCkuc3R5bGUoKS5p
c0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKCkpIHsKKyAgICAgICAgICAgIG9mZnNldCA9IGlubGlu
ZVRleHRCb3gtPmxvZ2ljYWxUb3AoKTsKKyAgICAgICAgICAgIHJvb3RCb3gubWluTG9naWNhbFRv
cEZvclRleHREZWNvcmF0aW9uTGluZShvZmZzZXQsIGRlY29yYXRpb25SZW5kZXJlciwgVGV4dERl
Y29yYXRpb25VbmRlcmxpbmUpOworICAgICAgICAgICAgb2Zmc2V0ID0gaW5saW5lVGV4dEJveC0+
bG9naWNhbFRvcCgpIC0gb2Zmc2V0OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgb2Zm
c2V0ID0gaW5saW5lVGV4dEJveC0+bG9naWNhbEJvdHRvbSgpOworICAgICAgICAgICAgcm9vdEJv
eC5tYXhMb2dpY2FsQm90dG9tRm9yVGV4dERlY29yYXRpb25MaW5lKG9mZnNldCwgZGVjb3JhdGlv
blJlbmRlcmVyLCBUZXh0RGVjb3JhdGlvblVuZGVybGluZSk7CisgICAgICAgICAgICBvZmZzZXQg
LT0gaW5saW5lVGV4dEJveC0+bG9naWNhbEJvdHRvbSgpOworICAgICAgICB9CiAgICAgICAgIHJl
dHVybiBpbmxpbmVUZXh0Qm94LT5sb2dpY2FsSGVpZ2h0KCkgKyBnYXAgKyBzdGQ6Om1heDxmbG9h
dD4ob2Zmc2V0LCAwKTsKICAgICB9CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTgwMDA0KQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMTUtMDItMTIgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIHRl
eHQtdW5kZXJsaW5lLXBvc2l0aW9uOnVuZGVyIGhhcyBtdWx0aXBsZSBjb3JyZWN0bmVzcyBpc3N1
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTUy
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFz
dC90ZXh0L3RleHQtdW5kZXJsaW5lLWZpcnN0LWxpbmUtZGVjb3JhdGlvbi1leHBlY3RlZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvdGV4dC11bmRlcmxpbmUtZmlyc3QtbGluZS1k
ZWNvcmF0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC90ZXh0LXVuZGVybGlu
ZS1wb3NpdGlvbi1taXhlZC1mb250cy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L3RleHQvdGV4dC11bmRlcmxpbmUtcG9zaXRpb24tbWl4ZWQtZm9udHMuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC90ZXh0L3RleHQtdW5kZXJsaW5lLXBvc2l0aW9uLXN1YnNjcmlwdC1l
eHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQvdGV4dC11bmRlcmxpbmUt
cG9zaXRpb24tc3Vic2NyaXB0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvdGV4dC90ZXh0
LXVuZGVybGluZS12ZXJ0aWNhbC1maXJzdC1saW5lLWRlY29yYXRpb24tZXhwZWN0ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0L3RleHQtdW5kZXJsaW5lLXZlcnRpY2FsLWZpcnN0
LWxpbmUtZGVjb3JhdGlvbi5odG1sOiBBZGRlZC4KKwogMjAxNS0wMi0xMiAgQ29tbWl0IFF1ZXVl
ICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjE3OTk4Ny4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LXVuZGVybGlu
ZS1maXJzdC1saW5lLWRlY29yYXRpb24tZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L3RleHQvdGV4dC11bmRlcmxpbmUtZmlyc3QtbGluZS1kZWNvcmF0aW9uLWV4
cGVjdGVkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC11
bmRlcmxpbmUtZmlyc3QtbGluZS1kZWNvcmF0aW9uLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi
Pz4NCis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMS8vRU4iICJo
dHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDExL0RURC94aHRtbDExLmR0ZCI+DQorPGh0bWwgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbG5zOmlib29rcz0iaHR0cDovL2Fw
cGxlLmNvbS9pYm9va3MvaHRtbC1leHRlbnNpb25zIiB4bWxuczplcHViPSJodHRwOi8vd3d3Lmlk
cGYub3JnLzIwMDcvb3BzIj4NCis8aGVhZD4NCis8L2hlYWQ+DQorPGJvZHkgc3R5bGU9Im92ZXJm
bG93OmhpZGRlbiI+DQorPHA+VGVzdCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgZGVjb3JhdGlvbiBs
aW5lIHBhaW50cyBwcm9wZXJseSB1bmRlcm5lYXRoIHRoZSBzdWJzY3JpcHQuDQorPC9wPg0KKw0K
KzxwIGNsYXNzPSJkZWNvcmF0ZSIgc3R5bGU9ImZvbnQtc2l6ZToyNHB4OyBmbG9hdDpsZWZ0Oy13
ZWJraXQtdGV4dC11bmRlcmxpbmUtcG9zaXRpb246dW5kZXI7IGJvcmRlcjoxcHggZG90dGVkIG9y
YW5nZSI+DQorPHNwYW4gc3R5bGU9InRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUiPlRoZSBmaXJz
dCBsaW5lIDxzcGFuIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjotMjBweCI+aGFzIGEgZGVjb3JhdGlv
biw8L3NwYW4+IGJ1dCBub3QgPC9zcGFuPjxpbWcgc3R5bGU9InZlcnRpY2FsLWFsaWduOi0xMDBw
eDsgaGVpZ2h0OjIwcHg7d2lkdGg6MjBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpbWUiPjxzcGFuIHN0
eWxlPSJ0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIj4gdW5kZXIgdGhlIGltYWdlLjwvc3Bhbj48
YnI+DQorVGhlIHNlY29uZCBsaW5lIHNob3VsZCBub3QuDQorPC9wPg0KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvdGV4dC90ZXh0LXVuZGVybGluZS1maXJzdC1saW5lLWRlY29yYXRpb24uaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC11bmRlcmxpbmUtZmlyc3Qt
bGluZS1kZWNvcmF0aW9uLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3Rl
eHQvdGV4dC11bmRlcmxpbmUtZmlyc3QtbGluZS1kZWNvcmF0aW9uLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxNiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgi
Pz4NCis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMS8vRU4iICJo
dHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDExL0RURC94aHRtbDExLmR0ZCI+DQorPGh0bWwgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbG5zOmlib29rcz0iaHR0cDovL2Fw
cGxlLmNvbS9pYm9va3MvaHRtbC1leHRlbnNpb25zIiB4bWxuczplcHViPSJodHRwOi8vd3d3Lmlk
cGYub3JnLzIwMDcvb3BzIj4NCis8aGVhZD4NCis8c3R5bGU+DQorLmRlY29yYXRlOjpmaXJzdC1s
aW5lIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSB9DQorPC9zdHlsZT4NCis8L2hlYWQ+DQor
PGJvZHkgc3R5bGU9Im92ZXJmbG93OmhpZGRlbiI+DQorPHA+VGVzdCB0byBtYWtlIHN1cmUgdGhh
dCB0aGUgZGVjb3JhdGlvbiBsaW5lIHBhaW50cyBwcm9wZXJseSB1bmRlcm5lYXRoIHRoZSBzdWJz
Y3JpcHQuDQorPC9wPg0KKw0KKzxwIGNsYXNzPSJkZWNvcmF0ZSIgc3R5bGU9ImZvbnQtc2l6ZToy
NHB4OyBmbG9hdDpsZWZ0Oy13ZWJraXQtdGV4dC11bmRlcmxpbmUtcG9zaXRpb246dW5kZXI7IGJv
cmRlcjoxcHggZG90dGVkIG9yYW5nZSI+DQorVGhlIGZpcnN0IGxpbmUgPHNwYW4gc3R5bGU9InZl
cnRpY2FsLWFsaWduOi0yMHB4Ij5oYXMgYSBkZWNvcmF0aW9uLDwvc3Bhbj4gYnV0IG5vdCA8aW1n
IHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjotMTAwcHg7IGhlaWdodDoyMHB4O3dpZHRoOjIwcHg7YmFj
a2dyb3VuZC1jb2xvcjpsaW1lIj4gdW5kZXIgdGhlIGltYWdlLjxicj4NCitUaGUgc2Vjb25kIGxp
bmUgc2hvdWxkIG5vdC4NCis8L3A+DQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQt
dW5kZXJsaW5lLXBvc2l0aW9uLW1peGVkLWZvbnRzLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQtdW5kZXJsaW5lLXBvc2l0aW9uLW1peGVkLWZv
bnRzLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3RleHQv
dGV4dC11bmRlcmxpbmUtcG9zaXRpb24tbWl4ZWQtZm9udHMtZXhwZWN0ZWQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0
Zi04Ij8+DQorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjEvL0VO
IiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxMS9EVEQveGh0bWwxMS5kdGQiPg0KKzxodG1s
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWxuczppYm9va3M9Imh0dHA6
Ly9hcHBsZS5jb20vaWJvb2tzL2h0bWwtZXh0ZW5zaW9ucyIgeG1sbnM6ZXB1Yj0iaHR0cDovL3d3
dy5pZHBmLm9yZy8yMDA3L29wcyI+DQorPGJvZHkgc3R5bGU9Im92ZXJmbG93OmhpZGRlbiI+DQor
PHA+VGVzdCB0byBtYWtlIHN1cmUgZ2lnYW50aWMgZm9udHMgdGhhdCBhcmVuJ3QgaW5zaWRlIHRo
ZSB0ZXh0IGRlY29yYXRpb24gZG9uJ3QgYWZmZWN0IHRoZSBwb3NpdGlvbiBvZg0KK3RoZSBsaW5l
LiBUaGUgZ2lhbnQgZm9udCBpcyBpbnZpc2libGUgKGNvbG9yOnRyYW5zcGFyZW50KSBpbiB0aGlz
IHRlc3QuDQorPC9wPg0KKw0KKzxzcGFuIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5l
Oy13ZWJraXQtdGV4dC11bmRlcmxpbmUtcG9zaXRpb246dW5kZXIiPlRoaXMgdGV4dCBzaG91bGQg
YmUgdW5kZXJsaW5lZCBqdXN0IHVuZGVyIHRoZSBkZXNjZW5kZXJzLjwvc3Bhbj4gDQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQtdW5kZXJsaW5lLXBvc2l0aW9uLW1peGVkLWZvbnRz
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQtdW5kZXJsaW5l
LXBvc2l0aW9uLW1peGVkLWZvbnRzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L3RleHQvdGV4dC11bmRlcmxpbmUtcG9zaXRpb24tbWl4ZWQtZm9udHMuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0
Zi04Ij8+DQorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjEvL0VO
IiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxMS9EVEQveGh0bWwxMS5kdGQiPg0KKzxodG1s
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWxuczppYm9va3M9Imh0dHA6
Ly9hcHBsZS5jb20vaWJvb2tzL2h0bWwtZXh0ZW5zaW9ucyIgeG1sbnM6ZXB1Yj0iaHR0cDovL3d3
dy5pZHBmLm9yZy8yMDA3L29wcyI+DQorPGJvZHkgc3R5bGU9Im92ZXJmbG93OmhpZGRlbiI+DQor
PHA+VGVzdCB0byBtYWtlIHN1cmUgZ2lnYW50aWMgZm9udHMgdGhhdCBhcmVuJ3QgaW5zaWRlIHRo
ZSB0ZXh0IGRlY29yYXRpb24gZG9uJ3QgYWZmZWN0IHRoZSBwb3NpdGlvbiBvZg0KK3RoZSBsaW5l
LiBUaGUgZ2lhbnQgZm9udCBpcyBpbnZpc2libGUgKGNvbG9yOnRyYW5zcGFyZW50KSBpbiB0aGlz
IHRlc3QuDQorPC9wPg0KKw0KKzxzcGFuIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5l
Oy13ZWJraXQtdGV4dC11bmRlcmxpbmUtcG9zaXRpb246dW5kZXIiPlRoaXMgdGV4dCBzaG91bGQg
YmUgdW5kZXJsaW5lZCBqdXN0IHVuZGVyIHRoZSBkZXNjZW5kZXJzLjwvc3Bhbj4gPHNwYW4gc3R5
bGU9ImZvbnQtc2l6ZTo2NHB4OyB2ZXJ0aWNhbC1hbGlnbjotMjU2cHg7IGNvbG9yOnRyYW5zcGFy
ZW50Ij5TaG91bGQgbm90IGJlIHVuZGVybGluZWQuPC9zcGFuPg0KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvdGV4dC90ZXh0LXVuZGVybGluZS1wb3NpdGlvbi1zdWJzY3JpcHQtZXhwZWN0ZWQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC11bmRlcmxpbmUtcG9z
aXRpb24tc3Vic2NyaXB0LWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L3RleHQvdGV4dC11bmRlcmxpbmUtcG9zaXRpb24tc3Vic2NyaXB0LWV4cGVjdGVkLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBl
bmNvZGluZz0idXRmLTgiPz4NCis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhI
VE1MIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDExL0RURC94aHRtbDExLmR0
ZCI+DQorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbG5zOmli
b29rcz0iaHR0cDovL2FwcGxlLmNvbS9pYm9va3MvaHRtbC1leHRlbnNpb25zIiB4bWxuczplcHVi
PSJodHRwOi8vd3d3LmlkcGYub3JnLzIwMDcvb3BzIj4NCis8aGVhZD4NCis8c3R5bGU+DQorLnll
bGxvdzo6Zmlyc3QtbGluZSB7IGNvbG9yOmdyZXkgfQ0KKzwvc3R5bGU+DQorPC9oZWFkPg0KKzxi
b2R5Pg0KKzxwPlRlc3QgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGRlY29yYXRpb24gbGluZSBwYWlu
dHMgcHJvcGVybHkgdW5kZXJuZWF0aCB0aGUgc3Vic2NyaXB0Lg0KKzwvcD4NCisNCis8cCBjbGFz
cz0ieWVsbG93IiBzdHlsZT0iZm9udC1zaXplOjQwcHg7IHBhZGRpbmctdG9wOjVweDsgZmxvYXQ6
bGVmdDsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTstd2Via2l0LXRleHQtdW5kZXJsaW5lLXBv
c2l0aW9uOnVuZGVyOyBib3JkZXI6MXB4IGRvdHRlZCBvcmFuZ2UiPjxzcGFuIHN0eWxlPSJwb3Np
dGlvbjpyZWxhdGl2ZTsiPkhlcmUgaXMgdGhlIHN1YnNjcmlwdCBmb3IgdGhpcyBsaW5lLjwvc3Bh
bj4NCis8L3A+DQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQtdW5kZXJsaW5lLXBv
c2l0aW9uLXN1YnNjcmlwdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGV4
dC90ZXh0LXVuZGVybGluZS1wb3NpdGlvbi1zdWJzY3JpcHQuaHRtbAkocmV2aXNpb24gMCkKKysr
IExheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LXVuZGVybGluZS1wb3NpdGlvbi1zdWJzY3JpcHQu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAi
IGVuY29kaW5nPSJ1dGYtOCI/Pg0KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQg
WEhUTUwgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMTEvRFREL3hodG1sMTEu
ZHRkIj4NCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sbnM6
aWJvb2tzPSJodHRwOi8vYXBwbGUuY29tL2lib29rcy9odG1sLWV4dGVuc2lvbnMiIHhtbG5zOmVw
dWI9Imh0dHA6Ly93d3cuaWRwZi5vcmcvMjAwNy9vcHMiPg0KKzxoZWFkPg0KKzxzdHlsZT4NCisu
eWVsbG93OjpmaXJzdC1saW5lIHsgY29sb3I6Z3JleSB9DQorPC9zdHlsZT4NCis8L2hlYWQ+DQor
PGJvZHk+DQorPHA+VGVzdCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgZGVjb3JhdGlvbiBsaW5lIHBh
aW50cyBwcm9wZXJseSB1bmRlcm5lYXRoIHRoZSBzdWJzY3JpcHQuDQorPC9wPg0KKw0KKzxwIGNs
YXNzPSJ5ZWxsb3ciIHN0eWxlPSJmb250LXNpemU6NDBweDsgZmxvYXQ6bGVmdDsgdGV4dC1kZWNv
cmF0aW9uOnVuZGVybGluZTstd2Via2l0LXRleHQtdW5kZXJsaW5lLXBvc2l0aW9uOnVuZGVyOyBi
b3JkZXI6MXB4IGRvdHRlZCBvcmFuZ2UiPjxzcGFuIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjotNXB4
OyI+SGVyZSBpcyB0aGUgc3Vic2NyaXB0IGZvciB0aGlzIGxpbmUuPC9zcGFuPg0KKzwvcD4NCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3RleHQvdGV4dC11bmRlcmxpbmUtdmVydGljYWwtZmlyc3Qt
bGluZS1kZWNvcmF0aW9uLWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L3RleHQtdW5kZXJsaW5lLXZlcnRpY2FsLWZpcnN0LWxpbmUtZGVjb3JhdGlvbi1l
eHBlY3RlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RleHQt
dW5kZXJsaW5lLXZlcnRpY2FsLWZpcnN0LWxpbmUtZGVjb3JhdGlvbi1leHBlY3RlZC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rp
bmc9InV0Zi04Ij8+DQorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAx
LjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxMS9EVEQveGh0bWwxMS5kdGQiPg0K
KzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWxuczppYm9va3M9
Imh0dHA6Ly9hcHBsZS5jb20vaWJvb2tzL2h0bWwtZXh0ZW5zaW9ucyIgeG1sbnM6ZXB1Yj0iaHR0
cDovL3d3dy5pZHBmLm9yZy8yMDA3L29wcyI+DQorPGhlYWQ+DQorPC9oZWFkPg0KKzxib2R5IHN0
eWxlPSJvdmVyZmxvdzpoaWRkZW4iPg0KKzxwPlRlc3QgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGRl
Y29yYXRpb24gbGluZSBwYWludHMgcHJvcGVybHkgdW5kZXJuZWF0aCB0aGUgc3Vic2NyaXB0Lg0K
KzwvcD4NCisNCis8cCBjbGFzcz0iZGVjb3JhdGUiIHN0eWxlPSItd2Via2l0LXdyaXRpbmctbW9k
ZTp2ZXJ0aWNhbC1scjsgbWFyZ2luLXJpZ2h0OjEwcHg7IGZvbnQtc2l6ZToyNHB4OyBmbG9hdDps
ZWZ0Oy13ZWJraXQtdGV4dC11bmRlcmxpbmUtcG9zaXRpb246dW5kZXI7IGJvcmRlcjoxcHggZG90
dGVkIG9yYW5nZSI+DQorPHNwYW4gc3R5bGU9InRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUiPlRo
ZSBmaXJzdCBsaW5lIDxzcGFuIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjotMjBweCI+aGFzIGEgZGVj
b3JhdGlvbiw8L3NwYW4+IGJ1dCBub3QgPC9zcGFuPjxpbWcgc3R5bGU9InZlcnRpY2FsLWFsaWdu
Oi0xMDBweDsgaGVpZ2h0OjIwcHg7d2lkdGg6MjBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpbWUiPjxz
cGFuIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIj4gdW5kZXIgdGhlIGltYWdlLjwv
c3Bhbj48YnI+DQorVGhlIHNlY29uZCBsaW5lIHNob3VsZCBub3QuDQorPC9wPg0KKw0KKzxwIGNs
YXNzPSJkZWNvcmF0ZSIgc3R5bGU9Ii13ZWJraXQtd3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsOyBt
YXJnaW4tcmlnaHQ6MTBweDsgZm9udC1zaXplOjI0cHg7IGZsb2F0OmxlZnQ7LXdlYmtpdC10ZXh0
LXVuZGVybGluZS1wb3NpdGlvbjp1bmRlcjsgYm9yZGVyOjFweCBkb3R0ZWQgb3JhbmdlIj4NCis8
c3BhbiBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSI+VGhlIGZpcnN0IGxpbmUgPHNw
YW4gc3R5bGU9InZlcnRpY2FsLWFsaWduOi0yMHB4Ij5oYXMgYSBkZWNvcmF0aW9uLDwvc3Bhbj4g
YnV0IG5vdCA8L3NwYW4+PGltZyBzdHlsZT0idmVydGljYWwtYWxpZ246LTEwMHB4OyBoZWlnaHQ6
MjBweDt3aWR0aDoyMHB4O2JhY2tncm91bmQtY29sb3I6bGltZSI+PHNwYW4gc3R5bGU9InRleHQt
ZGVjb3JhdGlvbjp1bmRlcmxpbmUiPiB1bmRlciB0aGUgaW1hZ2UuPC9zcGFuPjxicj4NCitUaGUg
c2Vjb25kIGxpbmUgc2hvdWxkIG5vdC4NCis8L3A+DQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC90
ZXh0L3RleHQtdW5kZXJsaW5lLXZlcnRpY2FsLWZpcnN0LWxpbmUtZGVjb3JhdGlvbi5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvdGV4dC90ZXh0LXVuZGVybGluZS12ZXJ0aWNh
bC1maXJzdC1saW5lLWRlY29yYXRpb24uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvdGV4dC90ZXh0LXVuZGVybGluZS12ZXJ0aWNhbC1maXJzdC1saW5lLWRlY29yYXRpb24u
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAi
IGVuY29kaW5nPSJ1dGYtOCI/Pg0KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQg
WEhUTUwgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMTEvRFREL3hodG1sMTEu
ZHRkIj4NCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sbnM6
aWJvb2tzPSJodHRwOi8vYXBwbGUuY29tL2lib29rcy9odG1sLWV4dGVuc2lvbnMiIHhtbG5zOmVw
dWI9Imh0dHA6Ly93d3cuaWRwZi5vcmcvMjAwNy9vcHMiPg0KKzxoZWFkPg0KKzxzdHlsZT4NCisu
ZGVjb3JhdGU6OmZpcnN0LWxpbmUgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIH0NCis8L3N0
eWxlPg0KKzwvaGVhZD4NCis8Ym9keSBzdHlsZT0ib3ZlcmZsb3c6aGlkZGVuIj4NCis8cD5UZXN0
IHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBkZWNvcmF0aW9uIGxpbmUgcGFpbnRzIHByb3Blcmx5IHVu
ZGVybmVhdGggdGhlIHN1YnNjcmlwdC4NCis8L3A+DQorDQorPHAgY2xhc3M9ImRlY29yYXRlIiBz
dHlsZT0iLXdlYmtpdC13cml0aW5nLW1vZGU6dmVydGljYWwtbHI7IG1hcmdpbi1yaWdodDoxMHB4
OyBmb250LXNpemU6MjRweDsgZmxvYXQ6bGVmdDstd2Via2l0LXRleHQtdW5kZXJsaW5lLXBvc2l0
aW9uOnVuZGVyOyBib3JkZXI6MXB4IGRvdHRlZCBvcmFuZ2UiPg0KK1RoZSBmaXJzdCBsaW5lIDxz
cGFuIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjotMjBweCI+aGFzIGEgZGVjb3JhdGlvbiw8L3NwYW4+
IGJ1dCBub3QgPGltZyBzdHlsZT0idmVydGljYWwtYWxpZ246LTEwMHB4OyBoZWlnaHQ6MjBweDt3
aWR0aDoyMHB4O2JhY2tncm91bmQtY29sb3I6bGltZSI+IHVuZGVyIHRoZSBpbWFnZS48YnI+DQor
VGhlIHNlY29uZCBsaW5lIHNob3VsZCBub3QuDQorPC9wPg0KKw0KKzxwIGNsYXNzPSJkZWNvcmF0
ZSIgc3R5bGU9Ii13ZWJraXQtd3JpdGluZy1tb2RlOnZlcnRpY2FsLXJsOyBtYXJnaW4tcmlnaHQ6
MTBweDsgZm9udC1zaXplOjI0cHg7IGZsb2F0OmxlZnQ7LXdlYmtpdC10ZXh0LXVuZGVybGluZS1w
b3NpdGlvbjp1bmRlcjsgYm9yZGVyOjFweCBkb3R0ZWQgb3JhbmdlIj4NCitUaGUgZmlyc3QgbGlu
ZSA8c3BhbiBzdHlsZT0idmVydGljYWwtYWxpZ246LTIwcHgiPmhhcyBhIGRlY29yYXRpb24sPC9z
cGFuPiBidXQgbm90IDxpbWcgc3R5bGU9InZlcnRpY2FsLWFsaWduOi0xMDBweDsgaGVpZ2h0OjIw
cHg7d2lkdGg6MjBweDtiYWNrZ3JvdW5kLWNvbG9yOmxpbWUiPiB1bmRlciB0aGUgaW1hZ2UuPGJy
Pg0KK1RoZSBzZWNvbmQgbGluZSBzaG91bGQgbm90Lg0KKzwvcD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCg==
</data>
<flag name="review"
          id="271417"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>