@cloudant/couchbackup 2.9.10 → 2.9.11-SNAPSHOT.116

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (387) hide show
  1. package/.scannerwork/report-task.txt +2 -2
  2. package/.scannerwork/scanner-report/analysis-warnings.pb +2 -2
  3. package/.scannerwork/scanner-report/changesets-36.pb +1 -0
  4. package/.scannerwork/scanner-report/changesets-37.pb +1 -0
  5. package/.scannerwork/scanner-report/changesets-38.pb +1 -0
  6. package/.scannerwork/scanner-report/changesets-39.pb +1 -0
  7. package/.scannerwork/scanner-report/changesets-40.pb +1 -0
  8. package/.scannerwork/scanner-report/changesets-41.pb +1 -0
  9. package/.scannerwork/scanner-report/changesets-42.pb +1 -0
  10. package/.scannerwork/scanner-report/changesets-43.pb +1 -0
  11. package/.scannerwork/scanner-report/changesets-44.pb +1 -0
  12. package/.scannerwork/scanner-report/changesets-45.pb +1 -0
  13. package/.scannerwork/scanner-report/changesets-46.pb +1 -0
  14. package/.scannerwork/scanner-report/changesets-53.pb +1 -0
  15. package/.scannerwork/scanner-report/changesets-58.pb +1 -0
  16. package/.scannerwork/scanner-report/changesets-62.pb +1 -0
  17. package/.scannerwork/scanner-report/changesets-63.pb +1 -0
  18. package/.scannerwork/scanner-report/component-1.pb +2 -2
  19. package/.scannerwork/scanner-report/component-10.pb +1 -1
  20. package/.scannerwork/scanner-report/component-11.pb +1 -1
  21. package/.scannerwork/scanner-report/component-12.pb +1 -1
  22. package/.scannerwork/scanner-report/component-2.pb +1 -1
  23. package/.scannerwork/scanner-report/component-24.pb +1 -1
  24. package/.scannerwork/scanner-report/component-25.pb +1 -1
  25. package/.scannerwork/scanner-report/component-26.pb +1 -1
  26. package/.scannerwork/scanner-report/component-27.pb +1 -1
  27. package/.scannerwork/scanner-report/component-28.pb +1 -1
  28. package/.scannerwork/scanner-report/component-29.pb +1 -1
  29. package/.scannerwork/scanner-report/component-30.pb +1 -1
  30. package/.scannerwork/scanner-report/component-31.pb +1 -1
  31. package/.scannerwork/scanner-report/component-32.pb +1 -1
  32. package/.scannerwork/scanner-report/component-33.pb +1 -1
  33. package/.scannerwork/scanner-report/component-34.pb +1 -1
  34. package/.scannerwork/scanner-report/component-35.pb +1 -1
  35. package/.scannerwork/scanner-report/component-36.pb +1 -0
  36. package/.scannerwork/scanner-report/component-37.pb +1 -0
  37. package/.scannerwork/scanner-report/component-38.pb +1 -0
  38. package/.scannerwork/scanner-report/component-39.pb +1 -0
  39. package/.scannerwork/scanner-report/component-40.pb +1 -0
  40. package/.scannerwork/scanner-report/component-41.pb +1 -0
  41. package/.scannerwork/scanner-report/component-42.pb +1 -0
  42. package/.scannerwork/scanner-report/component-43.pb +1 -0
  43. package/.scannerwork/scanner-report/component-44.pb +1 -0
  44. package/.scannerwork/scanner-report/component-45.pb +1 -0
  45. package/.scannerwork/scanner-report/component-46.pb +1 -0
  46. package/.scannerwork/scanner-report/component-47.pb +1 -1
  47. package/.scannerwork/scanner-report/component-48.pb +1 -1
  48. package/.scannerwork/scanner-report/component-49.pb +1 -1
  49. package/.scannerwork/scanner-report/component-50.pb +1 -1
  50. package/.scannerwork/scanner-report/component-51.pb +1 -1
  51. package/.scannerwork/scanner-report/component-52.pb +1 -1
  52. package/.scannerwork/scanner-report/component-53.pb +1 -0
  53. package/.scannerwork/scanner-report/component-55.pb +1 -0
  54. package/.scannerwork/scanner-report/component-56.pb +1 -1
  55. package/.scannerwork/scanner-report/component-58.pb +1 -0
  56. package/.scannerwork/scanner-report/component-6.pb +1 -1
  57. package/.scannerwork/scanner-report/component-62.pb +1 -0
  58. package/.scannerwork/scanner-report/component-63.pb +1 -0
  59. package/.scannerwork/scanner-report/component-65.pb +1 -1
  60. package/.scannerwork/scanner-report/component-7.pb +1 -1
  61. package/.scannerwork/scanner-report/component-8.pb +1 -1
  62. package/.scannerwork/scanner-report/component-9.pb +1 -1
  63. package/.scannerwork/scanner-report/coverages-10.pb +0 -0
  64. package/.scannerwork/scanner-report/coverages-11.pb +0 -0
  65. package/.scannerwork/scanner-report/coverages-12.pb +0 -0
  66. package/.scannerwork/scanner-report/coverages-24.pb +0 -0
  67. package/.scannerwork/scanner-report/coverages-25.pb +0 -0
  68. package/.scannerwork/scanner-report/coverages-26.pb +0 -0
  69. package/.scannerwork/scanner-report/coverages-27.pb +0 -0
  70. package/.scannerwork/scanner-report/coverages-28.pb +0 -0
  71. package/.scannerwork/scanner-report/coverages-29.pb +0 -0
  72. package/.scannerwork/scanner-report/coverages-30.pb +0 -0
  73. package/.scannerwork/scanner-report/coverages-31.pb +0 -0
  74. package/.scannerwork/scanner-report/coverages-32.pb +0 -0
  75. package/.scannerwork/scanner-report/coverages-33.pb +0 -0
  76. package/.scannerwork/scanner-report/coverages-34.pb +0 -0
  77. package/.scannerwork/scanner-report/coverages-35.pb +0 -0
  78. package/.scannerwork/scanner-report/coverages-37.pb +0 -0
  79. package/.scannerwork/scanner-report/coverages-38.pb +0 -0
  80. package/.scannerwork/scanner-report/coverages-40.pb +0 -0
  81. package/.scannerwork/scanner-report/coverages-41.pb +0 -0
  82. package/.scannerwork/scanner-report/coverages-43.pb +0 -0
  83. package/.scannerwork/scanner-report/coverages-44.pb +0 -0
  84. package/.scannerwork/scanner-report/coverages-46.pb +0 -0
  85. package/.scannerwork/scanner-report/coverages-47.pb +0 -0
  86. package/.scannerwork/scanner-report/coverages-48.pb +0 -0
  87. package/.scannerwork/scanner-report/coverages-49.pb +0 -0
  88. package/.scannerwork/scanner-report/coverages-50.pb +0 -0
  89. package/.scannerwork/scanner-report/coverages-51.pb +0 -0
  90. package/.scannerwork/scanner-report/coverages-52.pb +0 -0
  91. package/.scannerwork/scanner-report/coverages-53.pb +0 -0
  92. package/.scannerwork/scanner-report/coverages-56.pb +0 -0
  93. package/.scannerwork/scanner-report/coverages-6.pb +0 -0
  94. package/.scannerwork/scanner-report/coverages-7.pb +0 -0
  95. package/.scannerwork/scanner-report/coverages-8.pb +0 -0
  96. package/.scannerwork/scanner-report/coverages-9.pb +0 -0
  97. package/.scannerwork/scanner-report/duplications-26.pb +3 -0
  98. package/.scannerwork/scanner-report/duplications-27.pb +0 -2
  99. package/.scannerwork/scanner-report/duplications-31.pb +2 -0
  100. package/.scannerwork/scanner-report/duplications-32.pb +2 -2
  101. package/.scannerwork/scanner-report/duplications-34.pb +0 -2
  102. package/.scannerwork/scanner-report/duplications-49.pb +2 -0
  103. package/.scannerwork/scanner-report/duplications-50.pb +2 -0
  104. package/.scannerwork/scanner-report/duplications-52.pb +0 -3
  105. package/.scannerwork/scanner-report/duplications-53.pb +0 -0
  106. package/.scannerwork/scanner-report/duplications-60.pb +1 -1
  107. package/.scannerwork/scanner-report/duplications-62.pb +0 -0
  108. package/.scannerwork/scanner-report/duplications-63.pb +0 -0
  109. package/.scannerwork/scanner-report/duplications-7.pb +2 -0
  110. package/.scannerwork/scanner-report/duplications-8.pb +2 -0
  111. package/.scannerwork/scanner-report/duplications-9.pb +3 -0
  112. package/.scannerwork/scanner-report/measures-10.pb +0 -0
  113. package/.scannerwork/scanner-report/measures-11.pb +0 -0
  114. package/.scannerwork/scanner-report/measures-12.pb +0 -0
  115. package/.scannerwork/scanner-report/measures-2.pb +0 -0
  116. package/.scannerwork/scanner-report/measures-24.pb +0 -0
  117. package/.scannerwork/scanner-report/measures-25.pb +0 -0
  118. package/.scannerwork/scanner-report/measures-26.pb +0 -0
  119. package/.scannerwork/scanner-report/measures-27.pb +0 -0
  120. package/.scannerwork/scanner-report/measures-28.pb +0 -0
  121. package/.scannerwork/scanner-report/measures-29.pb +0 -0
  122. package/.scannerwork/scanner-report/measures-30.pb +0 -0
  123. package/.scannerwork/scanner-report/measures-31.pb +0 -0
  124. package/.scannerwork/scanner-report/measures-32.pb +0 -0
  125. package/.scannerwork/scanner-report/measures-33.pb +0 -0
  126. package/.scannerwork/scanner-report/measures-34.pb +0 -0
  127. package/.scannerwork/scanner-report/measures-35.pb +0 -0
  128. package/.scannerwork/scanner-report/measures-37.pb +0 -0
  129. package/.scannerwork/scanner-report/measures-38.pb +0 -0
  130. package/.scannerwork/scanner-report/measures-40.pb +0 -0
  131. package/.scannerwork/scanner-report/measures-41.pb +0 -0
  132. package/.scannerwork/scanner-report/measures-43.pb +0 -0
  133. package/.scannerwork/scanner-report/measures-44.pb +0 -0
  134. package/.scannerwork/scanner-report/measures-46.pb +0 -0
  135. package/.scannerwork/scanner-report/measures-47.pb +0 -0
  136. package/.scannerwork/scanner-report/measures-48.pb +0 -0
  137. package/.scannerwork/scanner-report/measures-49.pb +0 -0
  138. package/.scannerwork/scanner-report/measures-50.pb +0 -0
  139. package/.scannerwork/scanner-report/measures-51.pb +0 -0
  140. package/.scannerwork/scanner-report/measures-52.pb +0 -0
  141. package/.scannerwork/scanner-report/measures-53.pb +0 -0
  142. package/.scannerwork/scanner-report/measures-56.pb +0 -0
  143. package/.scannerwork/scanner-report/measures-6.pb +0 -0
  144. package/.scannerwork/scanner-report/measures-65.pb +0 -0
  145. package/.scannerwork/scanner-report/measures-7.pb +0 -0
  146. package/.scannerwork/scanner-report/measures-8.pb +0 -0
  147. package/.scannerwork/scanner-report/measures-9.pb +0 -0
  148. package/.scannerwork/scanner-report/metadata.pb +0 -0
  149. package/.scannerwork/scanner-report/source-10.txt +42 -255
  150. package/.scannerwork/scanner-report/source-11.txt +127 -103
  151. package/.scannerwork/scanner-report/source-12.txt +47 -30
  152. package/.scannerwork/scanner-report/source-2.txt +509 -75
  153. package/.scannerwork/scanner-report/source-24.txt +133 -11
  154. package/.scannerwork/scanner-report/source-25.txt +17 -137
  155. package/.scannerwork/scanner-report/source-26.txt +107 -123
  156. package/.scannerwork/scanner-report/source-27.txt +47 -124
  157. package/.scannerwork/scanner-report/source-28.txt +130 -19
  158. package/.scannerwork/scanner-report/source-29.txt +8 -272
  159. package/.scannerwork/scanner-report/source-30.txt +14 -70
  160. package/.scannerwork/scanner-report/source-31.txt +121 -118
  161. package/.scannerwork/scanner-report/source-32.txt +68 -80
  162. package/.scannerwork/scanner-report/source-33.txt +596 -39
  163. package/.scannerwork/scanner-report/source-34.txt +14 -205
  164. package/.scannerwork/scanner-report/source-35.txt +69 -24
  165. package/.scannerwork/scanner-report/source-37.txt +100 -0
  166. package/.scannerwork/scanner-report/source-38.txt +366 -0
  167. package/.scannerwork/scanner-report/source-40.txt +46 -0
  168. package/.scannerwork/scanner-report/source-41.txt +31 -0
  169. package/.scannerwork/scanner-report/source-43.txt +118 -0
  170. package/.scannerwork/scanner-report/source-44.txt +281 -0
  171. package/.scannerwork/scanner-report/source-46.txt +54 -0
  172. package/.scannerwork/scanner-report/source-47.txt +146 -45
  173. package/.scannerwork/scanner-report/source-48.txt +62 -50
  174. package/.scannerwork/scanner-report/source-49.txt +78 -352
  175. package/.scannerwork/scanner-report/source-50.txt +58 -12
  176. package/.scannerwork/scanner-report/source-51.txt +82 -78
  177. package/.scannerwork/scanner-report/source-52.txt +115 -105
  178. package/.scannerwork/scanner-report/source-53.txt +418 -0
  179. package/.scannerwork/scanner-report/{source-66.txt → source-55.txt} +150 -150
  180. package/.scannerwork/scanner-report/source-56.txt +89 -393
  181. package/.scannerwork/scanner-report/source-6.txt +31 -148
  182. package/.scannerwork/scanner-report/source-65.txt +51 -393
  183. package/.scannerwork/scanner-report/source-7.txt +275 -62
  184. package/.scannerwork/scanner-report/source-8.txt +208 -37
  185. package/.scannerwork/scanner-report/source-9.txt +230 -17
  186. package/.scannerwork/scanner-report/symbols-10.pb +36 -354
  187. package/.scannerwork/scanner-report/symbols-11.pb +116 -30
  188. package/.scannerwork/scanner-report/symbols-12.pb +42 -19
  189. package/.scannerwork/scanner-report/symbols-24.pb +111 -9
  190. package/.scannerwork/scanner-report/symbols-25.pb +14 -112
  191. package/.scannerwork/scanner-report/symbols-26.pb +97 -85
  192. package/.scannerwork/scanner-report/symbols-27.pb +44 -101
  193. package/.scannerwork/scanner-report/symbols-28.pb +85 -11
  194. package/.scannerwork/scanner-report/symbols-29.pb +9 -486
  195. package/.scannerwork/scanner-report/symbols-30.pb +11 -60
  196. package/.scannerwork/scanner-report/symbols-31.pb +97 -111
  197. package/.scannerwork/scanner-report/symbols-32.pb +71 -91
  198. package/.scannerwork/scanner-report/symbols-33.pb +1251 -33
  199. package/.scannerwork/scanner-report/symbols-34.pb +9 -417
  200. package/.scannerwork/scanner-report/symbols-35.pb +60 -27
  201. package/.scannerwork/scanner-report/symbols-37.pb +69 -0
  202. package/.scannerwork/scanner-report/symbols-38.pb +494 -0
  203. package/.scannerwork/scanner-report/symbols-40.pb +20 -0
  204. package/.scannerwork/scanner-report/symbols-41.pb +14 -0
  205. package/.scannerwork/scanner-report/symbols-43.pb +30 -0
  206. package/.scannerwork/scanner-report/symbols-44.pb +354 -0
  207. package/.scannerwork/scanner-report/symbols-46.pb +15 -0
  208. package/.scannerwork/scanner-report/symbols-47.pb +125 -42
  209. package/.scannerwork/scanner-report/symbols-48.pb +45 -44
  210. package/.scannerwork/scanner-report/symbols-49.pb +44 -494
  211. package/.scannerwork/scanner-report/symbols-50.pb +42 -9
  212. package/.scannerwork/scanner-report/symbols-51.pb +41 -68
  213. package/.scannerwork/scanner-report/symbols-52.pb +33 -77
  214. package/.scannerwork/scanner-report/symbols-53.pb +610 -0
  215. package/.scannerwork/scanner-report/symbols-56.pb +28 -610
  216. package/.scannerwork/scanner-report/symbols-6.pb +26 -125
  217. package/.scannerwork/scanner-report/symbols-7.pb +485 -45
  218. package/.scannerwork/scanner-report/symbols-8.pb +417 -14
  219. package/.scannerwork/scanner-report/symbols-9.pb +393 -13
  220. package/.scannerwork/scanner-report/syntax-highlightings-10.pb +57 -247
  221. package/.scannerwork/scanner-report/syntax-highlightings-11.pb +104 -83
  222. package/.scannerwork/scanner-report/syntax-highlightings-12.pb +51 -33
  223. package/.scannerwork/scanner-report/syntax-highlightings-2.pb +3737 -67
  224. package/.scannerwork/scanner-report/syntax-highlightings-24.pb +186 -13
  225. package/.scannerwork/scanner-report/syntax-highlightings-25.pb +20 -189
  226. package/.scannerwork/scanner-report/syntax-highlightings-26.pb +147 -156
  227. package/.scannerwork/scanner-report/syntax-highlightings-27.pb +70 -187
  228. package/.scannerwork/scanner-report/syntax-highlightings-28.pb +157 -25
  229. package/.scannerwork/scanner-report/syntax-highlightings-29.pb +15 -626
  230. package/.scannerwork/scanner-report/syntax-highlightings-30.pb +24 -75
  231. package/.scannerwork/scanner-report/syntax-highlightings-31.pb +189 -96
  232. package/.scannerwork/scanner-report/syntax-highlightings-32.pb +118 -142
  233. package/.scannerwork/scanner-report/syntax-highlightings-33.pb +849 -57
  234. package/.scannerwork/scanner-report/syntax-highlightings-34.pb +13 -294
  235. package/.scannerwork/scanner-report/syntax-highlightings-35.pb +71 -29
  236. package/.scannerwork/scanner-report/syntax-highlightings-37.pb +105 -0
  237. package/.scannerwork/scanner-report/syntax-highlightings-38.pb +630 -0
  238. package/.scannerwork/scanner-report/syntax-highlightings-40.pb +64 -0
  239. package/.scannerwork/scanner-report/syntax-highlightings-41.pb +45 -0
  240. package/.scannerwork/scanner-report/syntax-highlightings-43.pb +113 -0
  241. package/.scannerwork/scanner-report/syntax-highlightings-44.pb +285 -0
  242. package/.scannerwork/scanner-report/syntax-highlightings-46.pb +54 -0
  243. package/.scannerwork/scanner-report/syntax-highlightings-47.pb +178 -47
  244. package/.scannerwork/scanner-report/syntax-highlightings-48.pb +62 -77
  245. package/.scannerwork/scanner-report/syntax-highlightings-49.pb +57 -597
  246. package/.scannerwork/scanner-report/syntax-highlightings-50.pb +45 -15
  247. package/.scannerwork/scanner-report/syntax-highlightings-51.pb +84 -73
  248. package/.scannerwork/scanner-report/syntax-highlightings-52.pb +92 -121
  249. package/.scannerwork/scanner-report/syntax-highlightings-53.pb +648 -0
  250. package/.scannerwork/scanner-report/{syntax-highlightings-66.pb → syntax-highlightings-55.pb} +94 -94
  251. package/.scannerwork/scanner-report/syntax-highlightings-56.pb +109 -619
  252. package/.scannerwork/scanner-report/syntax-highlightings-6.pb +33 -178
  253. package/.scannerwork/scanner-report/syntax-highlightings-65.pb +728 -3527
  254. package/.scannerwork/scanner-report/syntax-highlightings-7.pb +625 -61
  255. package/.scannerwork/scanner-report/syntax-highlightings-8.pb +301 -24
  256. package/.scannerwork/scanner-report/syntax-highlightings-9.pb +299 -15
  257. package/package.json +2 -2
  258. package/test-16-results.xml +163 -163
  259. package/test-18-results.xml +150 -150
  260. package/test-iam-18-results.xml +50 -50
  261. package/.scannerwork/scanner-report/changesets-13.pb +0 -1
  262. package/.scannerwork/scanner-report/changesets-14.pb +0 -1
  263. package/.scannerwork/scanner-report/changesets-15.pb +0 -1
  264. package/.scannerwork/scanner-report/changesets-19.pb +0 -1
  265. package/.scannerwork/scanner-report/changesets-2.pb +0 -1
  266. package/.scannerwork/scanner-report/changesets-20.pb +0 -1
  267. package/.scannerwork/scanner-report/changesets-21.pb +0 -1
  268. package/.scannerwork/scanner-report/changesets-22.pb +0 -1
  269. package/.scannerwork/scanner-report/changesets-23.pb +0 -1
  270. package/.scannerwork/scanner-report/changesets-3.pb +0 -1
  271. package/.scannerwork/scanner-report/changesets-4.pb +0 -1
  272. package/.scannerwork/scanner-report/changesets-5.pb +0 -1
  273. package/.scannerwork/scanner-report/changesets-59.pb +0 -1
  274. package/.scannerwork/scanner-report/changesets-67.pb +0 -1
  275. package/.scannerwork/scanner-report/changesets-68.pb +0 -1
  276. package/.scannerwork/scanner-report/component-13.pb +0 -1
  277. package/.scannerwork/scanner-report/component-14.pb +0 -1
  278. package/.scannerwork/scanner-report/component-15.pb +0 -1
  279. package/.scannerwork/scanner-report/component-19.pb +0 -1
  280. package/.scannerwork/scanner-report/component-20.pb +0 -1
  281. package/.scannerwork/scanner-report/component-21.pb +0 -1
  282. package/.scannerwork/scanner-report/component-22.pb +0 -1
  283. package/.scannerwork/scanner-report/component-23.pb +0 -1
  284. package/.scannerwork/scanner-report/component-3.pb +0 -1
  285. package/.scannerwork/scanner-report/component-4.pb +0 -1
  286. package/.scannerwork/scanner-report/component-5.pb +0 -1
  287. package/.scannerwork/scanner-report/component-54.pb +0 -1
  288. package/.scannerwork/scanner-report/component-59.pb +0 -1
  289. package/.scannerwork/scanner-report/component-66.pb +0 -1
  290. package/.scannerwork/scanner-report/component-67.pb +0 -1
  291. package/.scannerwork/scanner-report/component-68.pb +0 -1
  292. package/.scannerwork/scanner-report/coverages-13.pb +0 -0
  293. package/.scannerwork/scanner-report/coverages-14.pb +0 -0
  294. package/.scannerwork/scanner-report/coverages-19.pb +0 -0
  295. package/.scannerwork/scanner-report/coverages-2.pb +0 -0
  296. package/.scannerwork/scanner-report/coverages-21.pb +0 -0
  297. package/.scannerwork/scanner-report/coverages-22.pb +0 -0
  298. package/.scannerwork/scanner-report/coverages-23.pb +0 -0
  299. package/.scannerwork/scanner-report/coverages-4.pb +0 -0
  300. package/.scannerwork/scanner-report/duplications-2.pb +0 -2
  301. package/.scannerwork/scanner-report/duplications-21.pb +0 -3
  302. package/.scannerwork/scanner-report/duplications-29.pb +0 -2
  303. package/.scannerwork/scanner-report/duplications-4.pb +0 -2
  304. package/.scannerwork/scanner-report/measures-13.pb +0 -0
  305. package/.scannerwork/scanner-report/measures-14.pb +0 -15
  306. package/.scannerwork/scanner-report/measures-19.pb +0 -0
  307. package/.scannerwork/scanner-report/measures-21.pb +0 -0
  308. package/.scannerwork/scanner-report/measures-22.pb +0 -0
  309. package/.scannerwork/scanner-report/measures-23.pb +0 -0
  310. package/.scannerwork/scanner-report/measures-4.pb +0 -0
  311. package/.scannerwork/scanner-report/measures-54.pb +0 -0
  312. package/.scannerwork/scanner-report/source-13.txt +0 -129
  313. package/.scannerwork/scanner-report/source-14.txt +0 -104
  314. package/.scannerwork/scanner-report/source-19.txt +0 -114
  315. package/.scannerwork/scanner-report/source-21.txt +0 -244
  316. package/.scannerwork/scanner-report/source-22.txt +0 -36
  317. package/.scannerwork/scanner-report/source-23.txt +0 -625
  318. package/.scannerwork/scanner-report/source-4.txt +0 -92
  319. package/.scannerwork/scanner-report/source-54.txt +0 -167
  320. package/.scannerwork/scanner-report/symbols-13.pb +0 -33
  321. package/.scannerwork/scanner-report/symbols-14.pb +0 -42
  322. package/.scannerwork/scanner-report/symbols-19.pb +0 -28
  323. package/.scannerwork/scanner-report/symbols-2.pb +0 -42
  324. package/.scannerwork/scanner-report/symbols-21.pb +0 -394
  325. package/.scannerwork/scanner-report/symbols-22.pb +0 -14
  326. package/.scannerwork/scanner-report/symbols-23.pb +0 -1254
  327. package/.scannerwork/scanner-report/symbols-4.pb +0 -44
  328. package/.scannerwork/scanner-report/syntax-highlightings-13.pb +0 -129
  329. package/.scannerwork/scanner-report/syntax-highlightings-14.pb +0 -116
  330. package/.scannerwork/scanner-report/syntax-highlightings-19.pb +0 -138
  331. package/.scannerwork/scanner-report/syntax-highlightings-21.pb +0 -329
  332. package/.scannerwork/scanner-report/syntax-highlightings-22.pb +0 -54
  333. package/.scannerwork/scanner-report/syntax-highlightings-23.pb +0 -887
  334. package/.scannerwork/scanner-report/syntax-highlightings-4.pb +0 -90
  335. package/.scannerwork/scanner-report/syntax-highlightings-54.pb +0 -949
  336. /package/.scannerwork/scanner-report/{coverages-20.pb → coverages-36.pb} +0 -0
  337. /package/.scannerwork/scanner-report/{coverages-15.pb → coverages-39.pb} +0 -0
  338. /package/.scannerwork/scanner-report/{coverages-3.pb → coverages-42.pb} +0 -0
  339. /package/.scannerwork/scanner-report/{coverages-5.pb → coverages-45.pb} +0 -0
  340. /package/.scannerwork/scanner-report/{coverages-59.pb → coverages-58.pb} +0 -0
  341. /package/.scannerwork/scanner-report/{coverages-67.pb → coverages-62.pb} +0 -0
  342. /package/.scannerwork/scanner-report/{coverages-68.pb → coverages-63.pb} +0 -0
  343. /package/.scannerwork/scanner-report/{duplications-13.pb → duplications-36.pb} +0 -0
  344. /package/.scannerwork/scanner-report/{duplications-14.pb → duplications-37.pb} +0 -0
  345. /package/.scannerwork/scanner-report/{duplications-15.pb → duplications-38.pb} +0 -0
  346. /package/.scannerwork/scanner-report/{duplications-19.pb → duplications-39.pb} +0 -0
  347. /package/.scannerwork/scanner-report/{duplications-20.pb → duplications-40.pb} +0 -0
  348. /package/.scannerwork/scanner-report/{duplications-22.pb → duplications-41.pb} +0 -0
  349. /package/.scannerwork/scanner-report/{duplications-23.pb → duplications-42.pb} +0 -0
  350. /package/.scannerwork/scanner-report/{duplications-3.pb → duplications-43.pb} +0 -0
  351. /package/.scannerwork/scanner-report/{duplications-5.pb → duplications-44.pb} +0 -0
  352. /package/.scannerwork/scanner-report/{duplications-67.pb → duplications-45.pb} +0 -0
  353. /package/.scannerwork/scanner-report/{duplications-68.pb → duplications-46.pb} +0 -0
  354. /package/.scannerwork/scanner-report/{duplications-59.pb → duplications-58.pb} +0 -0
  355. /package/.scannerwork/scanner-report/{issues-31.pb → issues-11.pb} +0 -0
  356. /package/.scannerwork/scanner-report/{issues-49.pb → issues-38.pb} +0 -0
  357. /package/.scannerwork/scanner-report/{issues-35.pb → issues-6.pb} +0 -0
  358. /package/.scannerwork/scanner-report/{issues-21.pb → issues-9.pb} +0 -0
  359. /package/.scannerwork/scanner-report/{measures-20.pb → measures-36.pb} +0 -0
  360. /package/.scannerwork/scanner-report/{measures-15.pb → measures-39.pb} +0 -0
  361. /package/.scannerwork/scanner-report/{measures-3.pb → measures-42.pb} +0 -0
  362. /package/.scannerwork/scanner-report/{measures-5.pb → measures-45.pb} +0 -0
  363. /package/.scannerwork/scanner-report/{measures-66.pb → measures-55.pb} +0 -0
  364. /package/.scannerwork/scanner-report/{measures-59.pb → measures-58.pb} +0 -0
  365. /package/.scannerwork/scanner-report/{measures-67.pb → measures-62.pb} +0 -0
  366. /package/.scannerwork/scanner-report/{measures-68.pb → measures-63.pb} +0 -0
  367. /package/.scannerwork/scanner-report/{source-20.txt → source-36.txt} +0 -0
  368. /package/.scannerwork/scanner-report/{source-15.txt → source-39.txt} +0 -0
  369. /package/.scannerwork/scanner-report/{source-3.txt → source-42.txt} +0 -0
  370. /package/.scannerwork/scanner-report/{source-5.txt → source-45.txt} +0 -0
  371. /package/.scannerwork/scanner-report/{source-59.txt → source-58.txt} +0 -0
  372. /package/.scannerwork/scanner-report/{source-67.txt → source-62.txt} +0 -0
  373. /package/.scannerwork/scanner-report/{source-68.txt → source-63.txt} +0 -0
  374. /package/.scannerwork/scanner-report/{symbols-20.pb → symbols-36.pb} +0 -0
  375. /package/.scannerwork/scanner-report/{symbols-15.pb → symbols-39.pb} +0 -0
  376. /package/.scannerwork/scanner-report/{symbols-3.pb → symbols-42.pb} +0 -0
  377. /package/.scannerwork/scanner-report/{symbols-5.pb → symbols-45.pb} +0 -0
  378. /package/.scannerwork/scanner-report/{symbols-59.pb → symbols-58.pb} +0 -0
  379. /package/.scannerwork/scanner-report/{symbols-67.pb → symbols-62.pb} +0 -0
  380. /package/.scannerwork/scanner-report/{symbols-68.pb → symbols-63.pb} +0 -0
  381. /package/.scannerwork/scanner-report/{syntax-highlightings-20.pb → syntax-highlightings-36.pb} +0 -0
  382. /package/.scannerwork/scanner-report/{syntax-highlightings-15.pb → syntax-highlightings-39.pb} +0 -0
  383. /package/.scannerwork/scanner-report/{syntax-highlightings-3.pb → syntax-highlightings-42.pb} +0 -0
  384. /package/.scannerwork/scanner-report/{syntax-highlightings-5.pb → syntax-highlightings-45.pb} +0 -0
  385. /package/.scannerwork/scanner-report/{syntax-highlightings-59.pb → syntax-highlightings-58.pb} +0 -0
  386. /package/.scannerwork/scanner-report/{syntax-highlightings-67.pb → syntax-highlightings-62.pb} +0 -0
  387. /package/.scannerwork/scanner-report/{syntax-highlightings-68.pb → syntax-highlightings-63.pb} +0 -0
