<!-- 
RSS generated by JIRA (9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66) at Thu Feb 08 09:08:47 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>MongoDB Jira</title>
    <link>https://jira.mongodb.org</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.7.1</version>
        <build-number>970001</build-number>
        <build-date>13-04-2023</build-date>
    </build-info>


<item>
            <title>[MONGOCRYPT-483] Support decimal128</title>
                <link>https://jira.mongodb.org/browse/MONGOCRYPT-483</link>
                <project id="17481" key="MONGOCRYPT">Libmongocrypt</project>
                    <description>&lt;p&gt;&lt;b&gt;Scope&lt;/b&gt;&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Vendor a decimal128 library.&lt;/li&gt;
	&lt;li&gt;Support encoding, edge generation, and min cover of a BSON decimal128.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;b&gt;Background &amp;amp; Motivation&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Relevant server code is in &lt;a href=&quot;https://github.com/mongodb/mongo/blob/31f5c4c0dc92f1bc3dd7b4a9f2613cfabf070e35/src/mongo/crypto/fle_crypto.cpp&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;fle_crypto.cpp&lt;/a&gt;&lt;br/&gt;
Encoding in the server code is in getTypeInfoDecimal128 Port to mc-range-encoding.c.&lt;br/&gt;
Edge generation is in server code in getEdgesDecimal128. Port to mc-range-edge-generation.c.&lt;br/&gt;
MinCover is in server code in minCoverDecimal128. Port to mc-range-mincover.c.&lt;/p&gt;

&lt;p&gt;This will require a dependency on a decimal128 library. &lt;a href=&quot;https://docs.google.com/document/d/1kkiqr91-HPpr0lDCm1lDVWSvRCuDKKGgdmwYgi2OA7A/edit&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;DBX Scope: Driver Support for Range Index&lt;/a&gt; suggests &quot;Import libtommath or tomsfastmath or similar to perform int128 math&quot;. The server vendors the Intel Decimal Floating-Point Math Library v2.1: &lt;a href=&quot;https://github.com/mongodb/mongo/tree/master/src/third_party/IntelRDFPMathLib20U1&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/mongo/tree/master/src/third_party/IntelRDFPMathLib20U1&lt;/a&gt;&lt;/p&gt;</description>
                <environment></environment>
        <key id="2133851">MONGOCRYPT-483</key>
            <summary>Support decimal128</summary>
                <type id="3" iconUrl="https://jira.mongodb.org/secure/viewavatar?size=xsmall&amp;avatarId=14718&amp;avatarType=issuetype">Task</type>
                                            <priority id="3" iconUrl="https://jira.mongodb.org/images/icons/priorities/major.svg">Major - P3</priority>
                        <status id="6" iconUrl="https://jira.mongodb.org/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="13201">Fixed</resolution>
                                        <assignee username="colby.pike@mongodb.com">Colby Pike</assignee>
                                    <reporter username="kevin.albertson@mongodb.com">Kevin Albertson</reporter>
                        <labels>
                    </labels>
                <created>Mon, 12 Sep 2022 12:40:31 +0000</created>
                <updated>Sat, 28 Oct 2023 10:25:50 +0000</updated>
                            <resolved>Thu, 19 Jan 2023 00:05:52 +0000</resolved>
                                                    <fixVersion>1.7.0</fixVersion>
                    <fixVersion>1.7.0-alpha2</fixVersion>
                                                        <votes>0</votes>
                                    <watches>1</watches>
                                                                                                                <comments>
                            <comment id="5140761" author="xgen-internal-githook" created="Wed, 25 Jan 2023 19:23:13 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Kevin Albertson&apos;, &apos;email&apos;: &apos;kevin.albertson@mongodb.com&apos;, &apos;username&apos;: &apos;kevinAlbs&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/MONGOCRYPT-483&quot; title=&quot;Support decimal128&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MONGOCRYPT-483&quot;&gt;&lt;del&gt;MONGOCRYPT-483&lt;/del&gt;&lt;/a&gt; make `CMAKE_BUILD_TYPE` configurable. (#532)&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;make CMAKE_BUILD_TYPE configurable&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This enables the C driver to build with the same CMAKE_BUILD_TYPE as the C driver.&lt;/p&gt;

