<?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>67064</bug_id>
          
          <creation_ts>2011-08-26 13:55:31 -0700</creation_ts>
          <short_desc>Unzip initialization lists and constructors in JSCell hierarchy (3/7)</short_desc>
          <delta_ts>2011-08-29 18:42:55 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>66957</dependson>
          <blocked>66567</blocked>
    
    <blocked>67174</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>457763</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-26 13:55:31 -0700</bug_when>
    <thetext>This is the third level of the unzipping process described in https://bugs.webkit.org/show_bug.cgi?id=66567.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457849</commentid>
    <comment_count>1</comment_count>
      <attachid>105422</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-26 16:30:53 -0700</bug_when>
    <thetext>Created attachment 105422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457973</commentid>
    <comment_count>2</comment_count>
      <attachid>105422</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-27 12:36:20 -0700</bug_when>
    <thetext>Comment on attachment 105422
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:10
&gt; +        Completed the third level of the refactoring to add finishCreation() 
&gt; +        methods to all classes within the JSCell hierarchy with non-trivial 
&gt; +        constructor bodies.

This is an unclear comment. It would be better if this talked about what the actual changes in the patch are. It’s sort of a mixed bag.

In some cases, the change is to factor code into the finishCreation function and then adopt finishCreation in create functions. In other cases, the changes seem to be an earlier refactoring step where we adopt finishCreation inside constructors and rewrite create functions to use local variables, presumably to make the change later to adopt finishCreation a smaller clearer patch. But grouping those two kinds of changes together doesn’t make all that much sense. Then there are other changes that don’t fall into either category.

The patch would be better if it was a more consistently chosen set of changes.

But it is small enough that it can be effectively reviewed, so it’s OK as is, even though it could be better.

&gt; Source/JavaScriptCore/runtime/ErrorInstance.cpp:32
&gt; -    constructorBody(globalData);
&gt; +    finishCreation(globalData, &quot;&quot;);

Would it be more efficient to pass something that’s already a UString so we don’t have to run code that discovers that the char* is an empty string?

&gt; Source/JavaScriptCore/runtime/Executable.cpp:-157
&gt; -    m_firstLine = firstLine;
&gt; -    m_lastLine = lastLine;

Change log should have a comment about why this change is OK.

&gt; Source/JavaScriptCore/runtime/JSObjectWithGlobalObject.cpp:53
&gt; -        putAnonymousValue(globalData, GlobalObjectSlot, globalObject);
&gt; +        putAnonymousValue(globalObject-&gt;globalData(), GlobalObjectSlot, globalObject);

This change seems unnecessary and not really an improvement. Should we instead be asserting that globalObject-&gt;globalData() is == globalData?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457992</commentid>
    <comment_count>3</comment_count>
      <attachid>105443</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2011-08-27 15:01:43 -0700</bug_when>
    <thetext>Created attachment 105443
Fixing review issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457993</commentid>
    <comment_count>4</comment_count>
      <attachid>105443</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-08-27 16:22:42 -0700</bug_when>
    <thetext>Comment on attachment 105443
Fixing review issues

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

&gt; Source/JavaScriptCore/runtime/ErrorInstance.cpp:32
&gt; +    finishCreation(globalData, UString(&quot;&quot;, 0));

This way of creating an empty string is so non-obvious that I think we should probably put a function in UString.h to do it or some other way that won’t look so strange at the call site. Need not be part of this patch, though. Follow-up seems better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458631</commentid>
    <comment_count>5</comment_count>
      <attachid>105443</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-29 18:42:51 -0700</bug_when>
    <thetext>Comment on attachment 105443
Fixing review issues

Clearing flags on attachment: 105443

Committed r94035: &lt;http://trac.webkit.org/changeset/94035&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>458632</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-29 18:42:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105422</attachid>
            <date>2011-08-26 16:30:53 -0700</date>
            <delta_ts>2011-08-27 15:01:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67064-20110826163052.patch</filename>
            <type>text/plain</type>
            <size>32365</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM5MjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDNi
