(This page was automatically generated by the tools in the opsboy project on 03:17:23 31-May-2022 GMT.)

Commit | Testing Time | Unexpected Failures |
Expected Failures |
Files | Tests | Elapsed Time |
---|---|---|---|---|---|---|

973629fd | 2020-10-29 15:50:15 GMT | 530 | 85 | 78 | 8890 | 4598 sec |

File | Name | Details |
---|---|---|

balancer-timeout.t | TEST 3: set_timeouts (nil send timeout) - grep_error_log_out (req 0) |
'event timer add: 9: 1234: event timer add: 9: 5678: event timer add: 9: 7689: event timer add: 9: 7689: ' doesn't match '(?^:\Aevent timer add: \d+: 1234: event timer add: \d+: 5678: event timer add: \d+: 7689: \z)' |

balancer-timeout.t | TEST 3: set_timeouts (nil send timeout) - grep_error_log_out (req 1) |
'event timer add: 9: 1234: event timer add: 9: 5678: event timer add: 9: 7689: event timer add: 9: 7689: ' doesn't match '(?^:\Aevent timer add: \d+: 1234: event timer add: \d+: 5678: event timer add: \d+: 7689: \z)' |

balancer-timeout.t | TEST 2: set_timeouts (nil connect timeout) - grep_error_log_out (req 0) |
'event timer add: 9: 1234: event timer add: 9: 5678: event timer add: 9: 7689: event timer add: 9: 7689: ' doesn't match '(?^:\Aevent timer add: \d+: 1234: event timer add: \d+: 5678: event timer add: \d+: 7689: \z)' |

balancer-timeout.t | TEST 2: set_timeouts (nil connect timeout) - grep_error_log_out (req 1) |
'event timer add: 9: 1234: event timer add: 9: 5678: event timer add: 9: 7689: event timer add: 9: 7689: ' doesn't match '(?^:\Aevent timer add: \d+: 1234: event timer add: \d+: 5678: event timer add: \d+: 7689: \z)' |

balancer-timeout.t | TEST 1: set_timeouts - grep_error_log_out (req 0) |
'event timer add: 9: 1234: event timer add: 9: 5678: event timer add: 9: 7689: event timer add: 9: 7689: ' doesn't match '(?^:\Aevent timer add: \d+: 1234: event timer add: \d+: 5678: event timer add: \d+: 7689: \z)' |

balancer-timeout.t | TEST 1: set_timeouts - grep_error_log_out (req 1) |
'event timer add: 9: 1234: event timer add: 9: 5678: event timer add: 9: 7689: event timer add: 9: 7689: ' doesn't match '(?^:\Aevent timer add: \d+: 1234: event timer add: \d+: 5678: event timer add: \d+: 7689: \z)' |

balancer-timeout.t | TEST 4: set_timeouts (nil read timeout) - grep_error_log_out (req 0) |
'event timer add: 9: 1234: event timer add: 9: 5678: event timer add: 9: 7689: event timer add: 9: 7689: ' doesn't match '(?^:\Aevent timer add: \d+: 1234: event timer add: \d+: 5678: event timer add: \d+: 7689: \z)' |

balancer-timeout.t | TEST 4: set_timeouts (nil read timeout) - grep_error_log_out (req 1) |
'event timer add: 9: 1234: event timer add: 9: 5678: event timer add: 9: 7689: event timer add: 9: 7689: ' doesn't match '(?^:\Aevent timer add: \d+: 1234: event timer add: \d+: 5678: event timer add: \d+: 7689: \z)' |

balancer.t | TEST 17: https (no keepalive) |
' |

balancer.t | TEST 17: https (no keepalive) - status code ok |
got: '' expected: '200' |

balancer.t | TEST 17: https (no keepalive) - response_body - response is expected (repeated req 0, req 0) |
got: '' expected: 'ok' |

balancer.t | TEST 17: https (no keepalive) |
' |

balancer.t | TEST 17: https (no keepalive) - status code ok |
got: '' expected: '200' |

balancer.t | TEST 17: https (no keepalive) - response_body - response is expected (repeated req 1, req 0) |
got: '' expected: 'ok' |

balancer.t | TEST 16: https (keepalive) |
' |

balancer.t | TEST 16: https (keepalive) - status code ok |
got: '' expected: '200' |

balancer.t | TEST 16: https (keepalive) - response_body - response is expected (repeated req 0, req 0) |
got: '' expected: 'ok' |

balancer.t | TEST 16: https (keepalive) |
' |

balancer.t | TEST 16: https (keepalive) - status code ok |
got: '' expected: '200' |

balancer.t | TEST 16: https (keepalive) - response_body - response is expected (repeated req 1, req 0) |
got: '' expected: 'ok' |

ctx.t | TEST 11: overwrite values will only take affect in the current http request |
' |

ctx.t | TEST 11: overwrite values will only take affect in the current http request - status code ok |
got: '' expected: '200' |

ctx.t | TEST 11: overwrite values will only take affect in the current http request - response_body - response is expected (repeated req 0, req 0) |
got: "" length: 0 expected: "received: 0\x{0a}received: 0\x{0a}" length: 24 strings begin to differ at char 1 (line 1 column 1) |

ctx.t | TEST 11: overwrite values will only take affect in the current http request |
' |

ctx.t | TEST 11: overwrite values will only take affect in the current http request - status code ok |
got: '' expected: '200' |

ctx.t | TEST 11: overwrite values will only take affect in the current http request - response_body - response is expected (repeated req 1, req 0) |
got: "" length: 0 expected: "received: 0\x{0a}received: 0\x{0a}" length: 24 strings begin to differ at char 1 (line 1 column 1) |

ctx.t | TEST 8: ngx.ctx in ssl_session_fetch_by_lua |
' |

ctx.t | TEST 8: ngx.ctx in ssl_session_fetch_by_lua - status code ok |
got: '' expected: '200' |

ctx.t | TEST 8: ngx.ctx in ssl_session_fetch_by_lua |
' |

ctx.t | TEST 8: ngx.ctx in ssl_session_fetch_by_lua - status code ok |
got: '' expected: '200' |

ctx.t | TEST 8: ngx.ctx in ssl_session_fetch_by_lua - grep_error_log_out (req 1) |
got: "" length: 0 expected: "lua release ngx.ctx at ref 2\x{0a}received: 42\x{0a}received"... length: 137 strings begin to differ at char 1 (line 1 column 1) |

ctx.t | TEST 7: ngx.ctx in ssl_session_store_by_lua (release ctx when client aborted) |
' |

ctx.t | TEST 7: ngx.ctx in ssl_session_store_by_lua (release ctx when client aborted) - status code ok |
got: '' expected: '200' |

ctx.t | TEST 7: ngx.ctx in ssl_session_store_by_lua (release ctx when client aborted) - response_body - response is expected (repeated req 0, req 0) |
got: "" length: 0 expected: "closed\x{0a}" length: 7 strings begin to differ at char 1 (line 1 column 1) |

ctx.t | TEST 7: ngx.ctx in ssl_session_store_by_lua (release ctx when client aborted) - grep_error_log_out (req 0) |
got: "" length: 0 expected: "lua release ngx.ctx at ref 1\x{0a}" length: 29 strings begin to differ at char 1 (line 1 column 1) |

ctx.t | TEST 7: ngx.ctx in ssl_session_store_by_lua (release ctx when client aborted) - grep_error_log_out (req 1) |
got: "lua release ngx.ctx at ref 1\x{0a}" length: 29 expected: ..." at ref 1\x{0a}lua release ngx.ctx at ref 1\x{0a}"... length: 58 strings begin to differ at char 30 (line 2 column 1) |

ctx.t | TEST 3: ngx.ctx in ssl_certificate_by_lua |
' |

ctx.t | TEST 3: ngx.ctx in ssl_certificate_by_lua - status code ok |
got: '' expected: '200' |

ctx.t | TEST 3: ngx.ctx in ssl_certificate_by_lua - response_body - response is expected (repeated req 0, req 0) |
got: "" length: 0 expected: "received: 42\x{0a}received: 1\x{0a}received: 42\x{0a}received: 1\x{0a}" length: 50 strings begin to differ at char 1 (line 1 column 1) |

ctx.t | TEST 3: ngx.ctx in ssl_certificate_by_lua - grep_error_log_out (req 0) |
got: "" length: 0 expected: "lua release ngx.ctx at ref 2\x{0a}lua release ngx.ctx a"... length: 87 strings begin to differ at char 1 (line 1 column 1) |

ctx.t | TEST 3: ngx.ctx in ssl_certificate_by_lua |
' |

ctx.t | TEST 3: ngx.ctx in ssl_certificate_by_lua - status code ok |
got: '' expected: '200' |

ctx.t | TEST 3: ngx.ctx in ssl_certificate_by_lua - response_body - response is expected (repeated req 1, req 0) |
got: "" length: 0 expected: "received: 42\x{0a}received: 1\x{0a}received: 42\x{0a}received: 1\x{0a}" length: 50 strings begin to differ at char 1 (line 1 column 1) |

ctx.t | TEST 3: ngx.ctx in ssl_certificate_by_lua - grep_error_log_out (req 1) |
got: "lua release ngx.ctx at ref 1\x{0a}" length: 29 expected: ..."tx at ref 2\x{0a}lua release ngx.ctx at ref 2\x{0a}lua relea"... length: 174 strings begin to differ at char 28 (line 1 column 28) |

ctx.t | TEST 4: ngx.ctx in ssl_certificate_by_lua (share objects) |
' |

ctx.t | TEST 4: ngx.ctx in ssl_certificate_by_lua (share objects) - status code ok |
got: '' expected: '200' |

ctx.t | TEST 4: ngx.ctx in ssl_certificate_by_lua (share objects) - response_body - response is expected (repeated req 0, req 0) |
got: "" length: 0 expected: "received: 1\x{0a}received: 2\x{0a}" length: 24 strings begin to differ at char 1 (line 1 column 1) |

ctx.t | TEST 4: ngx.ctx in ssl_certificate_by_lua (share objects) |
' |

ctx.t | TEST 4: ngx.ctx in ssl_certificate_by_lua (share objects) - status code ok |
got: '' expected: '200' |

ctx.t | TEST 4: ngx.ctx in ssl_certificate_by_lua (share objects) - response_body - response is expected (repeated req 1, req 0) |
got: "" length: 0 expected: "received: 1\x{0a}received: 2\x{0a}" length: 24 strings begin to differ at char 1 (line 1 column 1) |

ctx.t | TEST 9: ngx.ctx in ssl_session_fetch_by_lua (release ctx when client aborted) |
' |

ctx.t | TEST 9: ngx.ctx in ssl_session_fetch_by_lua (release ctx when client aborted) - status code ok |
got: '' expected: '200' |

ctx.t | TEST 9: ngx.ctx in ssl_session_fetch_by_lua (release ctx when client aborted) - response_body - response is expected (repeated req 0, req 0) |
got: "" length: 0 expected: "closed\x{0a}" length: 7 strings begin to differ at char 1 (line 1 column 1) |

