--- /srv/reproducible-results/rbuild-debian/r-b-build.gQYZBb4R/b1/python-gsd_4.0.0-1_amd64.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.gQYZBb4R/b2/python-gsd_4.0.0-1_amd64.changes ├── Files │ @@ -1,4 +1,4 @@ │ │ - fb03088e56b57ab473b1ccfa53c7df7d 122464 doc optional python-gsd-doc_4.0.0-1_all.deb │ + f185a0b81957879cae4ab4ea8694da1e 122468 doc optional python-gsd-doc_4.0.0-1_all.deb │ d87cd6831dde921ada279435f407c06d 362300 debug optional python3-gsd-dbgsym_4.0.0-1_amd64.deb │ 7f9647f73192c62530ad5b20c3c04475 208964 python optional python3-gsd_4.0.0-1_amd64.deb ├── python-gsd-doc_4.0.0-1_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2025-08-11 08:32:38.000000 debian-binary │ │ -rw-r--r-- 0 0 0 2708 2025-08-11 08:32:38.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 119564 2025-08-11 08:32:38.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 119568 2025-08-11 08:32:38.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -71,15 +71,15 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 23272 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/python-api.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 88696 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.fl.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 95626 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.hoomd.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 49510 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.pygsd.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 18753 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/python-module-gsd.version.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 107552 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/schema-hoomd.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 16657 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/search.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 73229 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/searchindex.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 73237 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/searchindex.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 32663 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/shapes.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 20809 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/specification.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 24982 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/style.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2025-08-11 08:32:38.000000 ./usr/share/doc-base/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 331 2025-08-11 08:32:38.000000 ./usr/share/doc-base/python-gsd-doc.python-gsd │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/_static/doctools.js -> ../../../../javascript/sphinxdoc/1.0/doctools.js │ │ │ │ lrwxrwxrwx 0 root (0) root (0) 0 2025-08-11 08:32:38.000000 ./usr/share/doc/python-gsd-doc/html/_static/language_data.js -> ../../../../javascript/sphinxdoc/1.0/language_data.js │ │ │ ├── ./usr/share/doc/python-gsd-doc/html/hoomd-examples.html │ │ │ │ @@ -354,23 +354,23 @@ │ │ │ │ Out[16]: np.uint64(5) │ │ │ │ │ │ │ │ In [17]: frame.particles.N │ │ │ │ Out[17]: np.uint32(9) │ │ │ │ │ │ │ │ In [18]: frame.particles.position │ │ │ │ Out[18]: │ │ │ │ -array([[0.6677328 , 0.8213257 , 0.6674861 ], │ │ │ │ - [0.5547276 , 0.9966012 , 0.02511235], │ │ │ │ - [0.89096284, 0.9257116 , 0.7023105 ], │ │ │ │ - [0.7234874 , 0.41133717, 0.3202295 ], │ │ │ │ - [0.04147834, 0.5285223 , 0.3846988 ], │ │ │ │ - [0.35561624, 0.8787627 , 0.33769423], │ │ │ │ - [0.7806315 , 0.9297999 , 0.8216616 ], │ │ │ │ - [0.97796446, 0.669706 , 0.9461866 ], │ │ │ │ - [0.5250734 , 0.8560434 , 0.69748396]], dtype=float32) │ │ │ │ +array([[0.42273986, 0.00119538, 0.07554954], │ │ │ │ + [0.544627 , 0.457182 , 0.12844063], │ │ │ │ + [0.5191807 , 0.93156725, 0.67181826], │ │ │ │ + [0.38634574, 0.38248292, 0.06432302], │ │ │ │ + [0.10994696, 0.80607 , 0.4465127 ], │ │ │ │ + [0.29299894, 0.6138905 , 0.4805193 ], │ │ │ │ + [0.6096183 , 0.825109 , 0.28283715], │ │ │ │ + [0.50851226, 0.15095745, 0.0567144 ], │ │ │ │ + [0.00559976, 0.19834387, 0.46424872]], dtype=float32) │ │ │ │ │ │ │ │ │ │ │ │

gsd.hoomd.HOOMDTrajectory supports random indexing of frames in the file. │ │ │ │ Indexing into a trajectory returns a gsd.hoomd.Frame.

│ │ │ │ │ │ │ │
│ │ │ │

Slicing and selection

│ │ │ │ @@ -397,21 +397,21 @@ │ │ │ │

Pure python reader