@@ -1,4 +1,4 @@
1
- // Copyright © 2017, 2018 IBM Corp. All rights reserved.
1
+ // Copyright © 2017, 2021 IBM Corp. All rights reserved.
2
2
  //
3
3
  // Licensed under the Apache License, Version 2.0 (the "License");
4
4
  // you may not use this file except in compliance with the License.
@@ -11,21 +11,234 @@
11
11
  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  // See the License for the specific language governing permissions and
13
13
  // limitations under the License.
14
+
15
+ /* global describe it beforeEach */
14
16
  'use strict';
15
17
 
16
- module.exports = function(db, options, readstream, ee, callback) {
17
- const liner = require('../includes/liner.js')();
18
- const writer = require('../includes/writer.js')(db, options.bufferSize, options.parallelism, ee);
19
-
20
- // pipe the input to the output, via transformation functions
21
- readstream
22
- .pipe(liner) // transform the input stream into per-line
23
- .on('error', function(err) {
24
- // Forward the error to the writer event emitter where we already have
25
- // listeners on for handling errors
26
- writer.emit('error', err);
27
- })
28
- .pipe(writer); // transform the data
29
-
30
- callback(null, writer);
31
- };
18
+ const assert = require('assert');
19
+ const nock = require('nock');
20
+ const request = require('../includes/request.js');
21
+ const error = require('../includes/error.js');
22
+
23
+ const url = 'http://localhost:7777/testdb';
24
+ const db = request.client(url, { parallelism: 1 });
25
+ const timeoutDb = request.client(url, { parallelism: 1, requestTimeout: 500 });
26
+ const longTestTimeout = 3000;
27
+
28
+ beforeEach('Clean nock', function() {
29
+ nock.cleanAll();
30
+ });
31
+
32
+ describe('#unit Check request headers', function() {
33
+ it('should have a couchbackup user-agent', function(done) {
34
+ const couch = nock(url)
35
+ .matchHeader('user-agent', /couchbackup-cloudant\/\d+\.\d+\.\d+(?:-SNAPSHOT)? \(Node.js v\d+\.\d+\.\d+\)/)
36
+ .head('/good')
37
+ .reply(200);
38
+
39
+ db.service.headDocument({ db: db.db, docId: 'good' }).then(response => {
40
+ assert.ok(couch.isDone());
41
+ done();
42
+ }).catch(err => {
43
+ done(err);
44
+ });
45
+ });
46
+ });
47
+
48
+ describe('#unit Check request response error callback', function() {
49
+ it('should not callback with error for 200 response', function(done) {
50
+ const couch = nock(url)
51
+ .get('/good')
52
+ .reply(200, { ok: true });
53
+
54
+ db.service.getDocument({ db: db.db, docId: 'good' }).then(response => {
55
+ assert.ok(response.result);
56
+ assert.ok(couch.isDone());
57
+ done();
58
+ }).catch(err => {
59
+ err = error.convertResponseError(err);
60
+ done(err);
61
+ });
62
+ });
63
+
64
+ it('should callback with error after 3 500 responses', function(done) {
65
+ const couch = nock(url)
66
+ .get('/bad')
67
+ .times(3)
68
+ .reply(500, function(uri, requestBody) {
69
+ this.req.response.statusMessage = 'Internal Server Error';
70
+ return { error: 'foo', reason: 'bar' };
71
+ });
72
+
73
+ db.service.getDocument({ db: db.db, docId: 'bad' }).then(response => {
74
+ done(new Error('Successful response when error expected.'));
75
+ }).catch(err => {
76
+ err = error.convertResponseError(err);
77
+ assert.strictEqual(err.name, 'HTTPFatalError');
78
+ assert.strictEqual(err.message, `500 Internal Server Error: get ${url}/bad - Error: foo, Reason: bar`);
79
+ assert.ok(couch.isDone());
80
+ done();
81
+ }).catch(err => {
82
+ // Handle assertion errors
83
+ done(err);
84
+ });
85
+ }).timeout(longTestTimeout);
86
+
87
+ it('should callback with error after 3 POST 503 responses', function(done) {
88
+ const couch = nock(url)
89
+ .post('/_bulk_get')
90
+ .query(true)
91
+ .times(3)
92
+ .reply(503, function(uri, requestBody) {
93
+ this.req.response.statusMessage = 'Service Unavailable';
94
+ return { error: 'service_unavailable', reason: 'Service unavailable' };
95
+ });
96
+
97
+ db.service.postBulkGet({ db: db.db, revs: true, docs: [] }).then(response => {
98
+ done(new Error('Successful response when error expected.'));
99
+ }).catch(err => {
100
+ err = error.convertResponseError(err);
101
+ assert.strictEqual(err.name, 'HTTPFatalError');
102
+ assert.strictEqual(err.message, `503 Service Unavailable: post ${url}/_bulk_get - Error: service_unavailable, Reason: Service unavailable`);
103
+ assert.ok(couch.isDone());
104
+ done();
105
+ }).catch(err => {
106
+ // Handle assertion errors
107
+ done(err);
108
+ });
109
+ }).timeout(longTestTimeout);
110
+
111
+ it('should callback with error after 3 429 responses', function(done) {
112
+ const couch = nock(url)
113
+ .get('/bad')
114
+ .times(3)
115
+ .reply(429, function(uri, requestBody) {
116
+ this.req.response.statusMessage = 'Too Many Requests';
117
+ return { error: 'foo', reason: 'bar' };
118
+ });
119
+
120
+ db.service.getDocument({ db: db.db, docId: 'bad' }).then(response => {
121
+ done(new Error('Successful response when error expected.'));
122
+ }).catch(err => {
123
+ err = error.convertResponseError(err);
124
+ assert.strictEqual(err.name, 'HTTPFatalError');
125
+ assert.strictEqual(err.message, `429 Too Many Requests: get ${url}/bad - Error: foo, Reason: bar`);
126
+ assert.ok(couch.isDone());
127
+ done();
128
+ }).catch(err => {
129
+ // Handle assertion errors
130
+ done(err);
131
+ });
132
+ }).timeout(longTestTimeout);
133
+
134
+ it('should callback with fatal error for 404 response', function(done) {
135
+ const couch = nock(url)
136
+ .get('/bad')
137
+ .reply(404, function(uri, requestBody) {
138
+ this.req.response.statusMessage = 'Not Found';
139
+ return { error: 'foo', reason: 'bar' };
140
+ });
141
+
142
+ db.service.getDocument({ db: db.db, docId: 'bad' }).then(response => {
143
+ done(new Error('Successful response when error expected.'));
144
+ }).catch(err => {
145
+ err = error.convertResponseError(err);
146
+ assert.strictEqual(err.name, 'HTTPFatalError');
147
+ assert.strictEqual(err.message, `404 Not Found: get ${url}/bad - Error: foo, Reason: bar`);
148
+ assert.ok(couch.isDone());
149
+ done();
150
+ }).catch(err => {
151
+ // Handle assertion errors
152
+ done(err);
153
+ });
154
+ });
155
+
156
+ it('should callback with same error for no status code error response', function(done) {
157
+ const couch = nock(url)
158
+ .get('/bad')
159
+ .times(3)
160
+ .replyWithError('testing badness');
161
+
162
+ db.service.getDocument({ db: db.db, docId: 'bad' }).then(response => {
163
+ done(new Error('Successful response when error expected.'));
164
+ }).catch(err => {
165
+ const err2 = error.convertResponseError(err);
166
+ assert.strictEqual(err, err2);
167
+ assert.ok(couch.isDone());
168
+ done();
169
+ }).catch(err => {
170
+ // Handle assertion errors
171
+ done(err);
172
+ });
173
+ }).timeout(longTestTimeout);
174
+
175
+ it('should retry request if HTTP request gets timed out', function(done) {
176
+ const couch = nock(url)
177
+ .post('/_bulk_get')
178
+ .query(true)
179
+ .delay(1000)
180
+ .reply(200, { results: { docs: [{ id: '1', ok: { _id: '1' } }] } })
181
+ .post('/_bulk_get')
182
+ .query(true)
183
+ .reply(200, { results: { docs: [{ id: '1', ok: { _id: '1' } }, { id: '2', ok: { _id: '2' } }] } });
184
+
185
+ timeoutDb.service.postBulkGet({ db: db.db, revs: true, docs: [] }).then(response => {
186
+ assert.ok(response);
187
+ assert.ok(response.result);
188
+ assert.ok(response.result.results);
189
+ assert.ok(response.result.results.docs);
190
+ assert.strictEqual(response.result.results.docs.length, 2);
191
+ assert.ok(couch.isDone());
192
+ done();
193
+ }).catch(err => {
194
+ done(err);
195
+ });
196
+ });
197
+
198
+ it('should callback with error code ESOCKETTIMEDOUT if 3 HTTP requests gets timed out', function(done) {
199
+ // Increase the timeout for this test to allow for the delays
200
+ this.timeout(3000);
201
+ const couch = nock(url)
202
+ .post('/_bulk_get')
203
+ .query(true)
204
+ .delay(1000)
205
+ .times(3)
206
+ .reply(200, { ok: true });
207
+
208
+ timeoutDb.service.postBulkGet({ db: db.db, revs: true, docs: [] }).then(response => {
209
+ done(new Error('Successful response when error expected.'));
210
+ }).catch(err => {
211
+ err = error.convertResponseError(err);
212
+ // Note axios returns ECONNABORTED rather than ESOCKETTIMEDOUT
213
+ // See https://github.com/axios/axios/issues/2710 via https://github.com/axios/axios/issues/1543`
214
+ assert.strictEqual(err.statusText, 'ECONNABORTED');
215
+ assert.strictEqual(err.message, `timeout of 500ms exceeded: post ${url}/_bulk_get ECONNABORTED`);
216
+ assert.ok(couch.isDone());
217
+ done();
218
+ }).catch(err => {
219
+ // Handle assertion errors
220
+ done(err);
221
+ });
222
+ });
223
+ describe('#unit Check credentials', function() {
224
+ it('should properly decode username and password', function(done) {
225
+ const username = 'user%123';
226
+ const password = 'colon:at@321';
227
+ const url = `http://${encodeURIComponent(username)}:${encodeURIComponent(password)}@localhost:7777/testdb`;
228
+ const sessionUrl = 'http://localhost:7777';
229
+ const couch = nock(sessionUrl)
230
+ .post('/_session', { username: username, password: password })
231
+ .reply(200, { ok: true }, { 'Set-Cookie': 'AuthSession=ABC123DEF4356;' })
232
+ .get('/')
233
+ .reply(200);
234
+ const db = request.client(url, { parallelism: 1 });
235
+ db.service.getServerInformation().then(response => {
236
+ assert.ok(response);
237
+ assert.ok(couch.isDone());
238
+ done();
239
+ }).catch(err => {
240
+ done(err);
241
+ });
242
+ });
243
+ });
244
+ });
@@ -1,354 +1,36 @@
1
- "
2
-  
3
- �� 
4
- �� 
5
-  && 
6
-  
7
- ��
8
- @
9
-  MM
10
- SS UU 
11
- �� 
12
- �� 
13
-  00 
14
-  
15
- �� 
16
-  
17
- �� 2
18
- %% --, .00 440 2:: P
19
- %% %++ -- &--V ]00 00$ +44# *44Z aF
20
- &&
21
- --0 2008 :22
22
- 444 6<<
23
1
  BB 