ctx.t | TEST 9: ngx.ctx in ssl_session_fetch_by_lua (release ctx when client aborted) - grep_error_log_out (req 1) |
got: "" length: 0 expected: "lua release ngx.ctx at ref 1\x{0a}" length: 29 strings begin to differ at char 1 (line 1 column 1) |

ctx.t | TEST 10: ngx.ctx in ssl* and other phases |
' |

ctx.t | TEST 10: ngx.ctx in ssl* and other phases - status code ok |
got: '' expected: '200' |

ctx.t | TEST 10: ngx.ctx in ssl* and other phases - grep_error_log_out (req 0) |
got: "" length: 0 expected: "lua release ngx.ctx at ref 2\x{0a}received: 102\x{0a}lua rel"... length: 115 strings begin to differ at char 1 (line 1 column 1) |

ctx.t | TEST 10: ngx.ctx in ssl* and other phases |
' |

ctx.t | TEST 10: ngx.ctx in ssl* and other phases - status code ok |
got: '' expected: '200' |

ctx.t | TEST 10: ngx.ctx in ssl* and other phases - grep_error_log_out (req 1) |
got: "lua release ngx.ctx at ref 1\x{0a}" length: 29 expected: ..."tx at ref 2\x{0a}received: 102\x{0a}lua release ngx.ctx at r"... length: 230 strings begin to differ at char 28 (line 1 column 28) |

ctx.t | TEST 6: ngx.ctx in ssl_session_store_by_lua |
' |

ctx.t | TEST 6: ngx.ctx in ssl_session_store_by_lua - status code ok |
got: '' expected: '200' |

ctx.t | TEST 6: ngx.ctx in ssl_session_store_by_lua - response_body - response is expected (repeated req 0, req 0) |
got: "" length: 0 expected: "received: 42\x{0a}received: 1\x{0a}received: 42\x{0a}received: 1\x{0a}" length: 50 strings begin to differ at char 1 (line 1 column 1) |

ctx.t | TEST 6: ngx.ctx in ssl_session_store_by_lua - grep_error_log_out (req 0) |
got: "" length: 0 expected: "lua release ngx.ctx at ref 2\x{0a}lua release ngx.ctx a"... length: 87 strings begin to differ at char 1 (line 1 column 1) |

ctx.t | TEST 6: ngx.ctx in ssl_session_store_by_lua - pattern "ngx.ctx.answer = 42" should match a line in error.log (req 0) | |

ctx.t | TEST 6: ngx.ctx in ssl_session_store_by_lua |
' |

ctx.t | TEST 6: ngx.ctx in ssl_session_store_by_lua - status code ok |
got: '' expected: '200' |

ctx.t | TEST 6: ngx.ctx in ssl_session_store_by_lua - response_body - response is expected (repeated req 1, req 0) |
got: "" length: 0 expected: "received: 42\x{0a}received: 1\x{0a}received: 42\x{0a}received: 1\x{0a}" length: 50 strings begin to differ at char 1 (line 1 column 1) |

ctx.t | TEST 6: ngx.ctx in ssl_session_store_by_lua - grep_error_log_out (req 1) |
got: "" length: 0 expected: "lua release ngx.ctx at ref 2\x{0a}lua release ngx.ctx a"... length: 174 strings begin to differ at char 1 (line 1 column 1) |

ocsp.t | TEST 7: create OCSP request (buffer too small) |
' |

ocsp.t | TEST 7: create OCSP request (buffer too small) - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 7: create OCSP request (buffer too small) - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 7: create OCSP request (buffer too small) |
' |

ocsp.t | TEST 7: create OCSP request (buffer too small) - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 7: create OCSP request (buffer too small) - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 2: get OCSP responder (not found) |
' |

ocsp.t | TEST 2: get OCSP responder (not found) - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 2: get OCSP responder (not found) - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 2: get OCSP responder (not found) |
' |

ocsp.t | TEST 2: get OCSP responder (not found) - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 2: get OCSP responder (not found) - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 9: create OCSP request (no issuer cert in the chain) |
' |

ocsp.t | TEST 9: create OCSP request (no issuer cert in the chain) - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 9: create OCSP request (no issuer cert in the chain) - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 9: create OCSP request (no issuer cert in the chain) |
' |

ocsp.t | TEST 9: create OCSP request (no issuer cert in the chain) - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 9: create OCSP request (no issuer cert in the chain) - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 17: no status req from client |
' |

ocsp.t | TEST 17: no status req from client - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 17: no status req from client - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 17: no status req from client |
' |

ocsp.t | TEST 17: no status req from client - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 17: no status req from client - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 6: create OCSP request (good) |
' |

ocsp.t | TEST 6: create OCSP request (good) - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 6: create OCSP request (good) - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 6: create OCSP request (good) |
' |

ocsp.t | TEST 6: create OCSP request (good) - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 6: create OCSP request (good) - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 1: get OCSP responder (good case) |
' |

ocsp.t | TEST 1: get OCSP responder (good case) - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 1: get OCSP responder (good case) - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 1: get OCSP responder (good case) |
' |

ocsp.t | TEST 1: get OCSP responder (good case) - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 1: get OCSP responder (good case) - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 14: fail to validate OCSP response - OCSP response signed by an unknown cert and the OCSP response does not contain the unknown cert |
' |

ocsp.t | TEST 14: fail to validate OCSP response - OCSP response signed by an unknown cert and the OCSP response does not contain the unknown cert - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 14: fail to validate OCSP response - OCSP response signed by an unknown cert and the OCSP response does not contain the unknown cert - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 14: fail to validate OCSP response - OCSP response signed by an unknown cert and the OCSP response does not contain the unknown cert |
' |

ocsp.t | TEST 14: fail to validate OCSP response - OCSP response signed by an unknown cert and the OCSP response does not contain the unknown cert - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 14: fail to validate OCSP response - OCSP response signed by an unknown cert and the OCSP response does not contain the unknown cert - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 13: validate OCSP response - OCSP response signed by an unknown cert and the OCSP response contains the unknown cert |
' |

ocsp.t | TEST 13: validate OCSP response - OCSP response signed by an unknown cert and the OCSP response contains the unknown cert - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 13: validate OCSP response - OCSP response signed by an unknown cert and the OCSP response contains the unknown cert - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 13: validate OCSP response - OCSP response signed by an unknown cert and the OCSP response contains the unknown cert |
' |

ocsp.t | TEST 13: validate OCSP response - OCSP response signed by an unknown cert and the OCSP response contains the unknown cert - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 13: validate OCSP response - OCSP response signed by an unknown cert and the OCSP response contains the unknown cert - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 4: get OCSP responder (issuer cert not next to the leaf cert) |
' |

ocsp.t | TEST 4: get OCSP responder (issuer cert not next to the leaf cert) - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 4: get OCSP responder (issuer cert not next to the leaf cert) - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 4: get OCSP responder (issuer cert not next to the leaf cert) |
' |

ocsp.t | TEST 4: get OCSP responder (issuer cert not next to the leaf cert) - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 4: get OCSP responder (issuer cert not next to the leaf cert) - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 11: fail to validate OCSP response - no issuer cert |
' |

ocsp.t | TEST 11: fail to validate OCSP response - no issuer cert - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 11: fail to validate OCSP response - no issuer cert - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 11: fail to validate OCSP response - no issuer cert |
' |

ocsp.t | TEST 11: fail to validate OCSP response - no issuer cert - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 11: fail to validate OCSP response - no issuer cert - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 3: get OCSP responder (no issuer cert at all) |
' |

ocsp.t | TEST 3: get OCSP responder (no issuer cert at all) - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 3: get OCSP responder (no issuer cert at all) - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 3: get OCSP responder (no issuer cert at all) |
' |

ocsp.t | TEST 3: get OCSP responder (no issuer cert at all) - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 3: get OCSP responder (no issuer cert at all) - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 5: get OCSP responder (truncated) |
' |

ocsp.t | TEST 5: get OCSP responder (truncated) - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 5: get OCSP responder (truncated) - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 5: get OCSP responder (truncated) |
' |

ocsp.t | TEST 5: get OCSP responder (truncated) - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 5: get OCSP responder (truncated) - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 16: good status req from client |
' |

ocsp.t | TEST 16: good status req from client - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 16: good status req from client - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 16: good status req from client |
' |

ocsp.t | TEST 16: good status req from client - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 16: good status req from client - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 10: validate good OCSP response |
' |

ocsp.t | TEST 10: validate good OCSP response - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 10: validate good OCSP response - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 10: validate good OCSP response |
' |

ocsp.t | TEST 10: validate good OCSP response - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 10: validate good OCSP response - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 12: validate good OCSP response - no certs in response |
' |

ocsp.t | TEST 12: validate good OCSP response - no certs in response - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 12: validate good OCSP response - no certs in response - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

ocsp.t | TEST 12: validate good OCSP response - no certs in response |
' |

ocsp.t | TEST 12: validate good OCSP response - no certs in response - status code ok |
got: '' expected: '200' |

ocsp.t | TEST 12: validate good OCSP response - no certs in response - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: userdata ' |

pipe-stderr.t | TEST 23: read stderr, aborted by uthread kill, with graceful shutdown - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +1,2 @@ -stdout: ok +stdout err: timeout stderr err: closed ' |

pipe-stderr.t | TEST 12: read stderr, without yield, pattern is read any - response_body - response is expected (repeated req 1, req 0) |
got: 'h ' expected: 'helloworld ' |

pipe-stderr.t | TEST 13: read stderr, mix read pattern and stdout/stderr - response_body - response is expected (repeated req 1, req 0) |
@@ -1,9 +1,9 @@ reading any -world -more +w reading 3 -dat +orl reading line -a +d reading all +moredata data ' |

pipe-stdin.t | TEST 11: write process, aborted by uthread kill, with graceful shutdown - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +1,2 @@ -stdout: ok +stdout err: timeout -stderr err: closed +stderr err: timeout ' |

pipe-stdin.t | TEST 11: write process, aborted by uthread kill, with graceful shutdown - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +1,2 @@ -stdout: ok +stdout err: timeout -stderr err: closed +stderr err: timeout ' |

pipe-stdout.t | TEST 17: read process, without yield, read more data than preallocated buffer |
' |

pipe-stdout.t | TEST 17: read process, without yield, read more data than preallocated buffer - status code ok |
got: '' expected: '200' |

pipe-stdout.t | TEST 17: read process, without yield, read more data than preallocated buffer - response_body - response is expected (repeated req 1, req 0) |
got: '' expected: 'ok ' |

pipe-stdout.t | TEST 20: read process, with yield, read more partial data than preallocated buffer |
' |

pipe-stdout.t | TEST 20: read process, with yield, read more partial data than preallocated buffer - status code ok |
got: '' expected: '200' |

pipe-stdout.t | TEST 20: read process, with yield, read more partial data than preallocated buffer - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -closed -ok ' |