│ │ │ │
In [23]: f = gsd.pygsd.GSDFile(open('example.gsd', 'rb'))
│ │ │ │  
│ │ │ │  In [24]: trajectory = gsd.hoomd.HOOMDTrajectory(f);
│ │ │ │  
│ │ │ │  In [25]: trajectory[3].particles.position
│ │ │ │  Out[25]: 
│ │ │ │ -array([[0.8331532 , 0.19725868, 0.67997414],
│ │ │ │ -       [0.01993724, 0.499004  , 0.8539594 ],
│ │ │ │ -       [0.6885922 , 0.88828313, 0.132843  ],
│ │ │ │ -       [0.57792616, 0.03663801, 0.24251933],
│ │ │ │ -       [0.72045106, 0.43235323, 0.3263228 ],
│ │ │ │ -       [0.13294075, 0.94838744, 0.43018812],
│ │ │ │ -       [0.5149337 , 0.10885777, 0.07219999]], dtype=float32)
│ │ │ │ +array([[0.79937756, 0.02676329, 0.21170373],
│ │ │ │ +       [0.6772995 , 0.4178387 , 0.9156584 ],
│ │ │ │ +       [0.25008443, 0.10054143, 0.6978588 ],
│ │ │ │ +       [0.99609125, 0.48974732, 0.34700024],
│ │ │ │ +       [0.06529749, 0.2516655 , 0.9121943 ],
│ │ │ │ +       [0.37612745, 0.02483141, 0.67404586],
│ │ │ │ +       [0.88794833, 0.09425218, 0.23472789]], dtype=float32)
│ │ │ │  
│ │ │ │
│ │ │ │

You can use GSD without needing to compile C code to read GSD files │ │ │ │ using gsd.pygsd.GSDFile in combination with gsd.hoomd.HOOMDTrajectory. It │ │ │ │ only supports the rb mode and does not read files as fast as the C │ │ │ │ implementation. It takes in a python file-like object, so it can be used with │ │ │ │ in-memory IO classes, and grid file classes that access data over the internet.