YmU2N2MxOTRkZTM4ZDQ3NjM2MTJiZjk3NDI0YzAxM2U1ZjIwODQuLjY3ZWI1MDUyNjczNjU3NDNm
MzFlMTdiYTM5NzJkNjUxMzdhNzVhYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDcxIEBACiAyMDExLTA4LTI2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CiAKKyAgICAgICAgVW56aXAgaW5pdGlhbGl6YXRpb24gbGlzdHMgYW5kIGNvbnN0cnVj
dG9ycyBpbiBKU0NlbGwgaGllcmFyY2h5ICgzLzcpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzA2NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENvbXBsZXRlZCB0aGUgdGhpcmQgbGV2ZWwgb2YgdGhlIHJl
ZmFjdG9yaW5nIHRvIGFkZCBmaW5pc2hDcmVhdGlvbigpIAorICAgICAgICBtZXRob2RzIHRvIGFs
bCBjbGFzc2VzIHdpdGhpbiB0aGUgSlNDZWxsIGhpZXJhcmNoeSB3aXRoIG5vbi10cml2aWFsIAor
ICAgICAgICBjb25zdHJ1Y3RvciBib2RpZXMuCisKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dl
ckFjdGl2YXRpb24uY3BwOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246OkRlYnVn
Z2VyQWN0aXZhdGlvbik6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyQWN0aXZhdGlvbjo6ZmluaXNo
Q3JlYXRpb24pOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oOgorICAg
ICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRpb246OmNyZWF0ZSk6CisgICAgICAgICogcnVudGlt
ZS9Bcmd1bWVudHMuaDoKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpjcmVhdGUpOgorICAgICAg
ICAoSlNDOjpBcmd1bWVudHM6OmNyZWF0ZU5vUGFyYW1ldGVycyk6CisgICAgICAgIChKU0M6OkFy
Z3VtZW50czo6QXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpmaW5pc2hDcmVh
dGlvbik6CisgICAgICAgICogcnVudGltZS9FcnJvckluc3RhbmNlLmNwcDoKKyAgICAgICAgKEpT
Qzo6RXJyb3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5jZSk6CisgICAgICAgICogcnVudGltZS9FcnJv
ckluc3RhbmNlLmg6CisgICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6OmZpbmlzaENyZWF0aW9u
KToKKyAgICAgICAgKiBydW50aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwOgorICAgICAgICAoSlND
OjpJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yOjpJbnRlcnJ1cHRlZEV4ZWN1dGlvbkVycm9yKToK
KyAgICAgICAgKEpTQzo6VGVybWluYXRlZEV4ZWN1dGlvbkVycm9yOjpUZXJtaW5hdGVkRXhlY3V0
aW9uRXJyb3IpOgorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5jcHA6CisgICAgICAgIChK
U0M6OkV2YWxFeGVjdXRhYmxlOjpFdmFsRXhlY3V0YWJsZSk6CisgICAgICAgIChKU0M6OlByb2dy
YW1FeGVjdXRhYmxlOjpQcm9ncmFtRXhlY3V0YWJsZSk6CisgICAgICAgIChKU0M6OkZ1bmN0aW9u
RXhlY3V0YWJsZTo6RnVuY3Rpb25FeGVjdXRhYmxlKToKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1
dGFibGUuaDoKKyAgICAgICAgKEpTQzo6U2NyaXB0RXhlY3V0YWJsZTo6U2NyaXB0RXhlY3V0YWJs
ZSk6CisgICAgICAgIChKU0M6OkV2YWxFeGVjdXRhYmxlOjpjcmVhdGUpOgorICAgICAgICAoSlND
OjpQcm9ncmFtRXhlY3V0YWJsZTo6Y3JlYXRlKToKKyAgICAgICAgKEpTQzo6RnVuY3Rpb25FeGVj
dXRhYmxlOjpjcmVhdGUpOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGU6OmZpbmlz
aENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuY3BwOgorICAgICAgICAoSlND
OjpKU0FycmF5OjpKU0FycmF5KToKKyAgICAgICAgKEpTQzo6SlNBcnJheTo6ZmluaXNoQ3JlYXRp
b24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNC
eXRlQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0J5dGVBcnJheTo6SlNCeXRlQXJyYXkpOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNCeXRlQXJyYXkuaDoKKyAgICAgICAgKEpTQzo6SlNCeXRlQXJy
YXk6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pTTm90QW5PYmplY3QuaDoK
KyAgICAgICAgKEpTQzo6SlNOb3RBbk9iamVjdDo6SlNOb3RBbk9iamVjdCk6CisgICAgICAgICog
cnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAoSlNDOjpKU05vbkZpbmFsT2JqZWN0OjpKU05v
bkZpbmFsT2JqZWN0KToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dC5jcHA6CisgICAgICAgIChKU0M6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6SlNPYmplY3RX
aXRoR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKEpTQzo6SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0
OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxP
YmplY3QuaDoKKyAgICAgICAgKiBydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaDoKKyAgICAgICAg
KEpTQzo6SlNWYXJpYWJsZU9iamVjdDo6SlNWYXJpYWJsZU9iamVjdCk6CisgICAgICAgIChKU0M6
OkpTVmFyaWFibGVPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBydW50aW1lL0pT
V3JhcHBlck9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU1dyYXBwZXJPYmplY3Q6OkpTV3JhcHBl
ck9iamVjdCk6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwOgorICAgICAg
ICAoSlNDOjpPYmplY3RQcm90b3R5cGU6Ok9iamVjdFByb3RvdHlwZSk6CisgICAgICAgIChKU0M6
Ok9iamVjdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvT2Jq
ZWN0UHJvdG90eXBlLmg6CisgICAgICAgICogcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5j
cHA6CisgICAgICAgIChKU0M6OlN0cmljdEV2YWxBY3RpdmF0aW9uOjpTdHJpY3RFdmFsQWN0aXZh
dGlvbik6CisKKzIwMTEtMDgtMjYgIE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxl
LmNvbT4KKwogICAgICAgICBVbnppcCBpbml0aWFsaXphdGlvbiBsaXN0cyBhbmQgY29uc3RydWN0
b3JzIGluIEpTQ2VsbCBoaWVyYXJjaHkgKDIvNykKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY2OTU3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKaW5kZXggODcxMWI1Y2U5M2Rm
OTIwNDExOGNkNzgwYzU5MjE5ZTFmMWM1Y2U4NC4uYWU4YTVhY2Q2YTg1NzBhZDczN2NlMGUwMGNj
OWQ1YTY4YTk0MDlkZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVn
Z2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5jcHAKQEAgLTMzLDYgKzMzLDEyIEBAIG5hbWVzcGFjZSBK
U0MgewogRGVidWdnZXJBY3RpdmF0aW9uOjpEZWJ1Z2dlckFjdGl2YXRpb24oSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCBKU09iamVjdCogYWN0aXZhdGlvbikKICAgICA6IEpTTm9uRmluYWxPYmpl
Y3QoZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS5kZWJ1Z2dlckFjdGl2YXRpb25TdHJ1Y3R1cmUuZ2V0
KCkpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgYWN0aXZhdGlvbik7Cit9CisK
K3ZvaWQgRGVidWdnZXJBY3RpdmF0aW9uOjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTT2JqZWN0KiBhY3RpdmF0aW9uKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0
aW9uKGdsb2JhbERhdGEpOwogICAgIEFTU0VSVChhY3RpdmF0aW9uKTsKICAgICBBU1NFUlQoYWN0
aXZhdGlvbi0+aXNBY3RpdmF0aW9uT2JqZWN0KCkpOwogICAgIG1fYWN0aXZhdGlvbi5zZXQoZ2xv
YmFsRGF0YSwgdGhpcywgc3RhdGljX2Nhc3Q8SlNBY3RpdmF0aW9uKj4oYWN0aXZhdGlvbikpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZh
dGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlv
bi5oCmluZGV4IDQ3MzNmZTY4MDVjMTJlNDM0MzU2YmQyNTNlMGJhMjVhNThlNzcxZDQuLjM0NDRi
ZDg0ZTVlNmMwYTRjNGZkMmNjODA5ZjdkZjI4YzVkOGQ1MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKQEAgLTMwLDE1ICsz
MCwxNCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotICAgIGNsYXNzIEpTQWN0aXZhdGlvbjsKLQog
ICAgIGNsYXNzIERlYnVnZ2VyQWN0aXZhdGlvbiA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwogCiAg
ICAgICAgIHN0YXRpYyBEZWJ1Z2dlckFjdGl2YXRpb24qIGNyZWF0ZShKU0dsb2JhbERhdGEmIGds
b2JhbERhdGEsIEpTT2JqZWN0KiBvYmplY3QpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBuZXcgKGFsbG9jYXRlQ2VsbDxEZWJ1Z2dlckFjdGl2YXRpb24+KGdsb2JhbERhdGEuaGVhcCkp
IERlYnVnZ2VyQWN0aXZhdGlvbihnbG9iYWxEYXRhLCBvYmplY3QpOworICAgICAgICAgICAgRGVi
dWdnZXJBY3RpdmF0aW9uKiBhY3RpdmF0aW9uID0gbmV3IChhbGxvY2F0ZUNlbGw8RGVidWdnZXJB
Y3RpdmF0aW9uPihnbG9iYWxEYXRhLmhlYXApKSBEZWJ1Z2dlckFjdGl2YXRpb24oZ2xvYmFsRGF0
YSwgb2JqZWN0KTsKKyAgICAgICAgICAgIHJldHVybiBhY3RpdmF0aW9uOwogICAgICAgICB9CiAK
ICAgICAgICAgdmlydHVhbCB2b2lkIHZpc2l0Q2hpbGRyZW4oU2xvdFZpc2l0b3ImKTsKQEAgLTYy
LDYgKzYxLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0
eVNsb3QgfCBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdz
OwogCisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiwgSlNPYmplY3Qq
IGFjdGl2YXRpb24pOworCiAgICAgcHJpdmF0ZToKICAgICAgICAgRGVidWdnZXJBY3RpdmF0aW9u
KEpTR2xvYmFsRGF0YSYsIEpTT2JqZWN0Kik7CiAgICAgICAgIFdyaXRlQmFycmllcjxKU0FjdGl2
YXRpb24+IG1fYWN0aXZhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0FyZ3VtZW50cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1l
bnRzLmgKaW5kZXggODg2NzgwYzBhZjhkYjU2N2M0NTViNWU4ZWY2YjdhYzRlZjdjMTgxZS4uMDlk
NTVmMjE2MzU1NTQxZTRiZGRmYjIyMjU4MWI3NmYwOTMxODg3ZSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgKQEAgLTYzLDEyICs2MywxNCBAQCBuYW1lc3BhY2Ug
SlNDIHsKIAogICAgICAgICBzdGF0aWMgQXJndW1lbnRzKiBjcmVhdGUoSlNHbG9iYWxEYXRhJiBn
bG9iYWxEYXRhLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKICAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEFyZ3VtZW50cz4oZ2xvYmFsRGF0YS5oZWFwKSkgQXJn
dW1lbnRzKGNhbGxGcmFtZSk7CisgICAgICAgICAgICBBcmd1bWVudHMqIGFyZ3VtZW50cyA9IG5l
dyAoYWxsb2NhdGVDZWxsPEFyZ3VtZW50cz4oZ2xvYmFsRGF0YS5oZWFwKSkgQXJndW1lbnRzKGNh
bGxGcmFtZSk7CisgICAgICAgICAgICByZXR1cm4gYXJndW1lbnRzOwogICAgICAgICB9CiAgICAg
ICAgIAogICAgICAgICBzdGF0aWMgQXJndW1lbnRzKiBjcmVhdGVOb1BhcmFtZXRlcnMoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkKICAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPEFyZ3VtZW50cz4oZ2xvYmFsRGF0YS5o
ZWFwKSkgQXJndW1lbnRzKGNhbGxGcmFtZSwgTm9QYXJhbWV0ZXJzKTsKKyAgICAgICAgICAgIEFy
Z3VtZW50cyogYXJndW1lbnRzID0gbmV3IChhbGxvY2F0ZUNlbGw8QXJndW1lbnRzPihnbG9iYWxE
YXRhLmhlYXApKSBBcmd1bWVudHMoY2FsbEZyYW1lLCBOb1BhcmFtZXRlcnMpOworICAgICAgICAg
ICAgcmV0dXJuIGFyZ3VtZW50czsKICAgICAgICAgfQogCiAgICAgICAgIC8vIFVzZSBhbiBlbnVt
IGJlY2F1c2Ugb3RoZXJ3aXNlIGdjYyBpbnNpc3RzIG9uIGRvaW5nIGEgbWVtb3J5CkBAIC0xMTUs
NiArMTE3LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0
eVNsb3QgfCBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1l
cyB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKIAorICAgICAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKENhbGxGcmFtZSopOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKENhbGxGcmFtZSos
IE5vUGFyYW1ldGVyc1R5cGUpOworCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBnZXRBcmd1
bWVudHNEYXRhKENhbGxGcmFtZSosIEpTRnVuY3Rpb24qJiwgcHRyZGlmZl90JiBmaXJzdFBhcmFt
ZXRlckluZGV4LCBSZWdpc3RlciomIGFyZ3YsIGludCYgYXJnYyk7CiAgICAgICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmKTsKQEAgLTE2MSw2ICsxNjYsMTkgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChjYWxsRnJhbWUtPmdsb2JhbERhdGEo
KSwgY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmFyZ3VtZW50c1N0cnVjdHVyZSgp
KQogICAgICAgICAsIGQoYWRvcHRQdHIobmV3IEFyZ3VtZW50c0RhdGEpKQogICAgIHsKKyAgICAg
ICAgZmluaXNoQ3JlYXRpb24oY2FsbEZyYW1lKTsKKyAgICB9CisKKyAgICBpbmxpbmUgQXJndW1l
bnRzOjpBcmd1bWVudHMoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIE5vUGFyYW1ldGVyc1R5cGUpCisg
ICAgICAgIDogSlNOb25GaW5hbE9iamVjdChjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSwgY2FsbEZy
YW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmFyZ3VtZW50c1N0cnVjdHVyZSgpKQorICAgICAg
ICAsIGQoYWRvcHRQdHIobmV3IEFyZ3VtZW50c0RhdGEpKQorICAgIHsKKyAgICAgICAgZmluaXNo
Q3JlYXRpb24oY2FsbEZyYW1lLCBOb1BhcmFtZXRlcnMpOworICAgIH0KKyAgICAKKyAgICBpbmxp
bmUgdm9pZCBBcmd1bWVudHM6OmZpbmlzaENyZWF0aW9uKENhbGxGcmFtZSogY2FsbEZyYW1lKQor
ICAgIHsKKyAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oY2FsbEZyYW1lLT5nbG9iYWxEYXRh
KCkpOwogICAgICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwogCiAgICAgICAgIEpTRnVu
Y3Rpb24qIGNhbGxlZTsKQEAgLTE5OSwxMCArMjE3LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgICAgICBjb3B5UmVnaXN0ZXJzKGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpKTsKICAgICB9CiAK
LSAgICBpbmxpbmUgQXJndW1lbnRzOjpBcmd1bWVudHMoQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIE5v
UGFyYW1ldGVyc1R5cGUpCi0gICAgICAgIDogSlNOb25GaW5hbE9iamVjdChjYWxsRnJhbWUtPmds
b2JhbERhdGEoKSwgY2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPmFyZ3VtZW50c1N0
cnVjdHVyZSgpKQotICAgICAgICAsIGQoYWRvcHRQdHIobmV3IEFyZ3VtZW50c0RhdGEpKQorICAg
IGlubGluZSB2b2lkIEFyZ3VtZW50czo6ZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1lKiBjYWxsRnJh
bWUsIE5vUGFyYW1ldGVyc1R5cGUpCiAgICAgeworICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlv
bihjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSk7CiAgICAgICAgIEFTU0VSVChpbmhlcml0cygmc19p
bmZvKSk7CiAgICAgICAgIEFTU0VSVCghYXNGdW5jdGlvbihjYWxsRnJhbWUtPmNhbGxlZSgpKS0+
anNFeGVjdXRhYmxlKCktPnBhcmFtZXRlckNvdW50KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCmluZGV4IDUwMDViOTFjOTI2ZTE4NmM1
MWRmOTJjY2ZmOGNlYWQxMjUxNzdhYzYuLjBlNjc2NmEyYTEyNDVlZjczNjQzZDYwM2E5YWY4ZWFi
ZjAyMGRmZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9y
SW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5z
dGFuY2UuY3BwCkBAIC0yOSwxNSArMjksMTQgQEAgRXJyb3JJbnN0YW5jZTo6RXJyb3JJbnN0YW5j
ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDog
SlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiAgICAgLCBtX2FwcGVuZFNv
dXJjZVRvTWVzc2FnZShmYWxzZSkKIHsKLSAgICBjb25zdHJ1Y3RvckJvZHkoZ2xvYmFsRGF0YSk7
CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgIiIpOwogfQogCiBFcnJvckluc3RhbmNl
OjpFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUsIGNvbnN0IFVTdHJpbmcmIG1lc3NhZ2UpCiAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGds
b2JhbERhdGEsIHN0cnVjdHVyZSkKICAgICAsIG1fYXBwZW5kU291cmNlVG9NZXNzYWdlKGZhbHNl
KQogewotICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgcHV0RGlyZWN0KGdsb2Jh
bERhdGEsIGdsb2JhbERhdGEucHJvcGVydHlOYW1lcy0+bWVzc2FnZSwganNTdHJpbmcoJmdsb2Jh
bERhdGEsIG1lc3NhZ2UpLCBEb250RW51bSk7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0
YSwgbWVzc2FnZSk7CiB9CiAKIEVycm9ySW5zdGFuY2UqIEVycm9ySW5zdGFuY2U6OmNyZWF0ZShK
U0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBVU3Ry
aW5nJiBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
RXJyb3JJbnN0YW5jZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0
YW5jZS5oCmluZGV4IDNkN2ZiZjNmMGVlYzNhMGYzY2RkYTQ0ODlkN2NhNGZlMTE0NzY3ZGQuLjA2
YTk1MzIxM2NhNWJlNWI0NTFhM2RjOGExMWU5MmRhYTEyNzZmOTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKQEAgLTUwLDEwICs1MCwxMSBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgZXhwbGljaXQgRXJyb3JJbnN0YW5jZShKU0dsb2JhbERh
dGEmLCBTdHJ1Y3R1cmUqKTsKICAgICAgICAgZXhwbGljaXQgRXJyb3JJbnN0YW5jZShKU0dsb2Jh
bERhdGEmLCBTdHJ1Y3R1cmUqLCBjb25zdCBVU3RyaW5nJik7CiAKLSAgICAgICAgdm9pZCBjb25z
dHJ1Y3RvckJvZHkoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQorICAgICAgICB2b2lkIGZpbmlz
aENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgVVN0cmluZyYgbWVzc2Fn
ZSkKICAgICAgICAgeworICAgICAgICAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0
YSk7CiAgICAgICAgICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwotICAgICAgICAgICAg
cHV0RGlyZWN0KGdsb2JhbERhdGEsIGdsb2JhbERhdGEucHJvcGVydHlOYW1lcy0+bWVzc2FnZSwg
anNTdHJpbmcoJmdsb2JhbERhdGEsICIiKSwgRG9udEVudW0pOworICAgICAgICAgICAgcHV0RGly
ZWN0KGdsb2JhbERhdGEsIGdsb2JhbERhdGEucHJvcGVydHlOYW1lcy0+bWVzc2FnZSwganNTdHJp
bmcoJmdsb2JhbERhdGEsIG1lc3NhZ2UpLCBEb250RW51bSk7CiAgICAgICAgIH0KIAogICAgICAg
ICBib29sIG1fYXBwZW5kU291cmNlVG9NZXNzYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uSGVscGVycy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcAppbmRleCA5ODFmN2M0OTJjNDA3ZDJl
YmViYzU2ODQ4NDdlYjc5MDdiZGFhZDIzLi5iNThkODk1MTdlMzdlZGJhYjI3OTQwMzAxMTE2ZmUz
YzIyM2MzNDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNl
cHRpb25IZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNl
cHRpb25IZWxwZXJzLmNwcApAQCAtNDYsNiArNDYsNyBAQCBwcml2YXRlOgogICAgIEludGVycnVw
dGVkRXhlY3V0aW9uRXJyb3IoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogICAgICAgICA6IEpT
Tm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS5pbnRlcnJ1cHRlZEV4ZWN1dGlv
bkVycm9yU3RydWN0dXJlLmdldCgpKQogICAgIHsKKyAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xv
YmFsRGF0YSk7CiAgICAgfQogCiBwdWJsaWM6CkBAIC03MSw2ICs3Miw3IEBAIHByaXZhdGU6CiAg
ICAgVGVybWluYXRlZEV4ZWN1dGlvbkVycm9yKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKICAg
ICAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIGdsb2JhbERhdGEudGVybWluYXRl
ZEV4ZWN1dGlvbkVycm9yU3RydWN0dXJlLmdldCgpKQogICAgIHsKKyAgICAgICAgZmluaXNoQ3Jl
YXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgfQogCiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCmluZGV4IGQ4ZjE3MGRkNDcxMzM4ODdmZThlNjNk
MzVjZThjZDlhMDkwZjcwOTguLmI5M2E4NDM4Yjg0NjNhOTVmN2M2NjhlMGFjZDczYTdjZjBlNDAz
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwCkBA
IC0xMTUsNiArMTE1LDcgQEAgY29uc3QgQ2xhc3NJbmZvIEV2YWxFeGVjdXRhYmxlOjpzX2luZm8g
PSB7ICJFdmFsRXhlY3V0YWJsZSIsICZTY3JpcHRFeGVjdXRhYmxlOjoKIEV2YWxFeGVjdXRhYmxl
OjpFdmFsRXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJj
ZSwgYm9vbCBpblN0cmljdENvbnRleHQpCiAgICAgOiBTY3JpcHRFeGVjdXRhYmxlKGV4ZWMtPmds
b2JhbERhdGEoKS5ldmFsRXhlY3V0YWJsZVN0cnVjdHVyZS5nZXQoKSwgZXhlYywgc291cmNlLCBp
blN0cmljdENvbnRleHQpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgp
KTsKIH0KIAogRXZhbEV4ZWN1dGFibGU6On5FdmFsRXhlY3V0YWJsZSgpCkBAIC0xMjYsNiArMTI3
LDcgQEAgY29uc3QgQ2xhc3NJbmZvIFByb2dyYW1FeGVjdXRhYmxlOjpzX2luZm8gPSB7ICJQcm9n
cmFtRXhlY3V0YWJsZSIsICZTY3JpcHRFeGVjdXQKIFByb2dyYW1FeGVjdXRhYmxlOjpQcm9ncmFt
RXhlY3V0YWJsZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSkKICAg
ICA6IFNjcmlwdEV4ZWN1dGFibGUoZXhlYy0+Z2xvYmFsRGF0YSgpLnByb2dyYW1FeGVjdXRhYmxl
U3RydWN0dXJlLmdldCgpLCBleGVjLCBzb3VyY2UsIGZhbHNlKQogeworICAgIGZpbmlzaENyZWF0
aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiB9CiAKIFByb2dyYW1FeGVjdXRhYmxlOjp+UHJvZ3Jh
bUV4ZWN1dGFibGUoKQpAQCAtMTUzLDggKzE1NSw2IEBAIEZ1bmN0aW9uRXhlY3V0YWJsZTo6RnVu
Y3Rpb25FeGVjdXRhYmxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgbmFtZSwK
ICAgICAsIG1fbmFtZShuYW1lKQogICAgICwgbV9zeW1ib2xUYWJsZSgwKQogewotICAgIG1fZmly
c3RMaW5lID0gZmlyc3RMaW5lOwotICAgIG1fbGFzdExpbmUgPSBsYXN0TGluZTsKICAgICBmaW5p
c2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCksIG5hbWUsIGZpcnN0TGluZSwgbGFzdExpbmUp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRh
YmxlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGVjdXRhYmxlLmgKaW5kZXgg
NGRjYWQ4YjBkODI3NWM4OGM0MDYwMjZjNTc4YjJkOWM2MTYzNTc3Ni4uZDM1NDgzZGJhYWFlNzAy
ZTRlZGRmZjY2NGQ2OTBkMTM4MzhlNDgxMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0V4ZWN1dGFibGUuaApAQCAtMjQ5LDcgKzI0OSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICAgICAgLCBtX3NvdXJjZShzb3VyY2UpCiAgICAgICAgICAgICAsIG1fZmVhdHVyZXMoaXNJ
blN0cmljdENvbnRleHQgPyBTdHJpY3RNb2RlRmVhdHVyZSA6IDApCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgICAgICB9CiAKICAgICAgICAg
U2NyaXB0RXhlY3V0YWJsZShTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wgaXNJblN0cmljdENvbnRleHQpCkBAIC0yNTcs
NyArMjU2LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAsIG1fc291cmNlKHNvdXJj
ZSkKICAgICAgICAgICAgICwgbV9mZWF0dXJlcyhpc0luU3RyaWN0Q29udGV4dCA/IFN0cmljdE1v
ZGVGZWF0dXJlIDogMCkKICAgICAgICAgewotICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24oZXhl
Yy0+Z2xvYmFsRGF0YSgpKTsKICAgICAgICAgfQogCiAgICAgICAgIGNvbnN0IFNvdXJjZUNvZGUm
IHNvdXJjZSgpIHsgcmV0dXJuIG1fc291cmNlOyB9CkBAIC0zMjQsNyArMzIyLDggQEAgbmFtZXNw
YWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIEV2YWxFeGVjdXRhYmxlKiBjcmVhdGUoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBTb3VyY2VDb2RlJiBzb3VyY2UsIGJvb2wgaXNJblN0cmljdENvbnRl
eHQpIAogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8RXZh
bEV4ZWN1dGFibGU+KCpleGVjLT5oZWFwKCkpKSBFdmFsRXhlY3V0YWJsZShleGVjLCBzb3VyY2Us
IGlzSW5TdHJpY3RDb250ZXh0KTsgCisgICAgICAgICAgICBFdmFsRXhlY3V0YWJsZSogZXhlY3V0
YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxsPEV2YWxFeGVjdXRhYmxlPigqZXhlYy0+aGVhcCgpKSkg
RXZhbEV4ZWN1dGFibGUoZXhlYywgc291cmNlLCBpc0luU3RyaWN0Q29udGV4dCk7CisgICAgICAg
ICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICAgICAgfQogCiAjaWYgRU5BQkxFKEpJVCkKQEAg
LTM1Niw3ICszNTUsOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgUHJvZ3Jh
bUV4ZWN1dGFibGUqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJjZUNvZGUmIHNv
dXJjZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPFBy
b2dyYW1FeGVjdXRhYmxlPigqZXhlYy0+aGVhcCgpKSkgUHJvZ3JhbUV4ZWN1dGFibGUoZXhlYywg
c291cmNlKTsKKyAgICAgICAgICAgIFByb2dyYW1FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3
IChhbGxvY2F0ZUNlbGw8UHJvZ3JhbUV4ZWN1dGFibGU+KCpleGVjLT5oZWFwKCkpKSBQcm9ncmFt
RXhlY3V0YWJsZShleGVjLCBzb3VyY2UpOworICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7
CiAgICAgICAgIH0KIAogICAgICAgICB+UHJvZ3JhbUV4ZWN1dGFibGUoKTsKQEAgLTQxMSwxMiAr
NDExLDE0IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBGdW5jdGlvbkV4ZWN1
dGFibGUqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIG5hbWUsIGNv
bnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBmb3JjZVVzZXNBcmd1bWVudHMsIEZ1bmN0aW9u
UGFyYW1ldGVycyogcGFyYW1ldGVycywgYm9vbCBpc0luU3RyaWN0Q29udGV4dCwgaW50IGZpcnN0
TGluZSwgaW50IGxhc3RMaW5lKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChh
bGxvY2F0ZUNlbGw8RnVuY3Rpb25FeGVjdXRhYmxlPigqZXhlYy0+aGVhcCgpKSkgRnVuY3Rpb25F
eGVjdXRhYmxlKGV4ZWMsIG5hbWUsIHNvdXJjZSwgZm9yY2VVc2VzQXJndW1lbnRzLCBwYXJhbWV0
ZXJzLCBpc0luU3RyaWN0Q29udGV4dCwgZmlyc3RMaW5lLCBsYXN0TGluZSk7CisgICAgICAgICAg
ICBGdW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxGdW5j
dGlvbkV4ZWN1dGFibGU+KCpleGVjLT5oZWFwKCkpKSBGdW5jdGlvbkV4ZWN1dGFibGUoZXhlYywg
bmFtZSwgc291cmNlLCBmb3JjZVVzZXNBcmd1bWVudHMsIHBhcmFtZXRlcnMsIGlzSW5TdHJpY3RD
b250ZXh0LCBmaXJzdExpbmUsIGxhc3RMaW5lKTsKKyAgICAgICAgICAgIHJldHVybiBleGVjdXRh
YmxlOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIEZ1bmN0aW9uRXhlY3V0YWJsZSogY3Jl
YXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29u
c3QgU291cmNlQ29kZSYgc291cmNlLCBib29sIGZvcmNlVXNlc0FyZ3VtZW50cywgRnVuY3Rpb25Q
YXJhbWV0ZXJzKiBwYXJhbWV0ZXJzLCBib29sIGlzSW5TdHJpY3RDb250ZXh0LCBpbnQgZmlyc3RM
aW5lLCBpbnQgbGFzdExpbmUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFs
bG9jYXRlQ2VsbDxGdW5jdGlvbkV4ZWN1dGFibGU+KGdsb2JhbERhdGEuaGVhcCkpIEZ1bmN0aW9u
RXhlY3V0YWJsZShnbG9iYWxEYXRhLCBuYW1lLCBzb3VyY2UsIGZvcmNlVXNlc0FyZ3VtZW50cywg
cGFyYW1ldGVycywgaXNJblN0cmljdENvbnRleHQsIGZpcnN0TGluZSwgbGFzdExpbmUpOworICAg
ICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3IChhbGxvY2F0ZUNl
bGw8RnVuY3Rpb25FeGVjdXRhYmxlPihnbG9iYWxEYXRhLmhlYXApKSBGdW5jdGlvbkV4ZWN1dGFi
bGUoZ2xvYmFsRGF0YSwgbmFtZSwgc291cmNlLCBmb3JjZVVzZXNBcmd1bWVudHMsIHBhcmFtZXRl
cnMsIGlzSW5TdHJpY3RDb250ZXh0LCBmaXJzdExpbmUsIGxhc3RMaW5lKTsKKyAgICAgICAgICAg
IHJldHVybiBleGVjdXRhYmxlOwogICAgICAgICB9CiAKICAgICAgICAgSlNGdW5jdGlvbiogbWFr
ZShFeGVjU3RhdGUqIGV4ZWMsIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluKQpAQCAtNTI3LDYg
KzUyOSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHByb3RlY3RlZDoKICAgICAgICAgdm9pZCBm
aW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIGNvbnN0IElkZW50aWZpZXIm
IG5hbWUsIGludCBmaXJzdExpbmUsIGludCBsYXN0TGluZSkKICAgICAgICAgeworICAgICAgICAg
ICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgICAgICAgICBtX2ZpcnN0
TGluZSA9IGZpcnN0TGluZTsKICAgICAgICAgICAgIG1fbGFzdExpbmUgPSBsYXN0TGluZTsKICAg
ICAgICAgICAgIG1fbmFtZVZhbHVlLnNldChnbG9iYWxEYXRhLCB0aGlzLCBqc1N0cmluZygmZ2xv
YmFsRGF0YSwgbmFtZS51c3RyaW5nKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNBcnJheS5jcHAKaW5kZXggODBkNWY3NzZiMjMwMmUwNjc3MTI3ZGY2ODUxMzYyOTllZGQzNGI4
YS4uMTg1ZDdhZWI2YmZjNDUyOTE2YmJmZWJiMTcxMDRkYjA3Njc1ZDkzMiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKQEAgLTEzNCw2ICsxMzQsMjQgQEAgSlNB
cnJheTo6SlNBcnJheShWUHRyU3RlYWxpbmdIYWNrVHlwZSkKIEpTQXJyYXk6OkpTQXJyYXkoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEpTTm9u
RmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQogeworICAgIGZpbmlzaENyZWF0aW9u
KGdsb2JhbERhdGEpOworfQorCitKU0FycmF5OjpKU0FycmF5KEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVuc2lnbmVkIGluaXRpYWxMZW5ndGgsIEFycmF5
Q3JlYXRpb25Nb2RlIGNyZWF0aW9uTW9kZSkKKyAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFs
RGF0YSwgc3RydWN0dXJlKQoreworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGluaXRp
YWxMZW5ndGgsIGNyZWF0aW9uTW9kZSk7Cit9CisKK0pTQXJyYXk6OkpTQXJyYXkoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29uc3QgQXJnTGlzdCYgbGlz
dCkKKyAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0dXJlKQoreworICAg
IGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEsIGxpc3QpOworfQorCit2b2lkIEpTQXJyYXk6OmZp
bmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSkKK3sKKyAgICBCYXNlOjpmaW5p
c2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBBU1NFUlQoaW5oZXJpdHMoJnNfaW5mbykpOwog
CiAgICAgdW5zaWduZWQgaW5pdGlhbENhcGFjaXR5ID0gMDsKQEAgLTE0OCw5ICsxNjYsOSBAQCBK
U0FycmF5OjpKU0FycmF5KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUpCiAgICAgSGVhcDo6aGVhcCh0aGlzKS0+cmVwb3J0RXh0cmFNZW1vcnlDb3N0KHN0b3Jh
Z2VTaXplKDApKTsKIH0KIAotSlNBcnJheTo6SlNBcnJheShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCB1bnNpZ25lZCBpbml0aWFsTGVuZ3RoLCBBcnJheUNy
ZWF0aW9uTW9kZSBjcmVhdGlvbk1vZGUpCi0gICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbERh
dGEsIHN0cnVjdHVyZSkKK3ZvaWQgSlNBcnJheTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhLCB1bnNpZ25lZCBpbml0aWFsTGVuZ3RoLCBBcnJheUNyZWF0aW9uTW9kZSBj
cmVhdGlvbk1vZGUpCiB7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAg
ICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKIAogICAgIHVuc2lnbmVkIGluaXRpYWxDYXBh
Y2l0eTsKQEAgLTE5MCw5ICsyMDgsOSBAQCBKU0FycmF5OjpKU0FycmF5KEpTR2xvYmFsRGF0YSYg
Z2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIHVuc2lnbmVkIGluaXRpYQogICAgIEhl
YXA6OmhlYXAodGhpcyktPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChzdG9yYWdlU2l6ZShpbml0aWFs
Q2FwYWNpdHkpKTsKIH0KIAotSlNBcnJheTo6SlNBcnJheShKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBBcmdMaXN0JiBsaXN0KQotICAgIDogSlNO
b25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCit2b2lkIEpTQXJyYXk6OmZpbmlz
aENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgQXJnTGlzdCYgbGlzdCkK
IHsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBBU1NFUlQoaW5o
ZXJpdHMoJnNfaW5mbykpOwogCiAgICAgdW5zaWduZWQgaW5pdGlhbENhcGFjaXR5ID0gbGlzdC5z
aXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmgKaW5kZXggN2ZmNWUy
Mzg0OTIzNmJlZDBiMWIxMGUxOWU2NjBlZjM1MWZjZDY3Yi4uZThlMWZhOTJkNWZkNDAxOTMxZTc4
MjM1ZDMyNjU0MTM5ZDY2ZGZlNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNBcnJheS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJy
YXkuaApAQCAtNjQsNyArNjQsMTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGV4cGxpY2l0
IEpTQXJyYXkoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKik7CiAgICAgICAgIEpTQXJyYXkoSlNH
bG9iYWxEYXRhJiwgU3RydWN0dXJlKiwgdW5zaWduZWQgaW5pdGlhbExlbmd0aCwgQXJyYXlDcmVh
dGlvbk1vZGUpOwogICAgICAgICBKU0FycmF5KEpTR2xvYmFsRGF0YSYsIFN0cnVjdHVyZSosIGNv
bnN0IEFyZ0xpc3QmIGluaXRpYWxWYWx1ZXMpOwotICAgICAgICAKKworICAgICAgICB2b2lkIGZp
bmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYpOworICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9u
KEpTR2xvYmFsRGF0YSYsIHVuc2lnbmVkIGluaXRpYWxMZW5ndGgsIEFycmF5Q3JlYXRpb25Nb2Rl
KTsKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBjb25zdCBBcmdM
aXN0Jik7CisgICAgCiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIEpTTm9uRmluYWxPYmpl
Y3QgQmFzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNC
eXRlQXJyYXkuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXku
Y3BwCmluZGV4IDI5YjQ1NjQzMmFlYjI5NWIxMWY5MWExMTdjMWExNTFjMDI2ZWZhZDAuLmJiZTc2
MzJhMmUyMWEzOTk3ZDQ3MzVlZjY2Y2QxZDNmNzY3MWEwNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgSlNCeXRl
QXJyYXk6OkpTQnl0ZUFycmF5KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUs
IEJ5dGVBcnJheSogc3RvcmEKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBzdHJ1Y3R1cmUpCiAgICAgLCBtX3N0b3JhZ2Uoc3RvcmFnZSkKIHsKLSAgICBjb25zdHJ1
Y3RvckJvZHkoZXhlYyk7CisgICAgZmluaXNoQ3JlYXRpb24oZXhlYyk7CiB9CiAgICAgICAgIAog
SlNCeXRlQXJyYXkqIEpTQnl0ZUFycmF5OjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1
cmUqIHN0cnVjdHVyZSwgQnl0ZUFycmF5KiBzdG9yYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKaW5kZXggZDJkMmE2NjQzNTQwNmViOWNlOWQ0MjI5MjIx
NDY4MmJhOWY2MzMyYy4uMjhlYmQ3ZDBmNThlY2I0NGFhMmIxNmU3MDQ2ZDQ4ZDkzMjRhZTExZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCkBAIC0xMDQs
OCArMTA0LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0
eVNsb3QgfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZs
YWdzOwogCi0gICAgICAgIHZvaWQgY29uc3RydWN0b3JCb2R5KEV4ZWNTdGF0ZSogZXhlYykKKyAg
ICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIHsKKyAg
ICAgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiAgICAg
ICAgICAgICBwdXREaXJlY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRhKCku
cHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcihtX3N0b3JhZ2UtPmxlbmd0aCgpKSwgUmVh
ZE9ubHkgfCBEb250RGVsZXRlKTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKaW5kZXggOTA0YjdmZjM4NjI4MmJjZWUxMTIwZWRl
ZjUxNzFjMWE0NDJkZGI4Yi4uNjdmZGEwNTBhNjI4OGQ3MGE5NDI5OGNlMDJhNzI2ZDgyOGUyMzIx
ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaApA
QCAtNDEsNiArNDEsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSlNOb3RBbk9iamVjdChF
eGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgICAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhlYy0+Z2xv
YmFsRGF0YSgpLCBleGVjLT5nbG9iYWxEYXRhKCkubm90QW5PYmplY3RTdHJ1Y3R1cmUuZ2V0KCkp
CiAgICAgICAgIHsKKyAgICAgICAgICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEo
KSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0LmgKaW5kZXggZDhmNmJmYzc2Y2I2Y2JmYzY5NGNlZTMzYWFkOGQ2
ZTk4ZmVhZWRiMy4uMTRkMTIwMzFkZTBkZTdjMGY5NDU4NmI3NzViNWUxNWE3ZDc2YTcwYSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0zNjEsNyArMzYxLDYg
QEAgQ09NUElMRV9BU1NFUlQoKEpTRmluYWxPYmplY3RfaW5saW5lU3RvcmFnZUNhcGFjaXR5ID49
IEpTTm9uRmluYWxPYmplY3RfaW5saW5lU3QKICAgICAgICAgZXhwbGljaXQgSlNOb25GaW5hbE9i
amVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAg
ICAgICAgICAgOiBKU09iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUsIG1faW5saW5lU3RvcmFn
ZSkKICAgICAgICAgewotICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAg
ICAgICAgIH0KIAogICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xv
YmFsRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0V2l0aEdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09iamVjdFdpdGhHbG9iYWxPYmplY3QuY3BwCmluZGV4IDJiNDg5YTJkMDI2MTZlZWQzMjQ4MDg0
MDU5MjZjYTliYWQ4MDhjNGIuLmE2Y2YyZWM4ZTFlYzEyNDhjMGY3NTk3YzRjNDkxODA3NTQwNDE4
ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNP
YmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcApAQCAtMzMsMjMgKzMzLDI0IEBAIG5hbWVzcGFjZSBK
U0MgewogSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Qo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAg
OiBKU05vbkZpbmFsT2JqZWN0KGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUp
CiB7Ci0gICAgQ09NUElMRV9BU1NFUlQoQW5vbnltb3VzU2xvdENvdW50ID09IDEsIEFub255bW91
c1Nsb3RDb3VudF9tdXN0X2JlX29uZSk7Ci0gICAgQVNTRVJUKCFnbG9iYWxPYmplY3QgfHwgZ2xv
YmFsT2JqZWN0LT5pc0dsb2JhbE9iamVjdCgpKTsKLSAgICBpZiAoIWdsb2JhbE9iamVjdCkKLSAg
ICAgICAgY2xlYXJBbm9ueW1vdXNWYWx1ZShHbG9iYWxPYmplY3RTbG90KTsKLSAgICBlbHNlCi0g
ICAgICAgIHB1dEFub255bW91c1ZhbHVlKGdsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBHbG9i
YWxPYmplY3RTbG90LCBnbG9iYWxPYmplY3QpOworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbE9i
amVjdC0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOwogfQogCiBKU09iamVjdFdpdGhHbG9i
YWxPYmplY3Q6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlKQog
ICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiB7CisgICAgZmlu
aXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgZ2xvYmFsT2JqZWN0KTsKK30KKwordm9pZCBKU09iamVj
dFdpdGhHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0
YSwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKK3sKKyAgICBCYXNlOjpmaW5pc2hDcmVh
dGlvbihnbG9iYWxEYXRhKTsKICAgICBDT01QSUxFX0FTU0VSVChBbm9ueW1vdXNTbG90Q291bnQg
PT0gMSwgQW5vbnltb3VzU2xvdENvdW50X211c3RfYmVfb25lKTsKICAgICBBU1NFUlQoIWdsb2Jh
bE9iamVjdCB8fCBnbG9iYWxPYmplY3QtPmlzR2xvYmFsT2JqZWN0KCkpOwogICAgIGlmICghZ2xv
YmFsT2JqZWN0KQogICAgICAgICBjbGVhckFub255bW91c1ZhbHVlKEdsb2JhbE9iamVjdFNsb3Qp
OwogICAgIGVsc2UKLSAgICAgICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xvYmFsRGF0YSwgR2xvYmFs
T2JqZWN0U2xvdCwgZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgcHV0QW5vbnltb3VzVmFsdWUoZ2xv
YmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIEdsb2JhbE9iamVjdFNsb3QsIGdsb2JhbE9iamVjdCk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaAppbmRleCA4NDRiY2Q4ZmRh
YjQyYjYyMWNmOTY4ZTFjMjEyNWI0ODRhY2JjMTE3Li4xMzBlMDdkNjkwNTJmZDIxZmIyYTcyNmYx
MjI4MTdjOGE3NmZiYzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdFdpdGhHbG9iYWxPYmplY3QuaApAQCAtMzQsNiArMzQsOCBAQCBjbGFz
cyBKU0dsb2JhbE9iamVjdDsKIAogY2xhc3MgSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0IDogcHVi
bGljIEpTTm9uRmluYWxPYmplY3QgewogcHVibGljOgorICAgIHR5cGVkZWYgSlNOb25GaW5hbE9i
amVjdCBCYXNlOworCiAgICAgc3RhdGljIFN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBwcm90bykKICAgICB7CiAgICAgICAgIHJldHVy
biBTdHJ1Y3R1cmU6OmNyZWF0ZShnbG9iYWxEYXRhLCBwcm90bywgVHlwZUluZm8oT2JqZWN0VHlw
ZSwgU3RydWN0dXJlRmxhZ3MpLCBBbm9ueW1vdXNTbG90Q291bnQsICZzX2luZm8pOwpAQCAtNTMs
NiArNTUsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgewogICAgICAgICAvLyBTaG91bGQgb25seSBiZSB1
c2VkIGJ5IEpTRnVuY3Rpb24gd2hlbiB3ZSBhcXVpcmUgdGhlIEpTRnVuY3Rpb24gdnB0ci4KICAg
ICB9CisKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIEpTR2xvYmFsT2Jq
ZWN0Kik7CisKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgQW5vbnltb3VzU2xvdENvdW50ID0g
SlNPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCArIDE7CiAgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIEdsb2JhbE9iamVjdFNsb3QgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaAppbmRleCBlYjFmMDNjYzIyOTJmMDY4ODM2NTY4
MGE5NzI0NTFlN2QzOGY0NmQ1Li5mNzFlZDMwOTk0OWIzMTIzNGFkYWZjODhlOGE2NGE1ODY5NTI5
MjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxl
T2JqZWN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9i
amVjdC5oCkBAIC03NCw2ICs3NCwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgICwg
bV9zeW1ib2xUYWJsZShzeW1ib2xUYWJsZSkKICAgICAgICAgICAgICwgbV9yZWdpc3RlcnMocmVp
bnRlcnByZXRfY2FzdDxXcml0ZUJhcnJpZXI8VW5rbm93bj4qPihyZWdpc3RlcnMpKQogICAgICAg
ICB7CisgICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKKyAgICAgICAgfQor
CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQor
ICAgICAgICB7CisgICAgICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsK
ICAgICAgICAgICAgIEFTU0VSVChtX3N5bWJvbFRhYmxlKTsKICAgICAgICAgICAgIENPTVBJTEVf
QVNTRVJUKHNpemVvZihXcml0ZUJhcnJpZXI8VW5rbm93bj4pID09IHNpemVvZihSZWdpc3Rlciks
IFJlZ2lzdGVyX3Nob3VsZF9iZV9zYW1lX3NpemVfYXNfV3JpdGVCYXJyaWVyKTsKICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNXcmFwcGVyT2Jq
ZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaApp
bmRleCAzZTU4OWYyNzE0M2UyNGQ3MDlkYjE2MGVmOGVhMTViN2U2MDY2ZThjLi4zYjQzODMxMjQz
OGRiYzczZTA4NjA3YWUzYjZmMGZmNDllMWFlZGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaApAQCAtNTMsNiArNTMsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICBpbmxpbmUgSlNXcmFwcGVyT2JqZWN0OjpKU1dyYXBwZXJPYmplY3QoSlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICAgICAgOiBK
U05vbkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKICAgICB7CisgICAgICAgIGZp
bmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIH0KIAogICAgIGlubGluZSBKU1ZhbHVlIEpT
V3JhcHBlck9iamVjdDo6aW50ZXJuYWxWYWx1ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQcm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcAppbmRleCBjMDZkZTI3ZTdlY2Qz
NzlhYjdmYjkwOTA5OWE5OTZhNGY5NzA1MDQ5Li4wODdjZDI2MGNmNTVkM2YxNWIzMzY1MjUzNmE1
NmJiNzc0MDE3OTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9P
YmplY3RQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09i
amVjdFByb3RvdHlwZS5jcHAKQEAgLTY3LDYgKzY3LDEyIEBAIE9iamVjdFByb3RvdHlwZTo6T2Jq
ZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzdHVjdHVyZSkK
ICAgICAsIG1faGFzTm9Qcm9wZXJ0aWVzV2l0aFVJbnQzMk5hbWVzKHRydWUpCiB7CisgICAgZmlu
aXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpLCBnbG9iYWxPYmplY3QpOworfQorCit2b2lk
IE9iamVjdFByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0
aW9uKGdsb2JhbERhdGEpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAgICAgcHV0
QW5vbnltb3VzVmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIDAsIGdsb2JhbE9iamVj
dCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQ
cm90b3R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlw
ZS5oCmluZGV4IGJjNjNiMzVkMGQ5MDRlZDIzOTRmNTExZTQ2Mzc0YmE3YzZiZjhhNzYuLjBhMmM4
ZmQ0OGVlN2Q0OWRlYWJmOTFiZWUwNTg2MGIyZmU5M2RhMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oCkBAIC00NSw2ICs0NSw4IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU05vbkZpbmFsT2JqZWN0OjpTdHJ1
Y3R1cmVGbGFnczsKICAgICAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIEFub255bW91c1Nsb3RD
b3VudCA9IEpTTm9uRmluYWxPYmplY3Q6OkFub255bW91c1Nsb3RDb3VudCArIDE7CiAKKyAgICAg
ICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBKU0dsb2JhbE9iamVjdCopOwor
CiAgICAgcHJpdmF0ZToKICAgICAgICAgT2JqZWN0UHJvdG90eXBlKEV4ZWNTdGF0ZSosIEpTR2xv
YmFsT2JqZWN0KiwgU3RydWN0dXJlKik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRp
b24uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaWN0RXZhbEFjdGl2YXRp
b24uY3BwCmluZGV4IGU2NjZkZWUxNTc5MmI3ZmJlODk3ZTYwZDJjNTAzZDYyM2I3NmZkODMuLjk2
ZDk0ZDg0ZWFiYjUyNjA1OTY5N2ZlMzM2ZGFhYjc4MjEzNTRiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5jcHAKQEAg
LTMxLDYgKzMxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiBTdHJpY3RFdmFsQWN0aXZhdGlvbjo6U3Ry
aWN0RXZhbEFjdGl2YXRpb24oRXhlY1N0YXRlKiBleGVjKQogICAgIDogSlNOb25GaW5hbE9iamVj
dChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmdsb2JhbERhdGEoKS5zdHJpY3RFdmFsQWN0aXZh
dGlvblN0cnVjdHVyZS5nZXQoKSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxE
YXRhKCkpOwogfQogCiBib29sIFN0cmljdEV2YWxBY3RpdmF0aW9uOjpkZWxldGVQcm9wZXJ0eShF
eGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0R2x1ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCmluZGV4
IDc0MzY1ZTVjOTlmMThhZWYxY2IyYjIzY2FhMjllZDE3YmJhMWU4ODYuLjgxZGQ2NmE1NWQ1MGE5
NzhlNjgxMTA5MmIzM2EzZDYwNDNiYWU3MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
R2x1ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDExLTA4LTI2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0Bh
cHBsZS5jb20+CisKKyAgICAgICAgVW56aXAgaW5pdGlhbGl6YXRpb24gbGlzdHMgYW5kIGNvbnN0
cnVjdG9ycyBpbiBKU0NlbGwgaGllcmFyY2h5ICgzLzcpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzA2NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbXBsZXRlZCB0aGUgdGhpcmQgbGV2ZWwgb2YgdGhl
IHJlZmFjdG9yaW5nIHRvIGFkZCBmaW5pc2hDcmVhdGlvbigpIAorICAgICAgICBtZXRob2RzIHRv
IGFsbCBjbGFzc2VzIHdpdGhpbiB0aGUgSlNDZWxsIGhpZXJhcmNoeSB3aXRoIG5vbi10cml2aWFs
IAorICAgICAgICBjb25zdHJ1Y3RvciBib2RpZXMuCisKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1w
LmNwcDoKKyAgICAgICAgKFVzZXJPYmplY3RJbXA6OlVzZXJPYmplY3RJbXApOgorCiAyMDExLTA4
LTE1ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAg
UmVmYWN0b3IgSlMgb2JqZWN0cyB0byBhbGxvY2F0ZSBpbiBzdGF0aWMgY3JlYXRlIG1ldGhvZHMg
cmF0aGVyIHRoYW4gY29uc3RydWN0b3JzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEds
dWUvVXNlck9iamVjdEltcC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdElt
cC5jcHAKaW5kZXggYWQzNjkzYjNhZDEzMDVlMGE5YzI0NmViNmM5OTgxMzM2MWUwZjRiZS4uMGQ0
ZDQ1YWY3MmY4YzI3NGQyMDMwZmJlM2I4NmJhZWM5ZTRmZDIxNiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
R2x1ZS9Vc2VyT2JqZWN0SW1wLmNwcApAQCAtMzgsNiArMzgsNyBAQCBVc2VyT2JqZWN0SW1wOjpV
c2VyT2JqZWN0SW1wKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIEpTVQogICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiAg
ICAgLCBmSlNVc2VyT2JqZWN0KChKU1VzZXJPYmplY3QqKXVzZXJPYmplY3QtPlJldGFpbigpKQog
eworICAgIGZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogfQogCiBVc2VyT2JqZWN0SW1wOjp+
VXNlck9iamVjdEltcCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDk2MDU4M2FhMTQwNWE5YWEwNmY3NjkwMzI3
N2M1M2M1NTZlMGI1ZC4uMDM1NmM4ZDg1ZDMxNzNiNzg2OWE4ZjU2OWNjYTRlODFiODM2ZWU4NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTA4LTI2ICBNYXJrIEhhaG5lbmJlcmcg
IDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgVW56aXAgaW5pdGlhbGl6YXRpb24g
bGlzdHMgYW5kIGNvbnN0cnVjdG9ycyBpbiBKU0NlbGwgaGllcmFyY2h5ICgzLzcpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzA2NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKwor
ICAgICAgICBDb21wbGV0ZWQgdGhlIHRoaXJkIGxldmVsIG9mIHRoZSByZWZhY3RvcmluZyB0byBh
ZGQgZmluaXNoQ3JlYXRpb24oKSAKKyAgICAgICAgbWV0aG9kcyB0byBhbGwgY2xhc3NlcyB3aXRo
aW4gdGhlIEpTQ2VsbCBoaWVyYXJjaHkgd2l0aCBub24tdHJpdmlhbCAKKyAgICAgICAgY29uc3Ry
dWN0b3IgYm9kaWVzLgorCisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpKU0RPTVdpbmRvd1NoZWxs
KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93U2hlbGw6OmZpbmlzaENyZWF0aW9uKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmg6CisKIDIwMTEtMDgtMjYg
IE1hdHRoZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUg
b2Zmc2V0IGhhY2sgZnJvbSBHcmFwaGljc0NvbnRleHRDRyBzZXRTaGFkb3cgY29kZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAppbmRleCBlMTNh
ODc4ODgzNDg4OGNkYTY5NzUxYTAzZTdmNTU2ZjVlNDNhMWZkLi4wMGZhYzBhN2VlMTBkMTczNzY3
ZGQzZWM4NWY2OGU5Nzk2MDgyNWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd1NoZWxsLmNwcApAQCAtNDcsNiArNDcsMTIgQEAgSlNET01XaW5kb3dTaGVs
bDo6SlNET01XaW5kb3dTaGVsbChQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2luZG93LCBTdHJ1Y3R1
cmUqIHN0cnUKICAgICA6IEJhc2UoKndvcmxkLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKICAg
ICAsIG1fd29ybGQod29ybGQpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oKndvcmxkLT5nbG9iYWxE
YXRhKCksIHdpbmRvdyk7Cit9CisKK3ZvaWQgSlNET01XaW5kb3dTaGVsbDo6ZmluaXNoQ3JlYXRp
b24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBQYXNzUmVmUHRyPERPTVdpbmRvdz4gd2luZG93
KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIEFTU0VSVChp
bmhlcml0cygmc19pbmZvKSk7CiAgICAgc2V0V2luZG93KHdpbmRvdyk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKaW5kZXggZWJmNmRlYmU1NWJm
ZDFiNDQ3NGJmYjIyOTdiZDVkZmJhNmQ2YzM1Ny4uNTQ1OTY2MTJjN2RhNTEyMmEzNzc1NjVlYTRh
MGJlMTdlNzMwMTMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dTaGVsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93U2hlbGwuaApAQCAtNjQsNiArNjQsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAg
ICAgRE9NV3JhcHBlcldvcmxkKiB3b3JsZCgpIHsgcmV0dXJuIG1fd29ybGQuZ2V0KCk7IH0KIAor
ICAgIHByb3RlY3RlZDoKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OkpTR2xvYmFs
RGF0YSYsIFBhc3NSZWZQdHI8RE9NV2luZG93Pik7CisKICAgICBwcml2YXRlOgogICAgICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxhZ3MgPSBKU0M6Ok92ZXJyaWRlc0dldE93
blByb3BlcnR5U2xvdCB8IEpTQzo6T3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IEpTQzo6T3ZlcnJp
ZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105443</attachid>
            <date>2011-08-27 15:01:43 -0700</date>
            <delta_ts>2011-08-29 18:42:51 -0700</delta_ts>
            <desc>Fixing review issues</desc>
            <filename>bug-67064-20110827150142.patch</filename>
            <type>text/plain</type>
            <size>34013</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM5MjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDNi
YmU2N2MxOTRkZTM4ZDQ3NjM2MTJiZjk3NDI0YzAxM2U1ZjIwODQuLjI1MWQ1YWNlZWQwOTQ5NDZl
ZjQ2YzVlOWI3NmYyMWI2MTJiMTI1NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDgxIEBACiAyMDExLTA4LTI2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CiAKKyAgICAgICAgVW56aXAgaW5pdGlhbGl6YXRpb24gbGlzdHMgYW5kIGNvbnN0cnVj
dG9ycyBpbiBKU0NlbGwgaGllcmFyY2h5ICgzLzcpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzA2NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIENvbXBsZXRlZCB0aGUgdGhpcmQgbGV2ZWwgb2YgdGhlIHJl
ZmFjdG9yaW5nIHRvIGFkZCBmaW5pc2hDcmVhdGlvbigpIAorICAgICAgICBtZXRob2RzIHRvIGFs
bCBjbGFzc2VzIHdpdGhpbiB0aGUgSlNDZWxsIGhpZXJhcmNoeSB3aXRoIG5vbi10cml2aWFsIAor
ICAgICAgICBjb25zdHJ1Y3RvciBib2RpZXMuCisKKyAgICAgICAgVGhpcyBwcmltYXJpbHkgY29u
c2lzdHMgb2YgcHVzaGluZyB0aGUgY2FsbHMgdG8gZmluaXNoQ3JlYXRpb24oKSBkb3duIAorICAg
ICAgICBpbnRvIHRoZSBjb25zdHJ1Y3RvcnMgb2YgdGhlIHN1YmNsYXNzZXMgb2YgdGhlIHNlY29u
ZCBsZXZlbCBvZiB0aGUgaGllcmFyY2h5IAorICAgICAgICBhcyB3ZWxsIGFzIHB1bGxpbmcgdGhl
IGZpbmlzaENyZWF0aW9uKCkgY2FsbHMgb3V0IGludG8gdGhlIGNsYXNzJ3MgY29ycmVzcG9uZGlu
ZworICAgICAgICBjcmVhdGUoKSBtZXRob2QgaWYgaXQgaGFzIG9uZS4gIERvaW5nIGJvdGggc2lt
dWx0YW5lb3VzbHkgYWxsb3dzIHVzIHRvIAorICAgICAgICBtYWludGFpbiB0aGUgaW52YXJpYW50
IHRoYXQgdGhlIGZpbmlzaENyZWF0aW9uKCkgbWV0aG9kIGNoYWluIGlzIGNhbGxlZCBleGFjdGx5
IAorICAgICAgICBvbmNlIGR1cmluZyB0aGUgY3JlYXRpb24gb2YgYW4gb2JqZWN0LCBzaW5jZSBj
YWxsaW5nIGl0IGFueSBvdGhlciBudW1iZXIgb2YgCisgICAgICAgIHRpbWVzICgwLCAyLCBvciBt
b3JlKSB3aWxsIGNhdXNlIGFuIGFzc2VydGlvbiBmYWlsdXJlLgorCisgICAgICAgICogZGVidWdn
ZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXJBY3RpdmF0
aW9uOjpEZWJ1Z2dlckFjdGl2YXRpb24pOgorICAgICAgICAoSlNDOjpEZWJ1Z2dlckFjdGl2YXRp
b246OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKiBkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRp
b24uaDoKKyAgICAgICAgKEpTQzo6RGVidWdnZXJBY3RpdmF0aW9uOjpjcmVhdGUpOgorICAgICAg
ICAqIHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6Y3JlYXRl
KToKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpjcmVhdGVOb1BhcmFtZXRlcnMpOgorICAgICAg
ICAoSlNDOjpBcmd1bWVudHM6OkFyZ3VtZW50cyk6CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6
ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHA6Cisg
ICAgICAgIChKU0M6OkVycm9ySW5zdGFuY2U6OkVycm9ySW5zdGFuY2UpOgorICAgICAgICAqIHJ1
bnRpbWUvRXJyb3JJbnN0YW5jZS5oOgorICAgICAgICAoSlNDOjpFcnJvckluc3RhbmNlOjpmaW5p
c2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcDoKKyAg
ICAgICAgKEpTQzo6SW50ZXJydXB0ZWRFeGVjdXRpb25FcnJvcjo6SW50ZXJydXB0ZWRFeGVjdXRp
b25FcnJvcik6CisgICAgICAgIChKU0M6OlRlcm1pbmF0ZWRFeGVjdXRpb25FcnJvcjo6VGVybWlu
YXRlZEV4ZWN1dGlvbkVycm9yKToKKyAgICAgICAgKiBydW50aW1lL0V4ZWN1dGFibGUuY3BwOgor
ICAgICAgICAoSlNDOjpFdmFsRXhlY3V0YWJsZTo6RXZhbEV4ZWN1dGFibGUpOgorICAgICAgICAo
SlNDOjpQcm9ncmFtRXhlY3V0YWJsZTo6UHJvZ3JhbUV4ZWN1dGFibGUpOgorICAgICAgICAoSlND
OjpGdW5jdGlvbkV4ZWN1dGFibGU6OkZ1bmN0aW9uRXhlY3V0YWJsZSk6CisgICAgICAgIE1vdmVk
IHRoZSBhc3NpZ25tZW50IG9mIG1fZmlyc3RMaW5lIGFuZCBtX2xhc3RMaW5lIGludG8gdGhlIAor
ICAgICAgICBGdW5jdGlvbkV4ZWN1dGFibGU6OmZpbmlzaENyZWF0aW9uKCkgbWV0aG9kIGluIEV4
ZWN1dGFibGUuaAorICAgICAgICAqIHJ1bnRpbWUvRXhlY3V0YWJsZS5oOgorICAgICAgICAoSlND
OjpTY3JpcHRFeGVjdXRhYmxlOjpTY3JpcHRFeGVjdXRhYmxlKToKKyAgICAgICAgKEpTQzo6RXZh
bEV4ZWN1dGFibGU6OmNyZWF0ZSk6CisgICAgICAgIChKU0M6OlByb2dyYW1FeGVjdXRhYmxlOjpj
cmVhdGUpOgorICAgICAgICAoSlNDOjpGdW5jdGlvbkV4ZWN1dGFibGU6OmNyZWF0ZSk6CisgICAg
ICAgIChKU0M6OkZ1bmN0aW9uRXhlY3V0YWJsZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAq
IHJ1bnRpbWUvSlNBcnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OkpTQXJyYXkpOgor
ICAgICAgICAoSlNDOjpKU0FycmF5OjpmaW5pc2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGlt
ZS9KU0FycmF5Lmg6CisgICAgICAgICogcnVudGltZS9KU0J5dGVBcnJheS5jcHA6CisgICAgICAg
IChKU0M6OkpTQnl0ZUFycmF5OjpKU0J5dGVBcnJheSk6CisgICAgICAgICogcnVudGltZS9KU0J5
dGVBcnJheS5oOgorICAgICAgICAoSlNDOjpKU0J5dGVBcnJheTo6ZmluaXNoQ3JlYXRpb24pOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU05vdEFu
T2JqZWN0OjpKU05vdEFuT2JqZWN0KToKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6Cisg
ICAgICAgIChKU0M6OkpTTm9uRmluYWxPYmplY3Q6OkpTTm9uRmluYWxPYmplY3QpOgorICAgICAg
ICAqIHJ1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0OjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3QpOgorICAg
ICAgICAoSlNDOjpKU09iamVjdFdpdGhHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAg
ICAgICAgKiBydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVjdC5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oOgorICAgICAgICAoSlNDOjpKU1ZhcmlhYmxlT2JqZWN0
OjpKU1ZhcmlhYmxlT2JqZWN0KToKKyAgICAgICAgKEpTQzo6SlNWYXJpYWJsZU9iamVjdDo6Zmlu
aXNoQ3JlYXRpb24pOgorICAgICAgICAqIHJ1bnRpbWUvSlNXcmFwcGVyT2JqZWN0Lmg6CisgICAg
ICAgIChKU0M6OkpTV3JhcHBlck9iamVjdDo6SlNXcmFwcGVyT2JqZWN0KToKKyAgICAgICAgKiBy
dW50aW1lL09iamVjdFByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6Ok9iamVjdFByb3RvdHlw
ZTo6T2JqZWN0UHJvdG90eXBlKToKKyAgICAgICAgKEpTQzo6T2JqZWN0UHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbik6CisgICAgICAgICogcnVudGltZS9PYmplY3RQcm90b3R5cGUuaDoKKyAgICAg
ICAgKiBydW50aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6U3Ry
aWN0RXZhbEFjdGl2YXRpb246OlN0cmljdEV2YWxBY3RpdmF0aW9uKToKKworMjAxMS0wOC0yNiAg
TWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgorCiAgICAgICAgIFVuemlw
IGluaXRpYWxpemF0aW9uIGxpc3RzIGFuZCBjb25zdHJ1Y3RvcnMgaW4gSlNDZWxsIGhpZXJhcmNo
eSAoMi83KQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjY5NTcKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVn
Z2VyQWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXJBY3RpdmF0aW9uLmNwcAppbmRleCA4NzExYjVjZTkzZGY5MjA0MTE4Y2Q3ODBjNTkyMTllMWYx
YzVjZTg0Li5hZThhNWFjZDZhODU3MGFkNzM3Y2UwZTAwY2M5ZDVhNjhhOTQwOWRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9u
LmNwcApAQCAtMzMsNiArMzMsMTIgQEAgbmFtZXNwYWNlIEpTQyB7CiBEZWJ1Z2dlckFjdGl2YXRp
b246OkRlYnVnZ2VyQWN0aXZhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTT2JqZWN0
KiBhY3RpdmF0aW9uKQogICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBnbG9iYWxE
YXRhLmRlYnVnZ2VyQWN0aXZhdGlvblN0cnVjdHVyZS5nZXQoKSkKIHsKKyAgICBmaW5pc2hDcmVh
dGlvbihnbG9iYWxEYXRhLCBhY3RpdmF0aW9uKTsKK30KKwordm9pZCBEZWJ1Z2dlckFjdGl2YXRp
b246OmZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmplY3QqIGFj
dGl2YXRpb24pCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAg
QVNTRVJUKGFjdGl2YXRpb24pOwogICAgIEFTU0VSVChhY3RpdmF0aW9uLT5pc0FjdGl2YXRpb25P
YmplY3QoKSk7CiAgICAgbV9hY3RpdmF0aW9uLnNldChnbG9iYWxEYXRhLCB0aGlzLCBzdGF0aWNf
Y2FzdDxKU0FjdGl2YXRpb24qPihhY3RpdmF0aW9uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmgKaW5kZXggNDczM2ZlNjgwNWMx
MmU0MzQzNTZiZDI1M2UwYmEyNWE1OGU3NzFkNC4uMzQ0NGJkODRlNWU2YzBhNGM0ZmQyY2M4MDlm
N2RmMjhjNWQ4ZDUzMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2Vy
L0RlYnVnZ2VyQWN0aXZhdGlvbi5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlckFjdGl2YXRpb24uaApAQCAtMzAsMTUgKzMwLDE0IEBACiAKIG5hbWVzcGFjZSBK
U0MgewogCi0gICAgY2xhc3MgSlNBY3RpdmF0aW9uOwotCiAgICAgY2xhc3MgRGVidWdnZXJBY3Rp
dmF0aW9uIDogcHVibGljIEpTTm9uRmluYWxPYmplY3QgewogICAgIHB1YmxpYzoKICAgICAgICAg
dHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CiAKICAgICAgICAgc3RhdGljIERlYnVnZ2Vy
QWN0aXZhdGlvbiogY3JlYXRlKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNPYmplY3QqIG9i
amVjdCkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxsPERl
YnVnZ2VyQWN0aXZhdGlvbj4oZ2xvYmFsRGF0YS5oZWFwKSkgRGVidWdnZXJBY3RpdmF0aW9uKGds
b2JhbERhdGEsIG9iamVjdCk7CisgICAgICAgICAgICBEZWJ1Z2dlckFjdGl2YXRpb24qIGFjdGl2
YXRpb24gPSBuZXcgKGFsbG9jYXRlQ2VsbDxEZWJ1Z2dlckFjdGl2YXRpb24+KGdsb2JhbERhdGEu
aGVhcCkpIERlYnVnZ2VyQWN0aXZhdGlvbihnbG9iYWxEYXRhLCBvYmplY3QpOworICAgICAgICAg
ICAgcmV0dXJuIGFjdGl2YXRpb247CiAgICAgICAgIH0KIAogICAgICAgICB2aXJ0dWFsIHZvaWQg
dmlzaXRDaGlsZHJlbihTbG90VmlzaXRvciYpOwpAQCAtNjIsNiArNjEsOCBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc1Zpc2l0
Q2hpbGRyZW4gfCBKU09iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiAKKyAgICAgICAgdm9pZCBmaW5p
c2hDcmVhdGlvbihKU0dsb2JhbERhdGEmLCBKU09iamVjdCogYWN0aXZhdGlvbik7CisKICAgICBw
cml2YXRlOgogICAgICAgICBEZWJ1Z2dlckFjdGl2YXRpb24oSlNHbG9iYWxEYXRhJiwgSlNPYmpl
Y3QqKTsKICAgICAgICAgV3JpdGVCYXJyaWVyPEpTQWN0aXZhdGlvbj4gbV9hY3RpdmF0aW9uOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAppbmRleCA4ODY3ODBjMGFm
OGRiNTY3YzQ1NWI1ZThlZjZiN2FjNGVmN2MxODFlLi4wOWQ1NWYyMTYzNTU1NDFlNGJkZGZiMjIy
NTgxYjc2ZjA5MzE4ODdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Bcmd1bWVudHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVu
dHMuaApAQCAtNjMsMTIgKzYzLDE0IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRp
YyBBcmd1bWVudHMqIGNyZWF0ZShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIENhbGxGcmFtZSog
Y2FsbEZyYW1lKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNl
bGw8QXJndW1lbnRzPihnbG9iYWxEYXRhLmhlYXApKSBBcmd1bWVudHMoY2FsbEZyYW1lKTsKKyAg
ICAgICAgICAgIEFyZ3VtZW50cyogYXJndW1lbnRzID0gbmV3IChhbGxvY2F0ZUNlbGw8QXJndW1l
bnRzPihnbG9iYWxEYXRhLmhlYXApKSBBcmd1bWVudHMoY2FsbEZyYW1lKTsKKyAgICAgICAgICAg
IHJldHVybiBhcmd1bWVudHM7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIHN0YXRpYyBB
cmd1bWVudHMqIGNyZWF0ZU5vUGFyYW1ldGVycyhKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIENh
bGxGcmFtZSogY2FsbEZyYW1lKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChh
bGxvY2F0ZUNlbGw8QXJndW1lbnRzPihnbG9iYWxEYXRhLmhlYXApKSBBcmd1bWVudHMoY2FsbEZy
YW1lLCBOb1BhcmFtZXRlcnMpOworICAgICAgICAgICAgQXJndW1lbnRzKiBhcmd1bWVudHMgPSBu
ZXcgKGFsbG9jYXRlQ2VsbDxBcmd1bWVudHM+KGdsb2JhbERhdGEuaGVhcCkpIEFyZ3VtZW50cyhj
YWxsRnJhbWUsIE5vUGFyYW1ldGVycyk7CisgICAgICAgICAgICByZXR1cm4gYXJndW1lbnRzOwog
ICAgICAgICB9CiAKICAgICAgICAgLy8gVXNlIGFuIGVudW0gYmVjYXVzZSBvdGhlcndpc2UgZ2Nj
IGluc2lzdHMgb24gZG9pbmcgYSBtZW1vcnkKQEAgLTExNSw2ICsxMTcsOSBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1
Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc1Zpc2l0
Q2hpbGRyZW4gfCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVy
ZUZsYWdzOwogCisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1lKik7CisgICAg
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oQ2FsbEZyYW1lKiwgTm9QYXJhbWV0ZXJzVHlwZSk7CisK
ICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGdldEFyZ3VtZW50c0RhdGEoQ2FsbEZyYW1lKiwg
SlNGdW5jdGlvbiomLCBwdHJkaWZmX3QmIGZpcnN0UGFyYW1ldGVySW5kZXgsIFJlZ2lzdGVyKiYg
YXJndiwgaW50JiBhcmdjKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xv
dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYpOwpAQCAtMTYxLDYgKzE2NiwxOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgOiBKU05v
bkZpbmFsT2JqZWN0KGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBjYWxsRnJhbWUtPmxleGljYWxH
bG9iYWxPYmplY3QoKS0+YXJndW1lbnRzU3RydWN0dXJlKCkpCiAgICAgICAgICwgZChhZG9wdFB0
cihuZXcgQXJndW1lbnRzRGF0YSkpCiAgICAgeworICAgICAgICBmaW5pc2hDcmVhdGlvbihjYWxs
RnJhbWUpOworICAgIH0KKworICAgIGlubGluZSBBcmd1bWVudHM6OkFyZ3VtZW50cyhDYWxsRnJh
bWUqIGNhbGxGcmFtZSwgTm9QYXJhbWV0ZXJzVHlwZSkKKyAgICAgICAgOiBKU05vbkZpbmFsT2Jq
ZWN0KGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBjYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKS0+YXJndW1lbnRzU3RydWN0dXJlKCkpCisgICAgICAgICwgZChhZG9wdFB0cihuZXcgQXJn
dW1lbnRzRGF0YSkpCisgICAgeworICAgICAgICBmaW5pc2hDcmVhdGlvbihjYWxsRnJhbWUsIE5v
UGFyYW1ldGVycyk7CisgICAgfQorICAgIAorICAgIGlubGluZSB2b2lkIEFyZ3VtZW50czo6Zmlu
aXNoQ3JlYXRpb24oQ2FsbEZyYW1lKiBjYWxsRnJhbWUpCisgICAgeworICAgICAgICBCYXNlOjpm
aW5pc2hDcmVhdGlvbihjYWxsRnJhbWUtPmdsb2JhbERhdGEoKSk7CiAgICAgICAgIEFTU0VSVChp
bmhlcml0cygmc19pbmZvKSk7CiAKICAgICAgICAgSlNGdW5jdGlvbiogY2FsbGVlOwpAQCAtMTk5
LDEwICsyMTcsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIGNvcHlSZWdpc3RlcnMo
Y2FsbEZyYW1lLT5nbG9iYWxEYXRhKCkpOwogICAgIH0KIAotICAgIGlubGluZSBBcmd1bWVudHM6
OkFyZ3VtZW50cyhDYWxsRnJhbWUqIGNhbGxGcmFtZSwgTm9QYXJhbWV0ZXJzVHlwZSkKLSAgICAg
ICAgOiBKU05vbkZpbmFsT2JqZWN0KGNhbGxGcmFtZS0+Z2xvYmFsRGF0YSgpLCBjYWxsRnJhbWUt
PmxleGljYWxHbG9iYWxPYmplY3QoKS0+YXJndW1lbnRzU3RydWN0dXJlKCkpCi0gICAgICAgICwg
ZChhZG9wdFB0cihuZXcgQXJndW1lbnRzRGF0YSkpCisgICAgaW5saW5lIHZvaWQgQXJndW1lbnRz
OjpmaW5pc2hDcmVhdGlvbihDYWxsRnJhbWUqIGNhbGxGcmFtZSwgTm9QYXJhbWV0ZXJzVHlwZSkK
ICAgICB7CisgICAgICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGNhbGxGcmFtZS0+Z2xvYmFsRGF0
YSgpKTsKICAgICAgICAgQVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICAgICAgQVNTRVJU
KCFhc0Z1bmN0aW9uKGNhbGxGcmFtZS0+Y2FsbGVlKCkpLT5qc0V4ZWN1dGFibGUoKS0+cGFyYW1l
dGVyQ291bnQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0Vycm9ySW5zdGFuY2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJ
bnN0YW5jZS5jcHAKaW5kZXggNTAwNWI5MWM5MjZlMTg2YzUxZGY5MmNjZmY4Y2VhZDEyNTE3N2Fj
Ni4uM2UwMzM3Yjg5NGQzNTM3YWUxMmVmNTk1YmE5NTkxZDgzZTVhZDIwZiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5jcHAKQEAgLTI5LDE1ICsy
OSwxNCBAQCBFcnJvckluc3RhbmNlOjpFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYgZ2xvYmFs
RGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGdsb2Jh
bERhdGEsIHN0cnVjdHVyZSkKICAgICAsIG1fYXBwZW5kU291cmNlVG9NZXNzYWdlKGZhbHNlKQog
ewotICAgIGNvbnN0cnVjdG9yQm9keShnbG9iYWxEYXRhKTsKKyAgICBmaW5pc2hDcmVhdGlvbihn
bG9iYWxEYXRhLCBVU3RyaW5nKCIiLCAwKSk7CiB9CiAKIEVycm9ySW5zdGFuY2U6OkVycm9ySW5z
dGFuY2UoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgY29u
c3QgVVN0cmluZyYgbWVzc2FnZSkKICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwg
c3RydWN0dXJlKQogICAgICwgbV9hcHBlbmRTb3VyY2VUb01lc3NhZ2UoZmFsc2UpCiB7Ci0gICAg
QVNTRVJUKGluaGVyaXRzKCZzX2luZm8pKTsKLSAgICBwdXREaXJlY3QoZ2xvYmFsRGF0YSwgZ2xv
YmFsRGF0YS5wcm9wZXJ0eU5hbWVzLT5tZXNzYWdlLCBqc1N0cmluZygmZ2xvYmFsRGF0YSwgbWVz
c2FnZSksIERvbnRFbnVtKTsKKyAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhLCBtZXNzYWdl
KTsKIH0KIAogRXJyb3JJbnN0YW5jZSogRXJyb3JJbnN0YW5jZTo6Y3JlYXRlKEpTR2xvYmFsRGF0
YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFVTdHJpbmcmIG1lc3Nh
Z2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3Rh
bmNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmgKaW5k
ZXggM2Q3ZmJmM2YwZWVjM2EwZjNjZGRhNDQ4OWQ3Y2E0ZmUxMTQ3NjdkZC4uMDZhOTUzMjEzY2E1
YmU1YjQ1MWEzZGM4YTExZTkyZGFhMTI3NmY5MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXJyb3JJbnN0YW5jZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuaApAQCAtNTAsMTAgKzUwLDExIEBAIG5hbWVzcGFjZSBK
U0MgewogICAgICAgICBleHBsaWNpdCBFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYsIFN0cnVj
dHVyZSopOwogICAgICAgICBleHBsaWNpdCBFcnJvckluc3RhbmNlKEpTR2xvYmFsRGF0YSYsIFN0
cnVjdHVyZSosIGNvbnN0IFVTdHJpbmcmKTsKIAotICAgICAgICB2b2lkIGNvbnN0cnVjdG9yQm9k
eShKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24o
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBVU3RyaW5nJiBtZXNzYWdlKQogICAgICAg
ICB7CisgICAgICAgICAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICAg
ICAgICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7Ci0gICAgICAgICAgICBwdXREaXJlY3Qo
Z2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS5wcm9wZXJ0eU5hbWVzLT5tZXNzYWdlLCBqc1N0cmluZygm
Z2xvYmFsRGF0YSwgIiIpLCBEb250RW51bSk7CisgICAgICAgICAgICBwdXREaXJlY3QoZ2xvYmFs
RGF0YSwgZ2xvYmFsRGF0YS5wcm9wZXJ0eU5hbWVzLT5tZXNzYWdlLCBqc1N0cmluZygmZ2xvYmFs
RGF0YSwgbWVzc2FnZSksIERvbnRFbnVtKTsKICAgICAgICAgfQogCiAgICAgICAgIGJvb2wgbV9h
cHBlbmRTb3VyY2VUb01lc3NhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9FeGNlcHRpb25IZWxwZXJzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0V4Y2VwdGlvbkhlbHBlcnMuY3BwCmluZGV4IDk4MWY3YzQ5MmM0MDdkMmViZWJjNTY4NDg0
N2ViNzkwN2JkYWFkMjMuLmI1OGQ4OTUxN2UzN2VkYmFiMjc5NDAzMDExMTZmZTNjMjIzYzM0ODIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBl
cnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlvbkhlbHBl
cnMuY3BwCkBAIC00Niw2ICs0Niw3IEBAIHByaXZhdGU6CiAgICAgSW50ZXJydXB0ZWRFeGVjdXRp
b25FcnJvcihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCiAgICAgICAgIDogSlNOb25GaW5hbE9i
amVjdChnbG9iYWxEYXRhLCBnbG9iYWxEYXRhLmludGVycnVwdGVkRXhlY3V0aW9uRXJyb3JTdHJ1
Y3R1cmUuZ2V0KCkpCiAgICAgeworICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsK
ICAgICB9CiAKIHB1YmxpYzoKQEAgLTcxLDYgKzcyLDcgQEAgcHJpdmF0ZToKICAgICBUZXJtaW5h
dGVkRXhlY3V0aW9uRXJyb3IoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQogICAgICAgICA6IEpT
Tm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgZ2xvYmFsRGF0YS50ZXJtaW5hdGVkRXhlY3V0aW9u
RXJyb3JTdHJ1Y3R1cmUuZ2V0KCkpCiAgICAgeworICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9i
YWxEYXRhKTsKICAgICB9CiAKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvRXhlY3V0YWJsZS5jcHAKaW5kZXggZDhmMTcwZGQ0NzEzMzg4N2ZlOGU2M2QzNWNlOGNkOWEw
OTBmNzA5OC4uYjkzYTg0MzhiODQ2M2E5NWY3YzY2OGUwYWNkNzNhN2NmMGU0MDM0YSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0YWJsZS5jcHAKQEAgLTExNSw2ICsx
MTUsNyBAQCBjb25zdCBDbGFzc0luZm8gRXZhbEV4ZWN1dGFibGU6OnNfaW5mbyA9IHsgIkV2YWxF
eGVjdXRhYmxlIiwgJlNjcmlwdEV4ZWN1dGFibGU6OgogRXZhbEV4ZWN1dGFibGU6OkV2YWxFeGVj
dXRhYmxlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNlLCBib29sIGlu
U3RyaWN0Q29udGV4dCkKICAgICA6IFNjcmlwdEV4ZWN1dGFibGUoZXhlYy0+Z2xvYmFsRGF0YSgp
LmV2YWxFeGVjdXRhYmxlU3RydWN0dXJlLmdldCgpLCBleGVjLCBzb3VyY2UsIGluU3RyaWN0Q29u
dGV4dCkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxEYXRhKCkpOwogfQogCiBF
dmFsRXhlY3V0YWJsZTo6fkV2YWxFeGVjdXRhYmxlKCkKQEAgLTEyNiw2ICsxMjcsNyBAQCBjb25z
dCBDbGFzc0luZm8gUHJvZ3JhbUV4ZWN1dGFibGU6OnNfaW5mbyA9IHsgIlByb2dyYW1FeGVjdXRh
YmxlIiwgJlNjcmlwdEV4ZWN1dAogUHJvZ3JhbUV4ZWN1dGFibGU6OlByb2dyYW1FeGVjdXRhYmxl
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNlKQogICAgIDogU2NyaXB0
RXhlY3V0YWJsZShleGVjLT5nbG9iYWxEYXRhKCkucHJvZ3JhbUV4ZWN1dGFibGVTdHJ1Y3R1cmUu
Z2V0KCksIGV4ZWMsIHNvdXJjZSwgZmFsc2UpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+
Z2xvYmFsRGF0YSgpKTsKIH0KIAogUHJvZ3JhbUV4ZWN1dGFibGU6On5Qcm9ncmFtRXhlY3V0YWJs
ZSgpCkBAIC0xNTMsOCArMTU1LDYgQEAgRnVuY3Rpb25FeGVjdXRhYmxlOjpGdW5jdGlvbkV4ZWN1
dGFibGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLAogICAgICwgbV9u
YW1lKG5hbWUpCiAgICAgLCBtX3N5bWJvbFRhYmxlKDApCiB7Ci0gICAgbV9maXJzdExpbmUgPSBm
aXJzdExpbmU7Ci0gICAgbV9sYXN0TGluZSA9IGxhc3RMaW5lOwogICAgIGZpbmlzaENyZWF0aW9u
KGV4ZWMtPmdsb2JhbERhdGEoKSwgbmFtZSwgZmlyc3RMaW5lLCBsYXN0TGluZSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4ZWN1dGFibGUuaAppbmRleCA0ZGNhZDhiMGQ4
Mjc1Yzg4YzQwNjAyNmM1NzhiMmQ5YzYxNjM1Nzc2Li5kMzU0ODNkYmFhYWU3MDJlNGVkZGZmNjY0
ZDY5MGQxMzgzOGU0ODEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9FeGVjdXRhYmxlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhlY3V0
YWJsZS5oCkBAIC0yNDksNyArMjQ5LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICAs
IG1fc291cmNlKHNvdXJjZSkKICAgICAgICAgICAgICwgbV9mZWF0dXJlcyhpc0luU3RyaWN0Q29u
dGV4dCA/IFN0cmljdE1vZGVGZWF0dXJlIDogMCkKICAgICAgICAgewotICAgICAgICAgICAgZmlu
aXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgICAgIH0KIAogICAgICAgICBTY3JpcHRFeGVj
dXRhYmxlKFN0cnVjdHVyZSogc3RydWN0dXJlLCBFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFNvdXJj
ZUNvZGUmIHNvdXJjZSwgYm9vbCBpc0luU3RyaWN0Q29udGV4dCkKQEAgLTI1Nyw3ICsyNTYsNiBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgICwgbV9zb3VyY2Uoc291cmNlKQogICAgICAg
ICAgICAgLCBtX2ZlYXR1cmVzKGlzSW5TdHJpY3RDb250ZXh0ID8gU3RyaWN0TW9kZUZlYXR1cmUg
OiAwKQogICAgICAgICB7Ci0gICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxE
YXRhKCkpOwogICAgICAgICB9CiAKICAgICAgICAgY29uc3QgU291cmNlQ29kZSYgc291cmNlKCkg
eyByZXR1cm4gbV9zb3VyY2U7IH0KQEAgLTMyNCw3ICszMjIsOCBAQCBuYW1lc3BhY2UgSlNDIHsK
IAogICAgICAgICBzdGF0aWMgRXZhbEV4ZWN1dGFibGUqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgYm9vbCBpc0luU3RyaWN0Q29udGV4dCkgCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2VsbDxFdmFsRXhlY3V0YWJs
ZT4oKmV4ZWMtPmhlYXAoKSkpIEV2YWxFeGVjdXRhYmxlKGV4ZWMsIHNvdXJjZSwgaXNJblN0cmlj
dENvbnRleHQpOyAKKyAgICAgICAgICAgIEV2YWxFeGVjdXRhYmxlKiBleGVjdXRhYmxlID0gbmV3
IChhbGxvY2F0ZUNlbGw8RXZhbEV4ZWN1dGFibGU+KCpleGVjLT5oZWFwKCkpKSBFdmFsRXhlY3V0
YWJsZShleGVjLCBzb3VyY2UsIGlzSW5TdHJpY3RDb250ZXh0KTsKKyAgICAgICAgICAgIHJldHVy
biBleGVjdXRhYmxlOwogICAgICAgICB9CiAKICNpZiBFTkFCTEUoSklUKQpAQCAtMzU2LDcgKzM1
NSw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHN0YXRpYyBQcm9ncmFtRXhlY3V0YWJs
ZSogY3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU291cmNlQ29kZSYgc291cmNlKQogICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IChhbGxvY2F0ZUNlbGw8UHJvZ3JhbUV4ZWN1
dGFibGU+KCpleGVjLT5oZWFwKCkpKSBQcm9ncmFtRXhlY3V0YWJsZShleGVjLCBzb3VyY2UpOwor
ICAgICAgICAgICAgUHJvZ3JhbUV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRl
Q2VsbDxQcm9ncmFtRXhlY3V0YWJsZT4oKmV4ZWMtPmhlYXAoKSkpIFByb2dyYW1FeGVjdXRhYmxl
KGV4ZWMsIHNvdXJjZSk7CisgICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZTsKICAgICAgICAg
fQogCiAgICAgICAgIH5Qcm9ncmFtRXhlY3V0YWJsZSgpOwpAQCAtNDExLDEyICs0MTEsMTQgQEAg
bmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgc3RhdGljIEZ1bmN0aW9uRXhlY3V0YWJsZSogY3Jl
YXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgY29uc3QgU291cmNl
Q29kZSYgc291cmNlLCBib29sIGZvcmNlVXNlc0FyZ3VtZW50cywgRnVuY3Rpb25QYXJhbWV0ZXJz
KiBwYXJhbWV0ZXJzLCBib29sIGlzSW5TdHJpY3RDb250ZXh0LCBpbnQgZmlyc3RMaW5lLCBpbnQg
bGFzdExpbmUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBuZXcgKGFsbG9jYXRlQ2Vs
bDxGdW5jdGlvbkV4ZWN1dGFibGU+KCpleGVjLT5oZWFwKCkpKSBGdW5jdGlvbkV4ZWN1dGFibGUo
ZXhlYywgbmFtZSwgc291cmNlLCBmb3JjZVVzZXNBcmd1bWVudHMsIHBhcmFtZXRlcnMsIGlzSW5T
dHJpY3RDb250ZXh0LCBmaXJzdExpbmUsIGxhc3RMaW5lKTsKKyAgICAgICAgICAgIEZ1bmN0aW9u
RXhlY3V0YWJsZSogZXhlY3V0YWJsZSA9IG5ldyAoYWxsb2NhdGVDZWxsPEZ1bmN0aW9uRXhlY3V0
YWJsZT4oKmV4ZWMtPmhlYXAoKSkpIEZ1bmN0aW9uRXhlY3V0YWJsZShleGVjLCBuYW1lLCBzb3Vy
Y2UsIGZvcmNlVXNlc0FyZ3VtZW50cywgcGFyYW1ldGVycywgaXNJblN0cmljdENvbnRleHQsIGZp
cnN0TGluZSwgbGFzdExpbmUpOworICAgICAgICAgICAgcmV0dXJuIGV4ZWN1dGFibGU7CiAgICAg
ICAgIH0KIAogICAgICAgICBzdGF0aWMgRnVuY3Rpb25FeGVjdXRhYmxlKiBjcmVhdGUoSlNHbG9i
YWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBJZGVudGlmaWVyJiBuYW1lLCBjb25zdCBTb3VyY2VD
b2RlJiBzb3VyY2UsIGJvb2wgZm9yY2VVc2VzQXJndW1lbnRzLCBGdW5jdGlvblBhcmFtZXRlcnMq
IHBhcmFtZXRlcnMsIGJvb2wgaXNJblN0cmljdENvbnRleHQsIGludCBmaXJzdExpbmUsIGludCBs
YXN0TGluZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG5ldyAoYWxsb2NhdGVDZWxs
PEZ1bmN0aW9uRXhlY3V0YWJsZT4oZ2xvYmFsRGF0YS5oZWFwKSkgRnVuY3Rpb25FeGVjdXRhYmxl
KGdsb2JhbERhdGEsIG5hbWUsIHNvdXJjZSwgZm9yY2VVc2VzQXJndW1lbnRzLCBwYXJhbWV0ZXJz
LCBpc0luU3RyaWN0Q29udGV4dCwgZmlyc3RMaW5lLCBsYXN0TGluZSk7CisgICAgICAgICAgICBG
dW5jdGlvbkV4ZWN1dGFibGUqIGV4ZWN1dGFibGUgPSBuZXcgKGFsbG9jYXRlQ2VsbDxGdW5jdGlv
bkV4ZWN1dGFibGU+KGdsb2JhbERhdGEuaGVhcCkpIEZ1bmN0aW9uRXhlY3V0YWJsZShnbG9iYWxE
YXRhLCBuYW1lLCBzb3VyY2UsIGZvcmNlVXNlc0FyZ3VtZW50cywgcGFyYW1ldGVycywgaXNJblN0
cmljdENvbnRleHQsIGZpcnN0TGluZSwgbGFzdExpbmUpOworICAgICAgICAgICAgcmV0dXJuIGV4
ZWN1dGFibGU7CiAgICAgICAgIH0KIAogICAgICAgICBKU0Z1bmN0aW9uKiBtYWtlKEV4ZWNTdGF0
ZSogZXhlYywgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4pCkBAIC01MjcsNiArNTI5LDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgcHJvdGVjdGVkOgogICAgICAgICB2b2lkIGZpbmlzaENyZWF0
aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgY29uc3QgSWRlbnRpZmllciYgbmFtZSwgaW50
IGZpcnN0TGluZSwgaW50IGxhc3RMaW5lKQogICAgICAgICB7CisgICAgICAgICAgICBCYXNlOjpm
aW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICAgICAgICAgIG1fZmlyc3RMaW5lID0gZmly
c3RMaW5lOwogICAgICAgICAgICAgbV9sYXN0TGluZSA9IGxhc3RMaW5lOwogICAgICAgICAgICAg
bV9uYW1lVmFsdWUuc2V0KGdsb2JhbERhdGEsIHRoaXMsIGpzU3RyaW5nKCZnbG9iYWxEYXRhLCBu
YW1lLnVzdHJpbmcoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNBcnJheS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNw
cAppbmRleCA4MGQ1Zjc3NmIyMzAyZTA2NzcxMjdkZjY4NTEzNjI5OWVkZDM0YjhhLi4xODVkN2Fl
YjZiZmM0NTI5MTZiYmZlYmIxNzEwNGRiMDc2NzVkOTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0FycmF5LmNwcApAQCAtMTM0LDYgKzEzNCwyNCBAQCBKU0FycmF5OjpKU0Fy
cmF5KFZQdHJTdGVhbGluZ0hhY2tUeXBlKQogSlNBcnJheTo6SlNBcnJheShKU0dsb2JhbERhdGEm
IGdsb2JhbERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgIDogSlNOb25GaW5hbE9iamVj
dChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiB7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0
YSk7Cit9CisKK0pTQXJyYXk6OkpTQXJyYXkoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgdW5zaWduZWQgaW5pdGlhbExlbmd0aCwgQXJyYXlDcmVhdGlvbk1v
ZGUgY3JlYXRpb25Nb2RlKQorICAgIDogSlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1
Y3R1cmUpCit7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSwgaW5pdGlhbExlbmd0aCwg
Y3JlYXRpb25Nb2RlKTsKK30KKworSlNBcnJheTo6SlNBcnJheShKU0dsb2JhbERhdGEmIGdsb2Jh
bERhdGEsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjb25zdCBBcmdMaXN0JiBsaXN0KQorICAgIDog
SlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCit7CisgICAgZmluaXNoQ3Jl
YXRpb24oZ2xvYmFsRGF0YSwgbGlzdCk7Cit9CisKK3ZvaWQgSlNBcnJheTo6ZmluaXNoQ3JlYXRp
b24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9u
KGdsb2JhbERhdGEpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19pbmZvKSk7CiAKICAgICB1bnNp
Z25lZCBpbml0aWFsQ2FwYWNpdHkgPSAwOwpAQCAtMTQ4LDkgKzE2Niw5IEBAIEpTQXJyYXk6OkpT
QXJyYXkoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAg
ICBIZWFwOjpoZWFwKHRoaXMpLT5yZXBvcnRFeHRyYU1lbW9yeUNvc3Qoc3RvcmFnZVNpemUoMCkp
OwogfQogCi1KU0FycmF5OjpKU0FycmF5KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIHVuc2lnbmVkIGluaXRpYWxMZW5ndGgsIEFycmF5Q3JlYXRpb25Nb2Rl
IGNyZWF0aW9uTW9kZSkKLSAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0YSwgc3RydWN0
dXJlKQordm9pZCBKU0FycmF5OjpmaW5pc2hDcmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERh
dGEsIHVuc2lnbmVkIGluaXRpYWxMZW5ndGgsIEFycmF5Q3JlYXRpb25Nb2RlIGNyZWF0aW9uTW9k
ZSkKIHsKKyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBBU1NFUlQo
aW5oZXJpdHMoJnNfaW5mbykpOwogCiAgICAgdW5zaWduZWQgaW5pdGlhbENhcGFjaXR5OwpAQCAt
MTkwLDkgKzIwOCw5IEBAIEpTQXJyYXk6OkpTQXJyYXkoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRh
LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgdW5zaWduZWQgaW5pdGlhCiAgICAgSGVhcDo6aGVhcCh0
aGlzKS0+cmVwb3J0RXh0cmFNZW1vcnlDb3N0KHN0b3JhZ2VTaXplKGluaXRpYWxDYXBhY2l0eSkp
OwogfQogCi1KU0FycmF5OjpKU0FycmF5KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IEFyZ0xpc3QmIGxpc3QpCi0gICAgOiBKU05vbkZpbmFsT2Jq
ZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKK3ZvaWQgSlNBcnJheTo6ZmluaXNoQ3JlYXRpb24o
SlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBjb25zdCBBcmdMaXN0JiBsaXN0KQogeworICAgIEJh
c2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgIEFTU0VSVChpbmhlcml0cygmc19p
bmZvKSk7CiAKICAgICB1bnNpZ25lZCBpbml0aWFsQ2FwYWNpdHkgPSBsaXN0LnNpemUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAppbmRleCA3ZmY1ZTIzODQ5MjM2YmVk
MGIxYjEwZTE5ZTY2MGVmMzUxZmNkNjdiLi5lOGUxZmE5MmQ1ZmQ0MDE5MzFlNzgyMzVkMzI2NTQx
MzlkNjZkZmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fy
cmF5LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5oCkBAIC02
NCw3ICs2NCwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgZXhwbGljaXQgSlNBcnJheShK
U0dsb2JhbERhdGEmLCBTdHJ1Y3R1cmUqKTsKICAgICAgICAgSlNBcnJheShKU0dsb2JhbERhdGEm
LCBTdHJ1Y3R1cmUqLCB1bnNpZ25lZCBpbml0aWFsTGVuZ3RoLCBBcnJheUNyZWF0aW9uTW9kZSk7
CiAgICAgICAgIEpTQXJyYXkoSlNHbG9iYWxEYXRhJiwgU3RydWN0dXJlKiwgY29uc3QgQXJnTGlz
dCYgaW5pdGlhbFZhbHVlcyk7Ci0gICAgICAgIAorCisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oSlNHbG9iYWxEYXRhJik7CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxE
YXRhJiwgdW5zaWduZWQgaW5pdGlhbExlbmd0aCwgQXJyYXlDcmVhdGlvbk1vZGUpOworICAgICAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTR2xvYmFsRGF0YSYsIGNvbnN0IEFyZ0xpc3QmKTsKKyAg
ICAKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVjdCBCYXNlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAKaW5kZXgg
MjliNDU2NDMyYWViMjk1YjExZjkxYTExN2MxYTE1MWMwMjZlZmFkMC4uYmJlNzYzMmEyZTIxYTM5
OTdkNDczNWVmNjZjZDFkM2Y3NjcxYTA3OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQnl0ZUFycmF5LmNwcApAQCAtMzksNyArMzksNyBAQCBKU0J5dGVBcnJheTo6SlNC
eXRlQXJyYXkoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgQnl0ZUFycmF5
KiBzdG9yYQogICAgIDogSlNOb25GaW5hbE9iamVjdChleGVjLT5nbG9iYWxEYXRhKCksIHN0cnVj
dHVyZSkKICAgICAsIG1fc3RvcmFnZShzdG9yYWdlKQogewotICAgIGNvbnN0cnVjdG9yQm9keShl
eGVjKTsKKyAgICBmaW5pc2hDcmVhdGlvbihleGVjKTsKIH0KICAgICAgICAgCiBKU0J5dGVBcnJh
eSogSlNCeXRlQXJyYXk6OmNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0
dXJlLCBCeXRlQXJyYXkqIHN0b3JhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0J5dGVBcnJheS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNCeXRlQXJyYXkuaAppbmRleCBkMmQyYTY2NDM1NDA2ZWI5Y2U5ZDQyMjkyMjE0NjgyYmE5ZjYz
MzJjLi4yOGViZDdkMGY1OGVjYjQ0YWEyYjE2ZTcwNDZkNDhkOTMyNGFlMTFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmgKQEAgLTEwNCw4ICsxMDQsOSBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IE92
ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU09iamVjdDo6U3RydWN0dXJlRmxhZ3M7CiAKLSAg
ICAgICAgdm9pZCBjb25zdHJ1Y3RvckJvZHkoRXhlY1N0YXRlKiBleGVjKQorICAgICAgICB2b2lk
IGZpbmlzaENyZWF0aW9uKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgeworICAgICAgICAgICAg
QmFzZTo6ZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKICAgICAgICAgICAgIHB1
dERpcmVjdChleGVjLT5nbG9iYWxEYXRhKCksIGV4ZWMtPmdsb2JhbERhdGEoKS5wcm9wZXJ0eU5h
bWVzLT5sZW5ndGgsIGpzTnVtYmVyKG1fc3RvcmFnZS0+bGVuZ3RoKCkpLCBSZWFkT25seSB8IERv
bnREZWxldGUpOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTm90QW5PYmplY3QuaAppbmRleCA5MDRiN2ZmMzg2MjgyYmNlZTExMjBlZGVmNTE3MWMxYTQ0
MmRkYjhiLi42N2ZkYTA1MGE2Mjg4ZDcwYTk0Mjk4Y2UwMmE3MjZkODI4ZTIzMjFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNOb3RBbk9iamVjdC5oCkBAIC00MSw2ICs0
MSw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBKU05vdEFuT2JqZWN0KEV4ZWNTdGF0ZSog
ZXhlYykKICAgICAgICAgICAgIDogSlNOb25GaW5hbE9iamVjdChleGVjLT5nbG9iYWxEYXRhKCks
IGV4ZWMtPmdsb2JhbERhdGEoKS5ub3RBbk9iamVjdFN0cnVjdHVyZS5nZXQoKSkKICAgICAgICAg
eworICAgICAgICAgICAgZmluaXNoQ3JlYXRpb24oZXhlYy0+Z2xvYmFsRGF0YSgpKTsKICAgICAg
ICAgfQogICAgICAgICAKICAgICBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNPYmplY3QuaAppbmRleCBkOGY2YmZjNzZjYjZjYmZjNjk0Y2VlMzNhYWQ4ZDZlOThmZWFlZGIz
Li4xNGQxMjAzMWRlMGRlN2MwZjk0NTg2Yjc3NWI1ZTE1YTdkNzZhNzBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTM2MSw3ICszNjEsNiBAQCBDT01QSUxF
X0FTU0VSVCgoSlNGaW5hbE9iamVjdF9pbmxpbmVTdG9yYWdlQ2FwYWNpdHkgPj0gSlNOb25GaW5h
bE9iamVjdF9pbmxpbmVTdAogICAgICAgICBleHBsaWNpdCBKU05vbkZpbmFsT2JqZWN0KEpTR2xv
YmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgICAgICAgICA6
IEpTT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSwgbV9pbmxpbmVTdG9yYWdlKQogICAgICAg
ICB7Ci0gICAgICAgICAgICBmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICAgICAgfQog
CiAgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xv
YmFsT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdC5jcHAKaW5kZXggMmI0ODlhMmQwMjYxNmVlZDMyNDgwODQwNTkyNmNhOWJh
ZDgwOGM0Yi4uODg1NTMwZjEwZjc5OTAxZGZmNjQ4NDNhNzQzNDMwNDg4ZjVmN2E0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RXaXRoR2xvYmFsT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhH
bG9iYWxPYmplY3QuY3BwCkBAIC0zMywxNyArMzMsMTggQEAgbmFtZXNwYWNlIEpTQyB7CiBKU09i
amVjdFdpdGhHbG9iYWxPYmplY3Q6OkpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdChKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKICAgICA6IEpTTm9uRmlu
YWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSkKIHsKLSAgICBD
T01QSUxFX0FTU0VSVChBbm9ueW1vdXNTbG90Q291bnQgPT0gMSwgQW5vbnltb3VzU2xvdENvdW50
X211c3RfYmVfb25lKTsKLSAgICBBU1NFUlQoIWdsb2JhbE9iamVjdCB8fCBnbG9iYWxPYmplY3Qt
PmlzR2xvYmFsT2JqZWN0KCkpOwotICAgIGlmICghZ2xvYmFsT2JqZWN0KQotICAgICAgICBjbGVh
ckFub255bW91c1ZhbHVlKEdsb2JhbE9iamVjdFNsb3QpOwotICAgIGVsc2UKLSAgICAgICAgcHV0
QW5vbnltb3VzVmFsdWUoZ2xvYmFsT2JqZWN0LT5nbG9iYWxEYXRhKCksIEdsb2JhbE9iamVjdFNs
b3QsIGdsb2JhbE9iamVjdCk7CisgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT5nbG9i
YWxEYXRhKCksIGdsb2JhbE9iamVjdCk7CiB9CiAKIEpTT2JqZWN0V2l0aEdsb2JhbE9iamVjdDo6
SlNPYmplY3RXaXRoR2xvYmFsT2JqZWN0KEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUpCiAgICAgOiBKU05v
bkZpbmFsT2JqZWN0KGdsb2JhbERhdGEsIHN0cnVjdHVyZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlv
bihnbG9iYWxEYXRhLCBnbG9iYWxPYmplY3QpOworfQorCit2b2lkIEpTT2JqZWN0V2l0aEdsb2Jh
bE9iamVjdDo6ZmluaXNoQ3JlYXRpb24oSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKGdsb2Jh
bERhdGEpOwogICAgIENPTVBJTEVfQVNTRVJUKEFub255bW91c1Nsb3RDb3VudCA9PSAxLCBBbm9u
eW1vdXNTbG90Q291bnRfbXVzdF9iZV9vbmUpOwogICAgIEFTU0VSVCghZ2xvYmFsT2JqZWN0IHx8
IGdsb2JhbE9iamVjdC0+aXNHbG9iYWxPYmplY3QoKSk7CiAgICAgaWYgKCFnbG9iYWxPYmplY3Qp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdFdpdGhH
bG9iYWxPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0
aEdsb2JhbE9iamVjdC5oCmluZGV4IDg0NGJjZDhmZGFiNDJiNjIxY2Y5NjhlMWMyMTI1YjQ4NGFj
YmMxMTcuLjEzMGUwN2Q2OTA1MmZkMjFmYjJhNzI2ZjEyMjgxN2M4YTc2ZmJjODggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2JhbE9iamVj
dC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0V2l0aEdsb2Jh
bE9iamVjdC5oCkBAIC0zNCw2ICszNCw4IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0OwogCiBjbGFz
cyBKU09iamVjdFdpdGhHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNOb25GaW5hbE9iamVjdCB7CiBw
dWJsaWM6CisgICAgdHlwZWRlZiBKU05vbkZpbmFsT2JqZWN0IEJhc2U7CisKICAgICBzdGF0aWMg
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNHbG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU1Zh
bHVlIHByb3RvKQogICAgIHsKICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKGdsb2Jh
bERhdGEsIHByb3RvLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIEFub255
bW91c1Nsb3RDb3VudCwgJnNfaW5mbyk7CkBAIC01Myw2ICs1NSw5IEBAIHByb3RlY3RlZDoKICAg
ICB7CiAgICAgICAgIC8vIFNob3VsZCBvbmx5IGJlIHVzZWQgYnkgSlNGdW5jdGlvbiB3aGVuIHdl
IGFxdWlyZSB0aGUgSlNGdW5jdGlvbiB2cHRyLgogICAgIH0KKworICAgIHZvaWQgZmluaXNoQ3Jl
YXRpb24oSlNHbG9iYWxEYXRhJiwgSlNHbG9iYWxPYmplY3QqKTsKKwogICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBBbm9ueW1vdXNTbG90Q291bnQgPSBKU09iamVjdDo6QW5vbnltb3VzU2xvdENv
dW50ICsgMTsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgR2xvYmFsT2JqZWN0U2xvdCA9IDA7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJs
ZU9iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYXJpYWJsZU9iamVj
dC5oCmluZGV4IGViMWYwM2NjMjI5MmYwNjg4MzY1NjgwYTk3MjQ1MWU3ZDM4ZjQ2ZDUuLmY3MWVk
MzA5OTQ5YjMxMjM0YWRhZmM4OGU4YTY0YTU4Njk1MjkyMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgKQEAgLTc0LDYgKzc0LDEyIEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgLCBtX3N5bWJvbFRhYmxlKHN5bWJvbFRhYmxl
KQogICAgICAgICAgICAgLCBtX3JlZ2lzdGVycyhyZWludGVycHJldF9jYXN0PFdyaXRlQmFycmll
cjxVbmtub3duPio+KHJlZ2lzdGVycykpCiAgICAgICAgIHsKKyAgICAgICAgICAgIGZpbmlzaENy
ZWF0aW9uKGdsb2JhbERhdGEpOworICAgICAgICB9CisKKyAgICAgICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEpCisgICAgICAgIHsKKyAgICAgICAgICAgIEJh
c2U6OmZpbmlzaENyZWF0aW9uKGdsb2JhbERhdGEpOwogICAgICAgICAgICAgQVNTRVJUKG1fc3lt
Ym9sVGFibGUpOwogICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFdyaXRlQmFycmll
cjxVbmtub3duPikgPT0gc2l6ZW9mKFJlZ2lzdGVyKSwgUmVnaXN0ZXJfc2hvdWxkX2JlX3NhbWVf
c2l6ZV9hc19Xcml0ZUJhcnJpZXIpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1dyYXBwZXJPYmplY3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTV3JhcHBlck9iamVjdC5oCmluZGV4IDNlNTg5ZjI3MTQzZTI0ZDcwOWRi
MTYwZWY4ZWExNWI3ZTYwNjZlOGMuLjNiNDM4MzEyNDM4ZGJjNzNlMDg2MDdhZTNiNmYwZmY0OWUx
YWVkYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBl
ck9iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTV3JhcHBlck9i
amVjdC5oCkBAIC01Myw2ICs1Myw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIGlubGluZSBKU1dy
YXBwZXJPYmplY3Q6OkpTV3JhcHBlck9iamVjdChKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIFN0
cnVjdHVyZSogc3RydWN0dXJlKQogICAgICAgICA6IEpTTm9uRmluYWxPYmplY3QoZ2xvYmFsRGF0
YSwgc3RydWN0dXJlKQogICAgIHsKKyAgICAgICAgZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7
CiAgICAgfQogCiAgICAgaW5saW5lIEpTVmFsdWUgSlNXcmFwcGVyT2JqZWN0OjppbnRlcm5hbFZh
bHVlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09i
amVjdFByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PYmplY3RQ
cm90b3R5cGUuY3BwCmluZGV4IGMwNmRlMjdlN2VjZDM3OWFiN2ZiOTA5MDk5YTk5NmE0Zjk3MDUw
NDkuLjA4N2NkMjYwY2Y1NWQzZjE1YjMzNjUyNTM2YTU2YmI3NzQwMTc5OWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmNwcApAQCAtNjcs
NiArNjcsMTIgQEAgT2JqZWN0UHJvdG90eXBlOjpPYmplY3RQcm90b3R5cGUoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LAogICAgIDogSlNOb25GaW5hbE9iamVj
dChleGVjLT5nbG9iYWxEYXRhKCksIHN0dWN0dXJlKQogICAgICwgbV9oYXNOb1Byb3BlcnRpZXNX
aXRoVUludDMyTmFtZXModHJ1ZSkKIHsKKyAgICBmaW5pc2hDcmVhdGlvbihleGVjLT5nbG9iYWxE
YXRhKCksIGdsb2JhbE9iamVjdCk7Cit9CisKK3ZvaWQgT2JqZWN0UHJvdG90eXBlOjpmaW5pc2hD
cmVhdGlvbihKU0dsb2JhbERhdGEmIGdsb2JhbERhdGEsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24oZ2xvYmFsRGF0YSk7CiAgICAgQVNT
RVJUKGluaGVyaXRzKCZzX2luZm8pKTsKICAgICBwdXRBbm9ueW1vdXNWYWx1ZShnbG9iYWxPYmpl
Y3QtPmdsb2JhbERhdGEoKSwgMCwgZ2xvYmFsT2JqZWN0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09iamVjdFByb3RvdHlwZS5oIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0UHJvdG90eXBlLmgKaW5kZXggYmM2M2IzNWQwZDkwNGVk
MjM5NGY1MTFlNDYzNzRiYTdjNmJmOGE3Ni4uMGEyYzhmZDQ4ZWU3ZDQ5ZGVhYmY5MWJlZTA1ODYw
YjJmZTkzZGEzMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0UHJvdG90eXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0
UHJvdG90eXBlLmgKQEAgLTQ1LDYgKzQ1LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdCB8IEpTTm9uRmluYWxPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogICAgICAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgQW5vbnltb3VzU2xvdENvdW50ID0gSlNOb25GaW5hbE9iamVjdDo6
QW5vbnltb3VzU2xvdENvdW50ICsgMTsKIAorICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpT
R2xvYmFsRGF0YSYsIEpTR2xvYmFsT2JqZWN0Kik7CisKICAgICBwcml2YXRlOgogICAgICAgICBP
YmplY3RQcm90b3R5cGUoRXhlY1N0YXRlKiwgSlNHbG9iYWxPYmplY3QqLCBTdHJ1Y3R1cmUqKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiwg
SlNWYWx1ZSwgUHV0UHJvcGVydHlTbG90Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJpY3RFdmFsQWN0aXZhdGlvbi5jcHAKaW5kZXggZTY2NmRlZTE1Nzky
YjdmYmU4OTdlNjBkMmM1MDNkNjIzYjc2ZmQ4My4uOTZkOTRkODRlYWJiNTI2MDU5Njk3ZmUzMzZk
YWFiNzgyMTM1NGI1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaWN0RXZhbEFjdGl2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N0cmljdEV2YWxBY3RpdmF0aW9uLmNwcApAQCAtMzEsNiArMzEsNyBAQCBuYW1lc3BhY2Ug
SlNDIHsKIFN0cmljdEV2YWxBY3RpdmF0aW9uOjpTdHJpY3RFdmFsQWN0aXZhdGlvbihFeGVjU3Rh
dGUqIGV4ZWMpCiAgICAgOiBKU05vbkZpbmFsT2JqZWN0KGV4ZWMtPmdsb2JhbERhdGEoKSwgZXhl
Yy0+Z2xvYmFsRGF0YSgpLnN0cmljdEV2YWxBY3RpdmF0aW9uU3RydWN0dXJlLmdldCgpKQogewor
ICAgIGZpbmlzaENyZWF0aW9uKGV4ZWMtPmdsb2JhbERhdGEoKSk7CiB9CiAKIGJvb2wgU3RyaWN0
RXZhbEFjdGl2YXRpb246OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9KYXZhU2NyaXB0R2x1ZS9DaGFuZ2VMb2cKaW5kZXggNzQzNjVlNWM5OWYxOGFlZjFjYjJiMjNj
YWEyOWVkMTdiYmExZTg4Ni4uMTMyOTc5NGE2MDBjMWRjMTQ2YjJlMmU5ZjE1OTVkYjkzZjNjODQw
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDgtMjYg
IE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KKworICAgICAgICBVbnpp
cCBpbml0aWFsaXphdGlvbiBsaXN0cyBhbmQgY29uc3RydWN0b3JzIGluIEpTQ2VsbCBoaWVyYXJj
aHkgKDMvNykKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY3MDY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q29tcGxldGVkIHRoZSB0aGlyZCBsZXZlbCBvZiB0aGUgcmVmYWN0b3JpbmcgdG8gYWRkIGZpbmlz
aENyZWF0aW9uKCkgCisgICAgICAgIG1ldGhvZHMgdG8gYWxsIGNsYXNzZXMgd2l0aGluIHRoZSBK
U0NlbGwgaGllcmFyY2h5IHdpdGggbm9uLXRyaXZpYWwgCisgICAgICAgIGNvbnN0cnVjdG9yIGJv
ZGllcy4KKworICAgICAgICBUaGlzIHByaW1hcmlseSBjb25zaXN0cyBvZiBwdXNoaW5nIHRoZSBj
YWxscyB0byBmaW5pc2hDcmVhdGlvbigpIGRvd24gCisgICAgICAgIGludG8gdGhlIGNvbnN0cnVj
dG9ycyBvZiB0aGUgc3ViY2xhc3NlcyBvZiB0aGUgc2Vjb25kIGxldmVsIG9mIHRoZSBoaWVyYXJj
aHkgCisgICAgICAgIGFzIHdlbGwgYXMgcHVsbGluZyB0aGUgZmluaXNoQ3JlYXRpb24oKSBjYWxs
cyBvdXQgaW50byB0aGUgY2xhc3MncyBjb3JyZXNwb25kaW5nCisgICAgICAgIGNyZWF0ZSgpIG1l
dGhvZCBpZiBpdCBoYXMgb25lLiAgRG9pbmcgYm90aCBzaW11bHRhbmVvdXNseSBhbGxvd3MgdXMg
dG8gCisgICAgICAgIG1haW50YWluIHRoZSBpbnZhcmlhbnQgdGhhdCB0aGUgZmluaXNoQ3JlYXRp
b24oKSBtZXRob2QgY2hhaW4gaXMgY2FsbGVkIGV4YWN0bHkgCisgICAgICAgIG9uY2UgZHVyaW5n
IHRoZSBjcmVhdGlvbiBvZiBhbiBvYmplY3QsIHNpbmNlIGNhbGxpbmcgaXQgYW55IG90aGVyIG51
bWJlciBvZiAKKyAgICAgICAgdGltZXMgKDAsIDIsIG9yIG1vcmUpIHdpbGwgY2F1c2UgYW4gYXNz
ZXJ0aW9uIGZhaWx1cmUuCisKKyAgICAgICAgKiBVc2VyT2JqZWN0SW1wLmNwcDoKKyAgICAgICAg
KFVzZXJPYmplY3RJbXA6OlVzZXJPYmplY3RJbXApOgorCiAyMDExLTA4LTE1ICBNYXJrIEhhaG5l
bmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVmYWN0b3IgSlMgb2Jq
ZWN0cyB0byBhbGxvY2F0ZSBpbiBzdGF0aWMgY3JlYXRlIG1ldGhvZHMgcmF0aGVyIHRoYW4gY29u
c3RydWN0b3JzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdElt
cC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKaW5kZXggYWQz
NjkzYjNhZDEzMDVlMGE5YzI0NmViNmM5OTgxMzM2MWUwZjRiZS4uMGQ0ZDQ1YWY3MmY4YzI3NGQy
MDMwZmJlM2I4NmJhZWM5ZTRmZDIxNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRHbHVl
L1VzZXJPYmplY3RJbXAuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0
SW1wLmNwcApAQCAtMzgsNiArMzgsNyBAQCBVc2VyT2JqZWN0SW1wOjpVc2VyT2JqZWN0SW1wKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVQogICAgIDog
SlNOb25GaW5hbE9iamVjdChnbG9iYWxEYXRhLCBzdHJ1Y3R1cmUpCiAgICAgLCBmSlNVc2VyT2Jq
ZWN0KChKU1VzZXJPYmplY3QqKXVzZXJPYmplY3QtPlJldGFpbigpKQogeworICAgIGZpbmlzaENy
ZWF0aW9uKGdsb2JhbERhdGEpOwogfQogCiBVc2VyT2JqZWN0SW1wOjp+VXNlck9iamVjdEltcCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggMDk2MDU4M2FhMTQwNWE5YWEwNmY3NjkwMzI3N2M1M2M1NTZlMGI1ZC4u
N2Q5ODFiM2FjYzNkYWVmOWE4MjAwODRkYTM2NjQwZjc0ZTJlNWQzYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI5IEBACisyMDExLTA4LTI2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0Bh
cHBsZS5jb20+CisKKyAgICAgICAgVW56aXAgaW5pdGlhbGl6YXRpb24gbGlzdHMgYW5kIGNvbnN0
cnVjdG9ycyBpbiBKU0NlbGwgaGllcmFyY2h5ICgzLzcpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzA2NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4KKworICAgICAgICBDb21wbGV0
ZWQgdGhlIHRoaXJkIGxldmVsIG9mIHRoZSByZWZhY3RvcmluZyB0byBhZGQgZmluaXNoQ3JlYXRp
b24oKSAKKyAgICAgICAgbWV0aG9kcyB0byBhbGwgY2xhc3NlcyB3aXRoaW4gdGhlIEpTQ2VsbCBo
aWVyYXJjaHkgd2l0aCBub24tdHJpdmlhbCAKKyAgICAgICAgY29uc3RydWN0b3IgYm9kaWVzLgor
CisgICAgICAgIFRoaXMgcHJpbWFyaWx5IGNvbnNpc3RzIG9mIHB1c2hpbmcgdGhlIGNhbGxzIHRv
IGZpbmlzaENyZWF0aW9uKCkgZG93biAKKyAgICAgICAgaW50byB0aGUgY29uc3RydWN0b3JzIG9m
IHRoZSBzdWJjbGFzc2VzIG9mIHRoZSBzZWNvbmQgbGV2ZWwgb2YgdGhlIGhpZXJhcmNoeSAKKyAg
ICAgICAgYXMgd2VsbCBhcyBwdWxsaW5nIHRoZSBmaW5pc2hDcmVhdGlvbigpIGNhbGxzIG91dCBp
bnRvIHRoZSBjbGFzcydzIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgY3JlYXRlKCkgbWV0aG9kIGlm
IGl0IGhhcyBvbmUuICBEb2luZyBib3RoIHNpbXVsdGFuZW91c2x5IGFsbG93cyB1cyB0byAKKyAg
ICAgICAgbWFpbnRhaW4gdGhlIGludmFyaWFudCB0aGF0IHRoZSBmaW5pc2hDcmVhdGlvbigpIG1l
dGhvZCBjaGFpbiBpcyBjYWxsZWQgZXhhY3RseSAKKyAgICAgICAgb25jZSBkdXJpbmcgdGhlIGNy
ZWF0aW9uIG9mIGFuIG9iamVjdCwgc2luY2UgY2FsbGluZyBpdCBhbnkgb3RoZXIgbnVtYmVyIG9m
IAorICAgICAgICB0aW1lcyAoMCwgMiwgb3IgbW9yZSkgd2lsbCBjYXVzZSBhbiBhc3NlcnRpb24g
ZmFpbHVyZS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3dTaGVsbDo6SlNET01XaW5kb3dTaGVsbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvd1NoZWxsOjpmaW5pc2hDcmVhdGlvbik6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oOgorCiAyMDExLTA4LTI2ICBNYXR0
aGV3IERlbGFuZXkgIDxtZGVsYW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG9mZnNl
dCBoYWNrIGZyb20gR3JhcGhpY3NDb250ZXh0Q0cgc2V0U2hhZG93IGNvZGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggZTEzYTg3ODg4
MzQ4ODhjZGE2OTc1MWEwM2U3ZjU1NmY1ZTQzYTFmZC4uMDBmYWMwYTdlZTEwZDE3Mzc2N2RkM2Vj
ODVmNjhlOTc5NjA4MjVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dTaGVsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dTaGVsbC5jcHAKQEAgLTQ3LDYgKzQ3LDEyIEBAIEpTRE9NV2luZG93U2hlbGw6OkpT
RE9NV2luZG93U2hlbGwoUGFzc1JlZlB0cjxET01XaW5kb3c+IHdpbmRvdywgU3RydWN0dXJlKiBz
dHJ1CiAgICAgOiBCYXNlKCp3b3JsZC0+Z2xvYmFsRGF0YSgpLCBzdHJ1Y3R1cmUpCiAgICAgLCBt
X3dvcmxkKHdvcmxkKQogeworICAgIGZpbmlzaENyZWF0aW9uKCp3b3JsZC0+Z2xvYmFsRGF0YSgp
LCB3aW5kb3cpOworfQorCit2b2lkIEpTRE9NV2luZG93U2hlbGw6OmZpbmlzaENyZWF0aW9uKEpT
R2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgUGFzc1JlZlB0cjxET01XaW5kb3c+IHdpbmRvdykKK3sK
KyAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbihnbG9iYWxEYXRhKTsKICAgICBBU1NFUlQoaW5oZXJp
dHMoJnNfaW5mbykpOwogICAgIHNldFdpbmRvdyh3aW5kb3cpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCmluZGV4IGViZjZkZWJlNTViZmQxYjQ0
NzRiZmIyMjk3YmQ1ZGZiYTZkNmMzNTcuLjU0NTk2NjEyYzdkYTUxMjJhMzc3NTY1ZWE0YTBiZTE3
ZTczMDEzMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93U2hlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1No
ZWxsLmgKQEAgLTY0LDYgKzY0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIERP
TVdyYXBwZXJXb3JsZCogd29ybGQoKSB7IHJldHVybiBtX3dvcmxkLmdldCgpOyB9CiAKKyAgICBw
cm90ZWN0ZWQ6CisgICAgICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpKU0dsb2JhbERhdGEm
LCBQYXNzUmVmUHRyPERPTVdpbmRvdz4pOworCiAgICAgcHJpdmF0ZToKICAgICAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9w
ZXJ0eVNsb3QgfCBKU0M6Ok92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBKU0M6Ok92ZXJyaWRlc0dl
dFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>