pipe-stdout.t | TEST 20: read process, with yield, read more partial data than preallocated buffer |
' |

pipe-stdout.t | TEST 20: read process, with yield, read more partial data than preallocated buffer - status code ok |
got: '' expected: '200' |

pipe-stdout.t | TEST 20: read process, with yield, read more partial data than preallocated buffer - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -closed -ok ' |

pipe-stdout.t | TEST 19: read process, with yield, read more data than preallocated buffer |
' |

pipe-stdout.t | TEST 19: read process, with yield, read more data than preallocated buffer - status code ok |
got: '' expected: '200' |

pipe-stdout.t | TEST 19: read process, with yield, read more data than preallocated buffer - response_body - response is expected (repeated req 0, req 0) |
got: '' expected: 'ok ' |

pipe-stdout.t | TEST 19: read process, with yield, read more data than preallocated buffer |
' |

pipe-stdout.t | TEST 19: read process, with yield, read more data than preallocated buffer - status code ok |
got: '' expected: '200' |

pipe-stdout.t | TEST 19: read process, with yield, read more data than preallocated buffer - response_body - response is expected (repeated req 1, req 0) |
got: '' expected: 'ok ' |

pipe-stdout.t | TEST 18: read process, without yield, read more partial data than preallocated buffer |
' |

pipe-stdout.t | TEST 18: read process, without yield, read more partial data than preallocated buffer - status code ok |
got: '' expected: '200' |

pipe-stdout.t | TEST 18: read process, without yield, read more partial data than preallocated buffer - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -closed -ok ' |

pipe-stdout.t | TEST 16: read process, without yield, pattern is read any - response_body - response is expected (repeated req 1, req 0) |
got: 'h ' expected: 'helloworld ' |

pipe.t | TEST 44: wait process, aborted by uthread kill, with graceful shutdown - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +1,2 @@ -stdout: ok +stdout err: timeout stderr err: closed ' |

re-sub.t | TEST 5: replace template + submatches (exceeding buffers) |
' |

re-sub.t | TEST 5: replace template + submatches (exceeding buffers) - status code ok |
got: '' expected: '200' |

re-sub.t | TEST 5: replace template + submatches (exceeding buffers) |
' |

re-sub.t | TEST 5: replace template + submatches (exceeding buffers) - status code ok |
got: '' expected: '200' |

semaphore.t | TEST 36: basic semaphore_mm free insert head |
' |

semaphore.t | TEST 36: basic semaphore_mm free insert head - status code ok |
got: '' expected: '200' |

semaphore.t | TEST 36: basic semaphore_mm free insert head - response_body - response is expected (repeated req 0, req 0) |
got: '' expected: 'ok ' |

semaphore.t | TEST 36: basic semaphore_mm free insert head - pattern "add to free queue head" should match a line in error.log (req 0) | |

semaphore.t | TEST 35: basic semaphore_mm free insert tail |
' |

semaphore.t | TEST 35: basic semaphore_mm free insert tail - status code ok |
got: '' expected: '200' |

semaphore.t | TEST 35: basic semaphore_mm free insert tail - response_body - response is expected (repeated req 0, req 0) |
got: '' expected: 'ok ' |

semaphore.t | TEST 35: basic semaphore_mm free insert tail - pattern "add to free queue tail" should match a line in error.log (req 0) | |

shdict.t | TEST 49: init_ttl uses long type to avoid overflow in incr() + ttl() - response_body - response is expected (repeated req 0, req 0) |
got: 'ttl: 0 ' expected: 'ttl: 2147483648 ' |

shdict.t | TEST 49: init_ttl uses long type to avoid overflow in incr() + ttl() - response_body - response is expected (repeated req 1, req 0) |
got: 'ttl: 0 ' expected: 'ttl: 2147483648 ' |

shdict.t | TEST 48: exptime uses long type to avoid overflow in expire() + ttl() - response_body - response is expected (repeated req 0, req 0) |
got: 'ttl: 0 ' expected: 'ttl: 2147483648 ' |

shdict.t | TEST 48: exptime uses long type to avoid overflow in expire() + ttl() - response_body - response is expected (repeated req 1, req 0) |
got: 'ttl: 0 ' expected: 'ttl: 2147483648 ' |

shdict.t | TEST 47: exptime uses long type to avoid overflow in set() + ttl() - response_body - response is expected (repeated req 0, req 0) |
got: 'ttl: 0 ' expected: 'ttl: 2147483648 ' |

shdict.t | TEST 47: exptime uses long type to avoid overflow in set() + ttl() - response_body - response is expected (repeated req 1, req 0) |
got: 'ttl: 0 ' expected: 'ttl: 2147483648 ' |

ssl-session-fetch.t | TEST 4: attempt to resume a corrupted session |
' |

ssl-session-fetch.t | TEST 4: attempt to resume a corrupted session - status code ok |
got: '' expected: '200' |

ssl-session-fetch.t | TEST 4: attempt to resume a corrupted session - response_body - response is expected (repeated req 0, req 0) |
@@ -1,3 +0,0 @@ -connected: 1 -ssl handshake: userdata -close: 1 nil ' |

ssl-session-fetch.t | TEST 4: attempt to resume a corrupted session |
' |

ssl-session-fetch.t | TEST 4: attempt to resume a corrupted session - status code ok |
got: '' expected: '200' |

ssl-session-fetch.t | TEST 4: attempt to resume a corrupted session - response_body - response is expected (repeated req 1, req 0) |
@@ -1,3 +0,0 @@ -connected: 1 -ssl handshake: userdata -close: 1 nil ' |

ssl-session-fetch.t | TEST 3: store new session, and resume it |
' |

ssl-session-fetch.t | TEST 3: store new session, and resume it - status code ok |
got: '' expected: '200' |

ssl-session-fetch.t | TEST 3: store new session, and resume it - response_body - response is expected (repeated req 0, req 0) |
@@ -1,3 +0,0 @@ -connected: 1 -ssl handshake: userdata -close: 1 nil ' |

ssl-session-fetch.t | TEST 3: store new session, and resume it |
' |

ssl-session-fetch.t | TEST 3: store new session, and resume it - status code ok |
got: '' expected: '200' |

ssl-session-fetch.t | TEST 3: store new session, and resume it - response_body - response is expected (repeated req 1, req 0) |
@@ -1,3 +0,0 @@ -connected: 1 -ssl handshake: userdata -close: 1 nil ' |

ssl-session-fetch.t | TEST 6: store new session, and resume it, avoid memory leak when calling repeatly |
' |

ssl-session-fetch.t | TEST 6: store new session, and resume it, avoid memory leak when calling repeatly - status code ok |
got: '' expected: '200' |

ssl-session-fetch.t | TEST 6: store new session, and resume it, avoid memory leak when calling repeatly - response_body - response is expected (repeated req 0, req 0) |
@@ -1,3 +0,0 @@ -connected: 1 -ssl handshake: userdata -close: 1 nil ' |

ssl-session-fetch.t | TEST 6: store new session, and resume it, avoid memory leak when calling repeatly |
' |

ssl-session-fetch.t | TEST 6: store new session, and resume it, avoid memory leak when calling repeatly - status code ok |
got: '' expected: '200' |

ssl-session-fetch.t | TEST 6: store new session, and resume it, avoid memory leak when calling repeatly - response_body - response is expected (repeated req 1, req 0) |
@@ -1,3 +0,0 @@ -connected: 1 -ssl handshake: userdata -close: 1 nil ' |

ssl-session-fetch.t | TEST 2: attempt to fetch new session in lua_ctx during resumption. |
' |

ssl-session-fetch.t | TEST 2: attempt to fetch new session in lua_ctx during resumption. - status code ok |
got: '' expected: '200' |

ssl-session-fetch.t | TEST 2: attempt to fetch new session in lua_ctx during resumption. - response_body - response is expected (repeated req 0, req 0) |
@@ -1,3 +0,0 @@ -connected: 1 -ssl handshake: userdata -close: 1 nil ' |

ssl-session-fetch.t | TEST 2: attempt to fetch new session in lua_ctx during resumption. |
' |

ssl-session-fetch.t | TEST 2: attempt to fetch new session in lua_ctx during resumption. - status code ok |
got: '' expected: '200' |

ssl-session-fetch.t | TEST 2: attempt to fetch new session in lua_ctx during resumption. - response_body - response is expected (repeated req 1, req 0) |
@@ -1,3 +0,0 @@ -connected: 1 -ssl handshake: userdata -close: 1 nil ' |

ssl-session-fetch.t | TEST 1: get resume session id serialized |
' |

ssl-session-fetch.t | TEST 1: get resume session id serialized - status code ok |
got: '' expected: '200' |

ssl-session-fetch.t | TEST 1: get resume session id serialized - response_body - response is expected (repeated req 0, req 0) |
@@ -1,3 +0,0 @@ -connected: 1 -ssl handshake: userdata -close: 1 nil ' |

ssl-session-fetch.t | TEST 1: get resume session id serialized |
' |

ssl-session-fetch.t | TEST 1: get resume session id serialized - status code ok |
got: '' expected: '200' |

ssl-session-fetch.t | TEST 1: get resume session id serialized - response_body - response is expected (repeated req 1, req 0) |
@@ -1,3 +0,0 @@ -connected: 1 -ssl handshake: userdata -close: 1 nil ' |

ssl-session-store.t | TEST 2: get new session id serialized |
' |

ssl-session-store.t | TEST 2: get new session id serialized - status code ok |
got: '' expected: '200' |

ssl-session-store.t | TEST 2: get new session id serialized - response_body - response is expected (repeated req 0, req 0) |
@@ -1,3 +0,0 @@ -connected: 1 -ssl handshake: userdata -close: 1 nil ' |

ssl-session-store.t | TEST 2: get new session id serialized |
' |

ssl-session-store.t | TEST 2: get new session id serialized - status code ok |
got: '' expected: '200' |

ssl-session-store.t | TEST 2: get new session id serialized - response_body - response is expected (repeated req 1, req 0) |
@@ -1,3 +0,0 @@ -connected: 1 -ssl handshake: userdata -close: 1 nil ' |

ssl-session-store.t | TEST 1: get new session serialized |
' |

ssl-session-store.t | TEST 1: get new session serialized - status code ok |
got: '' expected: '200' |

ssl-session-store.t | TEST 1: get new session serialized - response_body - response is expected (repeated req 0, req 0) |
@@ -1,3 +0,0 @@ -connected: 1 -ssl handshake: userdata -close: 1 nil ' |

ssl-session-store.t | TEST 1: get new session serialized |
' |

ssl-session-store.t | TEST 1: get new session serialized - status code ok |
got: '' expected: '200' |

ssl-session-store.t | TEST 1: get new session serialized - response_body - response is expected (repeated req 1, req 0) |
@@ -1,3 +0,0 @@ -connected: 1 -ssl handshake: userdata -close: 1 nil ' |

ssl-session-store.t | TEST 3: store the session via timer to memcached |
' |