│ │ │ │ ├── html2text {} │ │ │ │ │ @@ -95,23 +95,23 @@ │ │ │ │ │ Out[16]: np.uint64(5) │ │ │ │ │ │ │ │ │ │ In [17]: frame.particles.N │ │ │ │ │ Out[17]: np.uint32(9) │ │ │ │ │ │ │ │ │ │ In [18]: frame.particles.position │ │ │ │ │ Out[18]: │ │ │ │ │ -array([[0.6677328 , 0.8213257 , 0.6674861 ], │ │ │ │ │ - [0.5547276 , 0.9966012 , 0.02511235], │ │ │ │ │ - [0.89096284, 0.9257116 , 0.7023105 ], │ │ │ │ │ - [0.7234874 , 0.41133717, 0.3202295 ], │ │ │ │ │ - [0.04147834, 0.5285223 , 0.3846988 ], │ │ │ │ │ - [0.35561624, 0.8787627 , 0.33769423], │ │ │ │ │ - [0.7806315 , 0.9297999 , 0.8216616 ], │ │ │ │ │ - [0.97796446, 0.669706 , 0.9461866 ], │ │ │ │ │ - [0.5250734 , 0.8560434 , 0.69748396]], dtype=float32) │ │ │ │ │ +array([[0.42273986, 0.00119538, 0.07554954], │ │ │ │ │ + [0.544627 , 0.457182 , 0.12844063], │ │ │ │ │ + [0.5191807 , 0.93156725, 0.67181826], │ │ │ │ │ + [0.38634574, 0.38248292, 0.06432302], │ │ │ │ │ + [0.10994696, 0.80607 , 0.4465127 ], │ │ │ │ │ + [0.29299894, 0.6138905 , 0.4805193 ], │ │ │ │ │ + [0.6096183 , 0.825109 , 0.28283715], │ │ │ │ │ + [0.50851226, 0.15095745, 0.0567144 ], │ │ │ │ │ + [0.00559976, 0.19834387, 0.46424872]], dtype=float32) │ │ │ │ │ _g_s_d_._h_o_o_m_d_._H_O_O_M_D_T_r_a_j_e_c_t_o_r_y supports random indexing of frames in the file. │ │ │ │ │ Indexing into a trajectory returns a _g_s_d_._h_o_o_m_d_._F_r_a_m_e. │ │ │ │ │ ********** SSlliicciinngg aanndd sseelleeccttiioonn_?¶ ********** │ │ │ │ │ Use the slicing operator to select individual frames or a subset of a │ │ │ │ │ trajectory. │ │ │ │ │ In [19]: f = gsd.hoomd.open(name='example.gsd', mode='r') │ │ │ │ │ │ │ │ │ │ @@ -130,21 +130,21 @@ │ │ │ │ │ ********** PPuurree ppyytthhoonn rreeaaddeerr_?¶ ********** │ │ │ │ │ In [23]: f = gsd.pygsd.GSDFile(open('example.gsd', 'rb')) │ │ │ │ │ │ │ │ │ │ In [24]: trajectory = gsd.hoomd.HOOMDTrajectory(f); │ │ │ │ │ │ │ │ │ │ In [25]: trajectory[3].particles.position │ │ │ │ │ Out[25]: │ │ │ │ │ -array([[0.8331532 , 0.19725868, 0.67997414], │ │ │ │ │ - [0.01993724, 0.499004 , 0.8539594 ], │ │ │ │ │ - [0.6885922 , 0.88828313, 0.132843 ], │ │ │ │ │ - [0.57792616, 0.03663801, 0.24251933], │ │ │ │ │ - [0.72045106, 0.43235323, 0.3263228 ], │ │ │ │ │ - [0.13294075, 0.94838744, 0.43018812], │ │ │ │ │ - [0.5149337 , 0.10885777, 0.07219999]], dtype=float32) │ │ │ │ │ +array([[0.79937756, 0.02676329, 0.21170373], │ │ │ │ │ + [0.6772995 , 0.4178387 , 0.9156584 ], │ │ │ │ │ + [0.25008443, 0.10054143, 0.6978588 ], │ │ │ │ │ + [0.99609125, 0.48974732, 0.34700024], │ │ │ │ │ + [0.06529749, 0.2516655 , 0.9121943 ], │ │ │ │ │ + [0.37612745, 0.02483141, 0.67404586], │ │ │ │ │ + [0.88794833, 0.09425218, 0.23472789]], dtype=float32) │ │ │ │ │ You can use GGSSDD without needing to compile C code to read GGSSDD files using │ │ │ │ │ _g_s_d_._p_y_g_s_d_._G_S_D_F_i_l_e in combination with _g_s_d_._h_o_o_m_d_._H_O_O_M_D_T_r_a_j_e_c_t_o_r_y. It only │ │ │ │ │ supports the rb mode and does not read files as fast as the C implementation. │ │ │ │ │ It takes in a python file-like object, so it can be used with in-memory IO │ │ │ │ │ classes, and grid file classes that access data over the internet. │ │ │ │ │ Warning │ │ │ │ │ _g_s_d_._p_y_g_s_d is ssllooww. Use _g_s_d_._h_o_o_m_d_._o_p_e_n whenever possible. │ │ │ ├── ./usr/share/doc/python-gsd-doc/html/searchindex.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -1876,183 +1876,183 @@ │ │ │ │ │ "12": "py:property", │ │ │ │ │ "13": "std:chunk", │ │ │ │ │ "14": "std:cmdoption" │ │ │ │ │ }, │ │ │ │ │ "terms": { │ │ │ │ │ "": [1, 2, 3, 8, 11, 13, 14, 18, 21], │ │ │ │ │ "0": [0, 6, 7, 8, 11, 14, 15, 16, 18, 19], │ │ │ │ │ - "01993724": 8, │ │ │ │ │ - "02511235": 8, │ │ │ │ │ - "03663801": 8, │ │ │ │ │ - "04147834": 8, │ │ │ │ │ - "07219999": 8, │ │ │ │ │ + "00119538": 8, │ │ │ │ │ + "00559976": 8, │ │ │ │ │ + "02483141": 8, │ │ │ │ │ + "02676329": 8, │ │ │ │ │ + "0567144": 8, │ │ │ │ │ + "06432302": 8, │ │ │ │ │ + "06529749": 8, │ │ │ │ │ + "07554954": 8, │ │ │ │ │ + "09425218": 8, │ │ │ │ │ "0x65df65df65df65df": 6, │ │ │ │ │ "0xaaaabbbb": 6, │ │ │ │ │ "1": [0, 7, 8, 12, 14, 15, 16, 18, 19, 20], │ │ │ │ │ "10": [7, 8, 11, 14, 15], │ │ │ │ │ "100": [8, 15, 21], │ │ │ │ │ - "10885777": 8, │ │ │ │ │ + "10054143": 8, │ │ │ │ │ + "10994696": 8, │ │ │ │ │ "11": [7, 8, 14], │ │ │ │ │ "12": [7, 8, 14], │ │ │ │ │ "127": 1, │ │ │ │ │ + "12844063": 8, │ │ │ │ │ "13": [7, 8, 14], │ │ │ │ │ - "132843": 8, │ │ │ │ │ - "13294075": 8, │ │ │ │ │ "13_gsd": [7, 8, 14], │ │ │ │ │ "14": [7, 8, 11, 14], │ │ │ │ │ "15": [7, 8, 14], │ │ │ │ │ + "15095745": 8, │ │ │ │ │ "16": [0, 6, 7, 8, 14], │ │ │ │ │ "17": [7, 8, 14], │ │ │ │ │ "18": [7, 8, 11], │ │ │ │ │ "19": [7, 8, 14], │ │ │ │ │ - "19725868": 8, │ │ │ │ │ + "19834387": 8, │ │ │ │ │ "1d": [14, 16], │ │ │ │ │ "1x1": [18, 19], │ │ │ │ │ "2": [0, 7, 8, 11, 12, 14, 15, 16, 18, 19, 20], │ │ │ │ │ "20": [7, 8], │ │ │ │ │ "200": [8, 15], │ │ │ │ │ "2016": 12, │ │ │ │ │ "2019": 11, │ │ │ │ │ "2022": 11, │ │ │ │ │ "2025": 12, │ │ │ │ │ "21": [7, 8], │ │ │ │ │ + "21170373": 8, │ │ │ │ │ "22": [7, 8, 11], │ │ │ │ │ "23": [7, 8], │ │ │ │ │ + "23472789": 8, │ │ │ │ │ "235": 1, │ │ │ │ │ "237": 1, │ │ │ │ │ "238": 1, │ │ │ │ │ "24": [7, 8], │ │ │ │ │ - "24251933": 8, │ │ │ │ │ "249": 1, │ │ │ │ │ "25": [7, 8], │ │ │ │ │ + "25008443": 8, │ │ │ │ │ + "2516655": 8, │ │ │ │ │ "255": 1, │ │ │ │ │ "256": [0, 6], │ │ │ │ │ "257": 1, │ │ │ │ │ "26": [7, 8], │ │ │ │ │ "266": 1, │ │ │ │ │ "267": 1, │ │ │ │ │ "27": [7, 8], │ │ │ │ │ "270": 1, │ │ │ │ │ "28": [7, 8], │ │ │ │ │ + "28283715": 8, │ │ │ │ │ "283": 1, │ │ │ │ │ "29": [7, 8], │ │ │ │ │ + "29299894": 8, │ │ │ │ │ "2d": [14, 16, 18, 19], │ │ │ │ │ "2gib": 1, │ │ │ │ │ "3": [7, 8, 11, 14, 15, 16, 18, 19], │ │ │ │ │ "30": [7, 8], │ │ │ │ │ "300": [8, 15], │ │ │ │ │ "308": 1, │ │ │ │ │ "31": [7, 8], │ │ │ │ │ "317": 1, │ │ │ │ │ "319": 1, │ │ │ │ │ "32": [0, 6, 7, 18], │ │ │ │ │ - "3202295": 8, │ │ │ │ │ "322": 1, │ │ │ │ │ "323": 1, │ │ │ │ │ "324": 1, │ │ │ │ │ "325": 1, │ │ │ │ │ - "3263228": 8, │ │ │ │ │ "33": 7, │ │ │ │ │ - "33769423": 8, │ │ │ │ │ "34": 7, │ │ │ │ │ + "34700024": 8, │ │ │ │ │ "35": 7, │ │ │ │ │ - "35561624": 8, │ │ │ │ │ "36": 7, │ │ │ │ │ "365": 1, │ │ │ │ │ "367": 1, │ │ │ │ │ "37": 7, │ │ │ │ │ "376": 1, │ │ │ │ │ + "37612745": 8, │ │ │ │ │ "38": 7, │ │ │ │ │ - "3846988": 8, │ │ │ │ │ + "38248292": 8, │ │ │ │ │ + "38634574": 8, │ │ │ │ │ "388": 1, │ │ │ │ │ "39": 7, │ │ │ │ │ "391": 1, │ │ │ │ │ "3d": 20, │ │ │ │ │ "4": [0, 7, 8, 14, 15, 18, 21], │ │ │ │ │ "40": 7, │ │ │ │ │ "400": [8, 15], │ │ │ │ │ "405": 1, │ │ │ │ │ "41": 7, │ │ │ │ │ - "41133717": 8, │ │ │ │ │ "417": 1, │ │ │ │ │ + "4178387": 8, │ │ │ │ │ "422": 1, │ │ │ │ │ + "42273986": 8, │ │ │ │ │ "429": 1, │ │ │ │ │ "43": 7, │ │ │ │ │ - "43018812": 8, │ │ │ │ │ - "43235323": 8, │ │ │ │ │ "44": 7, │ │ │ │ │ + "4465127": 8, │ │ │ │ │ "45": 7, │ │ │ │ │ + "457182": 8, │ │ │ │ │ "46": 7, │ │ │ │ │ + "46424872": 8, │ │ │ │ │ "47": 7, │ │ │ │ │ "48": 7, │ │ │ │ │ + "4805193": 8, │ │ │ │ │ + "48974732": 8, │ │ │ │ │ "49": 7, │ │ │ │ │ - "499004": 8, │ │ │ │ │ "5": [7, 8, 14, 15, 19], │ │ │ │ │ "50": 7, │ │ │ │ │ "500": [8, 15], │ │ │ │ │ + "50851226": 8, │ │ │ │ │ "51": 7, │ │ │ │ │ - "5149337": 8, │ │ │ │ │ + "5191807": 8, │ │ │ │ │ "52": 7, │ │ │ │ │ - "5250734": 8, │ │ │ │ │ - "5285223": 8, │ │ │ │ │ "53": [0, 7], │ │ │ │ │ "54": 7, │ │ │ │ │ + "544627": 8, │ │ │ │ │ "55": 7, │ │ │ │ │ - "5547276": 8, │ │ │ │ │ "56": 7, │ │ │ │ │ - "57792616": 8, │ │ │ │ │ "6": [7, 8, 14, 15], │ │ │ │ │ "600": [8, 15], │ │ │ │ │ + "6096183": 8, │ │ │ │ │ + "6138905": 8, │ │ │ │ │ "63": [0, 6], │ │ │ │ │ "630": 8, │ │ │ │ │ "64": [0, 6, 11], │ │ │ │ │ "648": 7, │ │ │ │ │ "65535": 6, │ │ │ │ │ - "6674861": 8, │ │ │ │ │ - "6677328": 8, │ │ │ │ │ - "669706": 8, │ │ │ │ │ - "67997414": 8, │ │ │ │ │ - "6885922": 8, │ │ │ │ │ - "69748396": 8, │ │ │ │ │ + "67181826": 8, │ │ │ │ │ + "67404586": 8, │ │ │ │ │ + "6772995": 8, │ │ │ │ │ + "6978588": 8, │ │ │ │ │ "6x1": 18, │ │ │ │ │ "7": [7, 8, 14, 15, 19], │ │ │ │ │ "70": 14, │ │ │ │ │ "700": [8, 15], │ │ │ │ │ - "7023105": 8, │ │ │ │ │ - "72045106": 8, │ │ │ │ │ - "7234874": 8, │ │ │ │ │ "761": 14, │ │ │ │ │ "774": 14, │ │ │ │ │ - "7806315": 8, │ │ │ │ │ "785": 8, │ │ │ │ │ "786": 8, │ │ │ │ │ "787": 8, │ │ │ │ │ "789": 8, │ │ │ │ │ "791": 8, │ │ │ │ │ "792": 8, │ │ │ │ │ + "79937756": 8, │ │ │ │ │ "8": [0, 6, 7, 8, 14, 15, 18, 19], │ │ │ │ │ "80": [6, 14, 21], │ │ │ │ │ "800": [8, 15], │ │ │ │ │ - "8213257": 8, │ │ │ │ │ - "8216616": 8, │ │ │ │ │ - "8331532": 8, │ │ │ │ │ - "8539594": 8, │ │ │ │ │ - "8560434": 8, │ │ │ │ │ - "8787627": 8, │ │ │ │ │ - "88828313": 8, │ │ │ │ │ - "89096284": 8, │ │ │ │ │ + "80607": 8, │ │ │ │ │ + "825109": 8, │ │ │ │ │ + "88794833": 8, │ │ │ │ │ "9": [7, 8, 11, 14, 15], │ │ │ │ │ "90": 14, │ │ │ │ │ "900": [8, 15], │ │ │ │ │ - "9257116": 8, │ │ │ │ │ - "9297999": 8, │ │ │ │ │ - "9461866": 8, │ │ │ │ │ - "94838744": 8, │ │ │ │ │ - "97796446": 8, │ │ │ │ │ - "9966012": 8, │ │ │ │ │ + "9121943": 8, │ │ │ │ │ + "9156584": 8, │ │ │ │ │ + "93156725": 8, │ │ │ │ │ + "99609125": 8, │ │ │ │ │ "A": [0, 5, 6, 8, 9, 12, 18, 19], │ │ │ │ │ "AND": 12, │ │ │ │ │ "AS": 12, │ │ │ │ │ "As": 15, │ │ │ │ │ "BE": 12, │ │ │ │ │ "BUT": 12, │ │ │ │ │ "BY": 12,