&lt;p&gt;On Windows, a matching build type may be required. Mixing debug / release versions of the CRT may be problematic.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;remove unused CMAKE variable&lt;br/&gt;
Branch: shreyaskalyan/&lt;a href=&quot;https://jira.mongodb.org/browse/MONGOCRYPT-509&quot; title=&quot;Create serialization API for FLE2IndexedEqualityEncryptedValueTokens&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MONGOCRYPT-509&quot;&gt;&lt;del&gt;MONGOCRYPT-509&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/libmongocrypt/commit/db648b0973998d1e6b91abf06cf6d8b2edb2b26f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/libmongocrypt/commit/db648b0973998d1e6b91abf06cf6d8b2edb2b26f&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="5140760" author="xgen-internal-githook" created="Wed, 25 Jan 2023 19:23:11 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;vector-of-bool&apos;, &apos;email&apos;: &apos;vectorofbool@gmail.com&apos;, &apos;username&apos;: &apos;vector-of-bool&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/MONGOCRYPT-483&quot; title=&quot;Support decimal128&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MONGOCRYPT-483&quot;&gt;&lt;del&gt;MONGOCRYPT-483&lt;/del&gt;&lt;/a&gt;: Support Decimal128 in range-based Queryable Encryption (#522)&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Basic IntelDFP wrapper, and test tweaks:&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Download and build IntelDFP as part of CMake configuration.&lt;/li&gt;
	&lt;li&gt;Modify the CHECK macro to be defined in a separate file to be reusable&lt;br/&gt;
  between tests.&lt;/li&gt;
	&lt;li&gt;Clean up DFP build, and patch for s390x&lt;/li&gt;
	&lt;li&gt;Suppress DFP warnings. It generates many, and we don&apos;t want them.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Define the OST encoding for Decimal128&lt;/li&gt;
	&lt;li&gt;Tweak bitstring generation and inline clz operations&lt;/li&gt;
	&lt;li&gt;Bit operations for u128&lt;/li&gt;
	&lt;li&gt;Edge generation for Decimal128&lt;/li&gt;
	&lt;li&gt;Modify mincover template to support non-builting types&lt;/li&gt;
	&lt;li&gt;mincover test vector data&lt;/li&gt;
	&lt;li&gt;New mincover impl for Decimal128&lt;/li&gt;
	&lt;li&gt;add decimal128 tests&lt;/li&gt;
	&lt;li&gt;Implement range-insert for decimal128&lt;/li&gt;
	&lt;li&gt;Implement find-range&lt;/li&gt;
	&lt;li&gt;Fix new conversion warning-errors&lt;/li&gt;
	&lt;li&gt;A safer strncpy ensures we write a null terminator&lt;/li&gt;
	&lt;li&gt;Handle case where &apos;min&apos; is finer than &apos;precision&apos;&lt;/li&gt;
	&lt;li&gt;We hit MSVC impl limits on string length:&lt;/li&gt;
&lt;/ul&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Instead of using a newline-delimited string list, represent them as&lt;br/&gt;
  the array of strings directly. This also simplifies test code from&lt;br/&gt;
  needing to parse the strings.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;Bump CMake min-required&lt;/li&gt;
	&lt;li&gt;Fix UB in IntellRDFP lib&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Co-authored-by: Kevin Albertson &amp;lt;kevin.albertson@mongodb.com&amp;gt;&lt;br/&gt;