24
- ''
25
- (( !--; T44? X
26
- ** >> 
27
- 00E H11 22 
28
- ::& );; << !
29
- :: KK 
30
- KK "LL LL !
31
- KK$ ,LL? GXX (
32
- LLT WMM MM% (XX
33
2
  (
34
- MM3 6NN QQ UU% (
35
- -- 44
36
- "kk !,
37
- kk" %}}) ,
38
- �� "
39
- �� 
40
- kk' )}} ,
41
- kk+ -}}7 9
42
- ��
43
- 
44
- �� 
45
- kk/ 8}}; D
46
- kk: S
47
- ��$ =
48
- kkU `}} '*
49
- ll vv
50
- ��! &.
51
- mm 
52
- �� 
53
- ��
54
- 
55
- ��1 C
56
- qq !
57
- �� &,
58
- qq" &xx
59
- 
60
- �� 
61
- �� 
62
- tt
63
3
  }}M ] 
64
- tt !uu xx 
65
- tt# 'vv 
66
- zz
67
4
  $
68
- ��, C
69
- zz% ({{  
70
- zz* 1}}. 5$
71
-
72
- ��H K
73
- ��
74
-
75
- �� $
76
-
77
- ��M X
78
- �� 
79
- �� *
80
-
81
- �� 
82
- ��( 2
83
-
84
- �� 
85
- ��" *
86
-
87
- �� 
88
- ��4 >
89
-
90
- �� 
91
- �� #
92
-
93
- ��$ '
94
- �� 
95
-
96
- ��) B
97
- ��< U<
98
-
99
- ��D L
100
- �� 
101
- �� 
102
- �� 
103
- �� 
104
-
105
- �� -$
106
-
107
- ��. 1
108
- �� 
109
- �� 0
110
-
111
- ��3 :
112
- �� 
113
- �� 
114
- ��+ 2
115
-
116
- �� 
117
- �� 
118
- }} 
119
- �� $
120
-
121
- �� 
122
- �� 
123
- ��
124
- 
125
-
126
- �� (
127
- �� $
128
-
129
- ��* -
130
- ��
131
-
132
- �� $
133
-
134
- ��/ 6
135
- �� 
136
- �� $
137
-
138
- ��8 :
139
- �� 
140
- ��
141
- 
142
-
143
- ��< A
144
- ��( -
145
-
146
- ��C M
147
- �� 
148
-
149
- ��O W
150
- �� $
151
-
152
- �� 
153
- �� 
154
- �� 0
155
-
156
- �� 
157
- �� 
158
- �� 
159
- �� !<
160
-
161
- �� 
162
- ��
163
- 
164
- �� 
165
- �� 
166
- �� <
167
-
168
- ��! (
169
- �� 
170
- �� 
171
- �� 
172
- �� 0
173
-
174
- ��* .
175
- ��: >
176
- �� 
177
- ��
178
- <
179
-
180
- ��
181
- 
182
- �� 
183
- �� 
184
- �� 
185
- �� $
186
-
187
- ��
188
- 
189
- ��( 1
190
- �� 
191
-
192
- ��
193
5
  
194
- �� 
195
-
196
- �� $
197
-
198
- �� 
199
- �� $
200
-
201
- ��/ 0
202
- ��
203
- ��
204
- $
205
-
206
- ��" %
207
- �� 
208
- �� 
209
-
210
- ��
211
- �� 0
212
-
213
- ��
214
6
  
215
- �� 
216
- ��) ,
217
- �� 
218
-
219
- ��
220
7
  
221
- �� 
222
-
223
- �� *
224
- �� 
225
-
226
- �� 
227
- �� 
228
-
229
- �� $
230
- ��
231
8
  $
232
-
233
- �� 
234
- �� 
235
- �� $
236
-
237
- �� 
238
- �� 
239
- �� 
240
-
241
- ��
242
9
  
243
- ��! "
244
- ++ .. 
245
- 11 33 
246
- 33 55 
247
- 00J K66 
248
- .. 77 
249
- ** 88 
250
- ;;
251
10
  == 
252
- == ?? 
253
- ::+ ,@@ 
254
- %%' (CC 
255
- LL LL/ 0
256
- LL= >LLK L
257
- NN VV 
258
- MM8 9WW 
259
- LL[ \YY 
260
- KK. /ZZ 
261
- uu ww 
262
- tt) *yy 
263
- {{ ~~ 
264
- ~~
265
11
  
266
- �� 
267
- zz3 4
268
- �� 
269
-
270
- �� 
271
- �� 
272
-
273
- ��& '
274
- �� 
275
-
276
- ��
277
12
  
278
- �� 
279
-
280
- ��Z [
281
- �� 
282
- qq( )
283
- �� 
284
-
285
- �� !
286
- ��F G
287
-
288
- �� 
289
- ��' (
290
-
291
- �� 
292
- �� 
293
- kkb c�� 
294
-
295
- ��$ %
296
- �� 
297
-
298
- ��5 6
299
- �� 
300
-
301
- �� 
302
- �� 
303
-
304
- �� 
305
- �� 
306
-
307
- ��< =
308
- �� 
309
-
310
- ��N O�� 
311
-
312
- �� 
313
- �� 
314
-
315
- ��
316
13
  
317
- �� 
318
-
319
- ��& '
320
- �� 
321
-
322
- �� 
323
- �� 
324
-
325
- �� 
326
- ��
327
-
328
- ��' (
329
- ��
330
- 
331
-
332
- �� 
333
- �� 
334
-
335
- ��2 3
336
- �� 
337
-
338
- �� 
339
- �� 
340
-
341
- �� 
342
- �� 
343
-
344
- �� 
345
- �� 
346
-
347
- �� 
348
- �� 
349
-
350
- ��0 1
351
- �� 
352
-
353
- �� 
354
- �� 
355
-
356
- �� 
357
- ��" #
358
-
359
- �� 
360
- �� 
361
-
362
- ��Y Z�� 
363
-
364
- �� 
365
- �� 
366
-
367
- ��& '�� 
14
+ 
15
+   �
16
+      ##
17
+ 88 99 >> AA (
18
+ 7 =+ 1 @@ 2
19
+ 
20
+  --$ %99# $AA$ %
21
+ ? C!! ##/ 3
22
+  * :## -
23
+   $ *
24
+ 5 8   !! 
25
+ ))L P//
26
+ 11- 1
27
+ ,, --3 C11 +
28
+ --[ ^.. // 
29
+ 66N R99? C
30
+ <<U YAAS W
31
+ ?? AA4 D
32
+   
33
+  # $
34
+  . /
35
+    ""
36
+ 
37
+ "" $$
38
+ 
39
+ : ;%% 
40
+ # $&& 
41
+ E F'' 
42
+ .. 00 
43
+ 00 22 
44
+ --` a33 
45
+ ))R S44 
46
+ 66T U:: 
47
+ <<[ \BB 
48
+ ? @CC 
49
+ ? @DD