ssl-session-store.t | TEST 3: store the session via timer to memcached - status code ok |
got: '' expected: '200' |

ssl-session-store.t | TEST 3: store the session via timer to memcached - response_body - response is expected (repeated req 0, req 0) |
@@ -1,3 +0,0 @@ -connected: 1 -ssl handshake: userdata -close: 1 nil ' |

ssl.t | TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) |
' |

ssl.t | TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) - status code ok |
got: '' expected: '200' |

ssl.t | TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) - response_body - response is expected (repeated req 0, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) |
' |

ssl.t | TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) - status code ok |
got: '' expected: '200' |

ssl.t | TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) - response_body - response is expected (repeated req 1, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 11: tls version - TLSv1 |
' |

ssl.t | TEST 11: tls version - TLSv1 - status code ok |
got: '' expected: '200' |

ssl.t | TEST 11: tls version - TLSv1 - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

ssl.t | TEST 11: tls version - TLSv1 |
' |

ssl.t | TEST 11: tls version - TLSv1 - status code ok |
got: '' expected: '200' |

ssl.t | TEST 11: tls version - TLSv1 - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

ssl.t | TEST 20: read client addr via ssl.raw_client_addr() |
' |

ssl.t | TEST 20: read client addr via ssl.raw_client_addr() - status code ok |
got: '' expected: '200' |

ssl.t | TEST 20: read client addr via ssl.raw_client_addr() - response_body - response is expected (repeated req 0, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 20: read client addr via ssl.raw_client_addr() |
' |

ssl.t | TEST 20: read client addr via ssl.raw_client_addr() - status code ok |
got: '' expected: '200' |

ssl.t | TEST 20: read client addr via ssl.raw_client_addr() - response_body - response is expected (repeated req 1, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 16: parse PEM cert and key to cdata |
' |

ssl.t | TEST 16: parse PEM cert and key to cdata - status code ok |
got: '' expected: '200' |

ssl.t | TEST 16: parse PEM cert and key to cdata - response_body - response is expected (repeated req 0, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 16: parse PEM cert and key to cdata |
' |

ssl.t | TEST 16: parse PEM cert and key to cdata - status code ok |
got: '' expected: '200' |

ssl.t | TEST 16: parse PEM cert and key to cdata - response_body - response is expected (repeated req 1, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 8: set DER cert chain |
' |

ssl.t | TEST 8: set DER cert chain - status code ok |
got: '' expected: '200' |

ssl.t | TEST 8: set DER cert chain - response_body - response is expected (repeated req 0, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 8: set DER cert chain |
' |

ssl.t | TEST 8: set DER cert chain - status code ok |
got: '' expected: '200' |

ssl.t | TEST 8: set DER cert chain - response_body - response is expected (repeated req 1, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 9: read PEM cert chain but set DER cert chain |
' |

ssl.t | TEST 9: read PEM cert chain but set DER cert chain - status code ok |
got: '' expected: '200' |

ssl.t | TEST 9: read PEM cert chain but set DER cert chain - response_body - response is expected (repeated req 0, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 9: read PEM cert chain but set DER cert chain |
' |

ssl.t | TEST 9: read PEM cert chain but set DER cert chain - status code ok |
got: '' expected: '200' |

ssl.t | TEST 9: read PEM cert chain but set DER cert chain - response_body - response is expected (repeated req 1, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 25: verify client but client provides no certificate |
' |

ssl.t | TEST 25: verify client but client provides no certificate - status code ok |
got: '' expected: '200' |

ssl.t | TEST 25: verify client but client provides no certificate - response_body - response is expected (repeated req 0, req 0) |
got: '' expected: 'NONE ' |

ssl.t | TEST 25: verify client but client provides no certificate |
' |

ssl.t | TEST 25: verify client but client provides no certificate - status code ok |
got: '' expected: '200' |

ssl.t | TEST 25: verify client but client provides no certificate - response_body - response is expected (repeated req 1, req 0) |
got: '' expected: 'NONE ' |

ssl.t | TEST 3: read SNI name via ssl.server_name() |
' |

ssl.t | TEST 3: read SNI name via ssl.server_name() - status code ok |
got: '' expected: '200' |

ssl.t | TEST 3: read SNI name via ssl.server_name() - response_body - response is expected (repeated req 0, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 3: read SNI name via ssl.server_name() |
' |

ssl.t | TEST 3: read SNI name via ssl.server_name() - status code ok |
got: '' expected: '200' |

ssl.t | TEST 3: read SNI name via ssl.server_name() - response_body - response is expected (repeated req 1, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 27: read server port via ssl.server_port() with unix domain socket |
' |

ssl.t | TEST 27: read server port via ssl.server_port() with unix domain socket - status code ok |
got: '' expected: '200' |

ssl.t | TEST 27: read server port via ssl.server_port() with unix domain socket - response_body - response is expected (repeated req 0, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 27: read server port via ssl.server_port() with unix domain socket |
' |

ssl.t | TEST 27: read server port via ssl.server_port() with unix domain socket - status code ok |
got: '' expected: '200' |

ssl.t | TEST 27: read server port via ssl.server_port() with unix domain socket - response_body - response is expected (repeated req 1, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 22: tls version - TLSv1.3 |
' |

ssl.t | TEST 22: tls version - TLSv1.3 - status code ok |
got: '' expected: '200' |

ssl.t | TEST 22: tls version - TLSv1.3 - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

ssl.t | TEST 4: read SNI name via ssl.server_name() when no SNI name specified |
' |

ssl.t | TEST 4: read SNI name via ssl.server_name() when no SNI name specified - status code ok |
got: '' expected: '200' |

ssl.t | TEST 4: read SNI name via ssl.server_name() when no SNI name specified - response_body - response is expected (repeated req 0, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 4: read SNI name via ssl.server_name() when no SNI name specified |
' |

ssl.t | TEST 4: read SNI name via ssl.server_name() when no SNI name specified - status code ok |
got: '' expected: '200' |

ssl.t | TEST 4: read SNI name via ssl.server_name() when no SNI name specified - response_body - response is expected (repeated req 1, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 10: tls version - SSLv3 |
' |

ssl.t | TEST 10: tls version - SSLv3 - status code ok |
got: '' expected: '200' |

ssl.t | TEST 10: tls version - SSLv3 - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

ssl.t | TEST 26: read server port via ssl.server_port() with ipv4 |
' |

ssl.t | TEST 26: read server port via ssl.server_port() with ipv4 - status code ok |
got: '' expected: '200' |

ssl.t | TEST 26: read server port via ssl.server_port() with ipv4 - response_body - response is expected (repeated req 0, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 26: read server port via ssl.server_port() with ipv4 |
' |

ssl.t | TEST 26: read server port via ssl.server_port() with ipv4 - status code ok |
got: '' expected: '200' |

ssl.t | TEST 26: read server port via ssl.server_port() with ipv4 - response_body - response is expected (repeated req 1, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 23: verify client with CA certificates |
' |

ssl.t | TEST 23: verify client with CA certificates - status code ok |
got: '' expected: '200' |

ssl.t | TEST 23: verify client with CA certificates - response_body - response is expected (repeated req 0, req 0) |
got: '' expected: 'SUCCESS ' |

ssl.t | TEST 23: verify client with CA certificates |
' |

ssl.t | TEST 23: verify client with CA certificates - status code ok |
got: '' expected: '200' |

ssl.t | TEST 23: verify client with CA certificates - response_body - response is expected (repeated req 1, req 0) |
got: '' expected: 'SUCCESS ' |

ssl.t | TEST 12: tls version - TLSv1.1 |
' |

ssl.t | TEST 12: tls version - TLSv1.1 - status code ok |
got: '' expected: '200' |

ssl.t | TEST 12: tls version - TLSv1.1 - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

ssl.t | TEST 12: tls version - TLSv1.1 |
' |

ssl.t | TEST 12: tls version - TLSv1.1 - status code ok |
got: '' expected: '200' |

ssl.t | TEST 12: tls version - TLSv1.1 - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

ssl.t | TEST 14: ngx.semaphore in ssl_certificate_by_lua* |
' |

ssl.t | TEST 14: ngx.semaphore in ssl_certificate_by_lua* - status code ok |
got: '' expected: '200' |

ssl.t | TEST 14: ngx.semaphore in ssl_certificate_by_lua* - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

ssl.t | TEST 14: ngx.semaphore in ssl_certificate_by_lua* |
' |

ssl.t | TEST 14: ngx.semaphore in ssl_certificate_by_lua* - status code ok |
got: '' expected: '200' |

ssl.t | TEST 14: ngx.semaphore in ssl_certificate_by_lua* - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

ssl.t | TEST 24: verify client without CA certificates |
' |

ssl.t | TEST 24: verify client without CA certificates - status code ok |
got: '' expected: '200' |

ssl.t | TEST 24: verify client without CA certificates - response_body - response is expected (repeated req 0, req 0) |
got: '' expected: 'FAILED:self signed certificate ' |

ssl.t | TEST 24: verify client without CA certificates |
' |

ssl.t | TEST 24: verify client without CA certificates - status code ok |
got: '' expected: '200' |

ssl.t | TEST 24: verify client without CA certificates - response_body - response is expected (repeated req 1, req 0) |
got: '' expected: 'FAILED:self signed certificate ' |

ssl.t | TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) |
' |

ssl.t | TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) - status code ok |
got: '' expected: '200' |

ssl.t | TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) - response_body - response is expected (repeated req 0, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) |
' |

ssl.t | TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) - status code ok |
got: '' expected: '200' |

ssl.t | TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) - response_body - response is expected (repeated req 1, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 15: read PEM key chain but set DER key chain |
' |

ssl.t | TEST 15: read PEM key chain but set DER key chain - status code ok |
got: '' expected: '200' |

ssl.t | TEST 15: read PEM key chain but set DER key chain - response_body - response is expected (repeated req 0, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 15: read PEM key chain but set DER key chain |
' |

ssl.t | TEST 15: read PEM key chain but set DER key chain - status code ok |
got: '' expected: '200' |

ssl.t | TEST 15: read PEM key chain but set DER key chain - response_body - response is expected (repeated req 1, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) |
' |

ssl.t | TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) - status code ok |
got: '' expected: '200' |

ssl.t | TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) - response_body - response is expected (repeated req 0, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) |
' |

ssl.t | TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) - status code ok |
got: '' expected: '200' |

ssl.t | TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) - response_body - response is expected (repeated req 1, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 13: tls version - TLSv1.2 |
' |

ssl.t | TEST 13: tls version - TLSv1.2 - status code ok |
got: '' expected: '200' |

ssl.t | TEST 13: tls version - TLSv1.2 - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

ssl.t | TEST 13: tls version - TLSv1.2 |
' |

ssl.t | TEST 13: tls version - TLSv1.2 - status code ok |
got: '' expected: '200' |

ssl.t | TEST 13: tls version - TLSv1.2 - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

ssl.t | TEST 2: set DER cert and private key |
' |

ssl.t | TEST 2: set DER cert and private key - status code ok |
got: '' expected: '200' |

ssl.t | TEST 2: set DER cert and private key - response_body - response is expected (repeated req 0, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

ssl.t | TEST 2: set DER cert and private key |
' |

ssl.t | TEST 2: set DER cert and private key - status code ok |
got: '' expected: '200' |

ssl.t | TEST 2: set DER cert and private key - response_body - response is expected (repeated req 1, req 0) |
@@ -1,11 +0,0 @@ -connected: 1 -ssl handshake: userdata -sent http request: 56 bytes. -received: HTTP/1.1 201 Created -received: Server: nginx -received: Content-Type: text/plain -received: Content-Length: 4 -received: Connection: close -received: -received: foo -close: 1 nil ' |

stream/ctx.t | TEST 1: ngx.ctx in ssl_certificate_by_lua |
' |

stream/ctx.t | TEST 1: ngx.ctx in ssl_certificate_by_lua - status code ok |
got: '' expected: '200' |

stream/ctx.t | TEST 1: ngx.ctx in ssl_certificate_by_lua - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -received: 42 -received: 1 ' |

stream/ctx.t | TEST 1: ngx.ctx in ssl_certificate_by_lua - grep_error_log_out (req 0) |
@@ -1,2 +0,0 @@ -lua release ngx.ctx at ref 2 -lua release ngx.ctx at ref 1 ' |

stream/ctx.t | TEST 1: ngx.ctx in ssl_certificate_by_lua |
' |

stream/ctx.t | TEST 1: ngx.ctx in ssl_certificate_by_lua - status code ok |
got: '' expected: '200' |

stream/ctx.t | TEST 1: ngx.ctx in ssl_certificate_by_lua - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -received: 42 -received: 1 ' |

stream/ctx.t | TEST 1: ngx.ctx in ssl_certificate_by_lua - grep_error_log_out (req 1) |
@@ -1,4 +1 @@ -lua release ngx.ctx at ref 2 -lua release ngx.ctx at ref 1 -lua release ngx.ctx at ref 2 lua release ngx.ctx at ref 1 ' |

stream/ctx.t | TEST 2: ngx.ctx in ssl_certificate_by_lua (share objects) |
' |

stream/ctx.t | TEST 2: ngx.ctx in ssl_certificate_by_lua (share objects) - status code ok |
got: '' expected: '200' |

stream/ctx.t | TEST 2: ngx.ctx in ssl_certificate_by_lua (share objects) - response_body - response is expected (repeated req 0, req 0) |
got: '' expected: 'received: 1 ' |

stream/ctx.t | TEST 2: ngx.ctx in ssl_certificate_by_lua (share objects) |
' |

stream/ctx.t | TEST 2: ngx.ctx in ssl_certificate_by_lua (share objects) - status code ok |
got: '' expected: '200' |

stream/ctx.t | TEST 2: ngx.ctx in ssl_certificate_by_lua (share objects) - response_body - response is expected (repeated req 1, req 0) |
got: '' expected: 'received: 1 ' |

stream/re-opt.t | TEST 1: default jit_stack_size too small - response_body - response is expected (repeated req 0, req 0) |
got: 'from: 1 to: 1563 ' expected: 'error: pcre_exec() failed: -27 ' |

stream/re-opt.t | TEST 1: default jit_stack_size too small - response_body - response is expected (repeated req 1, req 0) |
got: 'from: 1 to: 1563 ' expected: 'error: pcre_exec() failed: -27 ' |

stream/re-sub.t | TEST 5: replace template + submatches (exceeding buffers) |
' |

stream/re-sub.t | TEST 5: replace template + submatches (exceeding buffers) |
' |

stream/semaphore.t | TEST 25: basic semaphore_mm free insert tail |
' |

stream/semaphore.t | TEST 25: basic semaphore_mm free insert tail - status code ok |
got: '' expected: '200' |

stream/semaphore.t | TEST 25: basic semaphore_mm free insert tail - response_body - response is expected (repeated req 0, req 0) |
got: '' expected: 'ok ' |

stream/semaphore.t | TEST 25: basic semaphore_mm free insert tail - pattern "add to free queue tail" should match a line in error.log (req 0) | |

stream/semaphore.t | TEST 26: basic semaphore_mm free insert head |
' |

stream/semaphore.t | TEST 26: basic semaphore_mm free insert head - status code ok |
got: '' expected: '200' |

stream/semaphore.t | TEST 26: basic semaphore_mm free insert head - response_body - response is expected (repeated req 0, req 0) |
got: '' expected: 'ok ' |

stream/semaphore.t | TEST 26: basic semaphore_mm free insert head - pattern "add to free queue head" should match a line in error.log (req 0) | |

stream/shdict.t | TEST 48: exptime uses long type to avoid overflow in expire() + ttl() - response_body - response is expected (repeated req 0, req 0) |
got: 'ttl: 0 ' expected: 'ttl: 2147483648 ' |

stream/shdict.t | TEST 48: exptime uses long type to avoid overflow in expire() + ttl() - response_body - response is expected (repeated req 1, req 0) |
got: 'ttl: 0 ' expected: 'ttl: 2147483648 ' |

stream/shdict.t | TEST 7: get a large string value |
' |

stream/shdict.t | TEST 7: get a large string value - status code ok |
got: '' expected: '200' |

stream/shdict.t | TEST 7: get a large string value - response_body - response is expected (repeated req 0, req 0) |
@@ -1,3 +0,0 @@ -value type: string -value: bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba -flags: 912 ' |

stream/shdict.t | TEST 7: get a large string value |
' |

stream/shdict.t | TEST 7: get a large string value - status code ok |
got: '' expected: '200' |

stream/shdict.t | TEST 7: get a large string value - response_body - response is expected (repeated req 1, req 0) |
@@ -1,3 +0,0 @@ -value type: string -value: bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba -flags: 912 ' |

stream/shdict.t | TEST 49: init_ttl uses long type to avoid overflow in incr() + ttl() - response_body - response is expected (repeated req 0, req 0) |
got: 'ttl: 0 ' expected: 'ttl: 2147483648 ' |

stream/shdict.t | TEST 49: init_ttl uses long type to avoid overflow in incr() + ttl() - response_body - response is expected (repeated req 1, req 0) |
got: 'ttl: 0 ' expected: 'ttl: 2147483648 ' |

stream/shdict.t | TEST 47: exptime uses long type to avoid overflow in set() + ttl() - response_body - response is expected (repeated req 0, req 0) |
got: 'ttl: 0 ' expected: 'ttl: 2147483648 ' |

stream/shdict.t | TEST 47: exptime uses long type to avoid overflow in set() + ttl() - response_body - response is expected (repeated req 1, req 0) |
got: 'ttl: 0 ' expected: 'ttl: 2147483648 ' |

stream/ssl.t | TEST 23: verify client with CA certificates |
' |

stream/ssl.t | TEST 23: verify client with CA certificates - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 23: verify client with CA certificates - response_body - response is expected (repeated req 0, req 0) |
got: '' expected: 'SUCCESS ' |

stream/ssl.t | TEST 23: verify client with CA certificates |
' |

stream/ssl.t | TEST 23: verify client with CA certificates - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 23: verify client with CA certificates - response_body - response is expected (repeated req 1, req 0) |
got: '' expected: 'SUCCESS ' |

stream/ssl.t | TEST 9: read PEM cert chain but set DER cert chain |
' |

stream/ssl.t | TEST 9: read PEM cert chain but set DER cert chain - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 9: read PEM cert chain but set DER cert chain - response_body - response is expected (repeated req 0, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 9: read PEM cert chain but set DER cert chain |
' |

stream/ssl.t | TEST 9: read PEM cert chain but set DER cert chain - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 9: read PEM cert chain but set DER cert chain - response_body - response is expected (repeated req 1, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 20: read client addr via ssl.raw_client_addr() |
' |

stream/ssl.t | TEST 20: read client addr via ssl.raw_client_addr() - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 20: read client addr via ssl.raw_client_addr() - response_body - response is expected (repeated req 0, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 20: read client addr via ssl.raw_client_addr() |
' |

stream/ssl.t | TEST 20: read client addr via ssl.raw_client_addr() - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 20: read client addr via ssl.raw_client_addr() - response_body - response is expected (repeated req 1, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 3: read SNI name via ssl.server_name() |
' |

stream/ssl.t | TEST 3: read SNI name via ssl.server_name() - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 3: read SNI name via ssl.server_name() - response_body - response is expected (repeated req 0, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 3: read SNI name via ssl.server_name() |
' |

stream/ssl.t | TEST 3: read SNI name via ssl.server_name() - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 3: read SNI name via ssl.server_name() - response_body - response is expected (repeated req 1, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 8: set DER cert chain |
' |

stream/ssl.t | TEST 8: set DER cert chain - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 8: set DER cert chain - response_body - response is expected (repeated req 0, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 8: set DER cert chain |
' |

stream/ssl.t | TEST 8: set DER cert chain - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 8: set DER cert chain - response_body - response is expected (repeated req 1, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 2: set DER cert and private key |
' |

stream/ssl.t | TEST 2: set DER cert and private key - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 2: set DER cert and private key - response_body - response is expected (repeated req 0, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 2: set DER cert and private key |
' |

stream/ssl.t | TEST 2: set DER cert and private key - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 2: set DER cert and private key - response_body - response is expected (repeated req 1, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) |
' |

stream/ssl.t | TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) - response_body - response is expected (repeated req 0, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) |
' |

stream/ssl.t | TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 5: read raw server addr via ssl.raw_server_addr() (unix domain socket) - response_body - response is expected (repeated req 1, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 14: ngx.semaphore in ssl_certificate_by_lua* |
' |

stream/ssl.t | TEST 14: ngx.semaphore in ssl_certificate_by_lua* - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 14: ngx.semaphore in ssl_certificate_by_lua* - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

stream/ssl.t | TEST 14: ngx.semaphore in ssl_certificate_by_lua* |
' |

stream/ssl.t | TEST 14: ngx.semaphore in ssl_certificate_by_lua* - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 14: ngx.semaphore in ssl_certificate_by_lua* - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

stream/ssl.t | TEST 11: tls version - TLSv1 |
' |

stream/ssl.t | TEST 11: tls version - TLSv1 - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 11: tls version - TLSv1 - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

stream/ssl.t | TEST 11: tls version - TLSv1 |
' |

stream/ssl.t | TEST 11: tls version - TLSv1 - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 11: tls version - TLSv1 - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

stream/ssl.t | TEST 13: tls version - TLSv1.2 |
' |

stream/ssl.t | TEST 13: tls version - TLSv1.2 - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 13: tls version - TLSv1.2 - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

stream/ssl.t | TEST 13: tls version - TLSv1.2 |
' |

stream/ssl.t | TEST 13: tls version - TLSv1.2 - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 13: tls version - TLSv1.2 - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

stream/ssl.t | TEST 4: read SNI name via ssl.server_name() when no SNI name specified |
' |

stream/ssl.t | TEST 4: read SNI name via ssl.server_name() when no SNI name specified - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 4: read SNI name via ssl.server_name() when no SNI name specified - response_body - response is expected (repeated req 0, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 4: read SNI name via ssl.server_name() when no SNI name specified |
' |

stream/ssl.t | TEST 4: read SNI name via ssl.server_name() when no SNI name specified - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 4: read SNI name via ssl.server_name() when no SNI name specified - response_body - response is expected (repeated req 1, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 22: tls version - TLSv1.3 |
' |

stream/ssl.t | TEST 22: tls version - TLSv1.3 - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 22: tls version - TLSv1.3 - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

stream/ssl.t | TEST 22: tls version - TLSv1.3 |
' |

stream/ssl.t | TEST 22: tls version - TLSv1.3 - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 22: tls version - TLSv1.3 - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

stream/ssl.t | TEST 12: tls version - TLSv1.1 |
' |

stream/ssl.t | TEST 12: tls version - TLSv1.1 - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 12: tls version - TLSv1.1 - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

stream/ssl.t | TEST 12: tls version - TLSv1.1 |
' |

stream/ssl.t | TEST 12: tls version - TLSv1.1 - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 12: tls version - TLSv1.1 - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

stream/ssl.t | TEST 24: verify client without CA certificates |
' |

stream/ssl.t | TEST 24: verify client without CA certificates - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 24: verify client without CA certificates - response_body - response is expected (repeated req 0, req 0) |
got: '' expected: 'FAILED:self signed certificate ' |

stream/ssl.t | TEST 24: verify client without CA certificates |
' |

stream/ssl.t | TEST 24: verify client without CA certificates - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 24: verify client without CA certificates - response_body - response is expected (repeated req 1, req 0) |
got: '' expected: 'FAILED:self signed certificate ' |

stream/ssl.t | TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) |
' |

stream/ssl.t | TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) - response_body - response is expected (repeated req 0, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) |
' |

stream/ssl.t | TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 7: read raw server addr via ssl.raw_server_addr() (IPv6) - response_body - response is expected (repeated req 1, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 15: read PEM key chain but set DER key chain |
' |

stream/ssl.t | TEST 15: read PEM key chain but set DER key chain - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 15: read PEM key chain but set DER key chain - response_body - response is expected (repeated req 0, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 15: read PEM key chain but set DER key chain |
' |

stream/ssl.t | TEST 15: read PEM key chain but set DER key chain - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 15: read PEM key chain but set DER key chain - response_body - response is expected (repeated req 1, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 16: parse PEM cert and key to cdata |
' |

stream/ssl.t | TEST 16: parse PEM cert and key to cdata - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 16: parse PEM cert and key to cdata - response_body - response is expected (repeated req 0, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 16: parse PEM cert and key to cdata |
' |

stream/ssl.t | TEST 16: parse PEM cert and key to cdata - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 16: parse PEM cert and key to cdata - response_body - response is expected (repeated req 1, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 10: tls version - SSLv3 |
' |

stream/ssl.t | TEST 10: tls version - SSLv3 - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 10: tls version - SSLv3 - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -connected: 1 -ssl handshake: boolean ' |

stream/ssl.t | TEST 25: verify client but client provides no certificate |
' |

stream/ssl.t | TEST 25: verify client but client provides no certificate - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 25: verify client but client provides no certificate - response_body - response is expected (repeated req 0, req 0) |
got: '' expected: 'NONE ' |

stream/ssl.t | TEST 25: verify client but client provides no certificate |
' |

stream/ssl.t | TEST 25: verify client but client provides no certificate - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 25: verify client but client provides no certificate - response_body - response is expected (repeated req 1, req 0) |
got: '' expected: 'NONE ' |

stream/ssl.t | TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) |
' |

stream/ssl.t | TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) - response_body - response is expected (repeated req 0, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

stream/ssl.t | TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) |
' |

stream/ssl.t | TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) - status code ok |
got: '' expected: '200' |

stream/ssl.t | TEST 6: read raw server addr via ssl.raw_server_addr() (IPv4) - response_body - response is expected (repeated req 1, req 0) |
@@ -1,4 +0,0 @@ -connected: 1 -ssl handshake: userdata -received: it works! -close: 1 nil ' |

time.t | TEST 7: ngx.cookie_time() - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +1,2 @@ Thu, 18-Nov-10 11:27:35 GMT -Sun, 18-Sep-2039 23:06:40 GMT +Thu, 01-Jan-70 00:00:00 GMT ' |

time.t | TEST 7: ngx.cookie_time() - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +1,2 @@ Thu, 18-Nov-10 11:27:35 GMT -Sun, 18-Sep-2039 23:06:40 GMT +Thu, 01-Jan-70 00:00:00 GMT ' |

File | Name | Details |
---|---|---|

errlog-raw-log.t | nginx: [error] | hello world from init_by_lua |

errlog.t | nginx: [emerg] | invalid number of arguments in "lua_capture_error_log" directive in /home/ec2-user/git/lua-resty-core/t/servroot/conf/nginx.conf:25 |

errlog.t | nginx: [emerg] | invalid capture error log size "3k", minimum size is 4096 in /home/ec2-user/git/lua-resty-core/t/servroot/conf/nginx.conf:25 |

pipe-stderr.t | TEST 7: read stderr, pattern is read any - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +1,2 @@ -hello +h -world +e ' |

pipe-stderr.t | TEST 7: read stderr, pattern is read any - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +1,2 @@ -hello +h -world +e ' |

pipe-stdin.t | TEST 9: write process, support table, number and boolean arguments - response_body - response is expected (repeated req 1, req 0) |
@@ -1,3 +1,3 @@ 2 11 -10hello world +1 ' |

pipe-stdin.t | TEST 8: write and read process - response_body - response is expected (repeated req 0, req 0) |
got: 'pipe busy reading ' expected: 'payload ' |

pipe-stdin.t | TEST 8: write and read process - response_body - response is expected (repeated req 1, req 0) |
got: 'a ' expected: 'payload ' |

pipe-stdin.t | TEST 1: write process - response_body - response is expected (repeated req 1, req 0) |
@@ -1,4 +1,4 @@ 0 5 6 -hello world +h ' |

pipe-stdout.t | TEST 30: user case with read and wait - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +1 @@ -ok exit ' |

pipe-stdout.t | TEST 30: user case with read and wait - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +1 @@ -ok exit ' |

pipe-stdout.t | TEST 21: read process, mix read pattern - response_body - response is expected (repeated req 0, req 0) |
@@ -7,7 +7,7 @@ reading 2 mo reading any -re - +r reading all +e data ' |

pipe-stdout.t | TEST 21: read process, mix read pattern - response_body - response is expected (repeated req 1, req 0) |
@@ -1,13 +1,13 @@ reading any -hello +h reading 3 -wor +ell reading line -ld +oworld reading 2 mo reading any -re - +r reading all +e data ' |

pipe-stdout.t | TEST 10: read process, pattern is read any, with limited, limit larger than read data - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +1,2 @@ -hello +h -world +e ' |

pipe-stdout.t | TEST 10: read process, pattern is read any, with limited, limit larger than read data - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +1,2 @@ -hello +h -world +e ' |

pipe-stdout.t | TEST 8: read process, pattern is read any - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +1,2 @@ -hello +h -world +e ' |

pipe-stdout.t | TEST 8: read process, pattern is read any - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +1,2 @@ -hello +h -world +e ' |

pipe-stdout.t | TEST 11: read process, pattern is read any, with limited, limit smaller than read data - response_body - response is expected (repeated req 0, req 0) |
@@ -1,3 +1,3 @@ -hell +h -o +e -world +l ' |

pipe-stdout.t | TEST 11: read process, pattern is read any, with limited, limit smaller than read data - response_body - response is expected (repeated req 1, req 0) |
@@ -1,3 +1,3 @@ -hell +h -o +e -world +l ' |

pipe-stdout.t | TEST 33: read process, aborted by uthread kill, with graceful shutdown - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +1,2 @@ -stdout: ok +stdout err: timeout stderr err: closed ' |

pipe-stdout.t | TEST 33: read process, aborted by uthread kill, with graceful shutdown - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +1,2 @@ -stdout: ok +stdout err: timeout stderr err: closed ' |

process-type-hup.t | TEST 1: sanity - pattern "init_worker_by_lua:6: process type: privileged" should match a line in error.log (req 1) |
Looks like you failed 1 test of 8. |

re-opt.t | TEST 1: default jit_stack_size too small - response_body - response is expected (repeated req 0, req 0) |
got: 'from: 1 to: 1563 ' expected: 'error: pcre_exec() failed: -27 ' |

re-opt.t | TEST 1: default jit_stack_size too small - response_body - response is expected (repeated req 1, req 0) |
got: 'from: 1 to: 1563 ' expected: 'error: pcre_exec() failed: -27 ' |

re-sub.t | TEST 5: replace template + submatches (exceeding buffers) - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -s: [bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd -n: 2048 ' |

re-sub.t | TEST 5: replace template + submatches (exceeding buffers) - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -s: [bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd -n: 2048 ' |

request.t | TEST 7: ngx.req.start_time() - response_body - response is expected (repeated req 0, req 0) |
got: "true\x{0a}>= 0.099: true\x{0a}< 0.11: false\x{0a}" length: 34 expected: "true\x{0a}>= 0.099: true\x{0a}< 0.11: true\x{0a}" length: 33 strings begin to differ at char 29 (line 3 column 9) |

request.t | TEST 7: ngx.req.start_time() - response_body - response is expected (repeated req 1, req 0) |
got: "true\x{0a}>= 0.099: true\x{0a}< 0.11: false\x{0a}" length: 34 expected: "true\x{0a}>= 0.099: true\x{0a}< 0.11: true\x{0a}" length: 33 strings begin to differ at char 29 (line 3 column 9) |

shared.t | TEST 4: shared.ttl returns key ttl for non-default (positive) ttl - response_body_like - response is expected (0.2 sleep for 0.1s... -0.055) |
'0.2 sleep for 0.1s... -0.055 ' doesn't match '(?^s:\A0.2 sleep for 0.1s... 0.\d* \z)' |

ssl-session-fetch.t | TEST 4: attempt to resume a corrupted session - grep_error_log_out (req 0) |
'' doesn't match '(?^s:^ssl_session_store_by_lua_block:5: session id: [a-fA-F\d]+$)' |

ssl-session-fetch.t | TEST 4: attempt to resume a corrupted session - grep_error_log_out (req 1) |
'ssl_session_store_by_lua_block:5: session id: a8f8986e0c5089bfa2aad68b44974b0949853ce650a94ef4f64e51112d753e59 ssl_session_store_by_lua_block:5: session id: d407997eab79b4c6ef28f9b392f67fe80e6f30bf9e11c1472c32b4f61eebc2d5 ' doesn't match '(?^s:^ssl_session_fetch_by_lua_block:4: session id: [a-fA-F\d]+ failed to resume session: failed to de-serialize session ssl_session_store_by_lua_block:5: session id: [a-fA-F\d]+ $)' |

ssl-session-fetch.t | TEST 5: yield during doing handshake with client which uses low version OpenSSL - response_body - response is expected (repeated req 0, req 0) |
got: '' expected: 'ok ' |

ssl-session-fetch.t | TEST 5: yield during doing handshake with client which uses low version OpenSSL - grep_error_log_out (req 0) |
'' doesn't match '(?^s:^ssl_session_store_by_lua_block:\d+: session id: [a-fA-F\d]+$)' |

ssl-session-fetch.t | TEST 5: yield during doing handshake with client which uses low version OpenSSL - pattern "(?^:content_by_lua\(nginx\.conf:\d+\):\d+: CONNECTED)" should match a line in error.log (req 0) | |

ssl-session-fetch.t | TEST 5: yield during doing handshake with client which uses low version OpenSSL - pattern "[error]" should not match any line in error.log but matches line "2020/10/29 19:42:32 [error] 19812\#0: *1 [lua] content_by_lua(nginx.conf:114):33: openssl client handshake timeout, client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"" (req 0) |
2020/10/29 19:42:32 [debug] 19812\#0: *1 lua resume returned 0 2020/10/29 19:42:32 [debug] 19812\#0: *1 lua light thread ended normally 2020/10/29 19:42:32 [debug] 19812\#0: *1 lua deleting light thread 04B2D108 (ref 1) 2020/10/29 19:42:32 [debug] 19812\#0: *1 lua caching unused lua thread 04B2D108 (ref 1) 2020/10/29 19:42:32 [debug] 19812\#0: *1 lua capture header filter, uri "/t" 2020/10/29 19:42:32 [debug] 19812\#0: *1 malloc: 04B2F318:8 2020/10/29 19:42:32 [debug] 19812\#0: *1 malloc: 04B2F350:8 2020/10/29 19:42:32 [debug] 19812\#0: *1 malloc: 04B2F388:52 2020/10/29 19:42:32 [debug] 19812\#0: *1 malloc: 04B2F3F0:8 ' |

ssl-session-fetch.t | TEST 5: yield during doing handshake with client which uses low version OpenSSL - response_body - response is expected (repeated req 1, req 0) |
got: '' expected: 'ok ' |

ssl-session-fetch.t | TEST 5: yield during doing handshake with client which uses low version OpenSSL - grep_error_log_out (req 1) |
'' doesn't match '(?^s:^ssl_session_fetch_by_lua_block:\d+: session id: [a-fA-F\d]+ failed to resume session: failed to de-serialize session ssl_session_store_by_lua_block:\d+: session id: [a-fA-F\d]+ $)' |

ssl-session-fetch.t | TEST 5: yield during doing handshake with client which uses low version OpenSSL - pattern "(?^:content_by_lua\(nginx\.conf:\d+\):\d+: CONNECTED)" should match a line in error.log (req 1) | |

ssl-session-fetch.t | TEST 5: yield during doing handshake with client which uses low version OpenSSL - pattern "[error]" should not match any line in error.log but matches line "2020/10/29 19:42:34 [error] 19812\#0: *3 [lua] content_by_lua(nginx.conf:114):33: openssl client handshake timeout, client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"" (req 1) |
2020/10/29 19:42:34 [debug] 19812\#0: *3 lua resume returned 0 2020/10/29 19:42:34 [debug] 19812\#0: *3 lua light thread ended normally 2020/10/29 19:42:34 [debug] 19812\#0: *3 lua deleting light thread 04B2D108 (ref 1) 2020/10/29 19:42:34 [debug] 19812\#0: *3 lua caching unused lua thread 04B2D108 (ref 1) 2020/10/29 19:42:34 [debug] 19812\#0: *3 lua capture header filter, uri "/t" 2020/10/29 19:42:34 [debug] 19812\#0: *3 malloc: 04B31738:8 2020/10/29 19:42:34 [debug] 19812\#0: *3 malloc: 04B31770:8 2020/10/29 19:42:34 [debug] 19812\#0: *3 malloc: 04B317A8:52 2020/10/29 19:42:34 [debug] 19812\#0: *3 malloc: 04B31810:8 ' |

ssl-session-fetch.t | TEST 3: store new session, and resume it - grep_error_log_out (req 0) |
'' doesn't match '(?^s:ssl_session_store_by_lua_block:5: session id: [a-fA-F\d]+)' |

ssl-session-fetch.t | TEST 3: store new session, and resume it - grep_error_log_out (req 1) |
'ssl_session_store_by_lua_block:5: session id: a77a91d2bf954bfb52c70a6f5c89f1962e13bd6ae09a7f3cd4a1539710df28a9 ssl_session_store_by_lua_block:5: session id: 4c8a23ff840d73e92f61aed6d7405a9f6ced28bc47404bbfc33e7827ecc82631 ' doesn't match '(?^s:ssl_session_fetch_by_lua_block:4: session id: [a-fA-F\d]+)' |

ssl-session-fetch.t | TEST 2: attempt to fetch new session in lua_ctx during resumption. - grep_error_log_out (req 1) |
got: '' expected: 'get session error: bad session in lua context ' |

ssl-session-fetch.t | TEST 1: get resume session id serialized - grep_error_log_out (req 1) |
'' doesn't match '(?^s:ssl_session_fetch_by_lua_block:4: session id: [a-fA-f\d]+)' |

ssl-session-store.t | TEST 2: get new session id serialized - pattern "(?^s:ssl_session_store_by_lua_block:4: session id: [a-fA-f\d]+)" should match a line in error.log (req 0) | |

ssl-session-store.t | TEST 1: get new session serialized - pattern "(?^s:ssl_session_store_by_lua_block:4: session size: \d+)" should match a line in error.log (req 0) | |

ssl-session-store.t | TEST 3: store the session via timer to memcached - pattern "(?^s:ssl_session_store_by_lua_block:32: session id: [a-fA-f\d]+)" should match a line in error.log (req 0) | |

ssl-session-store.t | TEST 3: store the session via timer to memcached - pattern "(?^s:ssl_session_store_by_lua_block:34: session size: \d+)" should match a line in error.log (req 0) | |

ssl-session-store.t | TEST 3: store the session via timer to memcached - pattern "(?^s:received memc reply: STORED)" should match a line in error.log (req 0) | |

ssl.t | TEST 21: yield during doing handshake with client which uses low version OpenSSL - response_body - response is expected (repeated req 0, req 0) |
got: '' expected: 'ok ' |

ssl.t | TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "(?^:content_by_lua\(nginx\.conf:\d+\):\d+: CONNECTED)" should match a line in error.log (req 0) | |

ssl.t | TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "(?^:subject=/?C(?<eq>\s?=\s?)US(?<sep>/|,\s)ST\k<eq>California\k<sep>L\k<eq>San Francisco\k<sep>O\k<eq>OpenResty\k<sep>OU\k<eq>OpenResty\k<sep>CN\k<eq>test\.com\k<sep>emailAddress\k<eq>agentzh\@gmail\.com)" should match a line in error.log (req 0) | |

ssl.t | TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "[error]" should not match any line in error.log but matches line "2020/10/29 19:43:52 [error] 19834\#0: *1 [lua] content_by_lua(nginx.conf:111):25: openssl client handshake timeout, client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"" (req 0) |
2020/10/29 19:43:52 [debug] 19834\#0: *1 lua resume returned 0 2020/10/29 19:43:52 [debug] 19834\#0: *1 lua light thread ended normally 2020/10/29 19:43:52 [debug] 19834\#0: *1 lua deleting light thread 04B2BCA0 (ref 1) 2020/10/29 19:43:52 [debug] 19834\#0: *1 lua caching unused lua thread 04B2BCA0 (ref 1) 2020/10/29 19:43:52 [debug] 19834\#0: *1 lua capture header filter, uri "/t" 2020/10/29 19:43:52 [debug] 19834\#0: *1 malloc: 04B2DC18:8 2020/10/29 19:43:52 [debug] 19834\#0: *1 malloc: 04B2DC50:8 2020/10/29 19:43:52 [debug] 19834\#0: *1 malloc: 04B2DC88:52 2020/10/29 19:43:52 [debug] 19834\#0: *1 malloc: 04B2DCF0:8 ' |

ssl.t | TEST 21: yield during doing handshake with client which uses low version OpenSSL - response_body - response is expected (repeated req 1, req 0) |
got: '' expected: 'ok ' |

ssl.t | TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "(?^:content_by_lua\(nginx\.conf:\d+\):\d+: CONNECTED)" should match a line in error.log (req 1) | |

ssl.t | TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "(?^:subject=/?C(?<eq>\s?=\s?)US(?<sep>/|,\s)ST\k<eq>California\k<sep>L\k<eq>San Francisco\k<sep>O\k<eq>OpenResty\k<sep>OU\k<eq>OpenResty\k<sep>CN\k<eq>test\.com\k<sep>emailAddress\k<eq>agentzh\@gmail\.com)" should match a line in error.log (req 1) | |

ssl.t | TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "[error]" should not match any line in error.log but matches line "2020/10/29 19:43:55 [error] 19834\#0: *3 [lua] content_by_lua(nginx.conf:111):25: openssl client handshake timeout, client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"" (req 1) |
2020/10/29 19:43:55 [debug] 19834\#0: *3 lua resume returned 0 2020/10/29 19:43:55 [debug] 19834\#0: *3 lua light thread ended normally 2020/10/29 19:43:55 [debug] 19834\#0: *3 lua deleting light thread 04B2BCA0 (ref 1) 2020/10/29 19:43:55 [debug] 19834\#0: *3 lua caching unused lua thread 04B2BCA0 (ref 1) 2020/10/29 19:43:55 [debug] 19834\#0: *3 lua capture header filter, uri "/t" 2020/10/29 19:43:55 [debug] 19834\#0: *3 malloc: 04B30050:8 2020/10/29 19:43:55 [debug] 19834\#0: *3 malloc: 04B30088:8 2020/10/29 19:43:55 [debug] 19834\#0: *3 malloc: 04B300C0:52 2020/10/29 19:43:55 [debug] 19834\#0: *3 malloc: 04B30128:8 ' |

ssl.t | TEST 25: verify client but client provides no certificate - pattern "client certificate subject: nil" should match a line in error.log (req 0) | |

ssl.t | TEST 25: verify client but client provides no certificate - pattern "client certificate subject: nil" should match a line in error.log (req 1) | |

ssl.t | TEST 23: verify client with CA certificates - pattern "client certificate subject: emailAddress=agentzh@gmail.com,CN=test.com" should match a line in error.log (req 0) | |

ssl.t | TEST 23: verify client with CA certificates - pattern "client certificate subject: emailAddress=agentzh@gmail.com,CN=test.com" should match a line in error.log (req 1) | |

ssl.t | TEST 24: verify client without CA certificates - pattern "client certificate subject: emailAddress=agentzh@gmail.com,CN=test.com" should match a line in error.log (req 0) | |

ssl.t | TEST 24: verify client without CA certificates - pattern "client certificate subject: emailAddress=agentzh@gmail.com,CN=test.com" should match a line in error.log (req 1) | |

stream/errlog-raw-log.t | nginx: [error] | hello world from init_by_lua |

stream/errlog.t | nginx: [emerg] | invalid number of arguments in "lua_capture_error_log" directive in /home/ec2-user/git/lua-resty-core/t/servroot/conf/nginx.conf:17 |

stream/errlog.t | nginx: [emerg] | invalid capture error log size "3k", minimum size is 4096 in /home/ec2-user/git/lua-resty-core/t/servroot/conf/nginx.conf:17 |

stream/re-sub.t | TEST 5: replace template + submatches (exceeding buffers) - status code ok |
got: '' expected: '200' |

stream/re-sub.t | TEST 5: replace template + submatches (exceeding buffers) - response_body - response is expected (repeated req 0, req 0) |
@@ -1,2 +0,0 @@ -s: [bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd -n: 2048 ' |

stream/re-sub.t | TEST 5: replace template + submatches (exceeding buffers) - status code ok |
got: '' expected: '200' |

stream/re-sub.t | TEST 5: replace template + submatches (exceeding buffers) - response_body - response is expected (repeated req 1, req 0) |
@@ -1,2 +0,0 @@ -s: [bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd[bc(c)]bd -n: 2048 ' |

stream/request.t | TEST 1: ngx.req.start_time() - response_body - response is expected (repeated req 0, req 0) |
@@ -1,3 +1,3 @@ true >= 0.099: true -< 0.11: true +< 0.11: false ' Looks like you failed 1 test of 12. |

stream/ssl.t | TEST 23: verify client with CA certificates - pattern "client certificate subject: emailAddress=agentzh@gmail.com,CN=test.com" should match a line in error.log (req 0) | |

stream/ssl.t | TEST 23: verify client with CA certificates - pattern "client certificate subject: emailAddress=agentzh@gmail.com,CN=test.com" should match a line in error.log (req 1) | |

stream/ssl.t | TEST 21: yield during doing handshake with client which uses low version OpenSSL - response_body - response is expected (repeated req 0, req 0) |
got: '' expected: 'ok ' |

stream/ssl.t | TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "(?^:content_by_lua\(nginx\.conf:\d+\):\d+: CONNECTED)" should match a line in error.log (req 0) | |

stream/ssl.t | TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "(?^:subject=/?C(?<eq>\s?=\s?)US(?<sep>/|,\s)ST\k<eq>California\k<sep>L\k<eq>San Francisco\k<sep>O\k<eq>OpenResty\k<sep>OU\k<eq>OpenResty\k<sep>CN\k<eq>test\.com\k<sep>emailAddress\k<eq>agentzh\@gmail\.com)" should match a line in error.log (req 0) | |

stream/ssl.t | TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "[error]" should not match any line in error.log but matches line "2020/10/29 20:08:45 [error] 20398\#0: *3 stream [lua] content_by_lua(nginx.conf:89):25: openssl client handshake timeout, client: 127.0.0.1, server: 0.0.0.0:1985" (req 0) |
2020/10/29 20:08:45 [debug] 20398\#0: *3 lua resume returned 0 2020/10/29 20:08:45 [debug] 20398\#0: *3 lua light thread ended normally 2020/10/29 20:08:45 [debug] 20398\#0: *3 lua deleting light thread 2020/10/29 20:08:45 [debug] 20398\#0: *3 lua run thread returned 0 2020/10/29 20:08:45 [debug] 20398\#0: *3 finalize stream request: 0 2020/10/29 20:08:45 [debug] 20398\#0: *3 finalize stream session: 200 2020/10/29 20:08:45 [debug] 20398\#0: *3 stream log handler 2020/10/29 20:08:45 [debug] 20398\#0: *3 close stream connection: 12 2020/10/29 20:08:45 [debug] 20398\#0: *3 reusable connection: 0 ' |

stream/ssl.t | TEST 21: yield during doing handshake with client which uses low version OpenSSL - response_body - response is expected (repeated req 1, req 0) |
got: '' expected: 'ok ' |

stream/ssl.t | TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "(?^:content_by_lua\(nginx\.conf:\d+\):\d+: CONNECTED)" should match a line in error.log (req 1) | |

stream/ssl.t | TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "(?^:subject=/?C(?<eq>\s?=\s?)US(?<sep>/|,\s)ST\k<eq>California\k<sep>L\k<eq>San Francisco\k<sep>O\k<eq>OpenResty\k<sep>OU\k<eq>OpenResty\k<sep>CN\k<eq>test\.com\k<sep>emailAddress\k<eq>agentzh\@gmail\.com)" should match a line in error.log (req 1) | |

stream/ssl.t | TEST 21: yield during doing handshake with client which uses low version OpenSSL - pattern "[error]" should not match any line in error.log but matches line "2020/10/29 20:08:48 [error] 20398\#0: *7 stream [lua] content_by_lua(nginx.conf:89):25: openssl client handshake timeout, client: 127.0.0.1, server: 0.0.0.0:1985" (req 1) |
2020/10/29 20:08:48 [debug] 20398\#0: *7 lua resume returned 0 2020/10/29 20:08:48 [debug] 20398\#0: *7 lua light thread ended normally 2020/10/29 20:08:48 [debug] 20398\#0: *7 lua deleting light thread 2020/10/29 20:08:48 [debug] 20398\#0: *7 lua run thread returned 0 2020/10/29 20:08:48 [debug] 20398\#0: *7 finalize stream request: 0 2020/10/29 20:08:48 [debug] 20398\#0: *7 finalize stream session: 200 2020/10/29 20:08:48 [debug] 20398\#0: *7 stream log handler 2020/10/29 20:08:48 [debug] 20398\#0: *7 close stream connection: 12 2020/10/29 20:08:48 [debug] 20398\#0: *7 reusable connection: 0 ' |

stream/ssl.t | TEST 24: verify client without CA certificates - pattern "client certificate subject: emailAddress=agentzh@gmail.com,CN=test.com" should match a line in error.log (req 0) | |

stream/ssl.t | TEST 24: verify client without CA certificates - pattern "client certificate subject: emailAddress=agentzh@gmail.com,CN=test.com" should match a line in error.log (req 1) | |

stream/ssl.t | TEST 25: verify client but client provides no certificate - pattern "client certificate subject: nil" should match a line in error.log (req 0) | |

stream/time.t | TEST 1: ngx.now() - response_body - response is expected (repeated req 0, req 0) |
@@ -1,3 +1,3 @@ true >= 0.099: true -< 0.11: true +< 0.11: false ' |

time.t | TEST 1: ngx.now() - response_body - response is expected (repeated req 0, req 0) |
@@ -1,3 +1,3 @@ true >= 0.099: true -< 0.11: true +< 0.11: false ' |

- TEST 28: log time eq ngx.now - 2020/10/29 19:04:27 [crit] 18611#0: *1 [lua] access_by_lua(nginx.conf:76):3: enter 1, client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"
- TEST 28: log time eq ngx.now - 2020/10/29 19:04:27 [crit] 18611#0: *2 [lua] access_by_lua(nginx.conf:76):3: enter 1, client: 127.0.0.1, server: localhost, request: \"GET /t HTTP/1.1\", host: \"localhost\"
- TEST 8: invalid size (no argu) - 2020/10/29 19:04:27 [emerg] 18613#0: invalid number of arguments in \"lua_capture_error_log\" directive in /home/ec2-user/git/lua-resty-core/t/servroot/conf/nginx.conf:25 at /home/ec2-user/git/lua-resty-core/../test-nginx/lib/Test/Nginx/Socket.pm line 1341.
- TEST 8: invalid size (no argu) - 2020/10/29 19:04:28 [emerg] 18615#0: invalid number of arguments in \"lua_capture_error_log\" directive in /home/ec2-user/git/lua-resty-core/t/servroot/conf/nginx.conf:25 at /home/ec2-user/git/lua-resty-core/../test-nginx/lib/Test/Nginx/Socket.pm line 1341.
- TEST 7: invalid size (< 4k) - 2020/10/29 19:04:28 [emerg] 18617#0: invalid capture error log size \"3k\", minimum size is 4096 in /home/ec2-user/git/lua-resty-core/t/servroot/conf/nginx.conf:25 at /home/ec2-user/git/lua-resty-core/../test-nginx/lib/Test/Nginx/Socket.pm line 1341.
- TEST 7: invalid size (< 4k) - 2020/10/29 19:04:28 [emerg] 18619#0: invalid capture error log size \"3k\", minimum size is 4096 in /home/ec2-user/git/lua-resty-core/t/servroot/conf/nginx.conf:25 at /home/ec2-user/git/lua-resty-core/../test-nginx/lib/Test/Nginx/Socket.pm line 1341.
- TEST 8: invalid size (no argu) - 2020/10/29 19:50:44 [emerg] 19949#0: invalid number of arguments in \"lua_capture_error_log\" directive in /home/ec2-user/git/lua-resty-core/t/servroot/conf/nginx.conf:17 at /home/ec2-user/git/lua-resty-core/../test-nginx/lib/Test/Nginx/Socket.pm line 1341.
- TEST 8: invalid size (no argu) - 2020/10/29 19:50:44 [emerg] 19951#0: invalid number of arguments in \"lua_capture_error_log\" directive in /home/ec2-user/git/lua-resty-core/t/servroot/conf/nginx.conf:17 at /home/ec2-user/git/lua-resty-core/../test-nginx/lib/Test/Nginx/Socket.pm line 1341.
- TEST 7: invalid size (< 4k) - 2020/10/29 19:51:54 [emerg] 19971#0: invalid capture error log size \"3k\", minimum size is 4096 in /home/ec2-user/git/lua-resty-core/t/servroot/conf/nginx.conf:17 at /home/ec2-user/git/lua-resty-core/../test-nginx/lib/Test/Nginx/Socket.pm line 1341.
- TEST 7: invalid size (< 4k) - 2020/10/29 19:51:54 [emerg] 19973#0: invalid capture error log size \"3k\", minimum size is 4096 in /home/ec2-user/git/lua-resty-core/t/servroot/conf/nginx.conf:17 at /home/ec2-user/git/lua-resty-core/../test-nginx/lib/Test/Nginx/Socket.pm line 1341.
- TEST 28: log time eq ngx.now - 2020/10/29 19:52:01 [crit] 19975#0: *3 stream [lua] content_by_lua(nginx.conf:69):3: enter 1, client: 127.0.0.1, server: 0.0.0.0:1985
- TEST 28: log time eq ngx.now - 2020/10/29 19:52:01 [crit] 19975#0: *6 stream [lua] content_by_lua(nginx.conf:69):3: enter 1, client: 127.0.0.1, server: 0.0.0.0:1985