Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1eyY9v-0005pq-5o for pgadmin-hackers@arkaria.postgresql.org; Wed, 21 Mar 2018 07:27:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1eyY9u-0006eG-3R for pgadmin-hackers@arkaria.postgresql.org; Wed, 21 Mar 2018 07:27:42 +0000 Received: from magus.postgresql.org ([87.238.57.229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1eyY9t-0006e6-OW for pgadmin-hackers@lists.postgresql.org; Wed, 21 Mar 2018 07:27:41 +0000 Received: from mail-qt0-x231.google.com ([2607:f8b0:400d:c0d::231]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1eyY9n-0005yk-Ub for pgadmin-hackers@postgresql.org; Wed, 21 Mar 2018 07:27:41 +0000 Received: by mail-qt0-x231.google.com with SMTP id a20so4323534qtj.3 for ; Wed, 21 Mar 2018 00:27:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=vhkacpKeENTO8DqwRMA2D0NdP+l5wc6eJZq7M/gRQGE=; b=GKHw9nnHp6F9nxR2cBwMWWyYnVQiQZmfdcCEEVKJyomWE2q9Oxitun6cbtjfUmaXo+ UyMLA1QF9q74huV0t/HTgW7GxrPvzsGgZcjL+qpp8OMHEgPVS7sKX6hwbZLanmefW57H Es3BHgEOOO1owkm8F4ABuhKkxUYt5F5YtjLqrrGpDCA4pobdpGFbr9OBjBnQ/V8KfgYA WxKlw+dEskrr4xNGj9WsAQjY4BE6srPv/IbnL0JVVJ+gSKG53U5GopbozSTOpEtmBpuo 3AjUdSTCyFjy5gf31Jt4Ek7BAK8Cuhcu0mGF7jBCvg+XUnY2+K9xTWNSNtG48nG03sEA gI5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=vhkacpKeENTO8DqwRMA2D0NdP+l5wc6eJZq7M/gRQGE=; b=K3wbwRoAe23tu6lhqrVQ93fs9syjRfkJ9UQ+V7wKSD/3aei9aqQ5Ly7wYvPnELvGjU GjNefCQjqmy9zfgkLcejxuTFbHdcGD8s1gb4mi+n8os1NIAgVGGbpWaFgIcf6dtbkLeY MKS1nc12GyvBDs9w3CnsVkEH0LqNvxLii+bHOJgcPNuYUe+i+EA+8zJcvEuB5evVCTln 1ybFNPOx0Jdl1TTstErY6AltRj5qQ0kjRxJSl4iN5oYfLZU05UYXdNewkYlR1piurM/U 7tF/rffkush0EYT4kyD8d/LKUAgIuR2OqXRJpUqecIef4I7T7Qp2tWqG7W7LsWU43QBZ VpUQ== X-Gm-Message-State: AElRT7F0JTNYTc9S9wY5LIZp8L3HajCkzc1fKwIiOEjfHnywbG8KnS1l kmYzxOfQ4vdR3VxzDwplCP8FF1/IVJv24BlNcebsHQ== X-Google-Smtp-Source: AG47ELvozoX/mqHRwzDeN2/n+PeSpnVyznpM9KkPKtgBuOC3Dy/L5N2MAJyDgH41Xm4adrmpGkN0w+K45xAZcDilOuE= X-Received: by 10.200.33.163 with SMTP id 32mr29159595qty.305.1521617253457; Wed, 21 Mar 2018 00:27:33 -0700 (PDT) MIME-Version: 1.0 Received: by 10.12.194.131 with HTTP; Wed, 21 Mar 2018 00:27:32 -0700 (PDT) In-Reply-To: References: From: Akshay Joshi Date: Wed, 21 Mar 2018 12:57:32 +0530 Message-ID: Subject: Re: [pgadmin][patch] [GreenPlum] When user press Explain Plan and Explain analyze plan an error is displayed To: Victoria Henry Cc: Dave Page , Joao Pedro De Almeida Pereira , pgadmin-hackers Content-Type: multipart/mixed; boundary="001a11403d8ce0937f0567e71f18" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --001a11403d8ce0937f0567e71f18 Content-Type: multipart/alternative; boundary="001a11403d8ce0937b0567e71f16" --001a11403d8ce0937b0567e71f16 Content-Type: text/plain; charset="UTF-8" Hi Victoria, In "is_new_transaction_required.js" file I have modified the code and handled both "responseJSON" and "axios" responses, but in your patch you have removed "responseJSON" part which is required because "i *s_new_transaction_required*()" function is also called from sqleditor.js with normal javascript response. I have re-added that code and also found one issue where "from pgadmin.utils.exception import ConnectionLost" statement is missing from "web/pgadmin/utils /driver/psycopg2/server_manager.py" file, so I added that too. Attached is the modified patch. On Wed, Mar 21, 2018 at 2:09 AM, Victoria Henry wrote: > Hi Hackers, > > We fixed the tests and refactored some of the code. All tests pass now. > Attached is the reviewed patch. > > Sincerely, > > Joao and Victoria > > On Tue, Mar 20, 2018 at 10:05 AM, Dave Page > wrote: > >> Hi >> >> This doesn't pass the Javascript tests for me. Please investigate ASAP: >> >> webpack: Compiled successfully. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 152 of 486 SUCCESS (0 >> secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 153 of 486 SUCCESS (0 >> secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 154 of 486 SUCCESS (0 >> secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 155 of 486 SUCCESS (0 >> secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 156 of 486 SUCCESS (0 >> secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 157 of 486 SUCCESS (0 >> secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 158 of 486 SUCCESS (0 >> secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is the query tool when an error occur when the connection to the server was >> lost when JSON response is available when login is not required should >> highlight the error in the SQL panel FAILED >> Expected spy SqlEditor._highlight_error to have been called with [ 'Some >> error in JSON' ] but it was never called. >> at regression/javascript/sqleditor/execute_query_spec.js:11753:58 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 285 of 486 (1 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is the query tool when an error occur when the connection to the server was >> lost when JSON response is available when login is not required should >> highlight the error in the SQL panel FAILED >> Expected spy SqlEditor._highlight_error to have been called with [ 'Some >> error in JSON' ] but it was never called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is the query tool when an error occur when the connection to the server was >> lost when JSON response is available when login is not required should add >> new entry to history and update the Messages tab FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'Some error in JSON' ] but it was never called. >> at regression/javascript/sqleditor/execute_query_spec.js:11760:60 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 286 of 486 (2 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is the query tool when an error occur when the connection to the server was >> lost when JSON response is available when login is not required should add >> new entry to history and update the Messages tab FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'Some error in JSON' ] but it was never called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is the query tool when an error occur when the connection to the server was >> lost when JSON response is available when login is required should login is >> displayed FAILED >> Expected spy UserManagement.pga_login to have been called. >> at regression/javascript/sqleditor/execute_query_spec.js:11840:56 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 296 of 486 (3 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is the query tool when an error occur when the connection to the server was >> lost when JSON response is available when login is required should login is >> displayed FAILED >> Expected spy UserManagement.pga_login to have been called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is the query tool when an error occur when the connection to the server was >> lost when no JSON response is available when login is not required should >> highlight the error in the SQL panel FAILED >> Expected spy SqlEditor._highlight_error to have been called with [ 'Some >> plain text error' ] but it was never called. >> at regression/javascript/sqleditor/execute_query_spec.js:11875:58 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 299 of 486 (4 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is the query tool when an error occur when the connection to the server was >> lost when no JSON response is available when login is not required should >> highlight the error in the SQL panel FAILED >> Expected spy SqlEditor._highlight_error to have been called with [ 'Some >> plain text error' ] but it was never called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is the query tool when an error occur when the connection to the server was >> lost when no JSON response is available when login is not required should >> add new entry to history and update the Messages tab FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'Some plain text error' ] but it was never called. >> at regression/javascript/sqleditor/execute_query_spec.js:11882:60 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 300 of 486 (5 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is the query tool when an error occur when the connection to the server was >> lost when no JSON response is available when login is not required should >> add new entry to history and update the Messages tab FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'Some plain text error' ] but it was never called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is the query tool when an error occur when the connection to the server was >> lost when no JSON response is available when login is required should login >> is displayed FAILED >> Expected spy UserManagement.pga_login to have been called. >> at regression/javascript/sqleditor/execute_query_spec.js:11964:56 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 310 of 486 (6 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is the query tool when an error occur when the connection to the server was >> lost when no JSON response is available when login is required should login >> is displayed FAILED >> Expected spy UserManagement.pga_login to have been called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is the query tool when an error occur when the connection to the server was >> lost when cannot reach the Python Server should add new entry to history >> and update the Messages tab FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'Not connected to the server or the connection to the server has >> been closed.' ] but it was never called. >> at regression/javascript/sqleditor/execute_query_spec.js:12002:58 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 314 of 486 (7 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is the query tool when an error occur when the connection to the server was >> lost when cannot reach the Python Server should add new entry to history >> and update the Messages tab FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'Not connected to the server or the connection to the server has >> been closed.' ] but it was never called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is NOT the query tool when an error occur when the connection to the server >> was lost when JSON response is available should highlight the error in the >> SQL panel FAILED >> Expected spy SqlEditor._highlight_error to have been called with [ 'Some >> error in JSON' ] but it was never called. >> at regression/javascript/sqleditor/execute_query_spec.js:12232:56 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 334 of 486 (8 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is NOT the query tool when an error occur when the connection to the server >> was lost when JSON response is available should highlight the error in the >> SQL panel FAILED >> Expected spy SqlEditor._highlight_error to have been called with [ 'Some >> error in JSON' ] but it was never called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is NOT the query tool when an error occur when the connection to the server >> was lost when JSON response is available should add new entry to history >> and update the Messages tab FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'Some error in JSON' ] but it was never called. >> at regression/javascript/sqleditor/execute_query_spec.js:12239:58 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 335 of 486 (9 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is NOT the query tool when an error occur when the connection to the server >> was lost when JSON response is available should add new entry to history >> and update the Messages tab FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'Some error in JSON' ] but it was never called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is NOT the query tool when an error occur when the connection to the server >> was lost when no JSON response is available should highlight the error in >> the SQL panel FAILED >> Expected spy SqlEditor._highlight_error to have been called with [ 'Some >> plain text error' ] but it was never called. >> at regression/javascript/sqleditor/execute_query_spec.js:12282:56 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 340 of 486 (10 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is NOT the query tool when an error occur when the connection to the server >> was lost when no JSON response is available should highlight the error in >> the SQL panel FAILED >> Expected spy SqlEditor._highlight_error to have been called with [ 'Some >> plain text error' ] but it was never called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is NOT the query tool when an error occur when the connection to the server >> was lost when no JSON response is available should add new entry to history >> and update the Messages tab FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'Some plain text error' ] but it was never called. >> at regression/javascript/sqleditor/execute_query_spec.js:12289:58 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 341 of 486 (11 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is NOT the query tool when an error occur when the connection to the server >> was lost when no JSON response is available should add new entry to history >> and update the Messages tab FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'Some plain text error' ] but it was never called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is NOT the query tool when an error occur when the connection to the server >> was lost when cannot reach the Python Server should add new entry to >> history and update the Messages tab FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'Not connected to the server or the connection to the server has >> been closed.' ] but it was never called. >> at regression/javascript/sqleditor/execute_query_spec.js:12340:58 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 347 of 486 (12 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor >> is NOT the query tool when an error occur when the connection to the server >> was lost when cannot reach the Python Server should add new entry to >> history and update the Messages tab FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'Not connected to the server or the connection to the server has >> been closed.' ] but it was never called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the >> SQL statement is not empty when cannot reach the Python Server should add >> new entry to history and update the Messages tab FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'Not connected to the server or the connection to the server has >> been closed.' ] but it was never called. >> at regression/javascript/sqleditor/execute_query_spec.js:12645:54 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 376 of 486 (13 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the >> SQL statement is not empty when cannot reach the Python Server should add >> new entry to history and update the Messages tab FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'Not connected to the server or the connection to the server has >> been closed.' ] but it was never called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the >> SQL statement is not empty when error is returned by the server when login >> is not required should add new entry to history and update the Messages tab >> FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'some error message' ] but it was never called. >> at regression/javascript/sqleditor/execute_query_spec.js:12693:56 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 381 of 486 (14 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the >> SQL statement is not empty when error is returned by the server when login >> is not required should add new entry to history and update the Messages tab >> FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'some error message' ] but it was never called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the >> SQL statement is not empty when error is returned by the server when login >> is required should add new entry to history and update the Messages tab >> FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'some error message' ] but it was never called. >> at regression/javascript/sqleditor/execute_query_spec.js:12751:56 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 388 of 486 (15 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the >> SQL statement is not empty when error is returned by the server when login >> is required should add new entry to history and update the Messages tab >> FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'some error message' ] but it was never called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the >> SQL statement is not empty when error is returned by the server when login >> is required should save the state FAILED >> Expected spy SqlEditor.save_state to have been called with [ 'execute', [ >> '' ] ] but it was never called. >> at regression/javascript/sqleditor/execute_query_spec.js:12774:48 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 391 of 486 (16 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the >> SQL statement is not empty when error is returned by the server when login >> is required should save the state FAILED >> Expected spy SqlEditor.save_state to have been called with [ 'execute', [ >> '' ] ] but it was never called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the >> SQL statement is not empty when error is returned by the server when login >> is required should display pga login FAILED >> Expected spy UserManagement.pga_login to have been called. >> at regression/javascript/sqleditor/execute_query_spec.js:12780:52 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 392 of 486 (17 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the >> SQL statement is not empty when error is returned by the server when login >> is required should display pga login FAILED >> Expected spy UserManagement.pga_login to have been called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the >> SQL statement is not empty when error is returned by the server when a new >> transaction is not required should add new entry to history and update the >> Messages tab FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'some error message' ] but it was never called. >> at regression/javascript/sqleditor/execute_query_spec.js:12809:56 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 395 of 486 (18 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the >> SQL statement is not empty when error is returned by the server when a new >> transaction is not required should add new entry to history and update the >> Messages tab FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'some error message' ] but it was never called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the >> SQL statement is not empty when error is returned by the server when a new >> transaction is required should add new entry to history and update the >> Messages tab FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'some error message' ] but it was never called. >> at regression/javascript/sqleditor/execute_query_spec.js:12874:56 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 403 of 486 (19 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the >> SQL statement is not empty when error is returned by the server when a new >> transaction is required should add new entry to history and update the >> Messages tab FAILED >> Expected spy SqlEditor.update_msg_history to have been called with [ >> false, 'some error message' ] but it was never called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the >> SQL statement is not empty when error is returned by the server when a new >> transaction is required should save the state FAILED >> Expected spy SqlEditor.save_state to have been called with [ 'execute', [ >> '' ] ] but it was never called. >> at regression/javascript/sqleditor/execute_query_spec.js:12897:48 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 406 of 486 (20 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the >> SQL statement is not empty when error is returned by the server when a new >> transaction is required should save the state FAILED >> Expected spy SqlEditor.save_state to have been called with [ 'execute', [ >> '' ] ] but it was never called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the >> SQL statement is not empty when error is returned by the server when a new >> transaction is required should initialize a new transaction FAILED >> Expected spy SqlEditor.init_transaction to have been called. >> at regression/javascript/sqleditor/execute_query_spec.js:12909:54 >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 408 of 486 (21 FAILED) >> (0 secs / 0 secs) >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the >> SQL statement is not empty when error is returned by the server when a new >> transaction is required should initialize a new transaction FAILED >> Expected spy SqlEditor.init_transaction to have been called. >> HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 486 of 486 (21 FAILED) >> (7.05 secs / 0 secs) >> error Command failed with exit code 1. >> info Visit https://yarnpkg.com/en/docs/cli/run for documentation about >> this command. >> make: *** [check-js] Error 1 >> >> >> On Tue, Mar 20, 2018 at 1:12 PM, Akshay Joshi < >> akshay.joshi@enterprisedb.com> wrote: >> >>> Hi Hackers >>> >>> Attached is the patch file to fix the RM #2815. >>> >>> On Tue, Mar 20, 2018 at 3:24 PM, Dave Page >>> wrote: >>> >>>> >>>> >>>> On Tue, Mar 20, 2018 at 9:48 AM, Akshay Joshi < >>>> akshay.joshi@enterprisedb.com> wrote: >>>> >>>>> >>>>> >>>>> On Tue, Mar 20, 2018 at 3:06 PM, Dave Page >>>> > wrote: >>>>> >>>>>> I'm a little concerned that noone mentioned this earlier; I'm >>>>>> supposed to be building the release this afternoon, and I expect this >>>>>> change to at the very least be complex to fully test and verify. What's the >>>>>> ETA on the patch? What steps are being taken to ensure it's correct and >>>>>> doesn't cause regressions? >>>>>> >>>>> >>>>> Harshal has already mentioned in the RM. Currently I am changing >>>>> the logic, but it may take time to complete, fully test and verify. I'll >>>>> try my best to do it asap. >>>>> >>>> >>>> Sure, but how many of us are watching every comment on every RM? I know >>>> I'm not (I currently average ~400 emails/day). >>>> >>>> >>>>> >>>>>> On Tue, Mar 20, 2018 at 7:51 AM, Akshay Joshi < >>>>>> akshay.joshi@enterprisedb.com> wrote: >>>>>> >>>>>>> Hi Joao >>>>>>> >>>>>>> It seems that this fix broke the functionality of RM #2815. It is >>>>>>> mentioned in the RM what needs to be fixed now and I am currently working >>>>>>> on it. >>>>>>> While fixing the issue following problem that I found >>>>>>> >>>>>>> - In "start_running_query.py" file, we need to remove check "if >>>>>>> conn.connected()" from "__execute_query" function as we required >>>>>>> exception to be thrown while executing the query to identify the >>>>>>> ConnectionLost. >>>>>>> - In "execute_query.js" we have used *axios* to execute the >>>>>>> query and in case of exception, object is different then normal javascript >>>>>>> response object. >>>>>>> - We call following functions when exception or error comes and >>>>>>> send the "*.response.data*" as parameter >>>>>>> - wasConnectionLostToServer(): Check for the readyState >>>>>>> parameter, which is not the part of ".response.data". >>>>>>> - extractErrorMessage(): Check for the "responseJSON" and " >>>>>>> responseJSON.info", which is not the part of >>>>>>> ".response.data". >>>>>>> - is_pga_login_required(): Check for the "responseJSON" and " >>>>>>> responseJSON.info", which is not the part of >>>>>>> ".response.data". >>>>>>> - is_new_transaction_required(): Check for the "responseJSON" >>>>>>> and "responseJSON.info", which is not the part of >>>>>>> ".response.data". >>>>>>> >>>>>>> From the above list, some of the function calls are generic where >>>>>>> they need "responseJSON" and "responseJSON.info", so we can't >>>>>>> change that. Possible solution could be pass one extra flag as parameter to >>>>>>> identify the object is a axios response or javascript response to >>>>>>> above functions and change the logic accordingly. >>>>>>> >>>>>>> Please let me know your thoughts or any other suggestion. >>>>>>> >>>>>>> >>>>>>> On Fri, Feb 9, 2018 at 8:17 PM, Dave Page wrote: >>>>>>> >>>>>>>> Thanks, applied. >>>>>>>> >>>>>>>> On Fri, Feb 9, 2018 at 2:35 PM, Joao De Almeida Pereira < >>>>>>>> jdealmeidapereira@pivotal.io> wrote: >>>>>>>> >>>>>>>>> Hello, >>>>>>>>> Attached you can find the fix for the current pronlem >>>>>>>>> >>>>>>>>> >>>>>>>>> On Fri, Feb 9, 2018 at 7:29 AM Dave Page >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Hi Joao, >>>>>>>>>> >>>>>>>>>> It looks like Jenkins has taken umbrage to this change, at least >>>>>>>>>> with Python 3.x. Can you take a look please? >>>>>>>>>> >>>>>>>>>> https://jenkins.pgadmin.org/ >>>>>>>>>> >>>>>>>>>> Thanks. >>>>>>>>>> >>>>>>>>>> On Fri, Feb 9, 2018 at 11:54 AM, Dave Page >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Thanks, patches applied. >>>>>>>>>>> >>>>>>>>>>> On Fri, Feb 2, 2018 at 10:50 PM, Joao De Almeida Pereira < >>>>>>>>>>> jdealmeidapereira@pivotal.io> wrote: >>>>>>>>>>> >>>>>>>>>>>> Hi Hackers, >>>>>>>>>>>> This is quite a big patch in order to solve the problem with >>>>>>>>>>>> the Explain Plan. >>>>>>>>>>>> >>>>>>>>>>>> We sent 2 patches that have the following: >>>>>>>>>>>> *- update-javascript-packages.diff * >>>>>>>>>>>> Add package: >>>>>>>>>>>> is-docker to select a specific setting when running the >>>>>>>>>>>> Chrome tests in >>>>>>>>>>>> Docker >>>>>>>>>>>> >>>>>>>>>>>> Upgrade the version of: >>>>>>>>>>>> - babel-loader >>>>>>>>>>>> - extract-text-webpack-plugin >>>>>>>>>>>> - jasmine-core >>>>>>>>>>>> - jasmine-enzyme >>>>>>>>>>>> - moment >>>>>>>>>>>> *- explain-plan-greenplum.diff* >>>>>>>>>>>> Extract SQLEditor.execute and SQLEditor._poll into their own >>>>>>>>>>>> files and add test around them >>>>>>>>>>>> Extract SQLEditor backend functions that start executing >>>>>>>>>>>> query to their own files and add tests around it >>>>>>>>>>>> Move the Explain SQL from the front-end and now pass the >>>>>>>>>>>> Explain plan parameters as a JSON object in the start query call. >>>>>>>>>>>> Extract the compile_template_name into a function that can be >>>>>>>>>>>> used by the different places that try to select the version of the template >>>>>>>>>>>> and the server type >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Thanks >>>>>>>>>>>> Joao >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Dave Page >>>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>>> Twitter: @pgsnake >>>>>>>>>>> >>>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Dave Page >>>>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>>>> Twitter: @pgsnake >>>>>>>>>> >>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Dave Page >>>>>>>> Blog: http://pgsnake.blogspot.com >>>>>>>> Twitter: @pgsnake >>>>>>>> >>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>>>> The Enterprise PostgreSQL Company >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Akshay Joshi* >>>>>>> >>>>>>> *Sr. Software Architect * >>>>>>> >>>>>>> >>>>>>> >>>>>>> *Phone: +91 20-3058-9517 <+91%2020%203058%209517>Mobile: +91 >>>>>>> 976-788-8246 <+91%2097678%2088246>* >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Dave Page >>>>>> VP, Chief Architect, Tools & Installers >>>>>> EnterpriseDB: http://www.enterprisedb.com >>>>>> The Enterprise PostgreSQL Company >>>>>> >>>>>> Blog: http://pgsnake.blogspot.com >>>>>> Twitter: @pgsnake >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> *Akshay Joshi* >>>>> >>>>> *Sr. Software Architect * >>>>> >>>>> >>>>> >>>>> *Phone: +91 20-3058-9517 <+91%2020%203058%209517>Mobile: +91 >>>>> 976-788-8246 <+91%2097678%2088246>* >>>>> >>>> >>>> >>>> >>>> -- >>>> Dave Page >>>> VP, Chief Architect, Tools & Installers >>>> EnterpriseDB: http://www.enterprisedb.com >>>> The Enterprise PostgreSQL Company >>>> >>>> Blog: http://pgsnake.blogspot.com >>>> Twitter: @pgsnake >>>> >>> >>> >>> >>> -- >>> *Akshay Joshi* >>> >>> *Sr. Software Architect * >>> >>> >>> >>> *Phone: +91 20-3058-9517 <+91%2020%203058%209517>Mobile: +91 >>> 976-788-8246 <+91%2097678%2088246>* >>> >> >> >> >> -- >> Dave Page >> VP, Chief Architect, Tools & Installers >> EnterpriseDB: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> > > -- *Akshay Joshi* *Sr. Software Architect * *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* --001a11403d8ce0937b0567e71f16 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Victoria,

In "is_new_t= ransaction_required.js" file I have modified the code and handled both "responseJSON" and "axios" responses, but in your patch you have removed "responseJSON" part which is required because "is_new_transaction_required= ()" function is also called from sqleditor.js with normal javascript response.
=
I have re-added that code and also found one issue where "fr= om pgadmin.utils.e= xception import = ConnectionLost" statement is missing from "web/pgadmin/utils/driver/psycopg= 2/server_manager.py" file, so I added that too.

Attached is the mo= dified patch.=C2=A0 =C2=A0

On Wed, Mar 21, 2018 at 2:09 AM, Victoria Henry <vhenr= y@pivotal.io> wrote:
Hi Hackers,

We fixed the tests and refactored= some of the code.=C2=A0 All tests pass now.=C2=A0 Attached is the reviewed= patch.

Sincerely,

Joao a= nd Victoria

On Tue, Mar 20, 2018 at 10:= 05 AM, Dave Page <dave.page@enterprisedb.com> wrote= :
Hi

= This doesn't pass the Javascript tests for me. Please investigate ASAP:=

webpack: Compiled successfully.
He= adlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 152 of 486 SUCCESS (0 secs = / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 153 o= f 486 SUCCESS (0 secs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10= .12.6): Executed 154 of 486 SUCCESS (0 secs / 0 secs)
HeadlessChr= ome 0.0.0 (Mac OS X 10.12.6): Executed 155 of 486 SUCCESS (0 secs / 0 secs)=
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 156 of 486 SUC= CESS (0 secs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): E= xecuted 157 of 486 SUCCESS (0 secs / 0 secs)
HeadlessChrome 0.0.0= (Mac OS X 10.12.6): Executed 158 of 486 SUCCESS (0 secs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor= is the query tool when an error occur when the connection to the server wa= s lost when JSON response is available when login is not required should hi= ghlight the error in the SQL panel FAILED
Expected spy SqlEditor._highlight_error to have been = called with [ 'Some error in JSON' ] but it was never called.
=
=C2=A0 =C2=A0 at regressi= on/javascript/sqleditor/execute_query_spec.js:11753:58
= HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 285 of 486 (1 FAILED) (0 = secs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQue= ry #poll when SQLEditor is the query tool when an error occur when the conn= ection to the server was lost when JSON response is available when login is= not required should highlight the error in the SQL panel FAILED
= Expected spy SqlEditor._highli= ght_error to have been called with [ 'Some error in JSON' ] but it = was never called.
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) Execute= Query #poll when SQLEditor is the query tool when an error occur when the c= onnection to the server was lost when JSON response is available when login= is not required should add new entry to history and update the Messages ta= b FAILED
Expected sp= y SqlEditor.update_msg_history to have been called with [ false, 'Some = error in JSON' ] but it was never called.
=C2=A0 =C2=A0 at regression/javascript/sqleditor/execute_query_spec.js:11760:60
HeadlessChrome 0.0.0 (Ma= c OS X 10.12.6): Executed 286 of 486 (2 FAILED) (0 secs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor = is the query tool when an error occur when the connection to the server was= lost when JSON response is available when login is not required should add= new entry to history and update the Messages tab FAILED
Expected spy SqlEditor.update_msg_hist= ory to have been called with [ false, 'Some error in JSON' ] but it= was never called.
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) Execut= eQuery #poll when SQLEditor is the query tool when an error occur when the = connection to the server was lost when JSON response is available when logi= n is required should login is displayed FAILED
Expected spy UserManagement.pga_login to have be= en called.
=C2=A0 = =C2=A0 at regression/javascript/sqleditor/execute_query_spec.js:11840:= 56
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 296 of = 486 (3 FAILED) (0 secs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 1= 0.12.6) ExecuteQuery #poll when SQLEditor is the query tool when an error o= ccur when the connection to the server was lost when JSON response is avail= able when login is required should login is displayed FAILED
Expected spy UserManagement.pga_lo= gin to have been called.
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) = ExecuteQuery #poll when SQLEditor is the query tool when an error occur whe= n the connection to the server was lost when no JSON response is available = when login is not required should highlight the error in the SQL panel FAIL= ED
Expected spy SqlE= ditor._highlight_error to have been called with [ 'Some plain text erro= r' ] but it was never called.
=C2=A0 =C2=A0 at regression/javascript/sqleditor/execute= _query_spec.js:11875:58
HeadlessChrome 0.0.0 (Mac OS X 10.12= .6): Executed 299 of 486 (4 FAILED) (0 secs / 0 secs)
HeadlessChr= ome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor is the query= tool when an error occur when the connection to the server was lost when n= o JSON response is available when login is not required should highlight th= e error in the SQL panel FAILED
Expected spy SqlEditor._highlight_error to have been called wit= h [ 'Some plain text error' ] but it was never called.
He= adlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor is = the query tool when an error occur when the connection to the server was lo= st when no JSON response is available when login is not required should add= new entry to history and update the Messages tab FAILED
Expected spy SqlEditor.update_msg_hist= ory to have been called with [ false, 'Some plain text error' ] but= it was never called.
=C2=A0 =C2=A0 at regression/javascript/sqleditor/execute_query_spec.= js:11882:60
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Execute= d 300 of 486 (5 FAILED) (0 secs / 0 secs)
HeadlessChrome 0.0.0 (M= ac OS X 10.12.6) ExecuteQuery #poll when SQLEditor is the query tool when a= n error occur when the connection to the server was lost when no JSON respo= nse is available when login is not required should add new entry to history= and update the Messages tab FAILED
Expected spy SqlEditor.update_msg_history to have been call= ed with [ false, 'Some plain text error' ] but it was never called.=
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when = SQLEditor is the query tool when an error occur when the connection to the = server was lost when no JSON response is available when login is required s= hould login is displayed FAILED
Expected spy UserManagement.pga_login to have been called.
=C2=A0 =C2=A0 at regress= ion/javascript/sqleditor/execute_query_spec.js:11964:56
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 310 of 486 (6 FAILED) (0= secs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQu= ery #poll when SQLEditor is the query tool when an error occur when the con= nection to the server was lost when no JSON response is available when logi= n is required should login is displayed FAILED
Expected spy UserManagement.pga_login to have be= en called.
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #= poll when SQLEditor is the query tool when an error occur when the connecti= on to the server was lost when cannot reach the Python Server should add ne= w entry to history and update the Messages tab FAILED
Expected spy SqlEditor.update_msg_history= to have been called with [ false, 'Not connected to the server or the = connection to the server has been closed.' ] but it was never called.
=C2=A0 =C2=A0 at regr= ession/javascript/sqleditor/execute_query_spec.js:12002:58
<= div>HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 314 of 486 (7 FAILED)= (0 secs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) Execut= eQuery #poll when SQLEditor is the query tool when an error occur when the = connection to the server was lost when cannot reach the Python Server shoul= d add new entry to history and update the Messages tab FAILED
Expected spy SqlEditor.update_msg= _history to have been called with [ false, 'Not connected to the server= or the connection to the server has been closed.' ] but it was never c= alled.
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll= when SQLEditor is NOT the query tool when an error occur when the connecti= on to the server was lost when JSON response is available should highlight = the error in the SQL panel FAILED
Expected spy SqlEditor._highlight_error to have been called w= ith [ 'Some error in JSON' ] but it was never called.
=C2=A0 =C2=A0 at regression/javas= cript/sqleditor/execute_query_spec.js:12232:56
Headless= Chrome 0.0.0 (Mac OS X 10.12.6): Executed 334 of 486 (8 FAILED) (0 secs / 0= secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll= when SQLEditor is NOT the query tool when an error occur when the connecti= on to the server was lost when JSON response is available should highlight = the error in the SQL panel FAILED
Expected spy SqlEditor._highlight_error to have been called w= ith [ 'Some error in JSON' ] but it was never called.
Hea= dlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor is N= OT the query tool when an error occur when the connection to the server was= lost when JSON response is available should add new entry to history and u= pdate the Messages tab FAILED
Expected spy SqlEditor.update_msg_history to have been called wit= h [ false, 'Some error in JSON' ] but it was never called.
=C2=A0 =C2=A0 at regression/= javascript/sqleditor/execute_query_spec.js:12239:58
Hea= dlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 335 of 486 (9 FAILED) (0 sec= s / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery = #poll when SQLEditor is NOT the query tool when an error occur when the con= nection to the server was lost when JSON response is available should add n= ew entry to history and update the Messages tab FAILED
Expected spy SqlEditor.update_msg_histor= y to have been called with [ false, 'Some error in JSON' ] but it w= as never called.
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQ= uery #poll when SQLEditor is NOT the query tool when an error occur when th= e connection to the server was lost when no JSON response is available shou= ld highlight the error in the SQL panel FAILED
Expected spy SqlEditor._highlight_error to have = been called with [ 'Some plain text error' ] but it was never calle= d.
=C2=A0 =C2=A0 at = regression/javascript/sqleditor/execute_query_spec.js:12282:56
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 340 of 486 (10 FA= ILED) (0 secs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) E= xecuteQuery #poll when SQLEditor is NOT the query tool when an error occur = when the connection to the server was lost when no JSON response is availab= le should highlight the error in the SQL panel FAILED
Expected spy SqlEditor._highlight_error t= o have been called with [ 'Some plain text error' ] but it was neve= r called.
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #p= oll when SQLEditor is NOT the query tool when an error occur when the conne= ction to the server was lost when no JSON response is available should add = new entry to history and update the Messages tab FAILED
Expected spy SqlEditor.update_msg_histo= ry to have been called with [ false, 'Some plain text error' ] but = it was never called.
=C2=A0 =C2=A0 at regression/javascript/sqleditor/execute_query_spec.j= s:12289:58
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed= 341 of 486 (11 FAILED) (0 secs / 0 secs)
HeadlessChrome 0.0.0 (M= ac OS X 10.12.6) ExecuteQuery #poll when SQLEditor is NOT the query tool wh= en an error occur when the connection to the server was lost when no JSON r= esponse is available should add new entry to history and update the Message= s tab FAILED
Expecte= d spy SqlEditor.update_msg_history to have been called with [ false, 'S= ome plain text error' ] but it was never called.
HeadlessChro= me 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor is NOT the qu= ery tool when an error occur when the connection to the server was lost whe= n cannot reach the Python Server should add new entry to history and update= the Messages tab FAILED
Expected spy SqlEditor.update_msg_history to have been called with [ f= alse, 'Not connected to the server or the connection to the server has = been closed.' ] but it was never called.
=C2=A0 =C2=A0 at regression/javascript/sqleditor/execute_query_spec.js:12340:58
HeadlessChrome 0.0.0 (Mac= OS X 10.12.6): Executed 347 of 486 (12 FAILED) (0 secs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #poll when SQLEditor = is NOT the query tool when an error occur when the connection to the server= was lost when cannot reach the Python Server should add new entry to histo= ry and update the Messages tab FAILED
Expected spy SqlEditor.update_msg_history to have been ca= lled with [ false, 'Not connected to the server or the connection to th= e server has been closed.' ] but it was never called.
Headles= sChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL stateme= nt is not empty when cannot reach the Python Server should add new entry to= history and update the Messages tab FAILED
Expected spy SqlEditor.update_msg_history to have b= een called with [ false, 'Not connected to the server or the connection= to the server has been closed.' ] but it was never called.
<= span style=3D"white-space:pre-wrap"> =C2=A0 =C2=A0 at regression/jav= ascript/sqleditor/execute_query_spec.js:12645:54
Headle= ssChrome 0.0.0 (Mac OS X 10.12.6): Executed 376 of 486 (13 FAILED) (0 secs = / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #e= xecute when the SQL statement is not empty when cannot reach the Python Ser= ver should add new entry to history and update the Messages tab FAILED
Expected spy SqlEditor.u= pdate_msg_history to have been called with [ false, 'Not connected to t= he server or the connection to the server has been closed.' ] but it wa= s never called.
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQu= ery #execute when the SQL statement is not empty when error is returned by = the server when login is not required should add new entry to history and u= pdate the Messages tab FAILED
Expected spy SqlEditor.update_msg_history to have been called wit= h [ false, 'some error message' ] but it was never called.
=C2=A0 =C2=A0 at regression/= javascript/sqleditor/execute_query_spec.js:12693:56
Hea= dlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 381 of 486 (14 FAILED) (0 se= cs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery= #execute when the SQL statement is not empty when error is returned by the= server when login is not required should add new entry to history and upda= te the Messages tab FAILED
= Expected spy SqlEditor.update_msg_history to have been called with [= false, 'some error message' ] but it was never called.
H= eadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL s= tatement is not empty when error is returned by the server when login is re= quired should add new entry to history and update the Messages tab FAILED
Expected spy SqlEdito= r.update_msg_history to have been called with [ false, 'some error mess= age' ] but it was never called.
=C2=A0 =C2=A0 at regression/javascript/sqleditor/execu= te_query_spec.js:12751:56
HeadlessChrome 0.0.0 (Mac OS X 10.= 12.6): Executed 388 of 486 (15 FAILED) (0 secs / 0 secs)
Headless= Chrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL statemen= t is not empty when error is returned by the server when login is required = should add new entry to history and update the Messages tab FAILED
Expected spy SqlEditor.updat= e_msg_history to have been called with [ false, 'some error message'= ; ] but it was never called.
HeadlessChrome 0.0.0 (Mac OS X 10.12= .6) ExecuteQuery #execute when the SQL statement is not empty when error is= returned by the server when login is required should save the state FAILED=
Expected spy SqlEdi= tor.save_state to have been called with [ 'execute', [ '' ]= ] but it was never called.
= =C2=A0 =C2=A0 at regression/javascript/sqleditor/execute_query= _spec.js:12774:48
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): E= xecuted 391 of 486 (16 FAILED) (0 secs / 0 secs)
HeadlessChrome 0= .0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL statement is not= empty when error is returned by the server when login is required should s= ave the state FAILED
Expected spy SqlEditor.save_state to have been called with [ 'execute&= #39;, [ '' ] ] but it was never called.
HeadlessChrome 0.= 0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL statement is not = empty when error is returned by the server when login is required should di= splay pga login FAILED
Expected spy UserManagement.pga_login to have been called.
=C2=A0 =C2=A0 at regression/javas= cript/sqleditor/execute_query_spec.js:12780:52
Headless= Chrome 0.0.0 (Mac OS X 10.12.6): Executed 392 of 486 (17 FAILED) (0 secs / = 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #exe= cute when the SQL statement is not empty when error is returned by the serv= er when login is required should display pga login FAILED
Expected spy UserManagement.pga_login= to have been called.
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) Exe= cuteQuery #execute when the SQL statement is not empty when error is return= ed by the server when a new transaction is not required should add new entr= y to history and update the Messages tab FAILED
Expected spy SqlEditor.update_msg_history to ha= ve been called with [ false, 'some error message' ] but it was neve= r called.
=C2=A0 =C2= =A0 at regression/javascript/sqleditor/execute_query_spec.js:12809:56
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 395 of 486= (18 FAILED) (0 secs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.= 12.6) ExecuteQuery #execute when the SQL statement is not empty when error = is returned by the server when a new transaction is not required should add= new entry to history and update the Messages tab FAILED
Expected spy SqlEditor.update_msg_hist= ory to have been called with [ false, 'some error message' ] but it= was never called.
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) Execut= eQuery #execute when the SQL statement is not empty when error is returned = by the server when a new transaction is required should add new entry to hi= story and update the Messages tab FAILED
Expected spy SqlEditor.update_msg_history to have been= called with [ false, 'some error message' ] but it was never calle= d.
=C2=A0 =C2=A0 at = regression/javascript/sqleditor/execute_query_spec.js:12874:56
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 403 of 486 (19 FA= ILED) (0 secs / 0 secs)
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) E= xecuteQuery #execute when the SQL statement is not empty when error is retu= rned by the server when a new transaction is required should add new entry = to history and update the Messages tab FAILED
Expected spy SqlEditor.update_msg_history to have= been called with [ false, 'some error message' ] but it was never = called.
HeadlessChrome 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #exe= cute when the SQL statement is not empty when error is returned by the serv= er when a new transaction is required should save the state FAILED
Expected spy SqlEditor.save_= state to have been called with [ 'execute', [ '' ] ] but it= was never called.
= =C2=A0 =C2=A0 at regression/javascript/sqleditor/execute_query_spec.js= :12897:48
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed = 406 of 486 (20 FAILED) (0 secs / 0 secs)
HeadlessChrome 0.0.0 (Ma= c OS X 10.12.6) ExecuteQuery #execute when the SQL statement is not empty w= hen error is returned by the server when a new transaction is required shou= ld save the state FAILED
Expected spy SqlEditor.save_state to have been called with [ 'exec= ute', [ '' ] ] but it was never called.
HeadlessChrom= e 0.0.0 (Mac OS X 10.12.6) ExecuteQuery #execute when the SQL statement is = not empty when error is returned by the server when a new transaction is re= quired should initialize a new transaction FAILED
Expected spy SqlEditor.init_transaction to ha= ve been called.
=C2= =A0 =C2=A0 at regression/javascript/sqleditor/execute_query_spec.js:12= 909:54
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 408= of 486 (21 FAILED) (0 secs / 0 secs)
HeadlessChrome 0.0.0 (Mac O= S X 10.12.6) ExecuteQuery #execute when the SQL statement is not empty when= error is returned by the server when a new transaction is required should = initialize a new transaction FAILED
Expected spy SqlEditor.init_transaction to have been called= .
HeadlessChrome 0.0.0 (Mac OS X 10.12.6): Executed 486 of 486 (2= 1 FAILED) (7.05 secs / 0 secs)
error Command failed with exit cod= e 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documenta= tion about this command.
make: *** [check-js] Error 1
=


On Tue, Mar 20, 2018 at 1:12 PM, Akshay Joshi <ak= shay.joshi@enterprisedb.com> wrote:
Hi Hackers

Attached is th= e patch file to fix the RM #2815.

On Tue, Mar 20, 2018 at 3:24 PM, Dave Page <dave.page@enterpr= isedb.com> wrote:


On Tue, Mar 20, 2018 at 9:48 AM, Akshay Joshi <akshay.joshi@= enterprisedb.com> wrote:


On Tue, Mar 20, 2018 at 3:06 PM, Dave Page &= lt;dave.page@enterprisedb.com> = wrote:
I'm a little = concerned that noone mentioned this earlier; I'm supposed to be buildin= g the release this afternoon, and I expect this change to at the very least= be complex to fully test and verify. What's the ETA on the patch? What= steps are being taken to ensure it's correct and doesn't cause reg= ressions?

=C2=A0 =C2=A0 Harshal has already men= tioned in the RM. Currently I am changing the logic, but it may take time t= o complete, fully test and verify. I'll try my best to do it asap.

Sure, but how ma= ny of us are watching every comment on every RM? I know I'm not (I curr= ently average ~400 emails/day).
=C2=A0

On Tue, Mar 20, 2018 at 7:51 AM= , Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi Joao

It seems that this fix broke the = functionality of RM #2815. It is mentioned in the RM what needs to be fixed= now and I am currently working on it.
While fixing the issue fol= lowing problem that I found
  • In "start_running_query.py" file, we need = to remove check "if conn.connected()" f= rom "__execute_query" function as we required exception to be thr= own while executing the query to identify the Connection= Lost.=C2=A0=C2=A0
  • In "execute_query.js" we have used axios = to execute the query and in case of exception, object is different then nor= mal javascript response object.=C2=A0
  • We call following functions w= hen exception or error comes and send the "<object>.response.= data" as parameter=C2=A0
    • wasConnect= ionLostToServer(): Check for the readyState parameter, which is not the part of "<object>.response.data&qu= ot;.=C2=A0
    • extractErrorMessage(): Check f= or the "responseJSON" and "responseJSON.info",=C2=A0which is not the part of "<object= >.response.data".
    • is_pga_= login_required(): Check for the=C2=A0"responseJ= SON" and "responseJSON.info&quo= t;,=C2=A0which is not the part of &q= uot;<object>.response.data".
    • is_new_transaction_r= equired():=C2=A0Check for the=C2=A0"r= esponseJSON" and "responseJSON.= info",=C2=A0which is not the pa= rt of "<object>.response.data".
From t= he above list, some of the function calls are generic where they need "= ;responseJSON" and "responseJSON.info", so we can't change that. Possible sol= ution could be pass one extra flag as parameter to identify the object is a= axios response or javascript response to above = functions and change the logic accordingly.

Please= let me know your thoughts or any other suggestion.=C2=A0
=C2=A0 = =C2=A0 =C2=A0=C2=A0

On Fri, Feb 9, 2018 at 8:17 PM, Dave Page <dpage@pgadmin.= org> wrote:
Thanks, applied.

On Fri, Feb 9, 2018 at 2:35 PM= , Joao De Almeida Pereira <jdealmeidapereira@pivotal.io>= wrote:
Hello,Attached you can find the fix for the current pronlem


=
On Fri, Feb 9, 2018 at 7:29 AM Dave Page <dpage@pgadmin.org> wrote:<= br>
Hi Joao,

<= /div>
It looks like Jenkins has taken umbrage to this change, at least = with Python 3.x. Can you take a look please?


Thanks.

On Fri, Feb 9, 2018 at 11:54 AM,= Dave Page <dpage@pgadmin.org> wrote:
Thanks, patches applied.

On Fri, Feb 2, 2018 = at 10:50 PM, Joao De Almeida Pereira <jdealmeidapereira@pivotal= .io> wrote:
Hi Hackers,
This is quite a big patch in order to solve the problem w= ith the Explain Plan.

We sent 2 patches that have = the following:
-=C2=A0update-javascript-packages.diff=C2= =A0
=C2=A0 =C2=A0 Add package:
=C2=A0 =C2= =A0 =C2=A0is-docker to select a specific setting when running the Chrome te= sts in
=C2=A0 =C2=A0 =C2=A0Docker

=C2=A0= =C2=A0 Upgrade the version of:
=C2=A0 =C2=A0 - babel-loader
=C2=A0 =C2=A0 - extract-text-webpack-plugin
=C2=A0 =C2=A0 -= jasmine-core
=C2=A0 =C2=A0 - jasmine-enzyme
=C2=A0 =C2= =A0 - moment
-=C2=A0explain-plan-greenplum.diff
=C2=A0 Extract SQLEditor.execute and SQLEditor._poll into their own f= iles and add test around them
=C2=A0 Extract SQLEditor backend fu= nctions that start executing query to their own files and add tests around = it
=C2=A0 Move the Explain SQL from the front-end and now pass th= e Explain plan parameters as a JSON object in the start query call.
=C2=A0 Extract the compile_template_name into a function that can be use= d by the different places that try to select the version of the template an= d the server type


Thanks
Joao



-= -
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

Enterpr= iseDB UK: http://= www.enterprisedb.com
The Enterprise PostgreSQL Company



--



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB= UK: http://www.e= nterprisedb.com
The Enterprise PostgreSQL Company



<= /div>--
Akshay Joshi
Sr. S= oftware Architect
=




-- <= br>
Dave PageVP, Chief Architect, Tools & Installers
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Blog: http://pgsnake.blog= spot.com

Twitter: @pgsnake



--
Akshay Joshi<= /div>
Sr. Softwar= e Architect




--
Akshay = Joshi
Sr. Software Architect



--
=
Dave Page
VP, Chief Architect, Tools &= amp; Installers
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQ= L Company

Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake




--
Akshay Joshi
Sr. Software Architect
=

<= /font>

Phone: +91 20-3058-9517
Mob= ile: +91 976-788-8246
--001a11403d8ce0937b0567e71f16-- --001a11403d8ce0937f0567e71f18 Content-Type: application/octet-stream; name="RM_2815_v2.patch" Content-Disposition: attachment; filename="RM_2815_v2.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jf0rk8og1 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Rhc2hib2FyZC9zdGF0aWMvanMvZGFzaGJvYXJkLmpz IGIvd2ViL3BnYWRtaW4vZGFzaGJvYXJkL3N0YXRpYy9qcy9kYXNoYm9hcmQuanMKaW5kZXggZGQ2 ZWNmOS4uZTRmMGRkNSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vZGFzaGJvYXJkL3N0YXRpYy9q cy9kYXNoYm9hcmQuanMKKysrIGIvd2ViL3BnYWRtaW4vZGFzaGJvYXJkL3N0YXRpYy9qcy9kYXNo Ym9hcmQuanMKQEAgLTQ0NCwxOCArNDQ0LDI1IEBAIGRlZmluZSgncGdhZG1pbi5kYXNoYm9hcmQn LCBbCiAgICAgICAgICAgICBwZ0FkbWluLkRhc2hib2FyZC5yZW5kZXJfY2hhcnQoY29udGFpbmVy LCBkYXRhLCBkYXRhc2V0LCBzaWQsIGRpZCwgdXJsLCBvcHRpb25zLCBjb3VudGVyLCByZWZyZXNo KTsKICAgICAgICAgICB9LAogICAgICAgICAgIGVycm9yOiBmdW5jdGlvbih4aHIpIHsKLSAgICAg ICAgICAgIHZhciBlcnIgPSAkLnBhcnNlSlNPTih4aHIucmVzcG9uc2VUZXh0KSwKLSAgICAgICAg ICAgICAgbXNnID0gZXJyLmVycm9ybXNnLAotICAgICAgICAgICAgICBjbHM7Ci0gICAgICAgICAg ICAvLyBJZiB3ZSBnZXQgYSA0MjgsIGl0IG1lYW5zIHRoZSBzZXJ2ZXIgaXNuJ3QgY29ubmVjdGVk Ci0gICAgICAgICAgICBpZiAoeGhyLnN0YXR1cyA9PSA0MjgpIHsKLSAgICAgICAgICAgICAgaWYg KF8uaXNVbmRlZmluZWQobXNnKSB8fCBfLmlzTnVsbChtc2cpKSB7Ci0gICAgICAgICAgICAgICAg bXNnID0gZ2V0dGV4dCgnUGxlYXNlIGNvbm5lY3QgdG8gdGhlIHNlbGVjdGVkIHNlcnZlciB0byB2 aWV3IHRoZSBncmFwaC4nKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICBjbHMgPSAn aW5mbyc7CisgICAgICAgICAgICBsZXQgZXJyID0gJyc7CisgICAgICAgICAgICBsZXQgbXNnID0g Jyc7CisgICAgICAgICAgICBsZXQgY2xzID0gJ2luZm8nOworCisgICAgICAgICAgICBpZiAoeGhy LnJlYWR5U3RhdGUgPT09IDApIHsKKyAgICAgICAgICAgICAgbXNnID0gZ2V0dGV4dCgnTm90IGNv bm5lY3RlZCB0byB0aGUgc2VydmVyIG9yIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgaGFz IGJlZW4gY2xvc2VkLicpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgbXNn ID0gZ2V0dGV4dCgnQW4gZXJyb3Igb2NjdXJyZWQgd2hpbHN0IHJlbmRlcmluZyB0aGUgZ3JhcGgu Jyk7Ci0gICAgICAgICAgICAgIGNscyA9ICdkYW5nZXInOworICAgICAgICAgICAgICBlcnIgPSBK U09OLnBhcnNlKHhoci5yZXNwb25zZVRleHQpOworICAgICAgICAgICAgICBtc2cgPSBlcnIuZXJy b3Jtc2c7CisKKyAgICAgICAgICAgICAgLy8gSWYgd2UgZ2V0IGEgNDI4LCBpdCBtZWFucyB0aGUg c2VydmVyIGlzbid0IGNvbm5lY3RlZAorICAgICAgICAgICAgICBpZiAoeGhyLnN0YXR1cyA9PT0g NDI4KSB7CisgICAgICAgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQobXNnKSB8fCBfLmlzTnVs bChtc2cpKSB7CisgICAgICAgICAgICAgICAgICBtc2cgPSBnZXR0ZXh0KCdQbGVhc2UgY29ubmVj dCB0byB0aGUgc2VsZWN0ZWQgc2VydmVyIHRvIHZpZXcgdGhlIGdyYXBoLicpOworICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtc2cgPSBn ZXR0ZXh0KCdBbiBlcnJvciBvY2N1cnJlZCB3aGlsc3QgcmVuZGVyaW5nIHRoZSBncmFwaC4nKTsK KyAgICAgICAgICAgICAgICBjbHMgPSAnZGFuZ2VyJzsKKyAgICAgICAgICAgICAgfQogICAgICAg ICAgICAgfQogCiAgICAgICAgICAgICAkKGNvbnRhaW5lcikuYWRkQ2xhc3MoJ2dyYXBoLWVycm9y Jyk7CkBAIC01NzYsMTggKzU4MywyNSBAQCBkZWZpbmUoJ3BnYWRtaW4uZGFzaGJvYXJkJywgWwog ICAgICAgICAgIGZpbHRlci5zZWFyY2goKTsKICAgICAgICAgfSwKICAgICAgICAgZXJyb3I6IGZ1 bmN0aW9uKG1vZGVsLCB4aHIpIHsKLSAgICAgICAgICB2YXIgZXJyID0gJC5wYXJzZUpTT04oeGhy LnJlc3BvbnNlVGV4dCksCi0gICAgICAgICAgICBtc2cgPSBlcnIuZXJyb3Jtc2csCi0gICAgICAg ICAgICBjbHM7Ci0gICAgICAgICAgLy8gSWYgd2UgZ2V0IGEgNDI4LCBpdCBtZWFucyB0aGUgc2Vy dmVyIGlzbid0IGNvbm5lY3RlZAotICAgICAgICAgIGlmICh4aHIuc3RhdHVzID09IDQyOCkgewot ICAgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQobXNnKSB8fCBfLmlzTnVsbChtc2cpKSB7Ci0g ICAgICAgICAgICAgIG1zZyA9IGdldHRleHQoJ1BsZWFzZSBjb25uZWN0IHRvIHRoZSBzZWxlY3Rl ZCBzZXJ2ZXIgdG8gdmlldyB0aGUgdGFibGUuJyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg ICBjbHMgPSAnaW5mbyc7CisgICAgICAgICAgbGV0IGVyciA9ICcnOworICAgICAgICAgIGxldCBt c2cgPSAnJzsKKyAgICAgICAgICBsZXQgY2xzID0gJ2luZm8nOworCisgICAgICAgICAgaWYgKHho ci5yZWFkeVN0YXRlID09PSAwKSB7CisgICAgICAgICAgICBtc2cgPSBnZXR0ZXh0KCdOb3QgY29u bmVjdGVkIHRvIHRoZSBzZXJ2ZXIgb3IgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMg YmVlbiBjbG9zZWQuJyk7CiAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1zZyA9IGdl dHRleHQoJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxzdCByZW5kZXJpbmcgdGhlIHRhYmxlLicpOwot ICAgICAgICAgICAgY2xzID0gJ2Rhbmdlcic7CisgICAgICAgICAgICBlcnIgPSBKU09OLnBhcnNl KHhoci5yZXNwb25zZVRleHQpOworICAgICAgICAgICAgbXNnID0gZXJyLmVycm9ybXNnOworCisg ICAgICAgICAgICAvLyBJZiB3ZSBnZXQgYSA0MjgsIGl0IG1lYW5zIHRoZSBzZXJ2ZXIgaXNuJ3Qg Y29ubmVjdGVkCisgICAgICAgICAgICBpZiAoeGhyLnN0YXR1cyA9PT0gNDI4KSB7CisgICAgICAg ICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKG1zZykgfHwgXy5pc051bGwobXNnKSkgeworICAgICAg ICAgICAgICAgIG1zZyA9IGdldHRleHQoJ1BsZWFzZSBjb25uZWN0IHRvIHRoZSBzZWxlY3RlZCBz ZXJ2ZXIgdG8gdmlldyB0aGUgdGFibGUuJyk7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg IH0gZWxzZSB7CisgICAgICAgICAgICAgIG1zZyA9IGdldHRleHQoJ0FuIGVycm9yIG9jY3VycmVk IHdoaWxzdCByZW5kZXJpbmcgdGhlIHRhYmxlLicpOworICAgICAgICAgICAgICBjbHMgPSAnZGFu Z2VyJzsKKyAgICAgICAgICAgIH0KICAgICAgICAgICB9CiAKICAgICAgICAgICAvLyBSZXBsYWNl IHRoZSBjb250ZW50IHdpdGggdGhlIGVycm9yLCBpZiBub3QgYWxyZWFkeSBwcmVzZW50LiBBbHdh eXMgdXBkYXRlIHRoZSBtZXNzYWdlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9zdGF0aWMvanMv c3FsZWRpdG9yL2V4ZWN1dGVfcXVlcnkuanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRp dG9yL2V4ZWN1dGVfcXVlcnkuanMKaW5kZXggZTkxYzllOC4uOWMzNmYyOCAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9leGVjdXRlX3F1ZXJ5LmpzCisrKyBiL3dl Yi9wZ2FkbWluL3N0YXRpYy9qcy9zcWxlZGl0b3IvZXhlY3V0ZV9xdWVyeS5qcwpAQCAtNTIsNyAr NTIsNyBAQCBjbGFzcyBFeGVjdXRlUXVlcnkgewogICAgICAgfSwgc2VsZi5zcWxTZXJ2ZXJPYmpl Y3QuUE9MTF9GQUxMQkFDS19USU1FKCkpOwogICB9CiAKLSAgZXhlY3V0ZShzcWxTdGF0ZW1lbnQs IGV4cGxhaW5QbGFuKSB7CisgIGV4ZWN1dGUoc3FsU3RhdGVtZW50LCBleHBsYWluUGxhbiwgY29u bmVjdCkgewogICAgIC8vIElmIGl0IGlzIGFuIGVtcHR5IHF1ZXJ5LCBkbyBub3RoaW5nLgogICAg IGlmIChzcWxTdGF0ZW1lbnQubGVuZ3RoIDw9IDApIHJldHVybjsKIApAQCAtNjMsMTEgKzYzLDgg QEAgY2xhc3MgRXhlY3V0ZVF1ZXJ5IHsKICAgICBjb25zdCBzcWxTdGF0ZW1lbnRXaXRoQW5hbHl6 ZSA9IEV4ZWN1dGVRdWVyeS5wcmVwYXJlQW5hbHl6ZVNxbChzcWxTdGF0ZW1lbnQsIGV4cGxhaW5Q bGFuKTsKIAogICAgIHNlbGYuaW5pdGlhbGl6ZUV4ZWN1dGlvbk9uU3FsRWRpdG9yKHNxbFN0YXRl bWVudFdpdGhBbmFseXplKTsKLQogICAgIHNlcnZpY2UucG9zdCgKLSAgICAgIHVybF9mb3IoJ3Nx bGVkaXRvci5xdWVyeV90b29sX3N0YXJ0JywgewotICAgICAgICAndHJhbnNfaWQnOiBzZWxmLnNx bFNlcnZlck9iamVjdC50cmFuc0lkLAotICAgICAgfSksCisgICAgICB0aGlzLmdlbmVyYXRlVVJM UmVjb25uZWN0aW9uRmxhZyhjb25uZWN0KSwKICAgICAgIEpTT04uc3RyaW5naWZ5KHNxbFN0YXRl bWVudFdpdGhBbmFseXplKSwKICAgICAgIHtoZWFkZXJzOiB7J0NvbnRlbnQtVHlwZSc6ICdhcHBs aWNhdGlvbi9qc29uJ319KQogICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3VsdCkgewpAQCAtOTAs MTEgKzg3LDIyIEBAIGNsYXNzIEV4ZWN1dGVRdWVyeSB7CiAgICAgICAgICAgc2VsZi5zcWxTZXJ2 ZXJPYmplY3QuX2hpZ2hsaWdodF9lcnJvcihodHRwTWVzc2FnZURhdGEuZGF0YS5yZXN1bHQpOwog ICAgICAgICB9CiAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHsKLSAgICAgICAgc2Vs Zi5vbkV4ZWN1dGVIVFRQRXJyb3IoZXJyb3IucmVzcG9uc2UuZGF0YSk7CisgICAgICAgIHNlbGYu b25FeGVjdXRlSFRUUEVycm9yKGVycm9yKTsKICAgICAgIH0KICAgICApOwogICB9CiAKKyAgZ2Vu ZXJhdGVVUkxSZWNvbm5lY3Rpb25GbGFnKHNob3VsZFJlY29ubmVjdCkgeworICAgIGxldCB1cmwg PSB1cmxfZm9yKCdzcWxlZGl0b3IucXVlcnlfdG9vbF9zdGFydCcsIHsKKyAgICAgICd0cmFuc19p ZCc6IHRoaXMuc3FsU2VydmVyT2JqZWN0LnRyYW5zSWQsCisgICAgfSk7CisKKyAgICBpZiAoc2hv dWxkUmVjb25uZWN0KSB7CisgICAgICB1cmwgKz0gJz9jb25uZWN0PTEnOworICAgIH0KKyAgICBy ZXR1cm4gdXJsOworICB9CisKICAgcG9sbCgpIHsKICAgICBjb25zdCBzZWxmID0gdGhpczsKICAg ICBsZXQgc2VydmljZSA9IGF4aW9zLmNyZWF0ZSh7fSk7CkBAIC0xMjksMTggKzEzNywyMSBAQCBj bGFzcyBFeGVjdXRlUXVlcnkgewogICAgICAgfQogICAgICkuY2F0Y2goCiAgICAgICBlcnJvciA9 PiB7Ci0gICAgICAgIGNvbnN0IGVycm9yRGF0YSA9IGVycm9yLnJlc3BvbnNlLmRhdGE7CiAgICAg ICAgIC8vIEVuYWJsZS9EaXNhYmxlIHF1ZXJ5IHRvb2wgYnV0dG9uIG9ubHkgaWYgaXNfcXVlcnlf dG9vbCBpcyB0cnVlLgogICAgICAgICBzZWxmLnNxbFNlcnZlck9iamVjdC5yZXNldFF1ZXJ5SGlz dG9yeU9iamVjdChzZWxmLnNxbFNlcnZlck9iamVjdCk7CisKICAgICAgICAgc2VsZi5sb2FkaW5n U2NyZWVuLmhpZGUoKTsKICAgICAgICAgaWYgKHNlbGYuc3FsU2VydmVyT2JqZWN0LmlzX3F1ZXJ5 X3Rvb2wpIHsKICAgICAgICAgICBzZWxmLmVuYWJsZVNRTEVkaXRvckJ1dHRvbnMoKTsKICAgICAg ICAgfQogCi0gICAgICAgIGlmIChFeGVjdXRlUXVlcnkud2FzQ29ubmVjdGlvbkxvc3RUb1NlcnZl cihlcnJvckRhdGEpKSB7CisgICAgICAgIGlmIChFeGVjdXRlUXVlcnkud2FzQ29ubmVjdGlvbkxv c3RUb1B5dGhvblNlcnZlcihlcnJvci5yZXNwb25zZSkpIHsKICAgICAgICAgICBzZWxmLmhhbmRs ZUNvbm5lY3Rpb25Ub1NlcnZlckxvc3QoKTsKICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K KworICAgICAgICBjb25zdCBlcnJvckRhdGEgPSBlcnJvci5yZXNwb25zZS5kYXRhOworCiAgICAg ICAgIGlmIChzZWxmLnVzZXJNYW5hZ2VtZW50LmlzX3BnYV9sb2dpbl9yZXF1aXJlZChlcnJvckRh dGEpKSB7CiAgICAgICAgICAgcmV0dXJuIHNlbGYudXNlck1hbmFnZW1lbnQucGdhX2xvZ2luKCk7 CiAgICAgICAgIH0KQEAgLTE1OSw3ICsxNzAsNyBAQCBjbGFzcyBFeGVjdXRlUXVlcnkgewogICAg ICQoJyNidG4tZmxhc2gnKS5wcm9wKCdkaXNhYmxlZCcsIHRydWUpOwogCiAgICAgdGhpcy5zcWxT ZXJ2ZXJPYmplY3QucXVlcnlfc3RhcnRfdGltZSA9IG5ldyBEYXRlKCk7Ci0gICAgaWYodHlwZW9m IHNxbFN0YXRlbWVudCA9PT0gJ29iamVjdCcpIHsKKyAgICBpZiAodHlwZW9mIHNxbFN0YXRlbWVu dCA9PT0gJ29iamVjdCcpIHsKICAgICAgIHRoaXMuc3FsU2VydmVyT2JqZWN0LnF1ZXJ5ID0gc3Fs U3RhdGVtZW50WydzcWwnXTsKICAgICB9IGVsc2UgewogICAgICAgdGhpcy5zcWxTZXJ2ZXJPYmpl Y3QucXVlcnkgPSBzcWxTdGF0ZW1lbnQ7CkBAIC0xODIsMzkgKzE5MywzNiBAQCBjbGFzcyBFeGVj dXRlUXVlcnkgewogICAgIHRoaXMubG9hZGluZ1NjcmVlbi5oaWRlKCk7CiAgICAgdGhpcy5lbmFi bGVTUUxFZGl0b3JCdXR0b25zKCk7CiAKLSAgICBpZiAoRXhlY3V0ZVF1ZXJ5Lndhc0Nvbm5lY3Rp b25Mb3N0VG9TZXJ2ZXIoaHR0cE1lc3NhZ2UpKSB7CisgICAgaWYgKEV4ZWN1dGVRdWVyeS53YXND b25uZWN0aW9uTG9zdFRvUHl0aG9uU2VydmVyKGh0dHBNZXNzYWdlLnJlc3BvbnNlKSkgewogICAg ICAgdGhpcy5oYW5kbGVDb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KCk7CiAgICAgICByZXR1cm47CiAg ICAgfQogCi0gICAgaWYgKHRoaXMudXNlck1hbmFnZW1lbnQuaXNfcGdhX2xvZ2luX3JlcXVpcmVk KGh0dHBNZXNzYWdlKSkgeworICAgIGlmICh0aGlzLnVzZXJNYW5hZ2VtZW50LmlzX3BnYV9sb2dp bl9yZXF1aXJlZChodHRwTWVzc2FnZS5yZXNwb25zZSkpIHsKICAgICAgIHRoaXMuc3FsU2VydmVy T2JqZWN0LnNhdmVfc3RhdGUoJ2V4ZWN1dGUnLCBbdGhpcy5leHBsYWluUGxhbl0pOwogICAgICAg dGhpcy51c2VyTWFuYWdlbWVudC5wZ2FfbG9naW4oKTsKICAgICB9CiAKLSAgICBpZiAodHJhbnNh Y3Rpb24uaXNfbmV3X3RyYW5zYWN0aW9uX3JlcXVpcmVkKGh0dHBNZXNzYWdlKSkgeworICAgIGlm ICh0cmFuc2FjdGlvbi5pc19uZXdfdHJhbnNhY3Rpb25fcmVxdWlyZWQoaHR0cE1lc3NhZ2UucmVz cG9uc2UpKSB7CiAgICAgICB0aGlzLnNxbFNlcnZlck9iamVjdC5zYXZlX3N0YXRlKCdleGVjdXRl JywgW3RoaXMuZXhwbGFpblBsYW5dKTsKICAgICAgIHRoaXMuc3FsU2VydmVyT2JqZWN0LmluaXRf dHJhbnNhY3Rpb24oKTsKICAgICB9CiAKLSAgICBsZXQgbXNnID0gaHR0cE1lc3NhZ2UuZXJyb3Jt c2c7Ci0gICAgaWYgKGh0dHBNZXNzYWdlLnJlc3BvbnNlSlNPTiAhPT0gdW5kZWZpbmVkKSB7Ci0g ICAgICBpZiAoaHR0cE1lc3NhZ2UucmVzcG9uc2VKU09OLmVycm9ybXNnICE9PSB1bmRlZmluZWQp IHsKLSAgICAgICAgbXNnID0gaHR0cE1lc3NhZ2UucmVzcG9uc2VKU09OLmVycm9ybXNnOwotICAg ICAgfQotCi0gICAgICBpZiAoaHR0cE1lc3NhZ2Uuc3RhdHVzID09PSA1MDMgJiYgaHR0cE1lc3Nh Z2UucmVzcG9uc2VKU09OLmluZm8gIT09IHVuZGVmaW5lZCAmJgotICAgICAgICBodHRwTWVzc2Fn ZS5yZXNwb25zZUpTT04uaW5mbyA9PT0gJ0NPTk5FQ1RJT05fTE9TVCcpIHsKLSAgICAgICAgc2V0 VGltZW91dChmdW5jdGlvbiAoKSB7Ci0gICAgICAgICAgdGhpcy5zcWxTZXJ2ZXJPYmplY3Quc2F2 ZV9zdGF0ZSgnZXhlY3V0ZScsIFt0aGlzLmV4cGxhaW5QbGFuXSk7Ci0gICAgICAgICAgdGhpcy5z cWxTZXJ2ZXJPYmplY3QuaGFuZGxlX2Nvbm5lY3Rpb25fbG9zdChmYWxzZSwgaHR0cE1lc3NhZ2Up OwotICAgICAgICB9KTsKLSAgICAgIH0KKyAgICBpZiAodGhpcy53YXNEYXRhYmFzZUNvbm5lY3Rp b25Mb3N0KGh0dHBNZXNzYWdlKSkgeworICAgICAgdGhpcy5zcWxTZXJ2ZXJPYmplY3Quc2F2ZV9z dGF0ZSgnZXhlY3V0ZScsIFt0aGlzLmV4cGxhaW5QbGFuXSk7CisgICAgICB0aGlzLnNxbFNlcnZl ck9iamVjdC5oYW5kbGVfY29ubmVjdGlvbl9sb3N0KGZhbHNlLCBodHRwTWVzc2FnZSk7CiAgICAg fQogCisgICAgbGV0IG1zZyA9IGh0dHBNZXNzYWdlLnJlc3BvbnNlLmRhdGEuZXJyb3Jtc2c7CiAg ICAgdGhpcy5zcWxTZXJ2ZXJPYmplY3QudXBkYXRlX21zZ19oaXN0b3J5KGZhbHNlLCBtc2cpOwog ICB9CiAKKyAgd2FzRGF0YWJhc2VDb25uZWN0aW9uTG9zdChodHRwTWVzc2FnZSkgeworICAgIHJl dHVybiBodHRwTWVzc2FnZS5yZXNwb25zZS5zdGF0dXMgPT09IDUwMyAmJgorICAgICAgaHR0cE1l c3NhZ2UucmVzcG9uc2UuZGF0YS5pbmZvICE9PSB1bmRlZmluZWQgJiYKKyAgICAgIGh0dHBNZXNz YWdlLnJlc3BvbnNlLmRhdGEuaW5mbyA9PT0gJ0NPTk5FQ1RJT05fTE9TVCc7CisgIH0KKwogICBy ZW1vdmVHcmlkVmlld01hcmtlcigpIHsKICAgICBpZiAodGhpcy5zcWxTZXJ2ZXJPYmplY3QuZ3Jp ZFZpZXcubWFya2VyKSB7CiAgICAgICB0aGlzLnNxbFNlcnZlck9iamVjdC5ncmlkVmlldy5tYXJr ZXIuY2xlYXIoKTsKQEAgLTIzNiw4ICsyNDQsOCBAQCBjbGFzcyBFeGVjdXRlUXVlcnkgewogICAg ICQoJyNidG4tY2FuY2VsLXF1ZXJ5JykucHJvcCgnZGlzYWJsZWQnLCBmYWxzZSk7CiAgIH0KIAot ICBzdGF0aWMgd2FzQ29ubmVjdGlvbkxvc3RUb1NlcnZlcihlcnJvck1lc3NhZ2UpIHsKLSAgICBy ZXR1cm4gZXJyb3JNZXNzYWdlLnJlYWR5U3RhdGUgPT09IDA7CisgIHN0YXRpYyB3YXNDb25uZWN0 aW9uTG9zdFRvUHl0aG9uU2VydmVyKGh0dHBSZXNwb25zZSkgeworICAgIHJldHVybiBfLmlzVW5k ZWZpbmVkKGh0dHBSZXNwb25zZSkgfHwgXy5pc1VuZGVmaW5lZChodHRwUmVzcG9uc2UuZGF0YSk7 CiAgIH0KIAogICBoYW5kbGVDb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KCkgewpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vc3RhdGljL2pzL3NxbGVkaXRvci9pc19uZXdfdHJhbnNhY3Rpb25fcmVxdWly ZWQuanMgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL2lzX25ld190cmFuc2FjdGlv bl9yZXF1aXJlZC5qcwppbmRleCA5ZDgzYzkyLi5lMDA5NjExIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL2lzX25ld190cmFuc2FjdGlvbl9yZXF1aXJlZC5qcwor KysgYi93ZWIvcGdhZG1pbi9zdGF0aWMvanMvc3FsZWRpdG9yL2lzX25ld190cmFuc2FjdGlvbl9y ZXF1aXJlZC5qcwpAQCAtOCw2ICs4LDE1IEBACiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCiBleHBvcnQg ZnVuY3Rpb24gaXNfbmV3X3RyYW5zYWN0aW9uX3JlcXVpcmVkKHhocikgeworICAvKiBJZiByZXNw b25zZUpTT04gaXMgdW5kZWZpbmVkIHRoZW4gaXQgY291bGQgYmUgb2JqZWN0IG9mCisgICAqIGF4 aW9zKFByb21pc2UgSFRUUCkgcmVzcG9uc2UsIHNvIHdlIHNob3VsZCBjaGVjayBhY2NvcmRpbmds eS4KKyAgICovCisgIGlmICh4aHIucmVzcG9uc2VKU09OID09PSB1bmRlZmluZWQgJiYgeGhyLmRh dGEgIT09IHVuZGVmaW5lZCkgeworICAgIHJldHVybiB4aHIuc3RhdHVzID09PSA0MDQgJiYgeGhy LmRhdGEgJiYKKyAgICAgICAgICAgICAgeGhyLmRhdGEuaW5mbyAmJgorICAgICAgICAgICAgICB4 aHIuZGF0YS5pbmZvID09PSAnREFUQUdSSURfVFJBTlNBQ1RJT05fUkVRVUlSRUQnOworICB9CisK ICAgcmV0dXJuIHhoci5zdGF0dXMgPT09IDQwNCAmJiB4aHIucmVzcG9uc2VKU09OICYmCiAgICAg eGhyLnJlc3BvbnNlSlNPTi5pbmZvICYmCiAgICAgeGhyLnJlc3BvbnNlSlNPTi5pbmZvID09PSAn REFUQUdSSURfVFJBTlNBQ1RJT05fUkVRVUlSRUQnOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v dG9vbHMvc3FsZWRpdG9yL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9y L19faW5pdF9fLnB5CmluZGV4IGNjMGFhNGMuLjZmNWQ1YjcgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL3Rvb2xzL3NxbGVkaXRvci9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi90b29scy9z cWxlZGl0b3IvX19pbml0X18ucHkKQEAgLTI5OCw4ICsyOTgsMTAgQEAgZGVmIHN0YXJ0X3F1ZXJ5 X3Rvb2wodHJhbnNfaWQpOgogICAgICAgICByZXF1ZXN0LmRhdGEsIHJlcXVlc3QuYXJncywgcmVx dWVzdC5mb3JtCiAgICAgKQogCisgICAgY29ubmVjdCA9ICdjb25uZWN0JyBpbiByZXF1ZXN0LmFy Z3MgYW5kIHJlcXVlc3QuYXJnc1snY29ubmVjdCddID09ICcxJworCiAgICAgcmV0dXJuIFN0YXJ0 UnVubmluZ1F1ZXJ5KGJsdWVwcmludCwgY3VycmVudF9hcHApLmV4ZWN1dGUoCi0gICAgICAgIHNx bCwgdHJhbnNfaWQsIHNlc3Npb24KKyAgICAgICAgc3FsLCB0cmFuc19pZCwgc2Vzc2lvbiwgY29u bmVjdAogICAgICkKIAogCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Iv c3RhdGljL2pzL3NxbGVkaXRvci5qcyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0 aWMvanMvc3FsZWRpdG9yLmpzCmluZGV4IGZmNTEzOGQuLjkyM2NjZWEgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzCisrKyBiL3dl Yi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvanMvc3FsZWRpdG9yLmpzCkBAIC0xODQ3 LDEzICsxODQ3LDIxIEBAIGRlZmluZSgndG9vbHMucXVlcnl0b29sJywgWwogICAgICAgfSwKIAog ICAgICAgaGFuZGxlX2Nvbm5lY3Rpb25fbG9zdDogZnVuY3Rpb24oY3JlYXRlX3RyYW5zYWN0aW9u LCB4aHIpIHsKLSAgICAgICAgdmFyIHNlbGY9IHRoaXM7Ci0gICAgICAgIGlmICh4aHIucmVzcG9u c2VKU09OLmRhdGEgJiYgIXhoci5yZXNwb25zZUpTT04uZGF0YS5jb25uX2lkKSB7CisgICAgICAg IC8qIElmIHJlc3BvbnNlSlNPTiBpcyB1bmRlZmluZWQgdGhlbiBpdCBjb3VsZCBiZSBvYmplY3Qg b2YKKyAgICAgICAgICogYXhpb3MoUHJvbWlzZSBIVFRQKSByZXNwb25zZSwgc28gd2Ugc2hvdWxk IGNoZWNrIGFjY29yZGluZ2x5LgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKHhoci5yZXNwb25z ZUpTT04gIT09IHVuZGVmaW5lZCAmJgorICAgICAgICAgICAgeGhyLnJlc3BvbnNlSlNPTi5kYXRh ICYmICF4aHIucmVzcG9uc2VKU09OLmRhdGEuY29ubl9pZCkgeworICAgICAgICAgIC8vIGlmIGNv bm5faWQgaXMgbnVsbCB0aGVuIHRoaXMgaXMgbWFpbnRlbmFuY2UgZGIuCisgICAgICAgICAgLy8g c28gYXR0ZW1wdCBjb25uZWN0aW9uIGNvbm5lY3Qgd2l0aG91dCBwcm9tcHQuCisgICAgICAgICAg dGhpcy5pbml0X2Nvbm5lY3Rpb24oY3JlYXRlX3RyYW5zYWN0aW9uKTsKKyAgICAgICAgfSBlbHNl IGlmICh4aHIuZGF0YSAhPT0gdW5kZWZpbmVkICYmCisgICAgICAgICAgeGhyLmRhdGEuZGF0YSAm JiAheGhyLmRhdGEuZGF0YS5jb25uX2lkKSB7CiAgICAgICAgICAgLy8gaWYgY29ubl9pZCBpcyBu dWxsIHRoZW4gdGhpcyBpcyBtYWludGVuYW5jZSBkYi4KICAgICAgICAgICAvLyBzbyBhdHRlbXB0 IGNvbm5lY3Rpb24gY29ubmVjdCB3aXRob3V0IHByb21wdC4KLSAgICAgICAgICBzZWxmLmluaXRf Y29ubmVjdGlvbihjcmVhdGVfdHJhbnNhY3Rpb24pOworICAgICAgICAgIHRoaXMuaW5pdF9jb25u ZWN0aW9uKGNyZWF0ZV90cmFuc2FjdGlvbik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg c2VsZi53YXJuX2JlZm9yZV9jb250aW51ZSgpOworICAgICAgICAgIHRoaXMud2Fybl9iZWZvcmVf Y29udGludWUoKTsKICAgICAgICAgfQogICAgICAgfSwKICAgICAgIHdhcm5fYmVmb3JlX2NvbnRp bnVlOiBmdW5jdGlvbigpIHsKQEAgLTM3MzAsNyArMzczOCw3IEBAIGRlZmluZSgndG9vbHMucXVl cnl0b29sJywgWwogCiAgICAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIHNxbCBx dWVyeSBmcm9tIHRoZSB0ZXh0IGJveAogICAgICAgLy8gYW5kIGV4ZWN1dGUgdGhlIHF1ZXJ5Lgot ICAgICAgZXhlY3V0ZTogZnVuY3Rpb24oZXhwbGFpbl9wcmVmaXgpIHsKKyAgICAgIGV4ZWN1dGU6 IGZ1bmN0aW9uKGV4cGxhaW5fcHJlZml4LCBzaG91bGRSZWNvbm5lY3Q9ZmFsc2UpIHsKICAgICAg ICAgdmFyIHNlbGYgPSB0aGlzLAogICAgICAgICAgIHNxbCA9ICcnOwogCkBAIC0zNzQ3LDcgKzM3 NTUsNyBAQCBkZWZpbmUoJ3Rvb2xzLnF1ZXJ5dG9vbCcsIFsKICAgICAgICAgICBzcWwgPSBzZWxm LmdyaWRWaWV3LnF1ZXJ5X3Rvb2xfb2JqLmdldFZhbHVlKCk7CiAKICAgICAgICAgY29uc3QgZXhl Y3V0ZVF1ZXJ5ID0gbmV3IEV4ZWN1dGVRdWVyeS5FeGVjdXRlUXVlcnkodGhpcywgcGdBZG1pbi5C cm93c2VyLlVzZXJNYW5hZ2VtZW50KTsKLSAgICAgICAgZXhlY3V0ZVF1ZXJ5LmV4ZWN1dGUoc3Fs LCBleHBsYWluX3ByZWZpeCk7CisgICAgICAgIGV4ZWN1dGVRdWVyeS5leGVjdXRlKHNxbCwgZXhw bGFpbl9wcmVmaXgsIHNob3VsZFJlY29ubmVjdCk7CiAgICAgICB9LAogCiAgICAgICAvKiBUaGlz IGZ1bmN0aW9uIGlzIHVzZWQgdG8gaGlnaGxpZ2h0IHRoZSBlcnJvciBsaW5lIGFuZApkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3Rfc3RhcnRfcXVlcnlf dG9vbC5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X3N0YXJ0X3F1 ZXJ5X3Rvb2wucHkKaW5kZXggMmE1MDI1OS4uYzJmZjIxYyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3Rfc3RhcnRfcXVlcnlfdG9vbC5weQorKysgYi93 ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9zdGFydF9xdWVyeV90b29sLnB5 CkBAIC00Miw2ICs0Miw2IEBAIGNsYXNzIFN0YXJ0UXVlcnlUb29sKEJhc2VUZXN0R2VuZXJhdG9y KToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1cywgJzIwMCBP SycpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5kYXRhLCBiJ3NvbWUg cmVzdWx0JykKICAgICAgICAgICAgIFN0YXJ0UnVubmluZ1F1ZXJ5X2V4ZWN1dGVfbW9jayBcCi0g ICAgICAgICAgICAgICAgLmFzc2VydF9jYWxsZWRfd2l0aCgndHJhbnNmb3JtZWQgc3FsJywgMTIz NCwgQU5ZKQorICAgICAgICAgICAgICAgIC5hc3NlcnRfY2FsbGVkX3dpdGgoJ3RyYW5zZm9ybWVk IHNxbCcsIDEyMzQsIEFOWSwgRmFsc2UpCiAgICAgICAgICAgICBleHRyYWN0X3NxbF9mcm9tX25l dHdvcmtfcGFyYW1ldGVyc19tb2NrIFwKICAgICAgICAgICAgICAgICAuYXNzZXJ0X2NhbGxlZF93 aXRoKGInInNvbWUgc3FsIHN0YXRlbWVudCInLCBBTlksIEFOWSkKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy9zdGFydF9ydW5uaW5nX3F1ZXJ5LnB5IGIvd2Vi L3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3V0aWxzL3N0YXJ0X3J1bm5pbmdfcXVlcnkucHkKaW5k ZXggMTFiOTQ2Yi4uM2IzYzUwMiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRp dG9yL3V0aWxzL3N0YXJ0X3J1bm5pbmdfcXVlcnkucHkKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMv c3FsZWRpdG9yL3V0aWxzL3N0YXJ0X3J1bm5pbmdfcXVlcnkucHkKQEAgLTM2LDcgKzM2LDcgQEAg Y2xhc3MgU3RhcnRSdW5uaW5nUXVlcnk6CiAgICAgICAgIHNlbGYuY29ubmVjdGlvbl9pZCA9IHN0 cihyYW5kb20ucmFuZGludCgxLCA5OTk5OTk5KSkKICAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dn ZXIKIAotICAgIGRlZiBleGVjdXRlKHNlbGYsIHNxbCwgdHJhbnNfaWQsIGh0dHBfc2Vzc2lvbik6 CisgICAgZGVmIGV4ZWN1dGUoc2VsZiwgc3FsLCB0cmFuc19pZCwgaHR0cF9zZXNzaW9uLCBjb25u ZWN0PUZhbHNlKToKICAgICAgICAgc2Vzc2lvbl9vYmogPSBTdGFydFJ1bm5pbmdRdWVyeS5yZXRy aWV2ZV9zZXNzaW9uX2luZm9ybWF0aW9uKAogICAgICAgICAgICAgaHR0cF9zZXNzaW9uLAogICAg ICAgICAgICAgdHJhbnNfaWQKQEAgLTY4LDcgKzY4LDcgQEAgY2xhc3MgU3RhcnRSdW5uaW5nUXVl cnk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1zdHIoZSkpCiAKICAgICAgICAgICAgICMgQ29ubmVjdCB0byB0aGUgU2VydmVyIGlmIG5vdCBj b25uZWN0ZWQuCi0gICAgICAgICAgICBpZiBub3QgY29ubi5jb25uZWN0ZWQoKToKKyAgICAgICAg ICAgIGlmIGNvbm5lY3QgYW5kIG5vdCBjb25uLmNvbm5lY3RlZCgpOgogICAgICAgICAgICAgICAg IHN0YXR1cywgbXNnID0gY29ubi5jb25uZWN0KCkKICAgICAgICAgICAgICAgICBpZiBub3Qgc3Rh dHVzOgogICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcihtc2cpCkBAIC0xMDgs MzkgKzEwOCwzNCBAQCBjbGFzcyBTdGFydFJ1bm5pbmdRdWVyeToKICAgICAgICAgICAgIHNlbGYu Y29ubmVjdGlvbl9pZCA9IGNvbm5faWQKIAogICAgIGRlZiBfX2V4ZWN1dGVfcXVlcnkoc2VsZiwg Y29ubiwgc2Vzc2lvbl9vYmosIHNxbCwgdHJhbnNfaWQsIHRyYW5zX29iaik6Ci0gICAgICAgIGlm IGNvbm4uY29ubmVjdGVkKCk6Ci0gICAgICAgICAgICAjIG9uIHN1Y2Nlc3NmdWwgY29ubmVjdGlv biBzZXQgdGhlIGNvbm5lY3Rpb24gaWQgdG8gdGhlCi0gICAgICAgICAgICAjIHRyYW5zYWN0aW9u IG9iamVjdAotICAgICAgICAgICAgdHJhbnNfb2JqLnNldF9jb25uZWN0aW9uX2lkKHNlbGYuY29u bmVjdGlvbl9pZCkKKyAgICAgICAgIyBvbiBzdWNjZXNzZnVsIGNvbm5lY3Rpb24gc2V0IHRoZSBj b25uZWN0aW9uIGlkIHRvIHRoZQorICAgICAgICAjIHRyYW5zYWN0aW9uIG9iamVjdAorICAgICAg ICB0cmFuc19vYmouc2V0X2Nvbm5lY3Rpb25faWQoc2VsZi5jb25uZWN0aW9uX2lkKQorCisgICAg ICAgIFN0YXJ0UnVubmluZ1F1ZXJ5LnNhdmVfdHJhbnNhY3Rpb25faW5fc2Vzc2lvbihzZXNzaW9u X29iaiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRyYW5zX2lkLCB0cmFuc19vYmopCisKKyAgICAgICAgIyBJZiBhdXRvIGNvbW1pdCBpcyBG YWxzZSBhbmQgdHJhbnNhY3Rpb24gc3RhdHVzIGlzIElkbGUKKyAgICAgICAgIyB0aGVuIGNhbGwg aXNfYmVnaW5fbm90X3JlcXVpcmVkKCkgZnVuY3Rpb24gdG8gY2hlY2sgQkVHSU4KKyAgICAgICAg IyBpcyByZXF1aXJlZCBvciBub3QuCisKKyAgICAgICAgaWYgU3RhcnRSdW5uaW5nUXVlcnkuaXNf YmVnaW5fcmVxdWlyZWRfZm9yX3NxbF9xdWVyeSh0cmFuc19vYmosCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubiwgc3FsKToK KyAgICAgICAgICAgIGNvbm4uZXhlY3V0ZV92b2lkKCJCRUdJTjsiKQorCisgICAgICAgICMgRXhl Y3V0ZSBzcWwgYXN5bmNocm9ub3VzbHkgd2l0aCBwYXJhbXMgaXMgTm9uZQorICAgICAgICAjIGFu ZCBmb3JtYXR0ZWRfZXJyb3IgaXMgVHJ1ZS4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc3Rh dHVzLCByZXN1bHQgPSBjb25uLmV4ZWN1dGVfYXN5bmMoc3FsKQorICAgICAgICBleGNlcHQgQ29u bmVjdGlvbkxvc3Q6CisgICAgICAgICAgICByYWlzZQorCisgICAgICAgICMgSWYgdGhlIHRyYW5z YWN0aW9uIGFib3J0ZWQgZm9yIHNvbWUgcmVhc29uIGFuZAorICAgICAgICAjIEF1dG8gUm9sbEJh Y2sgaXMgVHJ1ZSB0aGVuIGlzc3VlIGEgcm9sbGJhY2sgdG8gY2xlYW51cC4KKyAgICAgICAgaWYg U3RhcnRSdW5uaW5nUXVlcnkuaXNfcm9sbGJhY2tfc3RhdGVtZW50X3JlcXVpcmVkKHRyYW5zX29i aiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbm4pOgorICAgICAgICAgICAgY29ubi5leGVjdXRlX3ZvaWQoIlJPTExCQUNLOyIp CiAKLSAgICAgICAgICAgIFN0YXJ0UnVubmluZ1F1ZXJ5LnNhdmVfdHJhbnNhY3Rpb25faW5fc2Vz c2lvbihzZXNzaW9uX29iaiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0cmFuc19pZCwgdHJhbnNfb2JqKQotCi0gICAgICAgICAgICAj IElmIGF1dG8gY29tbWl0IGlzIEZhbHNlIGFuZCB0cmFuc2FjdGlvbiBzdGF0dXMgaXMgSWRsZQot ICAgICAgICAgICAgIyB0aGVuIGNhbGwgaXNfYmVnaW5fbm90X3JlcXVpcmVkKCkgZnVuY3Rpb24g dG8gY2hlY2sgQkVHSU4KLSAgICAgICAgICAgICMgaXMgcmVxdWlyZWQgb3Igbm90LgotCi0gICAg ICAgICAgICBpZiBTdGFydFJ1bm5pbmdRdWVyeS5pc19iZWdpbl9yZXF1aXJlZF9mb3Jfc3FsX3F1 ZXJ5KHRyYW5zX29iaiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29ubiwgc3FsKToKLSAgICAgICAgICAgICAgICBjb25u LmV4ZWN1dGVfdm9pZCgiQkVHSU47IikKLQotICAgICAgICAgICAgIyBFeGVjdXRlIHNxbCBhc3lu Y2hyb25vdXNseSB3aXRoIHBhcmFtcyBpcyBOb25lCi0gICAgICAgICAgICAjIGFuZCBmb3JtYXR0 ZWRfZXJyb3IgaXMgVHJ1ZS4KLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBzdGF0 dXMsIHJlc3VsdCA9IGNvbm4uZXhlY3V0ZV9hc3luYyhzcWwpCi0gICAgICAgICAgICBleGNlcHQg Q29ubmVjdGlvbkxvc3Q6Ci0gICAgICAgICAgICAgICAgcmFpc2UKLQotICAgICAgICAgICAgIyBJ ZiB0aGUgdHJhbnNhY3Rpb24gYWJvcnRlZCBmb3Igc29tZSByZWFzb24gYW5kCi0gICAgICAgICAg ICAjIEF1dG8gUm9sbEJhY2sgaXMgVHJ1ZSB0aGVuIGlzc3VlIGEgcm9sbGJhY2sgdG8gY2xlYW51 cC4KLSAgICAgICAgICAgIGlmIFN0YXJ0UnVubmluZ1F1ZXJ5LmlzX3JvbGxiYWNrX3N0YXRlbWVu dF9yZXF1aXJlZCh0cmFuc19vYmosCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubik6Ci0gICAgICAgICAgICAgICAgY29u bi5leGVjdXRlX3ZvaWQoIlJPTExCQUNLOyIpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBz dGF0dXMgPSBGYWxzZQotICAgICAgICAgICAgcmVzdWx0ID0gZ2V0dGV4dCgKLSAgICAgICAgICAg ICAgICAnTm90IGNvbm5lY3RlZCB0byBzZXJ2ZXIgb3IgY29ubmVjdGlvbiB3aXRoIHRoZSBzZXJ2 ZXIgaGFzICcKLSAgICAgICAgICAgICAgICAnYmVlbiBjbG9zZWQuJykKICAgICAgICAgcmV0dXJu IHJlc3VsdCwgc3RhdHVzCiAKICAgICBAc3RhdGljbWV0aG9kCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi90b29scy9zcWxlZGl0b3IvdXRpbHMvdGVzdHMvdGVzdF9zdGFydF9ydW5uaW5nX3F1ZXJ5 LnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3V0aWxzL3Rlc3RzL3Rlc3Rfc3RhcnRf cnVubmluZ19xdWVyeS5weQppbmRleCAyM2E1YzdmLi40YWQwODkxIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi90b29scy9zcWxlZGl0b3IvdXRpbHMvdGVzdHMvdGVzdF9zdGFydF9ydW5uaW5nX3F1 ZXJ5LnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy90ZXN0cy90ZXN0 X3N0YXJ0X3J1bm5pbmdfcXVlcnkucHkKQEAgLTIxLDYgKzIxLDcgQEAgZWxzZToKICAgICBmcm9t IHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoLCBNYWdpY01vY2sKIAogZ2V0X2RyaXZlcl9leGNl cHRpb24gPSBFeGNlcHRpb24oJ2dldF9kcml2ZXIgZXhjZXB0aW9uJykKK2dldF9jb25uZWN0aW9u X2xvc3RfZXhjZXB0aW9uID0gRXhjZXB0aW9uKCdVbmFibGUgdG8gY29ubmVjdCB0byBzZXJ2ZXIn KQogCiAKIGNsYXNzIFN0YXJ0UnVubmluZ1F1ZXJ5VGVzdChCYXNlVGVzdEdlbmVyYXRvcik6CkBA IC0zOCw2ICszOSw3IEBAIGNsYXNzIFN0YXJ0UnVubmluZ1F1ZXJ5VGVzdChCYXNlVGVzdEdlbmVy YXRvcik6CiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBwaWNrbGVfbG9hZF9yZXR1cm49 Tm9uZSwKICAgICAgICAgICAgICBnZXRfZHJpdmVyX2V4Y2VwdGlvbj1GYWxzZSwKKyAgICAgICAg ICAgICBnZXRfY29ubmVjdGlvbl9sb3N0X2V4Y2VwdGlvbj1GYWxzZSwKICAgICAgICAgICAgICBt YW5hZ2VyX2Nvbm5lY3Rpb25fZXhjZXB0aW9uPU5vbmUsCiAKICAgICAgICAgICAgICBpc19jb25u ZWN0ZWRfdG9fc2VydmVyPUZhbHNlLApAQCAtNjcsNiArNjksNyBAQCBjbGFzcyBTdGFydFJ1bm5p bmdRdWVyeVRlc3QoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICksCiAgICAgICAg ICAgICAgcGlja2xlX2xvYWRfcmV0dXJuPU5vbmUsCiAgICAgICAgICAgICAgZ2V0X2RyaXZlcl9l eGNlcHRpb249RmFsc2UsCisgICAgICAgICAgICAgZ2V0X2Nvbm5lY3Rpb25fbG9zdF9leGNlcHRp b249RmFsc2UsCiAgICAgICAgICAgICAgbWFuYWdlcl9jb25uZWN0aW9uX2V4Y2VwdGlvbj1Ob25l LAogCiAgICAgICAgICAgICAgaXNfY29ubmVjdGVkX3RvX3NlcnZlcj1GYWxzZSwKQEAgLTk3LDYg KzEwMCw3IEBAIGNsYXNzIFN0YXJ0UnVubmluZ1F1ZXJ5VGVzdChCYXNlVGVzdEdlbmVyYXRvcik6 CiAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICBwaWNrbGVfbG9hZF9yZXR1cm49Tm9uZSwK ICAgICAgICAgICAgICBnZXRfZHJpdmVyX2V4Y2VwdGlvbj1GYWxzZSwKKyAgICAgICAgICAgICBn ZXRfY29ubmVjdGlvbl9sb3N0X2V4Y2VwdGlvbj1GYWxzZSwKICAgICAgICAgICAgICBtYW5hZ2Vy X2Nvbm5lY3Rpb25fZXhjZXB0aW9uPU5vbmUsCiAKICAgICAgICAgICAgICBpc19jb25uZWN0ZWRf dG9fc2VydmVyPUZhbHNlLApAQCAtMTMxLDYgKzEzNSw3IEBAIGNsYXNzIFN0YXJ0UnVubmluZ1F1 ZXJ5VGVzdChCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgcGlja2xlX2xvYWRfcmV0 dXJuPU1hZ2ljTW9jayhjb25uX2lkPTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1cGRhdGVfZmV0Y2hlZF9yb3dfY250PU1hZ2ljTW9jaygpKSwKICAgICAgICAg ICAgICBnZXRfZHJpdmVyX2V4Y2VwdGlvbj1UcnVlLAorICAgICAgICAgICAgIGdldF9jb25uZWN0 aW9uX2xvc3RfZXhjZXB0aW9uPUZhbHNlLAogICAgICAgICAgICAgIG1hbmFnZXJfY29ubmVjdGlv bl9leGNlcHRpb249Tm9uZSwKIAogICAgICAgICAgICAgIGlzX2Nvbm5lY3RlZF90b19zZXJ2ZXI9 RmFsc2UsCkBAIC0xNjEsNiArMTY2LDcgQEAgY2xhc3MgU3RhcnRSdW5uaW5nUXVlcnlUZXN0KEJh c2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAgdXBkYXRlX2ZldGNoZWRfcm93X2Nu dD1NYWdpY01vY2soKQogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgZ2V0X2RyaXZlcl9l eGNlcHRpb249RmFsc2UsCisgICAgICAgICAgICAgZ2V0X2Nvbm5lY3Rpb25fbG9zdF9leGNlcHRp b249RmFsc2UsCiAgICAgICAgICAgICAgbWFuYWdlcl9jb25uZWN0aW9uX2V4Y2VwdGlvbj1Db25u ZWN0aW9uTG9zdCgnMScsICcyJywgJzMnKSwKIAogICAgICAgICAgICAgIGlzX2Nvbm5lY3RlZF90 b19zZXJ2ZXI9RmFsc2UsCkBAIC0xODgsNiArMTk0LDcgQEAgY2xhc3MgU3RhcnRSdW5uaW5nUXVl cnlUZXN0KEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAgdXBkYXRlX2ZldGNo ZWRfcm93X2NudD1NYWdpY01vY2soKQogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgZ2V0 X2RyaXZlcl9leGNlcHRpb249RmFsc2UsCisgICAgICAgICAgICAgZ2V0X2Nvbm5lY3Rpb25fbG9z dF9leGNlcHRpb249VHJ1ZSwKICAgICAgICAgICAgICBtYW5hZ2VyX2Nvbm5lY3Rpb25fZXhjZXB0 aW9uPU5vbmUsCiAKICAgICAgICAgICAgICBpc19jb25uZWN0ZWRfdG9fc2VydmVyPUZhbHNlLApA QCAtMjAyLDcgKzIwOSw3IEBAIGNsYXNzIFN0YXJ0UnVubmluZ1F1ZXJ5VGVzdChCYXNlVGVzdEdl bmVyYXRvcik6CiAgICAgICAgICAgICAgZXhwZWN0X2ludGVybmFsX3NlcnZlcl9lcnJvcl9jYWxs ZWRfd2l0aD1kaWN0KAogICAgICAgICAgICAgICAgICBlcnJvcm1zZz0nVW5hYmxlIHRvIGNvbm5l Y3QgdG8gc2VydmVyJwogICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfbG9n Z2VyX2Vycm9yPSdVbmFibGUgdG8gY29ubmVjdCB0byBzZXJ2ZXInLAorICAgICAgICAgICAgIGV4 cGVjdGVkX2xvZ2dlcl9lcnJvcj1nZXRfY29ubmVjdGlvbl9sb3N0X2V4Y2VwdGlvbiwKICAgICAg ICAgICAgICBleHBlY3RfZXhlY3V0ZV92b2lkX2NhbGxlZF93aXRoPSdzb21lIHNxbCcsCiAgICAg ICAgICApKSwKICAgICAgICAgKCdXaGVuIHNlcnZlciBpcyBjb25uZWN0ZWQgYW5kIHN0YXJ0IHF1 ZXJ5IGFzeW5jIHJlcXVlc3QsICcKQEAgLTIyMyw2ICsyMzAsNyBAQCBjbGFzcyBTdGFydFJ1bm5p bmdRdWVyeVRlc3QoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICAgICBjYW5fZmls dGVyPWxhbWJkYTogVHJ1ZQogICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgZ2V0X2RyaXZl cl9leGNlcHRpb249RmFsc2UsCisgICAgICAgICAgICAgZ2V0X2Nvbm5lY3Rpb25fbG9zdF9leGNl cHRpb249RmFsc2UsCiAgICAgICAgICAgICAgbWFuYWdlcl9jb25uZWN0aW9uX2V4Y2VwdGlvbj1O b25lLAogCiAgICAgICAgICAgICAgaXNfY29ubmVjdGVkX3RvX3NlcnZlcj1UcnVlLApAQCAtMjY1 LDYgKzI3Myw3IEBAIGNsYXNzIFN0YXJ0UnVubmluZ1F1ZXJ5VGVzdChCYXNlVGVzdEdlbmVyYXRv cik6CiAgICAgICAgICAgICAgICAgIGNhbl9maWx0ZXI9bGFtYmRhOiBUcnVlCiAgICAgICAgICAg ICAgKSwKICAgICAgICAgICAgICBnZXRfZHJpdmVyX2V4Y2VwdGlvbj1GYWxzZSwKKyAgICAgICAg ICAgICBnZXRfY29ubmVjdGlvbl9sb3N0X2V4Y2VwdGlvbj1GYWxzZSwKICAgICAgICAgICAgICBt YW5hZ2VyX2Nvbm5lY3Rpb25fZXhjZXB0aW9uPU5vbmUsCiAKICAgICAgICAgICAgICBpc19jb25u ZWN0ZWRfdG9fc2VydmVyPVRydWUsCkBAIC0zMDcsNiArMzE2LDcgQEAgY2xhc3MgU3RhcnRSdW5u aW5nUXVlcnlUZXN0KEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAgY2FuX2Zp bHRlcj1sYW1iZGE6IFRydWUKICAgICAgICAgICAgICApLAogICAgICAgICAgICAgIGdldF9kcml2 ZXJfZXhjZXB0aW9uPUZhbHNlLAorICAgICAgICAgICAgIGdldF9jb25uZWN0aW9uX2xvc3RfZXhj ZXB0aW9uPUZhbHNlLAogICAgICAgICAgICAgIG1hbmFnZXJfY29ubmVjdGlvbl9leGNlcHRpb249 Tm9uZSwKIAogICAgICAgICAgICAgIGlzX2Nvbm5lY3RlZF90b19zZXJ2ZXI9VHJ1ZSwKQEAgLTM0 OSw2ICszNTksNyBAQCBjbGFzcyBTdGFydFJ1bm5pbmdRdWVyeVRlc3QoQmFzZVRlc3RHZW5lcmF0 b3IpOgogICAgICAgICAgICAgICAgICBjYW5fZmlsdGVyPWxhbWJkYTogVHJ1ZQogICAgICAgICAg ICAgICksCiAgICAgICAgICAgICAgZ2V0X2RyaXZlcl9leGNlcHRpb249RmFsc2UsCisgICAgICAg ICAgICAgZ2V0X2Nvbm5lY3Rpb25fbG9zdF9leGNlcHRpb249RmFsc2UsCiAgICAgICAgICAgICAg bWFuYWdlcl9jb25uZWN0aW9uX2V4Y2VwdGlvbj1Ob25lLAogCiAgICAgICAgICAgICAgaXNfY29u bmVjdGVkX3RvX3NlcnZlcj1UcnVlLApAQCAtNDMxLDYgKzQ0Miw4IEBAIGNsYXNzIFN0YXJ0UnVu bmluZ1F1ZXJ5VGVzdChCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIG1hbmFnZXIgPSBzZWxm Ll9fY3JlYXRlX21hbmFnZXIoKQogICAgICAgICBpZiBzZWxmLmdldF9kcml2ZXJfZXhjZXB0aW9u OgogICAgICAgICAgICAgZ2V0X2RyaXZlcl9tb2NrLnNpZGVfZWZmZWN0ID0gZ2V0X2RyaXZlcl9l eGNlcHRpb24KKyAgICAgICAgZWxpZiBzZWxmLmdldF9jb25uZWN0aW9uX2xvc3RfZXhjZXB0aW9u OgorICAgICAgICAgICAgZ2V0X2RyaXZlcl9tb2NrLnNpZGVfZWZmZWN0ID0gZ2V0X2Nvbm5lY3Rp b25fbG9zdF9leGNlcHRpb24KICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGdldF9kcml2ZXJf bW9jay5yZXR1cm5fdmFsdWUgPSBNYWdpY01vY2soCiAgICAgICAgICAgICAgICAgY29ubmVjdGlv bl9tYW5hZ2VyPWxhbWJkYSBzZXNzaW9uX2lkOiBtYW5hZ2VyKQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vdG9vbHMvdXNlcl9tYW5hZ2VtZW50L3N0YXRpYy9qcy91c2VyX21hbmFnZW1lbnQuanMg Yi93ZWIvcGdhZG1pbi90b29scy91c2VyX21hbmFnZW1lbnQvc3RhdGljL2pzL3VzZXJfbWFuYWdl bWVudC5qcwppbmRleCAyYTNiMmYwLi4yNjI3MzI4IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90 b29scy91c2VyX21hbmFnZW1lbnQvc3RhdGljL2pzL3VzZXJfbWFuYWdlbWVudC5qcworKysgYi93 ZWIvcGdhZG1pbi90b29scy91c2VyX21hbmFnZW1lbnQvc3RhdGljL2pzL3VzZXJfbWFuYWdlbWVu dC5qcwpAQCAtMTMwLDkgKzEzMCwxOCBAQCBkZWZpbmUoWwogICAgIH0sCiAKICAgICBpc19wZ2Ff bG9naW5fcmVxdWlyZWQoeGhyKSB7Ci0gICAgICByZXR1cm4geGhyLnN0YXR1cyA9PSA0MDEgJiYg eGhyLnJlc3BvbnNlSlNPTiAmJgorICAgICAgLyogSWYgcmVzcG9uc2VKU09OIGlzIHVuZGVmaW5l ZCB0aGVuIGl0IGNvdWxkIGJlIG9iamVjdCBvZgorICAgICAgICogYXhpb3MoUHJvbWlzZSBIVFRQ KSByZXNwb25zZSwgc28gd2Ugc2hvdWxkIGNoZWNrIGFjY29yZGluZ2x5LgorICAgICAgICovCisg ICAgICBpZiAoeGhyLnJlc3BvbnNlSlNPTiA9PT0gdW5kZWZpbmVkICYmIHhoci5kYXRhICE9PSB1 bmRlZmluZWQpIHsKKyAgICAgICAgcmV0dXJuIHhoci5zdGF0dXMgPT09IDQwMSAmJiB4aHIuZGF0 YSAmJgorICAgICAgICAgICAgICAgICAgeGhyLmRhdGEuaW5mbyAmJgorICAgICAgICAgICAgICAg ICAgeGhyLmRhdGEuaW5mbyA9PT0gJ1BHQURNSU5fTE9HSU5fUkVRVUlSRUQnOworICAgICAgfQor CisgICAgICByZXR1cm4geGhyLnN0YXR1cyA9PT0gNDAxICYmIHhoci5yZXNwb25zZUpTT04gJiYK ICAgICAgICAgICAgICAgICB4aHIucmVzcG9uc2VKU09OLmluZm8gJiYKLSAgICAgICAgICAgICAg ICB4aHIucmVzcG9uc2VKU09OLmluZm8gPT0gJ1BHQURNSU5fTE9HSU5fUkVRVUlSRUQnOworICAg ICAgICAgICAgICAgIHhoci5yZXNwb25zZUpTT04uaW5mbyA9PT0gJ1BHQURNSU5fTE9HSU5fUkVR VUlSRUQnOwogICAgIH0sCiAKICAgICAvLyBDYWxsYmFjayB0byBkcmF3IHBnQWRtaW40IGxvZ2lu IGRpYWxvZy4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3BnMi9z ZXJ2ZXJfbWFuYWdlci5weSBiL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3BnMi9zZXJ2 ZXJfbWFuYWdlci5weQppbmRleCAyMjk5ZTI4Li5mMjg4YTk0IDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi91dGlscy9kcml2ZXIvcHN5Y29wZzIvc2VydmVyX21hbmFnZXIucHkKKysrIGIvd2ViL3Bn YWRtaW4vdXRpbHMvZHJpdmVyL3BzeWNvcGcyL3NlcnZlcl9tYW5hZ2VyLnB5CkBAIC0xOSw2ICsx OSw3IEBAIGZyb20gZmxhc2tfYmFiZWwgaW1wb3J0IGdldHRleHQKIGZyb20gcGdhZG1pbi51dGls cy5jcnlwdG8gaW1wb3J0IGRlY3J5cHQKIGZyb20gLmNvbm5lY3Rpb24gaW1wb3J0IENvbm5lY3Rp b24KIGZyb20gcGdhZG1pbi5tb2RlbCBpbXBvcnQgU2VydmVyCitmcm9tIHBnYWRtaW4udXRpbHMu ZXhjZXB0aW9uIGltcG9ydCBDb25uZWN0aW9uTG9zdAogCiAKIGNsYXNzIFNlcnZlck1hbmFnZXIo b2JqZWN0KToKZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvc3FsZWRpdG9y L2V4ZWN1dGVfcXVlcnlfc3BlYy5qcyBiL3dlYi9yZWdyZXNzaW9uL2phdmFzY3JpcHQvc3FsZWRp dG9yL2V4ZWN1dGVfcXVlcnlfc3BlYy5qcwppbmRleCA5OGZhZWQ3Li41ZjkyZGM1IDEwMDY0NAot LS0gYS93ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NxbGVkaXRvci9leGVjdXRlX3F1ZXJ5X3Nw ZWMuanMKKysrIGIvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zcWxlZGl0b3IvZXhlY3V0ZV9x dWVyeV9zcGVjLmpzCkBAIC00Miw2ICs0Miw3IEBAIGRlc2NyaWJlKCdFeGVjdXRlUXVlcnknLCAo KSA9PiB7CiAgICAgICAnX2luaXRfcG9sbGluZ19mbGFncycsCiAgICAgICAnc2F2ZV9zdGF0ZScs CiAgICAgICAnaW5pdF90cmFuc2FjdGlvbicsCisgICAgICAnaGFuZGxlX2Nvbm5lY3Rpb25fbG9z dCcsCiAgICAgXSk7CiAgICAgc3FsRWRpdG9yTW9jay50cmFuc0lkID0gMTIzOwogICAgIHNxbEVk aXRvck1vY2sucm93c19hZmZlY3RlZCA9IDEwMDA7CkBAIC00OSw2ICs1MCwxMCBAQCBkZXNjcmli ZSgnRXhlY3V0ZVF1ZXJ5JywgKCkgPT4gewogICAgIGlzTmV3VHJhbnNhY3Rpb25SZXF1aXJlZE1v Y2sgPSBzcHlPbih0cmFuc2FjdGlvbiwgJ2lzX25ld190cmFuc2FjdGlvbl9yZXF1aXJlZCcpOwog ICB9KTsKIAorICBhZnRlckVhY2goKCkgPT4geworICAgIG5ldHdvcmtNb2NrLnJlc3RvcmUoKTsK KyAgfSk7CisKICAgZGVzY3JpYmUoJyNwb2xsJywgKCkgPT4gewogICAgIGxldCBjYW5jZWxCdXR0 b25TcHk7CiAgICAgbGV0IHJlc3BvbnNlOwpAQCAtNjIsOSArNjcsNiBAQCBkZXNjcmliZSgnRXhl Y3V0ZVF1ZXJ5JywgKCkgPT4gewogICAgICAgZXhlY3V0ZVF1ZXJ5LmRlbGF5ZWRQb2xsID0gamFz bWluZS5jcmVhdGVTcHkoJ0V4ZWN1dGVRdWVyeS5kZWxheWVkUG9sbCcpOwogICAgIH0pOwogCi0g ICAgYWZ0ZXJFYWNoKCgpID0+IHsKLSAgICB9KTsKLQogICAgIGNvbnRleHQoJ3doZW4gU1FMRWRp dG9yIGlzIHRoZSBxdWVyeSB0b29sJywgKCkgPT4gewogICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7 CiAgICAgICAgIHNxbEVkaXRvck1vY2suaXNfcXVlcnlfdG9vbCA9IHRydWU7CkBAIC01NjksOCAr NTcxLDcgQEAgZGVzY3JpYmUoJ0V4ZWN1dGVRdWVyeScsICgpID0+IHsKIAogICAgICAgICAgIGRl c2NyaWJlKCd3aGVuIGNhbm5vdCByZWFjaCB0aGUgUHl0aG9uIFNlcnZlcicsICgpID0+IHsKICAg ICAgICAgICAgIGJlZm9yZUVhY2goKCkgPT4gewotICAgICAgICAgICAgICByZXNwb25zZSA9IHty ZWFkeVN0YXRlOiAwfTsKLSAgICAgICAgICAgICAgbmV0d29ya01vY2sub25HZXQoJy9zcWxlZGl0 b3IvcXVlcnlfdG9vbC9wb2xsLzEyMycpLnJlcGx5KDQwMSwgcmVzcG9uc2UpOworICAgICAgICAg ICAgICBuZXR3b3JrTW9jay5vbkdldCgnL3NxbGVkaXRvci9xdWVyeV90b29sL3BvbGwvMTIzJyku cmVwbHkoNDA0LCB1bmRlZmluZWQpOwogCiAgICAgICAgICAgICAgIGV4ZWN1dGVRdWVyeS5wb2xs KCk7CiAgICAgICAgICAgICB9KTsKQEAgLTk3Miw4ICs5NzMsNyBAQCBkZXNjcmliZSgnRXhlY3V0 ZVF1ZXJ5JywgKCkgPT4gewogCiAgICAgICAgICAgZGVzY3JpYmUoJ3doZW4gY2Fubm90IHJlYWNo IHRoZSBQeXRob24gU2VydmVyJywgKCkgPT4gewogICAgICAgICAgICAgYmVmb3JlRWFjaCgoKSA9 PiB7Ci0gICAgICAgICAgICAgIHJlc3BvbnNlID0ge3JlYWR5U3RhdGU6IDB9OwotICAgICAgICAg ICAgICBuZXR3b3JrTW9jay5vbkdldCgnL3NxbGVkaXRvci9xdWVyeV90b29sL3BvbGwvMTIzJyku cmVwbHkoNDAxLCByZXNwb25zZSk7CisgICAgICAgICAgICAgIG5ldHdvcmtNb2NrLm9uR2V0KCcv c3FsZWRpdG9yL3F1ZXJ5X3Rvb2wvcG9sbC8xMjMnKS5yZXBseSg0MDQsIHVuZGVmaW5lZCk7CiAK ICAgICAgICAgICAgICAgZXhlY3V0ZVF1ZXJ5LnBvbGwoKTsKICAgICAgICAgICAgIH0pOwpAQCAt MTE0Myw5ICsxMTQzLDkgQEAgZGVzY3JpYmUoJ0V4ZWN1dGVRdWVyeScsICgpID0+IHsKICAgICAg IGRlc2NyaWJlKCd3aGVuIEhUVFAgcmV0dXJuIDIwMCcsICgpID0+IHsKICAgICAgICAgZGVzY3Jp YmUoJ3doZW4gYmFja2VuZCBpbmZvcm1zIHRoYXQgcXVlcnkgc3RhcnRlZCBzdWNjZXNzZnVsbHkn LCAoKSA9PiB7CiAgICAgICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7Ci0gICAgICAgICAgICBuZXR3 b3JrTW9jay5vbkFueSgnL3NxbGVkaXRvci9xdWVyeV90b29sL3N0YXJ0LzEyMycpLnJlcGx5KDIw MCwgcmVzcG9uc2UpOworICAgICAgICAgICAgbmV0d29ya01vY2sub25Qb3N0KCcvc3FsZWRpdG9y L3F1ZXJ5X3Rvb2wvc3RhcnQvMTIzP2Nvbm5lY3Q9MScpLnJlcGx5KDIwMCwgcmVzcG9uc2UpOwog ICAgICAgICAgICAgcG9sbFNweSA9IHNweU9uKGV4ZWN1dGVRdWVyeSwgJ2RlbGF5ZWRQb2xsJyk7 Ci0gICAgICAgICAgICBleGVjdXRlUXVlcnkuZXhlY3V0ZSgnc29tZSBzcWwgcXVlcnknLCAnJyk7 CisgICAgICAgICAgICBleGVjdXRlUXVlcnkuZXhlY3V0ZSgnc29tZSBzcWwgcXVlcnknLCAnJywg dHJ1ZSk7CiAgICAgICAgICAgfSk7CiAKICAgICAgICAgICBpdCgnc2hvdWxkIGNoYW5nZXMgdGhl IGxvYWRpbmcgbWVzc2FnZSB0byAiV2FpdGluZyBmb3IgdGhlIHF1ZXJ5IGV4ZWN1dGlvbiB0byBj b21wbGV0ZSInLCAoZG9uZSkgPT4gewpAQCAtMTMxMCwxMCArMTMxMCw3IEBAIGRlc2NyaWJlKCdF eGVjdXRlUXVlcnknLCAoKSA9PiB7CiAKICAgICAgIGRlc2NyaWJlKCd3aGVuIGNhbm5vdCByZWFj aCB0aGUgUHl0aG9uIFNlcnZlcicsICgpID0+IHsKICAgICAgICAgYmVmb3JlRWFjaCgoKSA9PiB7 Ci0gICAgICAgICAgcmVzcG9uc2UgPSB7Ci0gICAgICAgICAgICByZWFkeVN0YXRlOiAwLAotICAg ICAgICAgIH07Ci0gICAgICAgICAgbmV0d29ya01vY2sub25BbnkoJy9zcWxlZGl0b3IvcXVlcnlf dG9vbC9zdGFydC8xMjMnKS5yZXBseSg1MDAsIHJlc3BvbnNlKTsKKyAgICAgICAgICBuZXR3b3Jr TW9jay5vbkFueSgnL3NxbGVkaXRvci9xdWVyeV90b29sL3N0YXJ0LzEyMycpLnJlcGx5KDUwMCwg dW5kZWZpbmVkKTsKIAogCiAgICAgICAgICAgZXhlY3V0ZVF1ZXJ5LmV4ZWN1dGUoJ3NvbWUgc3Fs IHF1ZXJ5JywgJycpOwpAQCAtMTY1Nyw3ICsxNjU0LDMyIEBAIGRlc2NyaWJlKCdFeGVjdXRlUXVl cnknLCAoKSA9PiB7CiAgICAgICAgICAgICB9LCAwKTsKICAgICAgICAgICB9KTsKICAgICAgICAg fSk7CisgICAgICAgIGRlc2NyaWJlKCd3aGVuIGNvbm5lY3Rpb24gdG8gZGF0YWJhc2UgaXMgbG9z dCcsICgpID0+IHsKKyAgICAgICAgICBiZWZvcmVFYWNoKCgpID0+IHsKKyAgICAgICAgICAgIGlz TmV3VHJhbnNhY3Rpb25SZXF1aXJlZE1vY2suYW5kLnJldHVyblZhbHVlKGZhbHNlKTsKKyAgICAg ICAgICAgIHJlc3BvbnNlLmluZm8gPSAnQ09OTkVDVElPTl9MT1NUJzsKKyAgICAgICAgICAgIG5l dHdvcmtNb2NrLm9uQW55KCcvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2wvc3RhcnQvMTIzJykucmVwbHko NTAzLCByZXNwb25zZSk7CisKKyAgICAgICAgICAgIGV4ZWN1dGVRdWVyeS5leGVjdXRlKCdzb21l IHNxbCBxdWVyeScsICcnKTsKKyAgICAgICAgICB9KTsKKworICAgICAgICAgIGl0KCdzYXZlcyBz dGF0ZScsICgpID0+IHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAg ICAgICBleHBlY3Qoc3FsRWRpdG9yTW9jay5zYXZlX3N0YXRlKS50b0hhdmVCZWVuQ2FsbGVkV2l0 aCgKKyAgICAgICAgICAgICAgICAnZXhlY3V0ZScsCisgICAgICAgICAgICAgICAgWycnXQorICAg ICAgICAgICAgICApOworICAgICAgICAgICAgfSwgMCk7CisgICAgICAgICAgfSk7CisKKyAgICAg ICAgICBpdCgnY2FsbHMgaGFuZGxlX2Nvbm5lY3Rpb25fbG9zdCcsICgpID0+IHsKKyAgICAgICAg ICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgICBleHBlY3Qoc3FsRWRpdG9yTW9j ay5oYW5kbGVfY29ubmVjdGlvbl9sb3N0KS50b0hhdmVCZWVuQ2FsbGVkKCk7CisgICAgICAgICAg ICB9LCAwKTsKKyAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CiAgICAgICB9KTsKKwogICAgIH0p OwogICB9KTsKIApkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vamF2YXNjcmlwdC9zcWxlZGl0 b3IvaXNfbmV3X3RyYW5zYWN0aW9uX3JlcXVpcmVkX3NwZWMuanMgYi93ZWIvcmVncmVzc2lvbi9q YXZhc2NyaXB0L3NxbGVkaXRvci9pc19uZXdfdHJhbnNhY3Rpb25fcmVxdWlyZWRfc3BlYy5qcwpp bmRleCBkMzIzNzAwLi45N2QxYmM1IDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9qYXZhc2Ny aXB0L3NxbGVkaXRvci9pc19uZXdfdHJhbnNhY3Rpb25fcmVxdWlyZWRfc3BlYy5qcworKysgYi93 ZWIvcmVncmVzc2lvbi9qYXZhc2NyaXB0L3NxbGVkaXRvci9pc19uZXdfdHJhbnNhY3Rpb25fcmVx dWlyZWRfc3BlYy5qcwpAQCAtMTksNyArMTksNyBAQCBkZXNjcmliZSgnI2lzX25ld190cmFuc2Fj dGlvbl9yZXF1aXJlZCcsICgpID0+IHsKICAgfSk7CiAKICAgZGVzY3JpYmUoJ3doZW4gc3RhdHVz IGlzIDQwNCcsICgpID0+IHsKLSAgICBkZXNjcmliZSgnd2hlbiByZXNwb25zZUpTT04gaXMgbm90 IHByZXNlbnQnLCAoKSA9PiB7CisgICAgZGVzY3JpYmUoJ3doZW4gZGF0YSBpcyBub3QgcHJlc2Vu dCcsICgpID0+IHsKICAgICAgIGl0KCdzaG91bGQgcmV0dXJuIGZhbHNlJywgKCkgPT4gewogICAg ICAgICBleHBlY3QoaXNfbmV3X3RyYW5zYWN0aW9uX3JlcXVpcmVkKHsKICAgICAgICAgICBzdGF0 dXM6IDQwNCwKQEAgLTI3LDIyICsyNywyMiBAQCBkZXNjcmliZSgnI2lzX25ld190cmFuc2FjdGlv bl9yZXF1aXJlZCcsICgpID0+IHsKICAgICAgIH0pOwogICAgIH0pOwogCi0gICAgZGVzY3JpYmUo J3doZW4gcmVzcG9uc2VKU09OIGlzIHByZXNlbnQnLCAoKSA9PiB7Ci0gICAgICBkZXNjcmliZSgn d2hlbiBpbmZvIGlzIG5vdCBwcmVzZW50IGluc2lkZSByZXNwb25zZUpTT04nLCAoKSA9PiB7Cisg ICAgZGVzY3JpYmUoJ3doZW4gZGF0YSBpcyBwcmVzZW50JywgKCkgPT4geworICAgICAgZGVzY3Jp YmUoJ3doZW4gaW5mbyBpcyBub3QgcHJlc2VudCBpbnNpZGUgZGF0YScsICgpID0+IHsKICAgICAg ICAgaXQoJ3Nob3VsZCByZXR1cm4gZmFsc2UnLCAoKSA9PiB7CiAgICAgICAgICAgZXhwZWN0KGlz X25ld190cmFuc2FjdGlvbl9yZXF1aXJlZCh7CiAgICAgICAgICAgICBzdGF0dXM6IDQwNCwKLSAg ICAgICAgICAgIHJlc3BvbnNlSlNPTjoge30sCisgICAgICAgICAgICBkYXRhOiB7fSwKICAgICAg ICAgICB9KSkudG9CZUZhbHN5KCk7CiAgICAgICAgIH0pOwogICAgICAgfSk7CiAKLSAgICAgIGRl c2NyaWJlKCd3aGVuIGluZm8gaXMgcHJlc2VudCBpbnNpZGUgcmVzcG9uc2VKU09OJywgKCkgPT4g eworICAgICAgZGVzY3JpYmUoJ3doZW4gaW5mbyBpcyBwcmVzZW50IGluc2lkZSBkYXRhJywgKCkg PT4gewogICAgICAgICBkZXNjcmliZSgnd2hlbiBpbmZvIHZhbHVlIGlzIG5vdCAiREFUQUdSSURf VFJBTlNBQ1RJT05fUkVRVUlSRUQiJywgKCkgPT4gewogICAgICAgICAgIGl0KCdzaG91bGQgcmV0 dXJuIGZhbHNlJywgKCkgPT4gewogICAgICAgICAgICAgZXhwZWN0KGlzX25ld190cmFuc2FjdGlv bl9yZXF1aXJlZCh7CiAgICAgICAgICAgICAgIHN0YXR1czogNDA0LAotICAgICAgICAgICAgICBy ZXNwb25zZUpTT046IHsKKyAgICAgICAgICAgICAgZGF0YTogewogICAgICAgICAgICAgICAgIGlu Zm86ICdzb21lIGluZm9ybWF0aW9uJywKICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgIH0p KS50b0JlKGZhbHNlKTsKQEAgLTUzLDcgKzUzLDcgQEAgZGVzY3JpYmUoJyNpc19uZXdfdHJhbnNh Y3Rpb25fcmVxdWlyZWQnLCAoKSA9PiB7CiAgICAgICAgICAgaXQoJ3Nob3VsZCByZXR1cm4gZmFs c2UnLCAoKSA9PiB7CiAgICAgICAgICAgICBleHBlY3QoaXNfbmV3X3RyYW5zYWN0aW9uX3JlcXVp cmVkKHsKICAgICAgICAgICAgICAgc3RhdHVzOiA0MDQsCi0gICAgICAgICAgICAgIHJlc3BvbnNl SlNPTjogeworICAgICAgICAgICAgICBkYXRhOiB7CiAgICAgICAgICAgICAgICAgaW5mbzogJ0RB VEFHUklEX1RSQU5TQUNUSU9OX1JFUVVJUkVEJywKICAgICAgICAgICAgICAgfSwKICAgICAgICAg ICAgIH0pKS50b0JlKHRydWUpOwo= --001a11403d8ce0937f0567e71f18--