<?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>45340</bug_id>
          
          <creation_ts>2010-09-07 17:15:48 -0700</creation_ts>
          <short_desc>Support SerializedScriptValue in WebKit2</short_desc>
          <delta_ts>2010-09-08 10:58:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>275420</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-09-07 17:15:48 -0700</bug_when>
    <thetext>Support SerializedScriptValue in WebKit2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275424</commentid>
    <comment_count>1</comment_count>
      <attachid>66795</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-09-07 17:19:33 -0700</bug_when>
    <thetext>Created attachment 66795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275426</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-07 17:24:31 -0700</bug_when>
    <thetext>Attachment 66795 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/UIProcess/API/C/WKSerializedScriptValue.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/UIProcess/API/C/WKAPICast.h:104:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 2 in 12 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>275438</commentid>
    <comment_count>3</comment_count>
      <attachid>66802</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-09-07 17:33:58 -0700</bug_when>
    <thetext>Created attachment 66802
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275442</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-07 17:34:58 -0700</bug_when>
    <thetext>Attachment 66802 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/UIProcess/API/C/WKSerializedScriptValue.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/UIProcess/API/C/WKAPICast.h:104:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 2 in 12 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>275457</commentid>
    <comment_count>5</comment_count>
      <attachid>66802</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-07 17:44:28 -0700</bug_when>
    <thetext>Comment on attachment 66802
Patch

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