Branch: shreyaskalyan/&lt;a href=&quot;https://jira.mongodb.org/browse/MONGOCRYPT-509&quot; title=&quot;Create serialization API for FLE2IndexedEqualityEncryptedValueTokens&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MONGOCRYPT-509&quot;&gt;&lt;del&gt;MONGOCRYPT-509&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/libmongocrypt/commit/b704947c2832745c680cc528bb37ce7e0747767b&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/libmongocrypt/commit/b704947c2832745c680cc528bb37ce7e0747767b&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5140757" author="xgen-internal-githook" created="Wed, 25 Jan 2023 19:23:08 +0000"  >&lt;p&gt;Author: &lt;/p&gt;
{&apos;name&apos;: &apos;Kevin Albertson&apos;, &apos;email&apos;: &apos;kevin.albertson@mongodb.com&apos;, &apos;username&apos;: &apos;kevinAlbs&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/MONGOCRYPT-483&quot; title=&quot;Support decimal128&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MONGOCRYPT-483&quot;&gt;&lt;del&gt;MONGOCRYPT-483&lt;/del&gt;&lt;/a&gt; fix int128 test on big endian (#529)&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;print numerator and denominator on division failure&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;add rhel83 variant&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;copy endian.h&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix int128 tests on big endian&lt;br/&gt;
Branch: shreyaskalyan/&lt;a href=&quot;https://jira.mongodb.org/browse/MONGOCRYPT-509&quot; title=&quot;Create serialization API for FLE2IndexedEqualityEncryptedValueTokens&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MONGOCRYPT-509&quot;&gt;&lt;del&gt;MONGOCRYPT-509&lt;/del&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/libmongocrypt/commit/7004ab111a712f75f8fba7cbbd4791812eaa58fb&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/libmongocrypt/commit/7004ab111a712f75f8fba7cbbd4791812eaa58fb&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="5126773" author="xgen-internal-githook" created="Fri, 20 Jan 2023 13:23:03 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kevin Albertson&apos;, &apos;email&apos;: &apos;kevin.albertson@mongodb.com&apos;, &apos;username&apos;: &apos;kevinAlbs&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/MONGOCRYPT-483&quot; title=&quot;Support decimal128&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MONGOCRYPT-483&quot;&gt;&lt;del&gt;MONGOCRYPT-483&lt;/del&gt;&lt;/a&gt; make `CMAKE_BUILD_TYPE` configurable. (#532)&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;make CMAKE_BUILD_TYPE configurable&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This enables the C driver to build with the same CMAKE_BUILD_TYPE as the C driver.&lt;/p&gt;

&lt;p&gt;On Windows, a matching build type may be required. Mixing debug / release versions of the CRT may be problematic.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;remove unused CMAKE variable&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/libmongocrypt/commit/db648b0973998d1e6b91abf06cf6d8b2edb2b26f&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/libmongocrypt/commit/db648b0973998d1e6b91abf06cf6d8b2edb2b26f&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="5122238" author="xgen-internal-githook" created="Wed, 18 Jan 2023 21:36:04 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;vector-of-bool&apos;, &apos;email&apos;: &apos;vectorofbool@gmail.com&apos;, &apos;username&apos;: &apos;vector-of-bool&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/MONGOCRYPT-483&quot; title=&quot;Support decimal128&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MONGOCRYPT-483&quot;&gt;&lt;del&gt;MONGOCRYPT-483&lt;/del&gt;&lt;/a&gt;: Support Decimal128 in range-based Queryable Encryption (#522)&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Basic IntelDFP wrapper, and test tweaks:&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Download and build IntelDFP as part of CMake configuration.&lt;/li&gt;
	&lt;li&gt;Modify the CHECK macro to be defined in a separate file to be reusable&lt;br/&gt;
  between tests.&lt;/li&gt;
	&lt;li&gt;Clean up DFP build, and patch for s390x&lt;/li&gt;
	&lt;li&gt;Suppress DFP warnings. It generates many, and we don&apos;t want them.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;Define the OST encoding for Decimal128&lt;/li&gt;
	&lt;li&gt;Tweak bitstring generation and inline clz operations&lt;/li&gt;
	&lt;li&gt;Bit operations for u128&lt;/li&gt;
	&lt;li&gt;Edge generation for Decimal128&lt;/li&gt;
	&lt;li&gt;Modify mincover template to support non-builting types&lt;/li&gt;
	&lt;li&gt;mincover test vector data&lt;/li&gt;
	&lt;li&gt;New mincover impl for Decimal128&lt;/li&gt;
	&lt;li&gt;add decimal128 tests&lt;/li&gt;
	&lt;li&gt;Implement range-insert for decimal128&lt;/li&gt;
	&lt;li&gt;Implement find-range&lt;/li&gt;
	&lt;li&gt;Fix new conversion warning-errors&lt;/li&gt;
	&lt;li&gt;A safer strncpy ensures we write a null terminator&lt;/li&gt;
	&lt;li&gt;Handle case where &apos;min&apos; is finer than &apos;precision&apos;&lt;/li&gt;
	&lt;li&gt;We hit MSVC impl limits on string length:&lt;/li&gt;
&lt;/ul&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;Instead of using a newline-delimited string list, represent them as&lt;br/&gt;
  the array of strings directly. This also simplifies test code from&lt;br/&gt;
  needing to parse the strings.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
	&lt;li&gt;Bump CMake min-required&lt;/li&gt;
	&lt;li&gt;Fix UB in IntellRDFP lib&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Co-authored-by: Kevin Albertson &amp;lt;kevin.albertson@mongodb.com&amp;gt;&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/libmongocrypt/commit/b704947c2832745c680cc528bb37ce7e0747767b&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/libmongocrypt/commit/b704947c2832745c680cc528bb37ce7e0747767b&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="5120646" author="xgen-internal-githook" created="Wed, 18 Jan 2023 14:09:50 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;Kevin Albertson&apos;, &apos;email&apos;: &apos;kevin.albertson@mongodb.com&apos;, &apos;username&apos;: &apos;kevinAlbs&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/MONGOCRYPT-483&quot; title=&quot;Support decimal128&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MONGOCRYPT-483&quot;&gt;&lt;del&gt;MONGOCRYPT-483&lt;/del&gt;&lt;/a&gt; fix int128 test on big endian (#529)&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;print numerator and denominator on division failure&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;add rhel83 variant&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;copy endian.h&lt;/li&gt;
&lt;/ul&gt;


&lt;ul&gt;
	&lt;li&gt;fix int128 tests on big endian&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/libmongocrypt/commit/7004ab111a712f75f8fba7cbbd4791812eaa58fb&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/libmongocrypt/commit/7004ab111a712f75f8fba7cbbd4791812eaa58fb&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="5065408" author="xgen-internal-githook" created="Mon, 19 Dec 2022 20:40:09 +0000"  >&lt;p&gt;Author:&lt;/p&gt;
{&apos;name&apos;: &apos;vector-of-bool&apos;, &apos;email&apos;: &apos;vectorofbool@gmail.com&apos;, &apos;username&apos;: &apos;vector-of-bool&apos;}
&lt;p&gt;Message: &lt;a href=&quot;https://jira.mongodb.org/browse/MONGOCRYPT-483&quot; title=&quot;Support decimal128&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MONGOCRYPT-483&quot;&gt;&lt;del&gt;MONGOCRYPT-483&lt;/del&gt;&lt;/a&gt;: A 128-bit integer abstraction (#510)&lt;/p&gt;

&lt;p&gt;This changeset adds a new trivial type mlib_int128, which presents a method of performing 128-bit binary arithmetic. This is a prerequisite to &lt;a href=&quot;https://jira.mongodb.org/browse/MONGOCRYPT-483&quot; title=&quot;Support decimal128&quot; class=&quot;issue-link&quot; data-issue-key=&quot;MONGOCRYPT-483&quot;&gt;&lt;del&gt;MONGOCRYPT-483&lt;/del&gt;&lt;/a&gt;, which requires 128-bit integers and integer arithmetic.&lt;/p&gt;

&lt;p&gt;Some platforms, such as 64-bit GCC, provide an __int128 abstraction, but other platforms do not. MSVC and all 32-bit targets do not have such extensions. For this reason, this PR implements 128-bit arithmetic using only standard C99.&lt;/p&gt;

&lt;p&gt;The implementations of add, sub, the bitshifts, to/from string, compare, and equality are all fairly straightforward extensions of 64-bit operations (with carry/borrow).&lt;/p&gt;

&lt;p&gt;Multiplication here is implemented using Knuth&apos;s 4.3.1M multiplication algorithm (from The Art of Computer Programming). Here 4.3.1M is used to multiply the two low 64-bit words to obtain the 128-bit product. The high word of the result is then adjusted by two more regular 64-bit multiplications.&lt;/p&gt;

&lt;p&gt;Division is the most complicated operation and took a lot of testing to ensure correct. It uses Knuth&apos;s 4.3.1D algorithm for arbitrary precision unsigned division (defined in _mlibKnuth431D). Certain optimizations and shortcuts were learned from the constexpr implementations. Future optimizations to use intrinsics and hardware acceleration are not done here, since we just need these 128-bit integers for a few operations and want guaranteed platform-equivalence.&lt;/p&gt;

&lt;p&gt;Most of the code has been marked as constexpr, and a lot of functionality is tested via static_asserts for failing CI as-fast-as-possible and immediate IDE feedback.&lt;br/&gt;
Branch: master&lt;br/&gt;
&lt;a href=&quot;https://github.com/mongodb/libmongocrypt/commit/c8d5ffe9092962632c9cf33fac56bcf717911242&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/mongodb/libmongocrypt/commit/c8d5ffe9092962632c9cf33fac56bcf717911242&lt;/a&gt;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Depends</name>
                                            <outwardlinks description="depends on">
                                        <issuelink>
            <issuekey id="2105913">SERVER-68542</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10520">
                    <name>Problem/Incident</name>
                                            <outwardlinks description="causes">
                                        <issuelink>
            <issuekey id="2444408">MONGOCRYPT-594</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10012">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                                        </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                <customfield id="customfield_21957" key="com.atlassian.jira.plugin.system.customfieldtypes:radiobuttons">
                        <customfieldname>Binding Changes</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="22966"><![CDATA[Not Needed]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_15850" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10857" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>MONGOCRYPT-472</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_12550" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2|i0pzar:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10558" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_22279" key="com.atlassian.jira.plugin.system.customfieldtypes:labels">
                        <customfieldname>Server Compat</customfieldname>
                        <customfieldvalues>
                                        <label>6.2</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </customfields>
    </item>
</channel>
</rss>