&gt; WebKit2/UIProcess/API/C/WKAPICast.h:107
&gt;  template&lt;&gt; struct ImplTypeInfo&lt;WebNavigationData*&gt;              { typedef WKNavi
&gt;  template&lt;&gt; struct ImplTypeInfo&lt;WebPageNamespace*&gt;               { typedef WKPageNamespaceRef APIType; };
&gt;  template&lt;&gt; struct ImplTypeInfo&lt;WebPageProxy*&gt;                   { typedef WKPageRef APIType; };
&gt;  template&lt;&gt; struct ImplTypeInfo&lt;WebPreferences*&gt;                 { typedef WKPreferencesRef APIType; };
&gt; +template&lt;&gt; struct ImplTypeInfo&lt;WebSerializedScriptValue*&gt;       { typedef WKSerializedScriptValueRef APIType; };
&gt;  template&lt;&gt; struct ImplTypeInfo&lt;WebString*&gt;                      { typedef WKStringRef APIType; };
&gt;  template&lt;&gt; struct ImplTypeInfo&lt;WebURL*&gt;                         { typedef WKURLRef APIType; };
&gt;  template&lt;&gt; struct ImplTypeInfo&lt;WebURLRequest*&gt;                  { typedef WKURLRequestRef APIType; };
It looks like you are missing the APITypeInfo definition here.

&gt; WebKit2/UIProcess/API/C/WKSerializedScriptValue.cpp:43
&gt; +JSValueRef WKSerializedScriptValueDeserialize(WKSerializedScriptValueRef scriptValueRef, JSContextRef contextRef, JSValueRef* exception)
&gt; +{
&gt; +    return toWK(serializedValueRef)-&gt;deserialize(contextRef, exceptionRef);
&gt; +}
This won&apos;t compile.  You need to change serializedValueRef to scriptValueRef.

I believe you are also missing the WebKit2.pro and WebKit2.vcproj changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275458</commentid>
    <comment_count>6</comment_count>
      <attachid>66802</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-07 17:44:51 -0700</bug_when>
    <thetext>Comment on attachment 66802
Patch

Sorry, I meant r=me with those changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275468</commentid>
    <comment_count>7</comment_count>
      <attachid>66809</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-09-07 17:51:41 -0700</bug_when>
    <thetext>Created attachment 66809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275473</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-07 17:55:47 -0700</bug_when>
    <thetext>Attachment 66809 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/UIProcess/API/C/WKSerializedScriptValue.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/UIProcess/API/C/WKAPICast.h:79:  More than one command on the same line  [whitespace/newline] [4]
WebKit2/UIProcess/API/C/WKAPICast.h:105:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 3 in 12 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>275495</commentid>
    <comment_count>9</comment_count>
      <attachid>66814</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-09-07 18:12:28 -0700</bug_when>
    <thetext>Created attachment 66814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275496</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-07 18:14:41 -0700</bug_when>
    <thetext>Attachment 66814 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/UIProcess/API/C/WKSerializedScriptValue.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/UIProcess/API/C/WKAPICast.h:79:  More than one command on the same line  [whitespace/newline] [4]
WebKit2/UIProcess/API/C/WKAPICast.h:105:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 3 in 14 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>275923</commentid>
    <comment_count>11</comment_count>
      <attachid>66814</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-09-08 10:36:55 -0700</bug_when>
    <thetext>Comment on attachment 66814
Patch

Please add WebSerializedScriptValue.h to WebKit2.vcproj, looks fine otherwise!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275937</commentid>
    <comment_count>12</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-09-08 10:58:49 -0700</bug_when>
    <thetext>Committed r66995: &lt;http://trac.webkit.org/changeset/66995&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66795</attachid>
            <date>2010-09-07 17:19:33 -0700</date>
            <delta_ts>2010-09-07 17:33:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45340-20100907171931.patch</filename>
            <type>text/plain</type>
            <size>21288</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjU4ZWQ3N2U4OTkyMTgzMGZkMzk5ZTVhMDdmOGZhZDQyMjUxNWMyNy4uZDQ3ZmViNjBjMTBhNGFj
OTU3NjRiNGYzNTQ3MjIwZWMyYWQyY2Q1NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wOS0wNyAgT2xp
dmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgU2VyaWFsaXplZFNjcmlwdFZhbHVlIGluIFdl
YktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1
MzQwCisKKyAgICAgICAgQWRkIGEgbmV3IGNvbnN0cnVjdG9yIHRoYXQgYWxsb3dzIFdlYktpdDIg
dG8gY3JlYXRlIGEgU2VyaWFsaXplZFNjcmlwdFZhbHVlCisgICAgICAgIGRpcmVjdGx5IGZyb20g
c2VyaWFsaXplZCBkYXRhLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICog
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxp
emVkU2NyaXB0VmFsdWU6OmRhdGEpOgorCiAyMDEwLTA5LTA3ICBBYmhpc2hlayBBcnlhICA8aW5m
ZXJub0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgppbmRleCA1ZTZjNmIzYzUxNmMzNDZkYWY4YjhjNjg2NjEwYjFhOTIyMzU5ZDVlLi5kMzViYjRi
ZTkyYzA5NDExMWUyNTMyNzBiNmNjZjRmYzcxNjI1YTVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTQ0Myw2ICs0NDMs
NyBAQCBfX1pON1dlYkNvcmUyMVBsYXRmb3JtS2V5Ym9hcmRFdmVudEMxRVA3TlNFdmVudAogX19a
TjdXZWJDb3JlMjFTVkdEb2N1bWVudEV4dGVuc2lvbnMyMXNhbXBsZUFuaW1hdGlvbkF0VGltZUVS
S04zV1RGNlN0cmluZ0VQTlNfMTRTVkdTTUlMRWxlbWVudEVkCiBfX1pON1dlYkNvcmUyMVNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTExZGVzZXJpYWxpemVFUEsxNU9wYXF1ZUpTQ29udGV4dFBQSzEzT3Bh
cXVlSlNWYWx1ZQogX19aTjdXZWJDb3JlMjFTZXJpYWxpemVkU2NyaXB0VmFsdWU2Y3JlYXRlRVBL
MTVPcGFxdWVKU0NvbnRleHRQSzEzT3BhcXVlSlNWYWx1ZVBTNl8KK19fWk43V2ViQ29yZTIxU2Vy
aWFsaXplZFNjcmlwdFZhbHVlQzFFUk4zV1RGNlZlY3RvckloTG0wRUVFCiBfX1pON1dlYkNvcmUy
MVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUQxRXYKIF9fWk43V2ViQ29yZTIxVXNlckNvbnRlbnRVUkxQ
YXR0ZXJuNXBhcnNlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjFXaW5kb3dzTGF0aW4x
RW5jb2RpbmdFdgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaCBiL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgK
aW5kZXggYjQxZDlhMzAzNzMzNmVhZjlkNjc0ZGM1YTY3ZTVkOGZmZWFiNTYzNi4uYWQzNGYyODU4
YmIzZjEzZTc2YmM0ZDQ5OWFmZjJjOGVjYTg2ZmNlYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCkBAIC00MiwxMyArNDIsMTkgQEAgcHVibGljOgogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKEpTQzo6RXhl
Y1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgdmFsdWUpOwogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZiB2
YWx1ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZShTdHJpbmcgc3RyaW5nKTsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZShWZWN0b3I8dWludDhfdD4mIGJ1
ZmZlcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VyaWFsaXplZFNjcmlw
dFZhbHVlKGJ1ZmZlcikpOworICAgIH0KKwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKCk7CiAgICAgc3RhdGljIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSogbnVsbFZhbHVlKCk7CiAKICAgICBKU0M6OkpTVmFsdWUgZGVzZXJpYWxpemUoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCk7CiAgICAgU3Ry
aW5nIHRvU3RyaW5nKCk7CiAgICAgSlNWYWx1ZVJlZiBkZXNlcmlhbGl6ZShKU0NvbnRleHRSZWYs
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7Ci0gICAgCisgICAgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
JiBkYXRhKCkgeyByZXR1cm4gbV9kYXRhOyB9CisKICAgICB+U2VyaWFsaXplZFNjcmlwdFZhbHVl
KCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9XZWJLaXQyL0NoYW5nZUxvZyBiL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IGJiMWRkMTQzMTY1ZjFkMDk0MjJkY2ViZmVlODRkNzNhMDZiZGM2N2Iu
LmU1ZGMzYWRlMjRkY2NkNmY1Nzc0N2YzZTA5N2NhMzY2NzNkZjUzZDYgMTAwNjQ0Ci0tLSBhL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAK
KzIwMTAtMDktMDcgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSBpbiBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NTM0MAorCisgICAgICAgIEFkZCB3cmFwcGVycyBhbmQgSVBDIHNlcmlh
bGl6YXRpb24gZm9yIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZQorCisgICAgICAgICogU2hhcmVkL0FQ
SU9iamVjdC5oOgorICAgICAgICAqIFNoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVzc2FnZUVuY29kZXI6OmJhc2VFbmNvZGUpOgorICAgICAgICAoV2Vi
S2l0OjpVc2VyTWVzc2FnZURlY29kZXI6OmJhc2VEZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VyaWFs
aXplZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGl6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZTo6ZGF0YSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOjp0eXBlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQmFzZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6IEFkZGVk
LgorICAgICAgICAoV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVHZXRUeXBlSUQpOgorICAgICAgICAo
V0tTZXJpYWxpemVkU2NyaXB0VmFsdWVDcmVhdGUpOgorICAgICAgICAoV0tTZXJpYWxpemVkU2Ny
aXB0VmFsdWVEZXNlcmlhbGl6ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmg6IEFkZGVkLgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKwogMjAxMC0wOS0wNyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIEFub3RoZXIgd2luZG93cyBmaXguCmRpZmYgLS1naXQgYS9XZWJLaXQyL1No
YXJlZC9BUElPYmplY3QuaCBiL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCmluZGV4IDhhY2Ix
ZWZjZTBmZjM5NDRjNDJiMTA1N2YzYmNkYzAyMzg0NGFlNDAuLjA1MGI2M2Y4ODI0OGE3ZWFkYzZk
OWMyNmEyNTgzYmQ5ZDMxNmJlYmIgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvU2hhcmVkL0FQSU9iamVj
dC5oCisrKyBiL1dlYktpdDIvU2hhcmVkL0FQSU9iamVjdC5oCkBAIC0zOSw2ICszOSw3IEBAIHB1
YmxpYzoKICAgICAgICAgVHlwZURhdGEsCiAgICAgICAgIFR5cGVEaWN0aW9uYXJ5LAogICAgICAg
ICBUeXBlRXJyb3IsCisgICAgICAgIFR5cGVTZXJpYWxpemVkU2NyaXB0VmFsdWUsCiAgICAgICAg
IFR5cGVTdHJpbmcsCiAgICAgICAgIFR5cGVVUkwsCiAgICAgICAgIFR5cGVVUkxSZXF1ZXN0LApk
aWZmIC0tZ2l0IGEvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaCBiL1dlYktpdDIv
U2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKaW5kZXggNTFhMWRjZDUwMTQ4MzM2NTg1ZTA1NWRi
MGNhOTJjODc0OWQ5MWM3Ni4uMTlkYTJmMjFhZmJkMTY1MWQ4YjYwMDc1MDZkZDkwZTAwNTk1NGVh
MSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaAorKysgYi9X
ZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5j
bHVkZSAiSW1tdXRhYmxlQXJyYXkuaCIKICNpbmNsdWRlICJJbW11dGFibGVEaWN0aW9uYXJ5Lmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewpAQCAtMzYsNiArMzcsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIC8vICAgLSBBcnJh
eSAtPiBBcnJheQogLy8gICAtIERpY3Rpb25hcnkgLT4gRGljdGlvbmFyeQogLy8gICAtIFN0cmlu
ZyAtPiBTdHJpbmcKKy8vICAgLSBTZXJpYWxpemVkU2NyaXB0VmFsdWUgLT4gU2VyaWFsaXplZFNj
cmlwdFZhbHVlCiAKIHRlbXBsYXRlPHR5cGVuYW1lIE93bmVyPgogY2xhc3MgVXNlck1lc3NhZ2VF
bmNvZGVyIHsKQEAgLTc2LDYgKzc4LDExIEBAIHB1YmxpYzoKICAgICAgICAgICAgIGVuY29kZXIt
PmVuY29kZShzdHJpbmctPnN0cmluZygpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
ICAgICB9CisgICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlU2VyaWFsaXplZFNjcmlwdFZhbHVl
OiB7CisgICAgICAgICAgICBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUqIHNjcmlwdFZhbHVlID0g
c3RhdGljX2Nhc3Q8V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlKj4obV9yb290KTsKKyAgICAgICAg
ICAgIGVuY29kZXItPmVuY29kZUJ5dGVzKHNjcmlwdFZhbHVlLT5kYXRhKCkuZGF0YSgpLCBzY3Jp
cHRWYWx1ZS0+ZGF0YSgpLnNpemUoKSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgfQogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAg
LTE1OSw2ICsxNjYsMTMgQEAgcHVibGljOgogICAgICAgICAgICAgY29kZXIubV9yb290ID0gV2Vi
U3RyaW5nOjpjcmVhdGUoc3RyaW5nKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Cisg
ICAgICAgIGNhc2UgQVBJT2JqZWN0OjpUeXBlU2VyaWFsaXplZFNjcmlwdFZhbHVlOiB7CisgICAg
ICAgICAgICBWZWN0b3I8dWludDhfdD4gYnVmZmVyOworICAgICAgICAgICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGVCeXRlcyhidWZmZXIpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgICAgIGNvZGVyLm1fcm9vdCA9IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRl
KGJ1ZmZlcik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICBkZWZhdWx0
OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYktpdDIvU2hh
cmVkL1dlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGIvV2ViS2l0Mi9TaGFyZWQvV2ViU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTYwZjhiOGUwOWJhOGZhOTgyZjM0OTE2YzY2
ZjU3NjE3ZGRkOTkzZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvU2hhcmVkL1dlYlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5oCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZV9oCisjZGVmaW5lIFdlYlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZV9oCisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlIDogcHVibGljIEFQ
SU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IFR5cGUgQVBJVHlwZSA9IFR5cGVT
ZXJpYWxpemVkU2NyaXB0VmFsdWU7CisgICAgCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViU2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVl
KiBzZXJpYWxpemVkVmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdl
YlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShzZXJpYWxpemVkVmFsdWUpKTsKKyAgICB9CisgICAgCisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlv
bikKKyAgICB7CisgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IHNlcmlhbGl6ZWRWYWx1ZSA9IFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRl
KGNvbnRleHQsIHZhbHVlLCBleGNlcHRpb24pOworICAgICAgICBpZiAoIXNlcmlhbGl6ZWRWYWx1
ZSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdl
YlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShzZXJpYWxpemVkVmFsdWUuZ2V0KCkpKTsKKyAgICB9Cisg
ICAgCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVh
dGUoVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0
VmFsdWU6OmNyZWF0ZShidWZmZXIpKSk7CisgICAgfQorICAgIAorICAgIEpTVmFsdWVSZWYgZGVz
ZXJpYWxpemUoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKKyAg
ICB7CisgICAgICAgIHJldHVybiBtX3NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS0+ZGVzZXJpYWxpemUo
Y29udGV4dCwgZXhjZXB0aW9uKTsKKyAgICB9CisgICAgCisgICAgY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+JiBkYXRhKCkgeyByZXR1cm4gbV9zZXJpYWxpemVkU2NyaXB0VmFsdWUtPmRhdGEoKTsgfQor
Citwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShQYXNzUmVm
UHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZFNjcmlwdFZhbHVl
KQorICAgICAgICA6IG1fc2VyaWFsaXplZFNjcmlwdFZhbHVlKHNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSkKKyAgICB7CisgICAgfQorICAgIAorICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgeyBy
ZXR1cm4gQVBJVHlwZTsgfQorICAgIAorICAgIFJlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IG1fc2VyaWFsaXplZFNjcmlwdFZhbHVlOworfTsKKyAgICAKK30KKworI2VuZGlm
IC8vIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZV9oCmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2Fz
dC5oCmluZGV4IGFlM2JjNWNmOGY4NTNiNDU1NmI3MTQwZTk4N2VlNjhlZWM2ZGNkOWIuLjE0NGQ0
ZTk0YmMxY2FhNDY2NWI2ZjYwMGM3ZjI1NjNiMzdkMTViZjIgMTAwNjQ0Ci0tLSBhL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oCkBAIC01Niw2ICs1Niw3IEBAIGNsYXNzIFdlYk5hdmlnYXRpb25EYXRhOwog
Y2xhc3MgV2ViUGFnZU5hbWVzcGFjZTsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlBy
ZWZlcmVuY2VzOworY2xhc3MgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3MgV2ViVVJM
UmVxdWVzdDsKIGNsYXNzIFdlYlVSTFJlc3BvbnNlOwogCkBAIC0xMDAsNiArMTAxLDcgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFdlYk5hdmlnYXRpb25EYXRhKj4gICAgICAgICAg
ICAgIHsgdHlwZWRlZiBXS05hdmkKIHRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJQ
YWdlTmFtZXNwYWNlKj4gICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tQYWdlTmFtZXNwYWNlUmVm
IEFQSVR5cGU7IH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBJbXBsVHlwZUluZm88V2ViUGFnZVByb3h5
Kj4gICAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdLUGFnZVJlZiBBUElUeXBlOyB9OwogdGVt
cGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFdlYlByZWZlcmVuY2VzKj4gICAgICAgICAgICAg
ICAgIHsgdHlwZWRlZiBXS1ByZWZlcmVuY2VzUmVmIEFQSVR5cGU7IH07Cit0ZW1wbGF0ZTw+IHN0
cnVjdCBJbXBsVHlwZUluZm88V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlKj4gICAgICAgeyB0eXBl
ZGVmIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlUmVmIEFQSVR5cGU7IH07CiB0ZW1wbGF0ZTw+IHN0
cnVjdCBJbXBsVHlwZUluZm88V2ViU3RyaW5nKj4gICAgICAgICAgICAgICAgICAgICAgeyB0eXBl
ZGVmIFdLU3RyaW5nUmVmIEFQSVR5cGU7IH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBJbXBsVHlwZUlu
Zm88V2ViVVJMKj4gICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdLVVJMUmVmIEFQ
SVR5cGU7IH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBJbXBsVHlwZUluZm88V2ViVVJMUmVxdWVzdCo+
ICAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdLVVJMUmVxdWVzdFJlZiBBUElUeXBlOyB9Owpk
aWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tCYXNlLmggYi9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS0Jhc2UuaAppbmRleCA5Zjc2NDM0ZGRjMTQzMjhjOTEwNjkxMGZkMTNk
MWJmZDNlYjY3MjM1Li43NDg5YjU2OWY3YzllNmE5ZjdlZmUyYTk5NzU5MTliMTBmMzAxZTNlIDEw
MDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Jhc2UuaAorKysgYi9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0Jhc2UuaApAQCAtNTMsNiArNTMsNyBAQCB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRpb25EYXRhKiBXS05hdmlnYXRpb25EYXRhUmVmOwogdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlKiBXS1BhZ2VSZWY7CiB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS1BhZ2VOYW1lc3BhY2UqIFdLUGFnZU5hbWVzcGFjZVJlZjsKIHR5cGVk
ZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUHJlZmVyZW5jZXMqIFdLUHJlZmVyZW5jZXNSZWY7Cit0
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogV0tTZXJp
YWxpemVkU2NyaXB0VmFsdWVSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1N0cmlu
ZyogV0tTdHJpbmdSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1VSTCogV0tVUkxS
ZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1VSTFJlcXVlc3QqIFdLVVJMUmVxdWVz
dFJlZjsKZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmNwcCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTJlNGY1NDQ0MTU1NTNhM2NjOTg3ZjJmYjY2MWQzZjIz
MDJiNjgzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tTZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKKworV0tUeXBlSUQgV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVHZXRUeXBlSUQoKQoreworICAg
IHJldHVybiB0b1JlZihXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU6OkFQSVR5cGUpOworfQorCitX
S1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVJlZiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZUNyZWF0ZShK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZiogZXhjZXB0
aW9uKQoreworICAgIHJldHVybiB0b1JlZihXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0
ZShjb250ZXh0LCB2YWx1ZSwgZXhjZXB0aW9uKSk7Cit9CisKK0pTVmFsdWVSZWYgV0tTZXJpYWxp
emVkU2NyaXB0VmFsdWVEZXNlcmlhbGl6ZShXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVJlZiBzY3Jp
cHRWYWx1ZVJlZiwgSlNDb250ZXh0UmVmIGNvbnRleHRSZWYsIEpTVmFsdWVSZWYqIGV4Y2VwdGlv
bikKK3sKKyAgICByZXR1cm4gdG9XSyhzZXJpYWxpemVkVmFsdWVSZWYpLT5kZXNlcmlhbGl6ZShj
b250ZXh0UmVmLCBleGNlcHRpb25SZWYpOworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTVmYzA0OGE1MmYzNTQw
YzBlYTFjOTk2YTVmMWU1Njg4NDEyZWMwMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKQEAgLTAsMCArMSw0NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVfaAorI2RlZmluZSBX
S1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZV9oCisKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Lmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNw
bHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tTZXJpYWxp
emVkU2NyaXB0VmFsdWVHZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIFdLU2VyaWFsaXplZFNjcmlw
dFZhbHVlUmVmIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlQ3JlYXRlKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOworV0tfRVhQT1JU
IEpTVmFsdWVSZWYgV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVEZXNlcmlhbGl6ZShXS1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZVJlZiBzY3JpcHRWYWx1ZSwgSlNDb250ZXh0UmVmIGNvbnN0ZXh0LCBKU1Zh
bHVlUmVmKiBleGNlcHRpb24pOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisj
ZW5kaWYgLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVfaCAqLwpkaWZmIC0tZ2l0IGEvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMjFhYjMzYmM3NzE0NjRhYjQ1ODQ4MTZjMDY3
YTk3MDU4ODNmNzc4Li43YzU2MDk4Njk2NTc0OWNhN2E4NDQ5YjY2ZjdmMWZhNjcyYmNlYTUzIDEw
MDY0NAotLS0gYS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTA1LDYgKzEw
NSw5IEBACiAJCThEQzJFRjU3MDQ4NkE2OTQwMDk4QjIxNiAvKiBDb2NvYS5mcmFtZXdvcmsgaW4g
RnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMDU4QzdCMUZF
QTU1ODVFMTFDQTJDQkIgLyogQ29jb2EuZnJhbWV3b3JrICovOyB9OwogCQk5MzkxRjJDQTEyMUI2
NzlBMDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTFGMjg0MTIxQjM4RjUwMEVCRjdF
OCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tICovOyB9OwogCQk5MzkxRjJDQjEyMUI2
N0FEMDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MUYyODMxMjFCMzhGNTAwRUJGN0U4
IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLzsgfTsKKwkJQTcyRDVEODExMjM2Q0JB
ODAwQTg4QjE1IC8qIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGluIENvcHlGaWxlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzJENUQ3RjEyMzZDQkE4MDBBODhCMTUg
LyogV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi87IH07CisJCUE3MkQ1RjMwMTIzNkY5RTgw
MEE4OEIxNSAvKiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGluIENvcHlGaWxlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzJENUYyRTEyMzZGOUU4MDBBODhCMTUgLyog
V0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLzsgfTsKKwkJQTcyRDVGMzExMjM2RjlFODAwQTg4
QjE1IC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcyRDVGMkYxMjM2RjlFODAwQTg4QjE1IC8qIFdL
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCAqLzsgfTsKIAkJQkMwMDkyRjcxMTU4MzdBMzAwRTBB
RTJBIC8qIFJ1bkxvb3BNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzAwOTJGNTExNTgzN0EzMDBFMEFFMkEgLyogUnVuTG9vcE1hYy5tbSAqLzsg
fTsKIAkJQkMwMDkyRjgxMTU4MzdBMzAwRTBBRTJBIC8qIFdvcmtRdWV1ZU1hYy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAwOTJGNjExNTgzN0Ez
MDBFMEFFMkEgLyogV29ya1F1ZXVlTWFjLmNwcCAqLzsgfTsKIAkJQkMwMzJENzUxMEY0Mzc4RDAw
NThDMTVBIC8qIFdlYkNocm9tZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkMwMzJENjAxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNocm9tZUNs
aWVudC5oICovOyB9OwpAQCAtMzgyLDYgKzM4NSw5IEBACiAJCQlkc3RTdWJmb2xkZXJTcGVjID0g
MTsKIAkJCWZpbGVzID0gKAogCQkJCTFBNTBEQjY2MTEwQTNENTcwMDBEM0ZFNSAvKiBXZWJQcm9j
ZXNzLmFwcCBpbiBDb3B5RmlsZXMgKi8sCisJCQkJQTcyRDVEODExMjM2Q0JBODAwQTg4QjE1IC8q
IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGluIENvcHlGaWxlcyAqLywKKwkJCQlBNzJENUYz
MDEyMzZGOUU4MDBBODhCMTUgLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBpbiBDb3B5Rmls
ZXMgKi8sCisJCQkJQTcyRDVGMzExMjM2RjlFODAwQTg4QjE1IC8qIFdLU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmNwcCBpbiBDb3B5RmlsZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC00NzksNiArNDg1LDkgQEAKIAkJOERDMkVG
NUIwNDg2QTY5NDAwOThCMjE2IC8qIFdlYktpdDIuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgaW5jbHVk
ZUluSW5kZXggPSAwOyBwYXRoID0gV2ViS2l0Mi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CiAJCTkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTM5MUYyODQxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzJENUQ3RjEyMzZD
QkE4MDBBODhCMTUgLyogV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBNzJENUYyRTEyMzZGOUU4MDBBODhCMTUgLyogV0tTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTZXJp
YWxpemVkU2NyaXB0VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTcyRDVG
MkYxMjM2RjlFODAwQTg4QjE1IC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwMDkyRjUxMTU4MzdBMzAwRTBBRTJB
IC8qIFJ1bkxvb3BNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBSdW5Mb29wTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzAwOTJGNjEx
NTgzN0EzMDBFMEFFMkEgLyogV29ya1F1ZXVlTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdvcmtRdWV1ZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDMDMyRDYwMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDaHJvbWVDbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ2hyb21lQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NDMsNiArOTUyLDcgQEAKIAkJCQlCQ0UyMzE1QjEyMkMz
MENBMDBENUMzNUEgLyogV2ViVVJMUmVxdWVzdC5oICovLAogCQkJCUJDOTBBMUQxMTIyREQ1NUUw
MENDOEM1MCAvKiBXZWJVUkxSZXNwb25zZS5jcHAgKi8sCiAJCQkJQkM5MEExRDAxMjJERDU1RTAw
Q0M4QzUwIC8qIFdlYlVSTFJlc3BvbnNlLmggKi8sCisJCQkJQTcyRDVEN0YxMjM2Q0JBODAwQTg4
QjE1IC8qIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBT
aGFyZWQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTE5MSw2ICsxMjAxLDggQEAK
IAkJCQlCQ0UyMzFDNTEyMkM0OTIzMDBENUMzNUEgLyogV0tVUkxSZXF1ZXN0LmggKi8sCiAJCQkJ
QkM5MEExREIxMjJERDg5ODAwQ0M4QzUwIC8qIFdLVVJMUmVzcG9uc2UuY3BwICovLAogCQkJCUJD
OTBBMURBMTIyREQ4OTgwMENDOEM1MCAvKiBXS1VSTFJlc3BvbnNlLmggKi8sCisJCQkJQTcyRDVG
MkUxMjM2RjlFODAwQTg4QjE1IC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi8sCisJCQkJ
QTcyRDVGMkYxMjM2RjlFODAwQTg4QjE1IC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCAq
LywKIAkJCSk7CiAJCQlwYXRoID0gQzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0x
NjYwLDcgKzE2NzIsMTQgQEAKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3Vy
YXRpb25MaXN0ID0gMURFQjkxQjEwODczM0RBNTAwMTBFOUNEIC8qIEJ1aWxkIGNvbmZpZ3VyYXRp
b24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV2ViS2l0MiIgKi87CiAJCQljb21wYXRpYmlsaXR5VmVy
c2lvbiA9ICJYY29kZSAzLjEiOworCQkJZGV2ZWxvcG1lbnRSZWdpb24gPSBFbmdsaXNoOwogCQkJ
aGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDE7CisJCQlrbm93blJlZ2lvbnMgPSAoCisJCQkJRW5n
bGlzaCwKKwkJCQlKYXBhbmVzZSwKKwkJCQlGcmVuY2gsCisJCQkJR2VybWFuLAorCQkJKTsKIAkJ
CW1haW5Hcm91cCA9IDA4NjdENjkxRkU4NDAyOEZDMDJBQUMwNyAvKiBXZWJLaXQyICovOwogCQkJ
cHJvZHVjdFJlZkdyb3VwID0gMDM0NzY4REZGRjM4QTUwNDExREI5QzhCIC8qIFByb2R1Y3RzICov
OwogCQkJcHJvamVjdERpclBhdGggPSAiIjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66802</attachid>
            <date>2010-09-07 17:33:58 -0700</date>
            <delta_ts>2010-09-07 17:51:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45340-20100907173357.patch</filename>
            <type>text/plain</type>
            <size>21335</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjU4ZWQ3N2U4OTkyMTgzMGZkMzk5ZTVhMDdmOGZhZDQyMjUxNWMyNy4uMWZhNzQwOWZlOWEyOGE1
YzJmMTdlNTc0NTBhMGJlNjJhOWU4MDZmNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wOS0wNyAgT2xp
dmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgU2VyaWFsaXplZFNjcmlwdFZhbHVlIGluIFdl
YktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1
MzQwCisKKyAgICAgICAgQWRkIGEgbmV3IGNvbnN0cnVjdG9yIHRoYXQgYWxsb3dzIFdlYktpdDIg
dG8gY3JlYXRlIGEgU2VyaWFsaXplZFNjcmlwdFZhbHVlCisgICAgICAgIGRpcmVjdGx5IGZyb20g
c2VyaWFsaXplZCBkYXRhLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICog
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6ZGF0YSk6CisKIDIwMTAtMDktMDcgIEFiaGlzaGVrIEFyeWEgIDxpbmZl
cm5vQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CmluZGV4IDVlNmM2YjNjNTE2YzM0NmRhZjhiOGM2ODY2MTBiMWE5MjIzNTlkNWUuLmQzNWJiNGJl
OTJjMDk0MTExZTI1MzI3MGI2Y2NmNGZjNzE2MjVhNWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KKysrIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNDQzLDYgKzQ0Myw3
IEBAIF9fWk43V2ViQ29yZTIxUGxhdGZvcm1LZXlib2FyZEV2ZW50QzFFUDdOU0V2ZW50CiBfX1pO
N1dlYkNvcmUyMVNWR0RvY3VtZW50RXh0ZW5zaW9uczIxc2FtcGxlQW5pbWF0aW9uQXRUaW1lRVJL
TjNXVEY2U3RyaW5nRVBOU18xNFNWR1NNSUxFbGVtZW50RWQKIF9fWk43V2ViQ29yZTIxU2VyaWFs
aXplZFNjcmlwdFZhbHVlMTFkZXNlcmlhbGl6ZUVQSzE1T3BhcXVlSlNDb250ZXh0UFBLMTNPcGFx
dWVKU1ZhbHVlCiBfX1pON1dlYkNvcmUyMVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTZjcmVhdGVFUEsx
NU9wYXF1ZUpTQ29udGV4dFBLMTNPcGFxdWVKU1ZhbHVlUFM2XworX19aTjdXZWJDb3JlMjFTZXJp
YWxpemVkU2NyaXB0VmFsdWVDMUVSTjNXVEY2VmVjdG9ySWhMbTBFRUUKIF9fWk43V2ViQ29yZTIx
U2VyaWFsaXplZFNjcmlwdFZhbHVlRDFFdgogX19aTjdXZWJDb3JlMjFVc2VyQ29udGVudFVSTFBh
dHRlcm41cGFyc2VFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUyMVdpbmRvd3NMYXRpbjFF
bmNvZGluZ0V2CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaApp
bmRleCBiNDFkOWEzMDM3MzM2ZWFmOWQ2NzRkYzVhNjdlNWQ4ZmZlYWI1NjM2Li45NGJjNDc3MzBj
ZDUyNzhhNzdmY2FlZTZiODc2NWZkZWExNmQ2ZGYyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKQEAgLTQyLDEzICs0MiwxOSBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSB2YWx1ZSk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmIHZh
bHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKFN0cmluZyBzdHJpbmcpOworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gYWRvcHQoVmVjdG9yPHVpbnQ4X3Q+JiBidWZm
ZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZShidWZmZXIpKTsKKyAgICB9CisKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IGNyZWF0ZSgpOwogICAgIHN0YXRpYyBTZXJpYWxpemVkU2NyaXB0VmFsdWUq
IG51bGxWYWx1ZSgpOwogCiAgICAgSlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplKEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpOwogICAgIFN0cmlu
ZyB0b1N0cmluZygpOwogICAgIEpTVmFsdWVSZWYgZGVzZXJpYWxpemUoSlNDb250ZXh0UmVmLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pOwotICAgIAorICAgIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
ZGF0YSgpIHsgcmV0dXJuIG1fZGF0YTsgfQorCiAgICAgflNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgp
OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiYjFkZDE0MzE2NWYxZDA5NDIyZGNlYmZlZTg0ZDczYTA2YmRjNjdiLi41
MTIzNTM5OWNmMmJmN2QxMmMwOThiMWI1Njg0Zjc5OTYxMTZhYjgwIDEwMDY0NAotLS0gYS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisy
MDEwLTA5LTA3ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBTZXJpYWxpemVkU2Ny
aXB0VmFsdWUgaW4gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDUzNDAKKworICAgICAgICBBZGQgd3JhcHBlcnMgYW5kIElQQyBzZXJpYWxp
emF0aW9uIGZvciBTZXJpYWxpemVkU2NyaXB0VmFsdWUKKworICAgICAgICAqIFNoYXJlZC9BUElP
YmplY3QuaDoKKyAgICAgICAgKiBTaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaDoKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lc3NhZ2VFbmNvZGVyOjpiYXNlRW5jb2RlKToKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lc3NhZ2VEZWNvZGVyOjpiYXNlRGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6YWRvcHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6OmRlc2VyaWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VyaWFsaXplZFNj
cmlwdFZhbHVlOjpkYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VyaWFsaXplZFNjcmlwdFZh
bHVlOjpXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OnR5cGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tCYXNlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDogQWRkZWQuCisgICAg
ICAgIChXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZUdldFR5cGVJRCk6CisgICAgICAgIChXS1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUNyZWF0ZSk6CisgICAgICAgIChXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZURlc2VyaWFsaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaDogQWRkZWQuCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorCiAyMDEwLTA5LTA3ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgQW5vdGhlciB3aW5kb3dzIGZpeC4KZGlmZiAtLWdpdCBhL1dlYktpdDIvU2hhcmVkL0FQ
SU9iamVjdC5oIGIvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggOGFjYjFlZmNlMGZm
Mzk0NGM0MmIxMDU3ZjNiY2RjMDIzODQ0YWU0MC4uMDUwYjYzZjg4MjQ4YTdlYWRjNmQ5YzI2YTI1
ODNiZDlkMzE2YmViYiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysr
IGIvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKQEAgLTM5LDYgKzM5LDcgQEAgcHVibGljOgog
ICAgICAgICBUeXBlRGF0YSwKICAgICAgICAgVHlwZURpY3Rpb25hcnksCiAgICAgICAgIFR5cGVF
cnJvciwKKyAgICAgICAgVHlwZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwKICAgICAgICAgVHlwZVN0
cmluZywKICAgICAgICAgVHlwZVVSTCwKICAgICAgICAgVHlwZVVSTFJlcXVlc3QsCmRpZmYgLS1n
aXQgYS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oIGIvV2ViS2l0Mi9TaGFyZWQv
VXNlck1lc3NhZ2VDb2RlcnMuaAppbmRleCA1MWExZGNkNTAxNDgzMzY1ODVlMDU1ZGIwY2E5MmM4
NzQ5ZDkxYzc2Li5kOTQ0MmYzNDk0MDRiMTQ3NjRiOTZiNGZhYWM3OTczMDU2MjBjZDBlIDEwMDY0
NAotLS0gYS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCisrKyBiL1dlYktpdDIv
U2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJJ
bW11dGFibGVBcnJheS5oIgogI2luY2x1ZGUgIkltbXV0YWJsZURpY3Rpb25hcnkuaCIKICNpbmNs
dWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7
CkBAIC0zNiw2ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogLy8gICAtIEFycmF5IC0+IEFy
cmF5CiAvLyAgIC0gRGljdGlvbmFyeSAtPiBEaWN0aW9uYXJ5CiAvLyAgIC0gU3RyaW5nIC0+IFN0
cmluZworLy8gICAtIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSAtPiBTZXJpYWxpemVkU2NyaXB0VmFs
dWUKIAogdGVtcGxhdGU8dHlwZW5hbWUgT3duZXI+CiBjbGFzcyBVc2VyTWVzc2FnZUVuY29kZXIg
ewpAQCAtNzYsNiArNzgsMTEgQEAgcHVibGljOgogICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2Rl
KHN0cmluZy0+c3RyaW5nKCkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0K
KyAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVTZXJpYWxpemVkU2NyaXB0VmFsdWU6IHsKKyAg
ICAgICAgICAgIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc2NyaXB0VmFsdWUgPSBzdGF0aWNf
Y2FzdDxXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUqPihtX3Jvb3QpOworICAgICAgICAgICAgZW5j
b2Rlci0+ZW5jb2RlQnl0ZXMoc2NyaXB0VmFsdWUtPmRhdGEoKS5kYXRhKCksIHNjcmlwdFZhbHVl
LT5kYXRhKCkuc2l6ZSgpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMTU5LDYg
KzE2NiwxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBjb2Rlci5tX3Jvb3QgPSBXZWJTdHJpbmc6
OmNyZWF0ZShzdHJpbmcpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKyAgICAgICAg
Y2FzZSBBUElPYmplY3Q6OlR5cGVTZXJpYWxpemVkU2NyaXB0VmFsdWU6IHsKKyAgICAgICAgICAg
IFZlY3Rvcjx1aW50OF90PiBidWZmZXI7CisgICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29k
ZUJ5dGVzKGJ1ZmZlcikpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgY29kZXIubV9yb290ID0gV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChidWZmZXIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJLaXQyL1NoYXJlZC9XZWJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBiL1dlYktpdDIvU2hhcmVkL1dlYlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1NTEzYWRlNjBmNGUzZDg4MDBiMTMzZGE3ZjQ0Yjk0Yjhl
MDU0N2YKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1NoYXJlZC9XZWJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWVfaAorI2RlZmluZSBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWVfaAor
CisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA6IHB1YmxpYyBBUElPYmplY3Qg
eworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOworICAgIAorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gY3JlYXRlKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc2VyaWFs
aXplZFZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTZXJpYWxp
emVkU2NyaXB0VmFsdWUoc2VyaWFsaXplZFZhbHVlKSk7CisgICAgfQorICAgIAorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCisgICAg
eworICAgICAgICBSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxp
emVkVmFsdWUgPSBXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShjb250ZXh0
LCB2YWx1ZSwgZXhjZXB0aW9uKTsKKyAgICAgICAgaWYgKCFzZXJpYWxpemVkVmFsdWUpCisgICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTZXJpYWxp
emVkU2NyaXB0VmFsdWUoc2VyaWFsaXplZFZhbHVlLmdldCgpKSk7CisgICAgfQorICAgIAorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gYWRvcHQoVmVjdG9y
PHVpbnQ4X3Q+JiBidWZmZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdl
YlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFk
b3B0KGJ1ZmZlcikpKTsKKyAgICB9CisgICAgCisgICAgSlNWYWx1ZVJlZiBkZXNlcmlhbGl6ZShK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG1fc2VyaWFsaXplZFNjcmlwdFZhbHVlLT5kZXNlcmlhbGl6ZShjb250ZXh0LCBl
eGNlcHRpb24pOworICAgIH0KKyAgICAKKyAgICBjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEo
KSB7IHJldHVybiBtX3NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS0+ZGF0YSgpOyB9CisKK3ByaXZhdGU6
CisgICAgZXhwbGljaXQgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlKFBhc3NSZWZQdHI8V2ViQ29y
ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkU2NyaXB0VmFsdWUpCisgICAgICAg
IDogbV9zZXJpYWxpemVkU2NyaXB0VmFsdWUoc2VyaWFsaXplZFNjcmlwdFZhbHVlKQorICAgIHsK
KyAgICB9CisgICAgCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElU
eXBlOyB9CisgICAgCisgICAgUmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
bV9zZXJpYWxpemVkU2NyaXB0VmFsdWU7Cit9OworICAgIAorfQorCisjZW5kaWYgLy8gV2ViU2Vy
aWFsaXplZFNjcmlwdFZhbHVlX2gKZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXgg
YWUzYmM1Y2Y4Zjg1M2I0NTU2YjcxNDBlOTg3ZWU2OGVlYzZkY2Q5Yi4uMTQ0ZDRlOTRiYzFjYWE0
NjY1YjZmNjAwYzdmMjU2M2IzN2QxNWJmMiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tBUElDYXN0LmgKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
LmgKQEAgLTU2LDYgKzU2LDcgQEAgY2xhc3MgV2ViTmF2aWdhdGlvbkRhdGE7CiBjbGFzcyBXZWJQ
YWdlTmFtZXNwYWNlOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUHJlZmVyZW5jZXM7
CitjbGFzcyBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBXZWJVUkxSZXF1ZXN0Owog
Y2xhc3MgV2ViVVJMUmVzcG9uc2U7CiAKQEAgLTEwMCw2ICsxMDEsNyBAQCB0ZW1wbGF0ZTw+IHN0
cnVjdCBJbXBsVHlwZUluZm88V2ViTmF2aWdhdGlvbkRhdGEqPiAgICAgICAgICAgICAgeyB0eXBl
ZGVmIFdLTmF2aQogdGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFdlYlBhZ2VOYW1lc3Bh
Y2UqPiAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXS1BhZ2VOYW1lc3BhY2VSZWYgQVBJVHlwZTsg
fTsKIHRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJQYWdlUHJveHkqPiAgICAgICAg
ICAgICAgICAgICB7IHR5cGVkZWYgV0tQYWdlUmVmIEFQSVR5cGU7IH07CiB0ZW1wbGF0ZTw+IHN0
cnVjdCBJbXBsVHlwZUluZm88V2ViUHJlZmVyZW5jZXMqPiAgICAgICAgICAgICAgICAgeyB0eXBl
ZGVmIFdLUHJlZmVyZW5jZXNSZWYgQVBJVHlwZTsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEltcGxU
eXBlSW5mbzxXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUqPiAgICAgICB7IHR5cGVkZWYgV0tTZXJp
YWxpemVkU2NyaXB0VmFsdWVSZWYgQVBJVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEltcGxU
eXBlSW5mbzxXZWJTdHJpbmcqPiAgICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tTdHJp
bmdSZWYgQVBJVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJVUkwq
PiAgICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tVUkxSZWYgQVBJVHlwZTsgfTsK
IHRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJVUkxSZXF1ZXN0Kj4gICAgICAgICAg
ICAgICAgICB7IHR5cGVkZWYgV0tVUkxSZXF1ZXN0UmVmIEFQSVR5cGU7IH07CmRpZmYgLS1naXQg
YS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Jhc2UuaCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLQmFzZS5oCmluZGV4IDlmNzY0MzRkZGMxNDMyOGM5MTA2OTEwZmQxM2QxYmZkM2ViNjcy
MzUuLjc0ODliNTY5ZjdjOWU2YTlmN2VmZTJhOTk3NTkxOWIxMGYzMDFlM2UgMTAwNjQ0Ci0tLSBh
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmFzZS5oCisrKyBiL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQmFzZS5oCkBAIC01Myw2ICs1Myw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9w
YXF1ZVdLTmF2aWdhdGlvbkRhdGEqIFdLTmF2aWdhdGlvbkRhdGFSZWY7CiB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS1BhZ2UqIFdLUGFnZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9w
YXF1ZVdLUGFnZU5hbWVzcGFjZSogV0tQYWdlTmFtZXNwYWNlUmVmOwogdHlwZWRlZiBjb25zdCBz
dHJ1Y3QgT3BhcXVlV0tQcmVmZXJlbmNlcyogV0tQcmVmZXJlbmNlc1JlZjsKK3R5cGVkZWYgY29u
c3Qgc3RydWN0IE9wYXF1ZVdLU2VyaWFsaXplZFNjcmlwdFZhbHVlKiBXS1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLU3RyaW5nKiBXS1N0cmlu
Z1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVVJMKiBXS1VSTFJlZjsKIHR5cGVk
ZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVVJMUmVxdWVzdCogV0tVUkxSZXF1ZXN0UmVmOwpkaWZm
IC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUu
Y3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjYxMmU0ZjU0NDQxNTU1M2EzY2M5ODdmMmZiNjYxZDNmMjMwMmI2ODMKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXS1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5
cGVJRCBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZUdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRv
UmVmKFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6QVBJVHlwZSk7Cit9CisKK1dLU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlUmVmIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlQ3JlYXRlKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7Cisg
ICAgcmV0dXJuIHRvUmVmKFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGNvbnRleHQs
IHZhbHVlLCBleGNlcHRpb24pKTsKK30KKworSlNWYWx1ZVJlZiBXS1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZURlc2VyaWFsaXplKFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlUmVmIHNjcmlwdFZhbHVlUmVm
LCBKU0NvbnRleHRSZWYgY29udGV4dFJlZiwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAg
IHJldHVybiB0b1dLKHNlcmlhbGl6ZWRWYWx1ZVJlZiktPmRlc2VyaWFsaXplKGNvbnRleHRSZWYs
IGV4Y2VwdGlvblJlZik7Cit9CmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tTZXJp
YWxpemVkU2NyaXB0VmFsdWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NWZjMDQ4YTUyZjM1NDBjMGVhMWM5OTZh
NWYxZTU2ODg0MTJlYzAzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZV9oCisjZGVmaW5lIFdLU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlX2gKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHQuaD4K
KyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVy
biAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUdldFR5cGVJRCgpOworCitXS19FWFBPUlQgV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVSZWYg
V0tTZXJpYWxpemVkU2NyaXB0VmFsdWVDcmVhdGUoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFs
dWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CitXS19FWFBPUlQgSlNWYWx1ZVJl
ZiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZURlc2VyaWFsaXplKFdLU2VyaWFsaXplZFNjcmlwdFZh
bHVlUmVmIHNjcmlwdFZhbHVlLCBKU0NvbnRleHRSZWYgY29uc3RleHQsIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbik7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvKiBX
S1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZV9oICovCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDIyMWFiMzNiYzc3MTQ2NGFiNDU4NDgxNmMwNjdhOTcwNTg4M2Y3
NzguLjdjNTYwOTg2OTY1NzQ5Y2E3YTg0NDliNjZmN2YxZmE2NzJiY2VhNTMgMTAwNjQ0Ci0tLSBh
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDUsNiArMTA1LDkgQEAKIAkJ
OERDMkVGNTcwNDg2QTY5NDAwOThCMjE2IC8qIENvY29hLmZyYW1ld29yayBpbiBGcmFtZXdvcmtz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDEwNThDN0IxRkVBNTU4NUUxMUNB
MkNCQiAvKiBDb2NvYS5mcmFtZXdvcmsgKi87IH07CiAJCTkzOTFGMkNBMTIxQjY3OUEwMEVCRjdF
OCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MUYyODQxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZy
YW1lTmV0d29ya2luZ0NvbnRleHQubW0gKi87IH07CiAJCTkzOTFGMkNCMTIxQjY3QUQwMEVCRjdF
OCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5oICovOyB9OworCQlBNzJENUQ4MTEyMzZDQkE4MDBBODhCMTUg
LyogV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggaW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MkQ1RDdGMTIzNkNCQTgwMEE4OEIxNSAvKiBXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWUuaCAqLzsgfTsKKwkJQTcyRDVGMzAxMjM2RjlFODAwQTg4QjE1IC8q
IFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggaW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3MkQ1RjJFMTIzNkY5RTgwMEE4OEIxNSAvKiBXS1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5oICovOyB9OworCQlBNzJENUYzMTEyMzZGOUU4MDBBODhCMTUgLyogV0tT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzJENUYyRjEyMzZGOUU4MDBBODhCMTUgLyogV0tTZXJpYWxpemVk
U2NyaXB0VmFsdWUuY3BwICovOyB9OwogCQlCQzAwOTJGNzExNTgzN0EzMDBFMEFFMkEgLyogUnVu
TG9vcE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDMDA5MkY1MTE1ODM3QTMwMEUwQUUyQSAvKiBSdW5Mb29wTWFjLm1tICovOyB9OwogCQlCQzAw
OTJGODExNTgzN0EzMDBFMEFFMkEgLyogV29ya1F1ZXVlTWFjLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMDA5MkY2MTE1ODM3QTMwMEUwQUUyQSAv
KiBXb3JrUXVldWVNYWMuY3BwICovOyB9OwogCQlCQzAzMkQ3NTEwRjQzNzhEMDA1OEMxNUEgLyog
V2ViQ2hyb21lQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzAzMkQ2MDEwRjQzNzhEMDA1OEMxNUEgLyogV2ViQ2hyb21lQ2xpZW50LmggKi87
IH07CkBAIC0zODIsNiArMzg1LDkgQEAKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSAxOwogCQkJZmls
ZXMgPSAoCiAJCQkJMUE1MERCNjYxMTBBM0Q1NzAwMEQzRkU1IC8qIFdlYlByb2Nlc3MuYXBwIGlu
IENvcHlGaWxlcyAqLywKKwkJCQlBNzJENUQ4MTEyMzZDQkE4MDBBODhCMTUgLyogV2ViU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmggaW4gQ29weUZpbGVzICovLAorCQkJCUE3MkQ1RjMwMTIzNkY5RTgw
MEE4OEIxNSAvKiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGluIENvcHlGaWxlcyAqLywKKwkJ
CQlBNzJENUYzMTEyMzZGOUU4MDBBODhCMTUgLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3Bw
IGluIENvcHlGaWxlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKQEAgLTQ3OSw2ICs0ODUsOSBAQAogCQk4REMyRUY1QjA0ODZBNjk0
MDA5OEIyMTYgLyogV2ViS2l0Mi5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZXhwbGljaXRGaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBpbmNsdWRlSW5JbmRleCA9
IDA7IHBhdGggPSBXZWJLaXQyLmZyYW1ld29yazsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKIAkJOTM5MUYyODMxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkxRjI4NDEy
MUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3MkQ1RDdGMTIzNkNCQTgwMEE4OEIx
NSAvKiBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUE3MkQ1RjJFMTIzNkY5RTgwMEE4OEIxNSAvKiBXS1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzJENUYyRjEyMzZGOUU4
MDBBODhCMTUgLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQzAwOTJGNTExNTgzN0EzMDBFMEFFMkEgLyogUnVuTG9v
cE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJ1bkxvb3BN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDA5MkY2MTE1ODM3QTMwMEUw
QUUyQSAvKiBXb3JrUXVldWVNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV29ya1F1ZXVlTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMw
MzJENjAxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNocm9tZUNsaWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDaHJvbWVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTk0Myw2ICs5NTIsNyBAQAogCQkJCUJDRTIzMTVCMTIyQzMwQ0EwMEQ1QzM1
QSAvKiBXZWJVUkxSZXF1ZXN0LmggKi8sCiAJCQkJQkM5MEExRDExMjJERDU1RTAwQ0M4QzUwIC8q
IFdlYlVSTFJlc3BvbnNlLmNwcCAqLywKIAkJCQlCQzkwQTFEMDEyMkRENTVFMDBDQzhDNTAgLyog
V2ViVVJMUmVzcG9uc2UuaCAqLywKKwkJCQlBNzJENUQ3RjEyMzZDQkE4MDBBODhCMTUgLyogV2Vi
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IFNoYXJlZDsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMTkxLDYgKzEyMDEsOCBAQAogCQkJCUJDRTIz
MUM1MTIyQzQ5MjMwMEQ1QzM1QSAvKiBXS1VSTFJlcXVlc3QuaCAqLywKIAkJCQlCQzkwQTFEQjEy
MkREODk4MDBDQzhDNTAgLyogV0tVUkxSZXNwb25zZS5jcHAgKi8sCiAJCQkJQkM5MEExREExMjJE
RDg5ODAwQ0M4QzUwIC8qIFdLVVJMUmVzcG9uc2UuaCAqLywKKwkJCQlBNzJENUYyRTEyMzZGOUU4
MDBBODhCMTUgLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLywKKwkJCQlBNzJENUYyRjEy
MzZGOUU4MDBBODhCMTUgLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwICovLAogCQkJKTsK
IAkJCXBhdGggPSBDOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE2NjAsNyArMTY3
MiwxNCBAQAogCQkJaXNhID0gUEJYUHJvamVjdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3Qg
PSAxREVCOTFCMTA4NzMzREE1MDAxMEU5Q0QgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZv
ciBQQlhQcm9qZWN0ICJXZWJLaXQyIiAqLzsKIAkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhj
b2RlIDMuMSI7CisJCQlkZXZlbG9wbWVudFJlZ2lvbiA9IEVuZ2xpc2g7CiAJCQloYXNTY2FubmVk
Rm9yRW5jb2RpbmdzID0gMTsKKwkJCWtub3duUmVnaW9ucyA9ICgKKwkJCQlFbmdsaXNoLAorCQkJ
CUphcGFuZXNlLAorCQkJCUZyZW5jaCwKKwkJCQlHZXJtYW4sCisJCQkpOwogCQkJbWFpbkdyb3Vw
ID0gMDg2N0Q2OTFGRTg0MDI4RkMwMkFBQzA3IC8qIFdlYktpdDIgKi87CiAJCQlwcm9kdWN0UmVm
R3JvdXAgPSAwMzQ3NjhERkZGMzhBNTA0MTFEQjlDOEIgLyogUHJvZHVjdHMgKi87CiAJCQlwcm9q
ZWN0RGlyUGF0aCA9ICIiOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66809</attachid>
            <date>2010-09-07 17:51:41 -0700</date>
            <delta_ts>2010-09-07 18:12:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45340-20100907175140.patch</filename>
            <type>text/plain</type>
            <size>23273</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjU4ZWQ3N2U4OTkyMTgzMGZkMzk5ZTVhMDdmOGZhZDQyMjUxNWMyNy4uMWZhNzQwOWZlOWEyOGE1
YzJmMTdlNTc0NTBhMGJlNjJhOWU4MDZmNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wOS0wNyAgT2xp
dmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgU2VyaWFsaXplZFNjcmlwdFZhbHVlIGluIFdl
YktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1
MzQwCisKKyAgICAgICAgQWRkIGEgbmV3IGNvbnN0cnVjdG9yIHRoYXQgYWxsb3dzIFdlYktpdDIg
dG8gY3JlYXRlIGEgU2VyaWFsaXplZFNjcmlwdFZhbHVlCisgICAgICAgIGRpcmVjdGx5IGZyb20g
c2VyaWFsaXplZCBkYXRhLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICog
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6ZGF0YSk6CisKIDIwMTAtMDktMDcgIEFiaGlzaGVrIEFyeWEgIDxpbmZl
cm5vQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CmluZGV4IDVlNmM2YjNjNTE2YzM0NmRhZjhiOGM2ODY2MTBiMWE5MjIzNTlkNWUuLmQzNWJiNGJl
OTJjMDk0MTExZTI1MzI3MGI2Y2NmNGZjNzE2MjVhNWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KKysrIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNDQzLDYgKzQ0Myw3
IEBAIF9fWk43V2ViQ29yZTIxUGxhdGZvcm1LZXlib2FyZEV2ZW50QzFFUDdOU0V2ZW50CiBfX1pO
N1dlYkNvcmUyMVNWR0RvY3VtZW50RXh0ZW5zaW9uczIxc2FtcGxlQW5pbWF0aW9uQXRUaW1lRVJL
TjNXVEY2U3RyaW5nRVBOU18xNFNWR1NNSUxFbGVtZW50RWQKIF9fWk43V2ViQ29yZTIxU2VyaWFs
aXplZFNjcmlwdFZhbHVlMTFkZXNlcmlhbGl6ZUVQSzE1T3BhcXVlSlNDb250ZXh0UFBLMTNPcGFx
dWVKU1ZhbHVlCiBfX1pON1dlYkNvcmUyMVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTZjcmVhdGVFUEsx
NU9wYXF1ZUpTQ29udGV4dFBLMTNPcGFxdWVKU1ZhbHVlUFM2XworX19aTjdXZWJDb3JlMjFTZXJp
YWxpemVkU2NyaXB0VmFsdWVDMUVSTjNXVEY2VmVjdG9ySWhMbTBFRUUKIF9fWk43V2ViQ29yZTIx
U2VyaWFsaXplZFNjcmlwdFZhbHVlRDFFdgogX19aTjdXZWJDb3JlMjFVc2VyQ29udGVudFVSTFBh
dHRlcm41cGFyc2VFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUyMVdpbmRvd3NMYXRpbjFF
bmNvZGluZ0V2CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaApp
bmRleCBiNDFkOWEzMDM3MzM2ZWFmOWQ2NzRkYzVhNjdlNWQ4ZmZlYWI1NjM2Li45NGJjNDc3MzBj
ZDUyNzhhNzdmY2FlZTZiODc2NWZkZWExNmQ2ZGYyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKQEAgLTQyLDEzICs0MiwxOSBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSB2YWx1ZSk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmIHZh
bHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKFN0cmluZyBzdHJpbmcpOworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gYWRvcHQoVmVjdG9yPHVpbnQ4X3Q+JiBidWZm
ZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZShidWZmZXIpKTsKKyAgICB9CisKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IGNyZWF0ZSgpOwogICAgIHN0YXRpYyBTZXJpYWxpemVkU2NyaXB0VmFsdWUq
IG51bGxWYWx1ZSgpOwogCiAgICAgSlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplKEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpOwogICAgIFN0cmlu
ZyB0b1N0cmluZygpOwogICAgIEpTVmFsdWVSZWYgZGVzZXJpYWxpemUoSlNDb250ZXh0UmVmLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pOwotICAgIAorICAgIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
ZGF0YSgpIHsgcmV0dXJuIG1fZGF0YTsgfQorCiAgICAgflNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgp
OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiYjFkZDE0MzE2NWYxZDA5NDIyZGNlYmZlZTg0ZDczYTA2YmRjNjdiLi41
MTIzNTM5OWNmMmJmN2QxMmMwOThiMWI1Njg0Zjc5OTYxMTZhYjgwIDEwMDY0NAotLS0gYS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisy
MDEwLTA5LTA3ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBTZXJpYWxpemVkU2Ny
aXB0VmFsdWUgaW4gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDUzNDAKKworICAgICAgICBBZGQgd3JhcHBlcnMgYW5kIElQQyBzZXJpYWxp
emF0aW9uIGZvciBTZXJpYWxpemVkU2NyaXB0VmFsdWUKKworICAgICAgICAqIFNoYXJlZC9BUElP
YmplY3QuaDoKKyAgICAgICAgKiBTaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaDoKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lc3NhZ2VFbmNvZGVyOjpiYXNlRW5jb2RlKToKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lc3NhZ2VEZWNvZGVyOjpiYXNlRGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6YWRvcHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6OmRlc2VyaWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VyaWFsaXplZFNj
cmlwdFZhbHVlOjpkYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VyaWFsaXplZFNjcmlwdFZh
bHVlOjpXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OnR5cGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tCYXNlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDogQWRkZWQuCisgICAg
ICAgIChXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZUdldFR5cGVJRCk6CisgICAgICAgIChXS1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUNyZWF0ZSk6CisgICAgICAgIChXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZURlc2VyaWFsaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaDogQWRkZWQuCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorCiAyMDEwLTA5LTA3ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgQW5vdGhlciB3aW5kb3dzIGZpeC4KZGlmZiAtLWdpdCBhL1dlYktpdDIvU2hhcmVkL0FQ
SU9iamVjdC5oIGIvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggOGFjYjFlZmNlMGZm
Mzk0NGM0MmIxMDU3ZjNiY2RjMDIzODQ0YWU0MC4uMDUwYjYzZjg4MjQ4YTdlYWRjNmQ5YzI2YTI1
ODNiZDlkMzE2YmViYiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysr
IGIvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKQEAgLTM5LDYgKzM5LDcgQEAgcHVibGljOgog
ICAgICAgICBUeXBlRGF0YSwKICAgICAgICAgVHlwZURpY3Rpb25hcnksCiAgICAgICAgIFR5cGVF
cnJvciwKKyAgICAgICAgVHlwZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwKICAgICAgICAgVHlwZVN0
cmluZywKICAgICAgICAgVHlwZVVSTCwKICAgICAgICAgVHlwZVVSTFJlcXVlc3QsCmRpZmYgLS1n
aXQgYS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oIGIvV2ViS2l0Mi9TaGFyZWQv
VXNlck1lc3NhZ2VDb2RlcnMuaAppbmRleCA1MWExZGNkNTAxNDgzMzY1ODVlMDU1ZGIwY2E5MmM4
NzQ5ZDkxYzc2Li5kOTQ0MmYzNDk0MDRiMTQ3NjRiOTZiNGZhYWM3OTczMDU2MjBjZDBlIDEwMDY0
NAotLS0gYS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCisrKyBiL1dlYktpdDIv
U2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJJ
bW11dGFibGVBcnJheS5oIgogI2luY2x1ZGUgIkltbXV0YWJsZURpY3Rpb25hcnkuaCIKICNpbmNs
dWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7
CkBAIC0zNiw2ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogLy8gICAtIEFycmF5IC0+IEFy
cmF5CiAvLyAgIC0gRGljdGlvbmFyeSAtPiBEaWN0aW9uYXJ5CiAvLyAgIC0gU3RyaW5nIC0+IFN0
cmluZworLy8gICAtIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSAtPiBTZXJpYWxpemVkU2NyaXB0VmFs
dWUKIAogdGVtcGxhdGU8dHlwZW5hbWUgT3duZXI+CiBjbGFzcyBVc2VyTWVzc2FnZUVuY29kZXIg
ewpAQCAtNzYsNiArNzgsMTEgQEAgcHVibGljOgogICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2Rl
KHN0cmluZy0+c3RyaW5nKCkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0K
KyAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVTZXJpYWxpemVkU2NyaXB0VmFsdWU6IHsKKyAg
ICAgICAgICAgIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc2NyaXB0VmFsdWUgPSBzdGF0aWNf
Y2FzdDxXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUqPihtX3Jvb3QpOworICAgICAgICAgICAgZW5j
b2Rlci0+ZW5jb2RlQnl0ZXMoc2NyaXB0VmFsdWUtPmRhdGEoKS5kYXRhKCksIHNjcmlwdFZhbHVl
LT5kYXRhKCkuc2l6ZSgpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMTU5LDYg
KzE2NiwxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBjb2Rlci5tX3Jvb3QgPSBXZWJTdHJpbmc6
OmNyZWF0ZShzdHJpbmcpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKyAgICAgICAg
Y2FzZSBBUElPYmplY3Q6OlR5cGVTZXJpYWxpemVkU2NyaXB0VmFsdWU6IHsKKyAgICAgICAgICAg
IFZlY3Rvcjx1aW50OF90PiBidWZmZXI7CisgICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29k
ZUJ5dGVzKGJ1ZmZlcikpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgY29kZXIubV9yb290ID0gV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChidWZmZXIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJLaXQyL1NoYXJlZC9XZWJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBiL1dlYktpdDIvU2hhcmVkL1dlYlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1NTEzYWRlNjBmNGUzZDg4MDBiMTMzZGE3ZjQ0Yjk0Yjhl
MDU0N2YKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1NoYXJlZC9XZWJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWVfaAorI2RlZmluZSBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWVfaAor
CisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA6IHB1YmxpYyBBUElPYmplY3Qg
eworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOworICAgIAorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gY3JlYXRlKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc2VyaWFs
aXplZFZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTZXJpYWxp
emVkU2NyaXB0VmFsdWUoc2VyaWFsaXplZFZhbHVlKSk7CisgICAgfQorICAgIAorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCisgICAg
eworICAgICAgICBSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxp
emVkVmFsdWUgPSBXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShjb250ZXh0
LCB2YWx1ZSwgZXhjZXB0aW9uKTsKKyAgICAgICAgaWYgKCFzZXJpYWxpemVkVmFsdWUpCisgICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTZXJpYWxp
emVkU2NyaXB0VmFsdWUoc2VyaWFsaXplZFZhbHVlLmdldCgpKSk7CisgICAgfQorICAgIAorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gYWRvcHQoVmVjdG9y
PHVpbnQ4X3Q+JiBidWZmZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdl
YlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFk
b3B0KGJ1ZmZlcikpKTsKKyAgICB9CisgICAgCisgICAgSlNWYWx1ZVJlZiBkZXNlcmlhbGl6ZShK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG1fc2VyaWFsaXplZFNjcmlwdFZhbHVlLT5kZXNlcmlhbGl6ZShjb250ZXh0LCBl
eGNlcHRpb24pOworICAgIH0KKyAgICAKKyAgICBjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEo
KSB7IHJldHVybiBtX3NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS0+ZGF0YSgpOyB9CisKK3ByaXZhdGU6
CisgICAgZXhwbGljaXQgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlKFBhc3NSZWZQdHI8V2ViQ29y
ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkU2NyaXB0VmFsdWUpCisgICAgICAg
IDogbV9zZXJpYWxpemVkU2NyaXB0VmFsdWUoc2VyaWFsaXplZFNjcmlwdFZhbHVlKQorICAgIHsK
KyAgICB9CisgICAgCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElU
eXBlOyB9CisgICAgCisgICAgUmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
bV9zZXJpYWxpemVkU2NyaXB0VmFsdWU7Cit9OworICAgIAorfQorCisjZW5kaWYgLy8gV2ViU2Vy
aWFsaXplZFNjcmlwdFZhbHVlX2gKZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXgg
YWUzYmM1Y2Y4Zjg1M2I0NTU2YjcxNDBlOTg3ZWU2OGVlYzZkY2Q5Yi4uNDcyMjEwODc3MTgzM2Zk
NjgzOWY3YjhmZmFlOTA2YmRkNGJjNzg1OCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tBUElDYXN0LmgKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
LmgKQEAgLTU2LDYgKzU2LDcgQEAgY2xhc3MgV2ViTmF2aWdhdGlvbkRhdGE7CiBjbGFzcyBXZWJQ
YWdlTmFtZXNwYWNlOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUHJlZmVyZW5jZXM7
CitjbGFzcyBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBXZWJVUkxSZXF1ZXN0Owog
Y2xhc3MgV2ViVVJMUmVzcG9uc2U7CiAKQEAgLTc1LDYgKzc2LDcgQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgQVBJVHlwZUluZm88V0tOYXZpZ2F0aW9uRGF0YVJlZj4gICAgICAgICAgICAgIHsgdHlwZWRl
ZiBXZWJOYXYKIHRlbXBsYXRlPD4gc3RydWN0IEFQSVR5cGVJbmZvPFdLUGFnZU5hbWVzcGFjZVJl
Zj4gICAgICAgICAgICAgICB7IHR5cGVkZWYgV2ViUGFnZU5hbWVzcGFjZSogSW1wbFR5cGU7IH07
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS1BhZ2VSZWY+ICAgICAgICAgICAgICAg
ICAgICAgICAgeyB0eXBlZGVmIFdlYlBhZ2VQcm94eSogSW1wbFR5cGU7IH07CiB0ZW1wbGF0ZTw+
IHN0cnVjdCBBUElUeXBlSW5mbzxXS1ByZWZlcmVuY2VzUmVmPiAgICAgICAgICAgICAgICAgeyB0
eXBlZGVmIFdlYlByZWZlcmVuY2VzKiBJbXBsVHlwZTsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEFQ
SVR5cGVJbmZvPFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlUmVmPiAgICAgICB7IHR5cGVkZWYgV2Vi
U2VyaWFsaXplZFNjcmlwdFZhbHVlKiBJbXBsVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEFQ
SVR5cGVJbmZvPFdLU3RyaW5nUmVmPiAgICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV2Vi
U3RyaW5nKiBJbXBsVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEFQSVR5cGVJbmZvPFdLVHlw
ZVJlZj4gICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgQVBJT2JqZWN0KiBJbXBsVHlw
ZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEFQSVR5cGVJbmZvPFdLVVJMUmVmPiAgICAgICAgICAg
ICAgICAgICAgICAgICB7IHR5cGVkZWYgV2ViVVJMKiBJbXBsVHlwZTsgfTsKQEAgLTEwMCw2ICsx
MDIsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBJbXBsVHlwZUluZm88V2ViTmF2aWdhdGlvbkRhdGEq
PiAgICAgICAgICAgICAgeyB0eXBlZGVmIFdLTmF2aQogdGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5
cGVJbmZvPFdlYlBhZ2VOYW1lc3BhY2UqPiAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXS1BhZ2VO
YW1lc3BhY2VSZWYgQVBJVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxX
ZWJQYWdlUHJveHkqPiAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tQYWdlUmVmIEFQSVR5
cGU7IH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBJbXBsVHlwZUluZm88V2ViUHJlZmVyZW5jZXMqPiAg
ICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdLUHJlZmVyZW5jZXNSZWYgQVBJVHlwZTsgfTsKK3Rl
bXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUqPiAg
ICAgICB7IHR5cGVkZWYgV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVSZWYgQVBJVHlwZTsgfTsKIHRl
bXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJTdHJpbmcqPiAgICAgICAgICAgICAgICAg
ICAgICB7IHR5cGVkZWYgV0tTdHJpbmdSZWYgQVBJVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0
IEltcGxUeXBlSW5mbzxXZWJVUkwqPiAgICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYg
V0tVUkxSZWYgQVBJVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJV
UkxSZXF1ZXN0Kj4gICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tVUkxSZXF1ZXN0UmVmIEFQ
SVR5cGU7IH07CmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Jhc2UuaCBi
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmFzZS5oCmluZGV4IDlmNzY0MzRkZGMxNDMyOGM5
MTA2OTEwZmQxM2QxYmZkM2ViNjcyMzUuLjc0ODliNTY5ZjdjOWU2YTlmN2VmZTJhOTk3NTkxOWIx
MGYzMDFlM2UgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmFzZS5oCisr
KyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmFzZS5oCkBAIC01Myw2ICs1Myw3IEBAIHR5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmF2aWdhdGlvbkRhdGEqIFdLTmF2aWdhdGlvbkRh
dGFSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2UqIFdLUGFnZVJlZjsKIHR5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGFnZU5hbWVzcGFjZSogV0tQYWdlTmFtZXNwYWNl
UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcmVmZXJlbmNlcyogV0tQcmVmZXJl
bmNlc1JlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLU2VyaWFsaXplZFNjcmlwdFZh
bHVlKiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9w
YXF1ZVdLU3RyaW5nKiBXS1N0cmluZ1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdL
VVJMKiBXS1VSTFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVVJMUmVxdWVzdCog
V0tVUkxSZXF1ZXN0UmVmOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tTZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyOThlODU2MmY3ZjM5ZjA4Njg0MTZi
Yzc0NGUwMDYyODQ1ZDQyMzAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorCisjaW5jbHVkZSAi
V0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVl
R2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9SZWYoV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVl
OjpBUElUeXBlKTsKK30KKworV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVSZWYgV0tTZXJpYWxpemVk
U2NyaXB0VmFsdWVDcmVhdGUoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgdmFsdWUs
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBSZWZQdHI8V2ViU2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBzZXJpYWxpemVkVmFsdWUgPSBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0
ZShjb250ZXh0LCB2YWx1ZSwgZXhjZXB0aW9uKTsKKyAgICByZXR1cm4gdG9SZWYoc2VyaWFsaXpl
ZFZhbHVlLnJlbGVhc2UoKS5sZWFrUmVmKCkpOworfQorCitKU1ZhbHVlUmVmIFdLU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlRGVzZXJpYWxpemUoV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVSZWYgc2NyaXB0
VmFsdWVSZWYsIEpTQ29udGV4dFJlZiBjb250ZXh0UmVmLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
Cit7CisgICAgcmV0dXJuIHRvV0soc2NyaXB0VmFsdWVSZWYpLT5kZXNlcmlhbGl6ZShjb250ZXh0
UmVmLCBleGNlcHRpb24pOworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTVmYzA0OGE1MmYzNTQwYzBlYTFjOTk2
YTVmMWU1Njg4NDEyZWMwMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVfaAorI2RlZmluZSBXS1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZV9oCisKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Lmg+
CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRl
cm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tTZXJpYWxpemVkU2NyaXB0
VmFsdWVHZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlUmVm
IFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlQ3JlYXRlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1Zh
bHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOworV0tfRVhQT1JUIEpTVmFsdWVS
ZWYgV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVEZXNlcmlhbGl6ZShXS1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZVJlZiBzY3JpcHRWYWx1ZSwgSlNDb250ZXh0UmVmIGNvbnN0ZXh0LCBKU1ZhbHVlUmVmKiBl
eGNlcHRpb24pOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyog
V0tTZXJpYWxpemVkU2NyaXB0VmFsdWVfaCAqLwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAyMjFhYjMzYmM3NzE0NjRhYjQ1ODQ4MTZjMDY3YTk3MDU4ODNm
Nzc4Li41NjgxMmY4NDZkMzUxODI5M2MzZGJiZDYzZjdlYzczZDEyNWIzYWVhIDEwMDY0NAotLS0g
YS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTA1LDYgKzEwNSwxMSBAQAog
CQk4REMyRUY1NzA0ODZBNjk0MDA5OEIyMTYgLyogQ29jb2EuZnJhbWV3b3JrIGluIEZyYW1ld29y
a3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTA1OEM3QjFGRUE1NTg1RTEx
Q0EyQ0JCIC8qIENvY29hLmZyYW1ld29yayAqLzsgfTsKIAkJOTM5MUYyQ0ExMjFCNjc5QTAwRUJG
N0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkxRjI4NDEyMUIzOEY1MDBFQkY3RTggLyogV2Vi
RnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLzsgfTsKIAkJOTM5MUYyQ0IxMjFCNjdBRDAwRUJG
N0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi87IH07CisJCUE3MkQ1RDgxMTIzNkNCQTgwMEE4OEIx
NSAvKiBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcyRDVEN0YxMjM2Q0JBODAwQTg4QjE1IC8qIFdlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovOyB9OworCQlBNzJENUYzMDEyMzZGOUU4MDBBODhCMTUg
LyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTcyRDVGMkUxMjM2RjlFODAwQTg4QjE1IC8qIFdLU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmggKi87IH07CisJCUE3MkQ1RjMxMTIzNkY5RTgwMEE4OEIxNSAvKiBX
S1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgaW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3MkQ1RjJGMTIzNkY5RTgwMEE4OEIxNSAvKiBXS1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5jcHAgKi87IH07CisJCUE3MkQ2MTBCMTIzNzE0NEYwMEE4OEIxNSAvKiBX
S1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzJENUYyRjEyMzZGOUU4MDBBODhCMTUgLyogV0tTZXJpYWxpemVk
U2NyaXB0VmFsdWUuY3BwICovOyB9OworCQlBNzJENjEwQzEyMzcxNDUwMDBBODhCMTUgLyogV0tT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTcyRDVGMkYxMjM2RjlFODAwQTg4QjE1IC8qIFdLU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmNwcCAqLzsgfTsKIAkJQkMwMDkyRjcxMTU4MzdBMzAwRTBBRTJBIC8qIFJ1bkxv
b3BNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzAwOTJGNTExNTgzN0EzMDBFMEFFMkEgLyogUnVuTG9vcE1hYy5tbSAqLzsgfTsKIAkJQkMwMDky
RjgxMTU4MzdBMzAwRTBBRTJBIC8qIFdvcmtRdWV1ZU1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAwOTJGNjExNTgzN0EzMDBFMEFFMkEgLyog
V29ya1F1ZXVlTWFjLmNwcCAqLzsgfTsKIAkJQkMwMzJENzUxMEY0Mzc4RDAwNThDMTVBIC8qIFdl
YkNocm9tZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMwMzJENjAxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNocm9tZUNsaWVudC5oICovOyB9
OwpAQCAtMzgyLDYgKzM4Nyw5IEBACiAJCQlkc3RTdWJmb2xkZXJTcGVjID0gMTsKIAkJCWZpbGVz
ID0gKAogCQkJCTFBNTBEQjY2MTEwQTNENTcwMDBEM0ZFNSAvKiBXZWJQcm9jZXNzLmFwcCBpbiBD
b3B5RmlsZXMgKi8sCisJCQkJQTcyRDVEODExMjM2Q0JBODAwQTg4QjE1IC8qIFdlYlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5oIGluIENvcHlGaWxlcyAqLywKKwkJCQlBNzJENUYzMDEyMzZGOUU4MDBB
ODhCMTUgLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBpbiBDb3B5RmlsZXMgKi8sCisJCQkJ
QTcyRDVGMzExMjM2RjlFODAwQTg4QjE1IC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBp
biBDb3B5RmlsZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC00NzksNiArNDg3LDkgQEAKIAkJOERDMkVGNUIwNDg2QTY5NDAw
OThCMjE2IC8qIFdlYktpdDIuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgaW5jbHVkZUluSW5kZXggPSAw
OyBwYXRoID0gV2ViS2l0Mi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CiAJCTkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdD
b250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MUYyODQxMjFC
MzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzJENUQ3RjEyMzZDQkE4MDBBODhCMTUg
LyogV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBNzJENUYyRTEyMzZGOUU4MDBBODhCMTUgLyogV0tTZXJpYWxpemVkU2NyaXB0VmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTZXJpYWxpemVkU2NyaXB0
VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTcyRDVGMkYxMjM2RjlFODAw
QTg4QjE1IC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwMDkyRjUxMTU4MzdBMzAwRTBBRTJBIC8qIFJ1bkxvb3BN
YWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSdW5Mb29wTWFj
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzAwOTJGNjExNTgzN0EzMDBFMEFF
MkEgLyogV29ya1F1ZXVlTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdvcmtRdWV1ZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDMy
RDYwMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDaHJvbWVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQ2hyb21lQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC05NDMsNiArOTU0LDcgQEAKIAkJCQlCQ0UyMzE1QjEyMkMzMENBMDBENUMzNUEg
LyogV2ViVVJMUmVxdWVzdC5oICovLAogCQkJCUJDOTBBMUQxMTIyREQ1NUUwMENDOEM1MCAvKiBX
ZWJVUkxSZXNwb25zZS5jcHAgKi8sCiAJCQkJQkM5MEExRDAxMjJERDU1RTAwQ0M4QzUwIC8qIFdl
YlVSTFJlc3BvbnNlLmggKi8sCisJCQkJQTcyRDVEN0YxMjM2Q0JBODAwQTg4QjE1IC8qIFdlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBTaGFyZWQ7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTE5MSw2ICsxMjAzLDggQEAKIAkJCQlCQ0UyMzFD
NTEyMkM0OTIzMDBENUMzNUEgLyogV0tVUkxSZXF1ZXN0LmggKi8sCiAJCQkJQkM5MEExREIxMjJE
RDg5ODAwQ0M4QzUwIC8qIFdLVVJMUmVzcG9uc2UuY3BwICovLAogCQkJCUJDOTBBMURBMTIyREQ4
OTgwMENDOEM1MCAvKiBXS1VSTFJlc3BvbnNlLmggKi8sCisJCQkJQTcyRDVGMkUxMjM2RjlFODAw
QTg4QjE1IC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi8sCisJCQkJQTcyRDVGMkYxMjM2
RjlFODAwQTg4QjE1IC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCAqLywKIAkJCSk7CiAJ
CQlwYXRoID0gQzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xNjYwLDcgKzE2NzQs
MTQgQEAKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0g
MURFQjkxQjEwODczM0RBNTAwMTBFOUNEIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3Ig
UEJYUHJvamVjdCAiV2ViS2l0MiIgKi87CiAJCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29k
ZSAzLjEiOworCQkJZGV2ZWxvcG1lbnRSZWdpb24gPSBFbmdsaXNoOwogCQkJaGFzU2Nhbm5lZEZv
ckVuY29kaW5ncyA9IDE7CisJCQlrbm93blJlZ2lvbnMgPSAoCisJCQkJRW5nbGlzaCwKKwkJCQlK
YXBhbmVzZSwKKwkJCQlGcmVuY2gsCisJCQkJR2VybWFuLAorCQkJKTsKIAkJCW1haW5Hcm91cCA9
IDA4NjdENjkxRkU4NDAyOEZDMDJBQUMwNyAvKiBXZWJLaXQyICovOwogCQkJcHJvZHVjdFJlZkdy
b3VwID0gMDM0NzY4REZGRjM4QTUwNDExREI5QzhCIC8qIFByb2R1Y3RzICovOwogCQkJcHJvamVj
dERpclBhdGggPSAiIjsKQEAgLTE2OTgsNiArMTcxOSw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sg
PSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJMUE2RkEzMTExMUUzOTIxRTAwREIxMzcx
IC8qIE1haW5NYWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTcyRDYxMEMxMjM3MTQ1MDAwQTg4
QjE1IC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTg0
OCw2ICsxODcwLDcgQEAKIAkJCQlCQ0IwQUYzNjEyMzAxREZCMDBCMTM0MUUgLyogV0tNdXRhYmxl
RGljdGlvbmFyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0EwRUY4MDEyMzMxRTc4MDA3RDND
RkIgLyogV2ViRWRpdENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBMEVGQTAxMjMz
MjY0MjAwN0QzQ0ZCIC8qIFdlYkVkaXRDb21tYW5kUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJQTcyRDYxMEIxMjM3MTQ0RjAwQTg4QjE1IC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66814</attachid>
            <date>2010-09-07 18:12:28 -0700</date>
            <delta_ts>2010-09-08 10:36:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45340-20100907181227.patch</filename>
            <type>text/plain</type>
            <size>24669</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjU4ZWQ3N2U4OTkyMTgzMGZkMzk5ZTVhMDdmOGZhZDQyMjUxNWMyNy4uMWZhNzQwOWZlOWEyOGE1
YzJmMTdlNTc0NTBhMGJlNjJhOWU4MDZmNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wOS0wNyAgT2xp
dmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgU2VyaWFsaXplZFNjcmlwdFZhbHVlIGluIFdl
YktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1
MzQwCisKKyAgICAgICAgQWRkIGEgbmV3IGNvbnN0cnVjdG9yIHRoYXQgYWxsb3dzIFdlYktpdDIg
dG8gY3JlYXRlIGEgU2VyaWFsaXplZFNjcmlwdFZhbHVlCisgICAgICAgIGRpcmVjdGx5IGZyb20g
c2VyaWFsaXplZCBkYXRhLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICog
YmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6ZGF0YSk6CisKIDIwMTAtMDktMDcgIEFiaGlzaGVrIEFyeWEgIDxpbmZl
cm5vQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CmluZGV4IDVlNmM2YjNjNTE2YzM0NmRhZjhiOGM2ODY2MTBiMWE5MjIzNTlkNWUuLmQzNWJiNGJl
OTJjMDk0MTExZTI1MzI3MGI2Y2NmNGZjNzE2MjVhNWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KKysrIGIvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNDQzLDYgKzQ0Myw3
IEBAIF9fWk43V2ViQ29yZTIxUGxhdGZvcm1LZXlib2FyZEV2ZW50QzFFUDdOU0V2ZW50CiBfX1pO
N1dlYkNvcmUyMVNWR0RvY3VtZW50RXh0ZW5zaW9uczIxc2FtcGxlQW5pbWF0aW9uQXRUaW1lRVJL
TjNXVEY2U3RyaW5nRVBOU18xNFNWR1NNSUxFbGVtZW50RWQKIF9fWk43V2ViQ29yZTIxU2VyaWFs
aXplZFNjcmlwdFZhbHVlMTFkZXNlcmlhbGl6ZUVQSzE1T3BhcXVlSlNDb250ZXh0UFBLMTNPcGFx
dWVKU1ZhbHVlCiBfX1pON1dlYkNvcmUyMVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTZjcmVhdGVFUEsx
NU9wYXF1ZUpTQ29udGV4dFBLMTNPcGFxdWVKU1ZhbHVlUFM2XworX19aTjdXZWJDb3JlMjFTZXJp
YWxpemVkU2NyaXB0VmFsdWVDMUVSTjNXVEY2VmVjdG9ySWhMbTBFRUUKIF9fWk43V2ViQ29yZTIx
U2VyaWFsaXplZFNjcmlwdFZhbHVlRDFFdgogX19aTjdXZWJDb3JlMjFVc2VyQ29udGVudFVSTFBh
dHRlcm41cGFyc2VFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUyMVdpbmRvd3NMYXRpbjFF
bmNvZGluZ0V2CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaApp
bmRleCBiNDFkOWEzMDM3MzM2ZWFmOWQ2NzRkYzVhNjdlNWQ4ZmZlYWI1NjM2Li45NGJjNDc3MzBj
ZDUyNzhhNzdmY2FlZTZiODc2NWZkZWExNmQ2ZGYyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKQEAgLTQyLDEzICs0MiwxOSBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSB2YWx1ZSk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGUoSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmIHZh
bHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKFN0cmluZyBzdHJpbmcpOworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gYWRvcHQoVmVjdG9yPHVpbnQ4X3Q+JiBidWZm
ZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZShidWZmZXIpKTsKKyAgICB9CisKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+IGNyZWF0ZSgpOwogICAgIHN0YXRpYyBTZXJpYWxpemVkU2NyaXB0VmFsdWUq
IG51bGxWYWx1ZSgpOwogCiAgICAgSlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplKEpTQzo6RXhlY1N0
YXRlKiBleGVjLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpOwogICAgIFN0cmlu
ZyB0b1N0cmluZygpOwogICAgIEpTVmFsdWVSZWYgZGVzZXJpYWxpemUoSlNDb250ZXh0UmVmLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pOwotICAgIAorICAgIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
ZGF0YSgpIHsgcmV0dXJuIG1fZGF0YTsgfQorCiAgICAgflNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSgp
OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiYjFkZDE0MzE2NWYxZDA5NDIyZGNlYmZlZTg0ZDczYTA2YmRjNjdiLi41
MTIzNTM5OWNmMmJmN2QxMmMwOThiMWI1Njg0Zjc5OTYxMTZhYjgwIDEwMDY0NAotLS0gYS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisy
MDEwLTA5LTA3ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBTZXJpYWxpemVkU2Ny
aXB0VmFsdWUgaW4gV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDUzNDAKKworICAgICAgICBBZGQgd3JhcHBlcnMgYW5kIElQQyBzZXJpYWxp
emF0aW9uIGZvciBTZXJpYWxpemVkU2NyaXB0VmFsdWUKKworICAgICAgICAqIFNoYXJlZC9BUElP
YmplY3QuaDoKKyAgICAgICAgKiBTaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaDoKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lc3NhZ2VFbmNvZGVyOjpiYXNlRW5jb2RlKToKKyAgICAgICAgKFdlYktp
dDo6VXNlck1lc3NhZ2VEZWNvZGVyOjpiYXNlRGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6YWRvcHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6OmRlc2VyaWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VyaWFsaXplZFNj
cmlwdFZhbHVlOjpkYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VyaWFsaXplZFNjcmlwdFZh
bHVlOjpXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OnR5cGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0FQ
SUNhc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tCYXNlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDogQWRkZWQuCisgICAg
ICAgIChXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZUdldFR5cGVJRCk6CisgICAgICAgIChXS1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUNyZWF0ZSk6CisgICAgICAgIChXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZURlc2VyaWFsaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaDogQWRkZWQuCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorCiAyMDEwLTA5LTA3ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgQW5vdGhlciB3aW5kb3dzIGZpeC4KZGlmZiAtLWdpdCBhL1dlYktpdDIvU2hhcmVkL0FQ
SU9iamVjdC5oIGIvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKaW5kZXggOGFjYjFlZmNlMGZm
Mzk0NGM0MmIxMDU3ZjNiY2RjMDIzODQ0YWU0MC4uMDUwYjYzZjg4MjQ4YTdlYWRjNmQ5YzI2YTI1
ODNiZDlkMzE2YmViYiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKKysr
IGIvV2ViS2l0Mi9TaGFyZWQvQVBJT2JqZWN0LmgKQEAgLTM5LDYgKzM5LDcgQEAgcHVibGljOgog
ICAgICAgICBUeXBlRGF0YSwKICAgICAgICAgVHlwZURpY3Rpb25hcnksCiAgICAgICAgIFR5cGVF
cnJvciwKKyAgICAgICAgVHlwZVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSwKICAgICAgICAgVHlwZVN0
cmluZywKICAgICAgICAgVHlwZVVSTCwKICAgICAgICAgVHlwZVVSTFJlcXVlc3QsCmRpZmYgLS1n
aXQgYS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oIGIvV2ViS2l0Mi9TaGFyZWQv
VXNlck1lc3NhZ2VDb2RlcnMuaAppbmRleCA1MWExZGNkNTAxNDgzMzY1ODVlMDU1ZGIwY2E5MmM4
NzQ5ZDkxYzc2Li5kOTQ0MmYzNDk0MDRiMTQ3NjRiOTZiNGZhYWM3OTczMDU2MjBjZDBlIDEwMDY0
NAotLS0gYS9XZWJLaXQyL1NoYXJlZC9Vc2VyTWVzc2FnZUNvZGVycy5oCisrKyBiL1dlYktpdDIv
U2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJJ
bW11dGFibGVBcnJheS5oIgogI2luY2x1ZGUgIkltbXV0YWJsZURpY3Rpb25hcnkuaCIKICNpbmNs
dWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7
CkBAIC0zNiw2ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogLy8gICAtIEFycmF5IC0+IEFy
cmF5CiAvLyAgIC0gRGljdGlvbmFyeSAtPiBEaWN0aW9uYXJ5CiAvLyAgIC0gU3RyaW5nIC0+IFN0
cmluZworLy8gICAtIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSAtPiBTZXJpYWxpemVkU2NyaXB0VmFs
dWUKIAogdGVtcGxhdGU8dHlwZW5hbWUgT3duZXI+CiBjbGFzcyBVc2VyTWVzc2FnZUVuY29kZXIg
ewpAQCAtNzYsNiArNzgsMTEgQEAgcHVibGljOgogICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2Rl
KHN0cmluZy0+c3RyaW5nKCkpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0K
KyAgICAgICAgY2FzZSBBUElPYmplY3Q6OlR5cGVTZXJpYWxpemVkU2NyaXB0VmFsdWU6IHsKKyAg
ICAgICAgICAgIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc2NyaXB0VmFsdWUgPSBzdGF0aWNf
Y2FzdDxXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUqPihtX3Jvb3QpOworICAgICAgICAgICAgZW5j
b2Rlci0+ZW5jb2RlQnl0ZXMoc2NyaXB0VmFsdWUtPmRhdGEoKS5kYXRhKCksIHNjcmlwdFZhbHVl
LT5kYXRhKCkuc2l6ZSgpKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAg
ICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMTU5LDYg
KzE2NiwxMyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBjb2Rlci5tX3Jvb3QgPSBXZWJTdHJpbmc6
OmNyZWF0ZShzdHJpbmcpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKyAgICAgICAg
Y2FzZSBBUElPYmplY3Q6OlR5cGVTZXJpYWxpemVkU2NyaXB0VmFsdWU6IHsKKyAgICAgICAgICAg
IFZlY3Rvcjx1aW50OF90PiBidWZmZXI7CisgICAgICAgICAgICBpZiAoIWRlY29kZXItPmRlY29k
ZUJ5dGVzKGJ1ZmZlcikpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAg
ICAgY29kZXIubV9yb290ID0gV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChidWZmZXIp
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9XZWJLaXQyL1NoYXJlZC9XZWJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBiL1dlYktpdDIvU2hhcmVkL1dlYlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1NTEzYWRlNjBmNGUzZDg4MDBiMTMzZGE3ZjQ0Yjk0Yjhl
MDU0N2YKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1NoYXJlZC9XZWJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWVfaAorI2RlZmluZSBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWVfaAor
CisjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA6IHB1YmxpYyBBUElPYmplY3Qg
eworcHVibGljOgorICAgIHN0YXRpYyBjb25zdCBUeXBlIEFQSVR5cGUgPSBUeXBlU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlOworICAgIAorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gY3JlYXRlKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc2VyaWFs
aXplZFZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTZXJpYWxp
emVkU2NyaXB0VmFsdWUoc2VyaWFsaXplZFZhbHVlKSk7CisgICAgfQorICAgIAorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCisgICAg
eworICAgICAgICBSZWZQdHI8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxp
emVkVmFsdWUgPSBXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShjb250ZXh0
LCB2YWx1ZSwgZXhjZXB0aW9uKTsKKyAgICAgICAgaWYgKCFzZXJpYWxpemVkVmFsdWUpCisgICAg
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJTZXJpYWxp
emVkU2NyaXB0VmFsdWUoc2VyaWFsaXplZFZhbHVlLmdldCgpKSk7CisgICAgfQorICAgIAorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gYWRvcHQoVmVjdG9y
PHVpbnQ4X3Q+JiBidWZmZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdl
YlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFk
b3B0KGJ1ZmZlcikpKTsKKyAgICB9CisgICAgCisgICAgSlNWYWx1ZVJlZiBkZXNlcmlhbGl6ZShK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG1fc2VyaWFsaXplZFNjcmlwdFZhbHVlLT5kZXNlcmlhbGl6ZShjb250ZXh0LCBl
eGNlcHRpb24pOworICAgIH0KKyAgICAKKyAgICBjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEo
KSB7IHJldHVybiBtX3NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS0+ZGF0YSgpOyB9CisKK3ByaXZhdGU6
CisgICAgZXhwbGljaXQgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlKFBhc3NSZWZQdHI8V2ViQ29y
ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkU2NyaXB0VmFsdWUpCisgICAgICAg
IDogbV9zZXJpYWxpemVkU2NyaXB0VmFsdWUoc2VyaWFsaXplZFNjcmlwdFZhbHVlKQorICAgIHsK
KyAgICB9CisgICAgCisgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBBUElU
eXBlOyB9CisgICAgCisgICAgUmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
bV9zZXJpYWxpemVkU2NyaXB0VmFsdWU7Cit9OworICAgIAorfQorCisjZW5kaWYgLy8gV2ViU2Vy
aWFsaXplZFNjcmlwdFZhbHVlX2gKZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXgg
YWUzYmM1Y2Y4Zjg1M2I0NTU2YjcxNDBlOTg3ZWU2OGVlYzZkY2Q5Yi4uNDcyMjEwODc3MTgzM2Zk
NjgzOWY3YjhmZmFlOTA2YmRkNGJjNzg1OCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tBUElDYXN0LmgKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
LmgKQEAgLTU2LDYgKzU2LDcgQEAgY2xhc3MgV2ViTmF2aWdhdGlvbkRhdGE7CiBjbGFzcyBXZWJQ
YWdlTmFtZXNwYWNlOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUHJlZmVyZW5jZXM7
CitjbGFzcyBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBXZWJVUkxSZXF1ZXN0Owog
Y2xhc3MgV2ViVVJMUmVzcG9uc2U7CiAKQEAgLTc1LDYgKzc2LDcgQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgQVBJVHlwZUluZm88V0tOYXZpZ2F0aW9uRGF0YVJlZj4gICAgICAgICAgICAgIHsgdHlwZWRl
ZiBXZWJOYXYKIHRlbXBsYXRlPD4gc3RydWN0IEFQSVR5cGVJbmZvPFdLUGFnZU5hbWVzcGFjZVJl
Zj4gICAgICAgICAgICAgICB7IHR5cGVkZWYgV2ViUGFnZU5hbWVzcGFjZSogSW1wbFR5cGU7IH07
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS1BhZ2VSZWY+ICAgICAgICAgICAgICAg
ICAgICAgICAgeyB0eXBlZGVmIFdlYlBhZ2VQcm94eSogSW1wbFR5cGU7IH07CiB0ZW1wbGF0ZTw+
IHN0cnVjdCBBUElUeXBlSW5mbzxXS1ByZWZlcmVuY2VzUmVmPiAgICAgICAgICAgICAgICAgeyB0
eXBlZGVmIFdlYlByZWZlcmVuY2VzKiBJbXBsVHlwZTsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEFQ
SVR5cGVJbmZvPFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlUmVmPiAgICAgICB7IHR5cGVkZWYgV2Vi
U2VyaWFsaXplZFNjcmlwdFZhbHVlKiBJbXBsVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEFQ
SVR5cGVJbmZvPFdLU3RyaW5nUmVmPiAgICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV2Vi
U3RyaW5nKiBJbXBsVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEFQSVR5cGVJbmZvPFdLVHlw
ZVJlZj4gICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgQVBJT2JqZWN0KiBJbXBsVHlw
ZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEFQSVR5cGVJbmZvPFdLVVJMUmVmPiAgICAgICAgICAg
ICAgICAgICAgICAgICB7IHR5cGVkZWYgV2ViVVJMKiBJbXBsVHlwZTsgfTsKQEAgLTEwMCw2ICsx
MDIsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBJbXBsVHlwZUluZm88V2ViTmF2aWdhdGlvbkRhdGEq
PiAgICAgICAgICAgICAgeyB0eXBlZGVmIFdLTmF2aQogdGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5
cGVJbmZvPFdlYlBhZ2VOYW1lc3BhY2UqPiAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXS1BhZ2VO
YW1lc3BhY2VSZWYgQVBJVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxX
ZWJQYWdlUHJveHkqPiAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tQYWdlUmVmIEFQSVR5
cGU7IH07CiB0ZW1wbGF0ZTw+IHN0cnVjdCBJbXBsVHlwZUluZm88V2ViUHJlZmVyZW5jZXMqPiAg
ICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdLUHJlZmVyZW5jZXNSZWYgQVBJVHlwZTsgfTsKK3Rl
bXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUqPiAg
ICAgICB7IHR5cGVkZWYgV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVSZWYgQVBJVHlwZTsgfTsKIHRl
bXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJTdHJpbmcqPiAgICAgICAgICAgICAgICAg
ICAgICB7IHR5cGVkZWYgV0tTdHJpbmdSZWYgQVBJVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0
IEltcGxUeXBlSW5mbzxXZWJVUkwqPiAgICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYg
V0tVUkxSZWYgQVBJVHlwZTsgfTsKIHRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJV
UkxSZXF1ZXN0Kj4gICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tVUkxSZXF1ZXN0UmVmIEFQ
SVR5cGU7IH07CmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Jhc2UuaCBi
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmFzZS5oCmluZGV4IDlmNzY0MzRkZGMxNDMyOGM5
MTA2OTEwZmQxM2QxYmZkM2ViNjcyMzUuLjc0ODliNTY5ZjdjOWU2YTlmN2VmZTJhOTk3NTkxOWIx
MGYzMDFlM2UgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmFzZS5oCisr
KyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmFzZS5oCkBAIC01Myw2ICs1Myw3IEBAIHR5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmF2aWdhdGlvbkRhdGEqIFdLTmF2aWdhdGlvbkRh
dGFSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2UqIFdLUGFnZVJlZjsKIHR5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGFnZU5hbWVzcGFjZSogV0tQYWdlTmFtZXNwYWNl
UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcmVmZXJlbmNlcyogV0tQcmVmZXJl
bmNlc1JlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLU2VyaWFsaXplZFNjcmlwdFZh
bHVlKiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9w
YXF1ZVdLU3RyaW5nKiBXS1N0cmluZ1JlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdL
VVJMKiBXS1VSTFJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVVJMUmVxdWVzdCog
V0tVUkxSZXF1ZXN0UmVmOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tTZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyOThlODU2MmY3ZjM5ZjA4Njg0MTZi
Yzc0NGUwMDYyODQ1ZDQyMzAKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorCisjaW5jbHVkZSAi
V0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVl
R2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9SZWYoV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVl
OjpBUElUeXBlKTsKK30KKworV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVSZWYgV0tTZXJpYWxpemVk
U2NyaXB0VmFsdWVDcmVhdGUoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgdmFsdWUs
IEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBSZWZQdHI8V2ViU2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBzZXJpYWxpemVkVmFsdWUgPSBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0
ZShjb250ZXh0LCB2YWx1ZSwgZXhjZXB0aW9uKTsKKyAgICByZXR1cm4gdG9SZWYoc2VyaWFsaXpl
ZFZhbHVlLnJlbGVhc2UoKS5sZWFrUmVmKCkpOworfQorCitKU1ZhbHVlUmVmIFdLU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlRGVzZXJpYWxpemUoV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVSZWYgc2NyaXB0
VmFsdWVSZWYsIEpTQ29udGV4dFJlZiBjb250ZXh0UmVmLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
Cit7CisgICAgcmV0dXJuIHRvV0soc2NyaXB0VmFsdWVSZWYpLT5kZXNlcmlhbGl6ZShjb250ZXh0
UmVmLCBleGNlcHRpb24pOworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTVmYzA0OGE1MmYzNTQwYzBlYTFjOTk2
YTVmMWU1Njg4NDEyZWMwMwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVfaAorI2RlZmluZSBXS1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZV9oCisKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Lmg+
CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRl
cm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tTZXJpYWxpemVkU2NyaXB0
VmFsdWVHZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlUmVm
IFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlQ3JlYXRlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1Zh
bHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOworV0tfRVhQT1JUIEpTVmFsdWVS
ZWYgV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVEZXNlcmlhbGl6ZShXS1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZVJlZiBzY3JpcHRWYWx1ZSwgSlNDb250ZXh0UmVmIGNvbnN0ZXh0LCBKU1ZhbHVlUmVmKiBl
eGNlcHRpb24pOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyog
V0tTZXJpYWxpemVkU2NyaXB0VmFsdWVfaCAqLwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJLaXQy
LnBybyBiL1dlYktpdDIvV2ViS2l0Mi5wcm8KaW5kZXggZWNjYTZhYzJmNDc3N2E4M2Y2M2I5MTJh
NmZkMjU0YTgzMDIzY2IyZC4uOGNhNmU2YzA0ZDNiZWQwNDdiOWZhMzI4OGI3ODBjMzE1MTU1OThi
ZCAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJLaXQyLnBybworKysgYi9XZWJLaXQyL1dlYktpdDIu
cHJvCkBAIC0xOTEsNiArMTkxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLVVJMLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1VSTFJlcXVlc3QuaCBcCiAgICAgVUlQ
cm9jZXNzL0FQSS9DL1dLVVJMUmVzcG9uc2UuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcWdyYXBoaWNzd2t2
aWV3LmggXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvcXdrcGFnZS5oIFwKICAgICBVSVByb2Nlc3Mv
QVBJL3F0L3F3a3BhZ2VfcC5oIFwKQEAgLTI5NSw2ICsyOTYsNyBAQCBTT1VSQ0VTICs9IFwKICAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZU5hbWVzcGFjZS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBc
CisgICAgVUlQcm9jZXNzL0FQSS9DL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBcCiAgICAg
VUlQcm9jZXNzL0FQSS9DL1dLU3RyaW5nLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLVHlw
ZS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1VSTC5jcHAgXApkaWZmIC0tZ2l0IGEvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyMjFhYjMzYmM3NzE0NjRhYjQ1ODQ4MTZj
MDY3YTk3MDU4ODNmNzc4Li41NjgxMmY4NDZkMzUxODI5M2MzZGJiZDYzZjdlYzczZDEyNWIzYWVh
IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTA1LDYg
KzEwNSwxMSBAQAogCQk4REMyRUY1NzA0ODZBNjk0MDA5OEIyMTYgLyogQ29jb2EuZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTA1OEM3
QjFGRUE1NTg1RTExQ0EyQ0JCIC8qIENvY29hLmZyYW1ld29yayAqLzsgfTsKIAkJOTM5MUYyQ0Ex
MjFCNjc5QTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkxRjI4NDEyMUIzOEY1MDBF
QkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5tbSAqLzsgfTsKIAkJOTM5MUYyQ0Ix
MjFCNjdBRDAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTFGMjgzMTIxQjM4RjUwMEVC
RjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi87IH07CisJCUE3MkQ1RDgxMTIz
NkNCQTgwMEE4OEIxNSAvKiBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBpbiBDb3B5RmlsZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcyRDVEN0YxMjM2Q0JBODAwQTg4
QjE1IC8qIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovOyB9OworCQlBNzJENUYzMDEyMzZG
OUU4MDBBODhCMTUgLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBpbiBDb3B5RmlsZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcyRDVGMkUxMjM2RjlFODAwQTg4QjE1
IC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi87IH07CisJCUE3MkQ1RjMxMTIzNkY5RTgw
MEE4OEIxNSAvKiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgaW4gQ29weUZpbGVzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MkQ1RjJGMTIzNkY5RTgwMEE4OEIxNSAv
KiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgKi87IH07CisJCUE3MkQ2MTBCMTIzNzE0NEYw
MEE4OEIxNSAvKiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzJENUYyRjEyMzZGOUU4MDBBODhCMTUgLyog
V0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwICovOyB9OworCQlBNzJENjEwQzEyMzcxNDUwMDBB
ODhCMTUgLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcyRDVGMkYxMjM2RjlFODAwQTg4QjE1IC8qIFdL
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCAqLzsgfTsKIAkJQkMwMDkyRjcxMTU4MzdBMzAwRTBB
RTJBIC8qIFJ1bkxvb3BNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzAwOTJGNTExNTgzN0EzMDBFMEFFMkEgLyogUnVuTG9vcE1hYy5tbSAqLzsg
fTsKIAkJQkMwMDkyRjgxMTU4MzdBMzAwRTBBRTJBIC8qIFdvcmtRdWV1ZU1hYy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAwOTJGNjExNTgzN0Ez
MDBFMEFFMkEgLyogV29ya1F1ZXVlTWFjLmNwcCAqLzsgfTsKIAkJQkMwMzJENzUxMEY0Mzc4RDAw
NThDMTVBIC8qIFdlYkNocm9tZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkMwMzJENjAxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNocm9tZUNs
aWVudC5oICovOyB9OwpAQCAtMzgyLDYgKzM4Nyw5IEBACiAJCQlkc3RTdWJmb2xkZXJTcGVjID0g
MTsKIAkJCWZpbGVzID0gKAogCQkJCTFBNTBEQjY2MTEwQTNENTcwMDBEM0ZFNSAvKiBXZWJQcm9j
ZXNzLmFwcCBpbiBDb3B5RmlsZXMgKi8sCisJCQkJQTcyRDVEODExMjM2Q0JBODAwQTg4QjE1IC8q
IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGluIENvcHlGaWxlcyAqLywKKwkJCQlBNzJENUYz
MDEyMzZGOUU4MDBBODhCMTUgLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBpbiBDb3B5Rmls
ZXMgKi8sCisJCQkJQTcyRDVGMzExMjM2RjlFODAwQTg4QjE1IC8qIFdLU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmNwcCBpbiBDb3B5RmlsZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC00NzksNiArNDg3LDkgQEAKIAkJOERDMkVG
NUIwNDg2QTY5NDAwOThCMjE2IC8qIFdlYktpdDIuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgaW5jbHVk
ZUluSW5kZXggPSAwOyBwYXRoID0gV2ViS2l0Mi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CiAJCTkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTM5MUYyODQxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtp
bmdDb250ZXh0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBNzJENUQ3RjEyMzZD
QkE4MDBBODhCMTUgLyogV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBNzJENUYyRTEyMzZGOUU4MDBBODhCMTUgLyogV0tTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTZXJp
YWxpemVkU2NyaXB0VmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTcyRDVG
MkYxMjM2RjlFODAwQTg4QjE1IC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwMDkyRjUxMTU4MzdBMzAwRTBBRTJB
IC8qIFJ1bkxvb3BNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBSdW5Mb29wTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzAwOTJGNjEx
NTgzN0EzMDBFMEFFMkEgLyogV29ya1F1ZXVlTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdvcmtRdWV1ZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDMDMyRDYwMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJDaHJvbWVDbGllbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ2hyb21lQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NDMsNiArOTU0LDcgQEAKIAkJCQlCQ0UyMzE1QjEyMkMz
MENBMDBENUMzNUEgLyogV2ViVVJMUmVxdWVzdC5oICovLAogCQkJCUJDOTBBMUQxMTIyREQ1NUUw
MENDOEM1MCAvKiBXZWJVUkxSZXNwb25zZS5jcHAgKi8sCiAJCQkJQkM5MEExRDAxMjJERDU1RTAw
Q0M4QzUwIC8qIFdlYlVSTFJlc3BvbnNlLmggKi8sCisJCQkJQTcyRDVEN0YxMjM2Q0JBODAwQTg4
QjE1IC8qIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBT
aGFyZWQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTE5MSw2ICsxMjAzLDggQEAK
IAkJCQlCQ0UyMzFDNTEyMkM0OTIzMDBENUMzNUEgLyogV0tVUkxSZXF1ZXN0LmggKi8sCiAJCQkJ
QkM5MEExREIxMjJERDg5ODAwQ0M4QzUwIC8qIFdLVVJMUmVzcG9uc2UuY3BwICovLAogCQkJCUJD
OTBBMURBMTIyREQ4OTgwMENDOEM1MCAvKiBXS1VSTFJlc3BvbnNlLmggKi8sCisJCQkJQTcyRDVG
MkUxMjM2RjlFODAwQTg4QjE1IC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi8sCisJCQkJ
QTcyRDVGMkYxMjM2RjlFODAwQTg4QjE1IC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCAq
LywKIAkJCSk7CiAJCQlwYXRoID0gQzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0x
NjYwLDcgKzE2NzQsMTQgQEAKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3Vy
YXRpb25MaXN0ID0gMURFQjkxQjEwODczM0RBNTAwMTBFOUNEIC8qIEJ1aWxkIGNvbmZpZ3VyYXRp
b24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV2ViS2l0MiIgKi87CiAJCQljb21wYXRpYmlsaXR5VmVy
c2lvbiA9ICJYY29kZSAzLjEiOworCQkJZGV2ZWxvcG1lbnRSZWdpb24gPSBFbmdsaXNoOwogCQkJ
aGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDE7CisJCQlrbm93blJlZ2lvbnMgPSAoCisJCQkJRW5n
bGlzaCwKKwkJCQlKYXBhbmVzZSwKKwkJCQlGcmVuY2gsCisJCQkJR2VybWFuLAorCQkJKTsKIAkJ
CW1haW5Hcm91cCA9IDA4NjdENjkxRkU4NDAyOEZDMDJBQUMwNyAvKiBXZWJLaXQyICovOwogCQkJ
cHJvZHVjdFJlZkdyb3VwID0gMDM0NzY4REZGRjM4QTUwNDExREI5QzhCIC8qIFByb2R1Y3RzICov
OwogCQkJcHJvamVjdERpclBhdGggPSAiIjsKQEAgLTE2OTgsNiArMTcxOSw3IEBACiAJCQlidWls
ZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCiAJCQkJMUE2RkEzMTExMUUz
OTIxRTAwREIxMzcxIC8qIE1haW5NYWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTcyRDYxMEMx
MjM3MTQ1MDAwQTg4QjE1IC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpAQCAtMTg0OCw2ICsxODcwLDcgQEAKIAkJCQlCQ0IwQUYzNjEyMzAxREZCMDBCMTM0MUUg
LyogV0tNdXRhYmxlRGljdGlvbmFyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0EwRUY4MDEy
MzMxRTc4MDA3RDNDRkIgLyogV2ViRWRpdENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkNBMEVGQTAxMjMzMjY0MjAwN0QzQ0ZCIC8qIFdlYkVkaXRDb21tYW5kUHJveHkuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQTcyRDYxMEIxMjM3MTQ0RjAwQTg4QjE1IC8qIFdLU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi93aW4vV2Vi
S2l0Mi52Y3Byb2ogYi9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagppbmRleCBjNzQ1OTAxOWZi
NzkxODg5MGQ5NjA0NDVmNTY3NzU1MmVmNDlkMjMwLi43YTUyN2Q3MjZmZjgxMDhjZmJmNmZlZGU3
ZGE2ZDdhOGQzODIyYmNkIDEwMDc1NQotLS0gYS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagor
KysgYi9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagpAQCAtMTQyNyw2ICsxNDI3LDE0IEBACiAJ
CQkJCQk+DQogCQkJCQk8L0ZpbGU+DQogCQkJCQk8RmlsZQ0KKwkJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cVUlQcm9jZXNzXEFQSVxDXFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCINCisJCQkJCQk+
DQorCQkJCQk8L0ZpbGU+DQorCQkJCQk8RmlsZQ0KKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQ
cm9jZXNzXEFQSVxDXFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiDQorCQkJCQkJPg0KKwkJCQkJ
PC9GaWxlPg0KKwkJCQkJPEZpbGUNCiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xB
UElcQ1xXS1N0cmluZy5jcHAiDQogCQkJCQkJPg0KIAkJCQkJPC9GaWxlPg0K
</data>
<flag name="review"
          id="55933"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>