{"diffoscope-json-version": 1, "source1": "/input1", "source2": "/input2", "unified_diff": null, "details": [{"source1": "zipinfo {}", "source2": "zipinfo {}", "unified_diff": "@@ -1,46 +1,46 @@\n-Zip file size: 163969 bytes, number of entries: 44\n+Zip file size: 164165 bytes, number of entries: 44\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/\n -rw----     2.0 fat       25 bX stor 70-Jan-01 00:00 META-INF/MANIFEST.MF\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/dev.langchain4j/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/dev.langchain4j/langchain4j-open-ai/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/dev.langchain4j/langchain4j-open-ai/pom.properties\n -rw----     2.0 fat     2707 bX stor 70-Jan-01 00:00 META-INF/maven/dev.langchain4j/langchain4j-open-ai/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/model/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/model/openai/\n--rw----     2.0 fat    15700 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/InternalOpenAiHelper.class\n+-rw----     2.0 fat    15681 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/InternalOpenAiHelper.class\n -rw----     2.0 fat     5857 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.class\n--rw----     2.0 fat    11303 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiChatModel.class\n--rw----     2.0 fat     2620 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiChatModelName.class\n+-rw----     2.0 fat    11280 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiChatModel.class\n+-rw----     2.0 fat     2679 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiChatModelName.class\n -rw----     2.0 fat     3980 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.class\n--rw----     2.0 fat     8725 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiEmbeddingModel.class\n--rw----     2.0 fat     1565 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiEmbeddingModelName.class\n+-rw----     2.0 fat     8710 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiEmbeddingModel.class\n+-rw----     2.0 fat     1624 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiEmbeddingModelName.class\n -rw----     2.0 fat     4944 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.class\n--rw----     2.0 fat     8827 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiImageModel.class\n--rw----     2.0 fat     1382 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiImageModelName.class\n+-rw----     2.0 fat     8807 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiImageModel.class\n+-rw----     2.0 fat     1441 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiImageModelName.class\n -rw----     2.0 fat     3930 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.class\n -rw----     2.0 fat     7112 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiLanguageModel.class\n--rw----     2.0 fat     1360 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiLanguageModelName.class\n+-rw----     2.0 fat     1419 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiLanguageModelName.class\n -rw----     2.0 fat     1569 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiModelName.class\n -rw----     2.0 fat     3379 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.class\n--rw----     2.0 fat     7978 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiModerationModel.class\n--rw----     2.0 fat     1473 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiModerationModelName.class\n+-rw----     2.0 fat     7948 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiModerationModel.class\n+-rw----     2.0 fat     1532 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiModerationModelName.class\n -rw----     2.0 fat     6005 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.class\n--rw----     2.0 fat    13846 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiStreamingChatModel.class\n+-rw----     2.0 fat    13868 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiStreamingChatModel.class\n -rw----     2.0 fat     3865 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.class\n--rw----     2.0 fat     8882 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiStreamingLanguageModel.class\n+-rw----     2.0 fat     8927 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiStreamingLanguageModel.class\n -rw----     2.0 fat      296 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1.class\n -rw----     2.0 fat     1390 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.class\n--rw----     2.0 fat     9205 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.class\n--rw----     2.0 fat    12317 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiTokenizer.class\n+-rw----     2.0 fat     9178 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.class\n+-rw----     2.0 fat    12285 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/OpenAiTokenizer.class\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 dev/langchain4j/model/openai/spi/\n -rw----     2.0 fat      527 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/spi/OpenAiChatModelBuilderFactory.class\n -rw----     2.0 fat      567 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/spi/OpenAiEmbeddingModelBuilderFactory.class\n -rw----     2.0 fat      535 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/spi/OpenAiImageModelBuilderFactory.class\n -rw----     2.0 fat      559 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/spi/OpenAiLanguageModelBuilderFactory.class\n -rw----     2.0 fat      575 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/spi/OpenAiModerationModelBuilderFactory.class\n -rw----     2.0 fat      599 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/spi/OpenAiStreamingChatModelBuilderFactory.class\n -rw----     2.0 fat      631 bX stor 70-Jan-01 00:00 dev/langchain4j/model/openai/spi/OpenAiStreamingLanguageModelBuilderFactory.class\n-44 files, 154235 bytes uncompressed, 154235 bytes compressed:  0.0%\n+44 files, 154431 bytes uncompressed, 154431 bytes compressed:  0.0%\n"}, {"source1": "zipdetails --redact --scan --utc {}", "source2": "zipdetails --redact --scan --utc {}", "unified_diff": "@@ -269,2224 +269,2224 @@\n #\n 00E1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 00E20   Length              0005 (5)\n 00E22   Flags               01 (1) 'Modification'\n 00E23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n 00E27 PAYLOAD\n \n-04B7B DATA DESCRIPTOR       08074B50 (134695760)\n-04B7F CRC                   E1E75EFE (3790036734)\n-04B83 Compressed Size       00003D54 (15700)\n-04B87 Uncompressed Size     00003D54 (15700)\n-\n-04B8B LOCAL HEADER #13      04034B50 (67324752)\n-04B8F Extract Zip Spec      14 (20) '2.0'\n-04B90 Extract OS            00 (0) 'MS-DOS'\n-04B91 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-04B93 Compression Method    0000 (0) 'Stored'\n-04B95 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04B99 CRC                   00000000 (0)\n-04B9D Compressed Size       00000000 (0)\n-04BA1 Uncompressed Size     00000000 (0)\n-04BA5 Filename Length       0049 (73)\n-04BA7 Extra Length          0009 (9)\n-04BA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4BA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04BF2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04BF4   Length              0005 (5)\n-04BF6   Flags               01 (1) 'Modification'\n-04BF7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04BFB PAYLOAD\n-\n-062DC DATA DESCRIPTOR       08074B50 (134695760)\n-062E0 CRC                   8575B06E (2239082606)\n-062E4 Compressed Size       000016E1 (5857)\n-062E8 Uncompressed Size     000016E1 (5857)\n-\n-062EC LOCAL HEADER #14      04034B50 (67324752)\n-062F0 Extract Zip Spec      14 (20) '2.0'\n-062F1 Extract OS            00 (0) 'MS-DOS'\n-062F2 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-062F4 Compression Method    0000 (0) 'Stored'\n-062F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-062FA CRC                   00000000 (0)\n-062FE Compressed Size       00000000 (0)\n-06302 Uncompressed Size     00000000 (0)\n-06306 Filename Length       0032 (50)\n-06308 Extra Length          0009 (9)\n-0630A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x630A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0633C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0633E   Length              0005 (5)\n-06340   Flags               01 (1) 'Modification'\n-06341   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-06345 PAYLOAD\n-\n-08F6C DATA DESCRIPTOR       08074B50 (134695760)\n-08F70 CRC                   CAB4373B (3400808251)\n-08F74 Compressed Size       00002C27 (11303)\n-08F78 Uncompressed Size     00002C27 (11303)\n-\n-08F7C LOCAL HEADER #15      04034B50 (67324752)\n-08F80 Extract Zip Spec      14 (20) '2.0'\n-08F81 Extract OS            00 (0) 'MS-DOS'\n-08F82 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-08F84 Compression Method    0000 (0) 'Stored'\n-08F86 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-08F8A CRC                   00000000 (0)\n-08F8E Compressed Size       00000000 (0)\n-08F92 Uncompressed Size     00000000 (0)\n-08F96 Filename Length       0036 (54)\n-08F98 Extra Length          0009 (9)\n-08F9A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8F9A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-08FD0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-08FD2   Length              0005 (5)\n-08FD4   Flags               01 (1) 'Modification'\n-08FD5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-08FD9 PAYLOAD\n-\n-09A15 DATA DESCRIPTOR       08074B50 (134695760)\n-09A19 CRC                   40383E4E (1077427790)\n-09A1D Compressed Size       00000A3C (2620)\n-09A21 Uncompressed Size     00000A3C (2620)\n-\n-09A25 LOCAL HEADER #16      04034B50 (67324752)\n-09A29 Extract Zip Spec      14 (20) '2.0'\n-09A2A Extract OS            00 (0) 'MS-DOS'\n-09A2B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-09A2D Compression Method    0000 (0) 'Stored'\n-09A2F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-09A33 CRC                   00000000 (0)\n-09A37 Compressed Size       00000000 (0)\n-09A3B Uncompressed Size     00000000 (0)\n-09A3F Filename Length       0053 (83)\n-09A41 Extra Length          0009 (9)\n-09A43 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9A43: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-09A96 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-09A98   Length              0005 (5)\n-09A9A   Flags               01 (1) 'Modification'\n-09A9B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-09A9F PAYLOAD\n-\n-0AA2B DATA DESCRIPTOR       08074B50 (134695760)\n-0AA2F CRC                   82D7EEB6 (2195189430)\n-0AA33 Compressed Size       00000F8C (3980)\n-0AA37 Uncompressed Size     00000F8C (3980)\n-\n-0AA3B LOCAL HEADER #17      04034B50 (67324752)\n-0AA3F Extract Zip Spec      14 (20) '2.0'\n-0AA40 Extract OS            00 (0) 'MS-DOS'\n-0AA41 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0AA43 Compression Method    0000 (0) 'Stored'\n-0AA45 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0AA49 CRC                   00000000 (0)\n-0AA4D Compressed Size       00000000 (0)\n-0AA51 Uncompressed Size     00000000 (0)\n-0AA55 Filename Length       0037 (55)\n-0AA57 Extra Length          0009 (9)\n-0AA59 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xAA59: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0AA90 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0AA92   Length              0005 (5)\n-0AA94   Flags               01 (1) 'Modification'\n-0AA95   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0AA99 PAYLOAD\n-\n-0CCAE DATA DESCRIPTOR       08074B50 (134695760)\n-0CCB2 CRC                   A919C03B (2837037115)\n-0CCB6 Compressed Size       00002215 (8725)\n-0CCBA Uncompressed Size     00002215 (8725)\n-\n-0CCBE LOCAL HEADER #18      04034B50 (67324752)\n-0CCC2 Extract Zip Spec      14 (20) '2.0'\n-0CCC3 Extract OS            00 (0) 'MS-DOS'\n-0CCC4 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0CCC6 Compression Method    0000 (0) 'Stored'\n-0CCC8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0CCCC CRC                   00000000 (0)\n-0CCD0 Compressed Size       00000000 (0)\n-0CCD4 Uncompressed Size     00000000 (0)\n-0CCD8 Filename Length       003B (59)\n-0CCDA Extra Length          0009 (9)\n-0CCDC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xCCDC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0CD17 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0CD19   Length              0005 (5)\n-0CD1B   Flags               01 (1) 'Modification'\n-0CD1C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0CD20 PAYLOAD\n-\n-0D33D DATA DESCRIPTOR       08074B50 (134695760)\n-0D341 CRC                   724E7A93 (1917745811)\n-0D345 Compressed Size       0000061D (1565)\n-0D349 Uncompressed Size     0000061D (1565)\n-\n-0D34D LOCAL HEADER #19      04034B50 (67324752)\n-0D351 Extract Zip Spec      14 (20) '2.0'\n-0D352 Extract OS            00 (0) 'MS-DOS'\n-0D353 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0D355 Compression Method    0000 (0) 'Stored'\n-0D357 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0D35B CRC                   00000000 (0)\n-0D35F Compressed Size       00000000 (0)\n-0D363 Uncompressed Size     00000000 (0)\n-0D367 Filename Length       004B (75)\n-0D369 Extra Length          0009 (9)\n-0D36B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xD36B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0D3B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0D3B8   Length              0005 (5)\n-0D3BA   Flags               01 (1) 'Modification'\n-0D3BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0D3BF PAYLOAD\n-\n-0E70F DATA DESCRIPTOR       08074B50 (134695760)\n-0E713 CRC                   5BEA4F01 (1542082305)\n-0E717 Compressed Size       00001350 (4944)\n-0E71B Uncompressed Size     00001350 (4944)\n-\n-0E71F LOCAL HEADER #20      04034B50 (67324752)\n-0E723 Extract Zip Spec      14 (20) '2.0'\n-0E724 Extract OS            00 (0) 'MS-DOS'\n-0E725 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-0E727 Compression Method    0000 (0) 'Stored'\n-0E729 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0E72D CRC                   00000000 (0)\n-0E731 Compressed Size       00000000 (0)\n-0E735 Uncompressed Size     00000000 (0)\n-0E739 Filename Length       0033 (51)\n-0E73B Extra Length          0009 (9)\n-0E73D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xE73D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0E770 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0E772   Length              0005 (5)\n-0E774   Flags               01 (1) 'Modification'\n-0E775   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0E779 PAYLOAD\n-\n-109F4 DATA DESCRIPTOR       08074B50 (134695760)\n-109F8 CRC                   2A02383A (704788538)\n-109FC Compressed Size       0000227B (8827)\n-10A00 Uncompressed Size     0000227B (8827)\n-\n-10A04 LOCAL HEADER #21      04034B50 (67324752)\n-10A08 Extract Zip Spec      14 (20) '2.0'\n-10A09 Extract OS            00 (0) 'MS-DOS'\n-10A0A General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-10A0C Compression Method    0000 (0) 'Stored'\n-10A0E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-10A12 CRC                   00000000 (0)\n-10A16 Compressed Size       00000000 (0)\n-10A1A Uncompressed Size     00000000 (0)\n-10A1E Filename Length       0037 (55)\n-10A20 Extra Length          0009 (9)\n-10A22 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x10A22: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-10A59 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-10A5B   Length              0005 (5)\n-10A5D   Flags               01 (1) 'Modification'\n-10A5E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-10A62 PAYLOAD\n-\n-10FC8 DATA DESCRIPTOR       08074B50 (134695760)\n-10FCC CRC                   BD63801D (3177414685)\n-10FD0 Compressed Size       00000566 (1382)\n-10FD4 Uncompressed Size     00000566 (1382)\n-\n-10FD8 LOCAL HEADER #22      04034B50 (67324752)\n-10FDC Extract Zip Spec      14 (20) '2.0'\n-10FDD Extract OS            00 (0) 'MS-DOS'\n-10FDE General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-10FE0 Compression Method    0000 (0) 'Stored'\n-10FE2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-10FE6 CRC                   00000000 (0)\n-10FEA Compressed Size       00000000 (0)\n-10FEE Uncompressed Size     00000000 (0)\n-10FF2 Filename Length       0051 (81)\n-10FF4 Extra Length          0009 (9)\n-10FF6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x10FF6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-11047 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-11049   Length              0005 (5)\n-1104B   Flags               01 (1) 'Modification'\n-1104C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-11050 PAYLOAD\n-\n-11FAA DATA DESCRIPTOR       08074B50 (134695760)\n-11FAE CRC                   BAD85CBC (3134741692)\n-11FB2 Compressed Size       00000F5A (3930)\n-11FB6 Uncompressed Size     00000F5A (3930)\n-\n-11FBA LOCAL HEADER #23      04034B50 (67324752)\n-11FBE Extract Zip Spec      14 (20) '2.0'\n-11FBF Extract OS            00 (0) 'MS-DOS'\n-11FC0 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-11FC2 Compression Method    0000 (0) 'Stored'\n-11FC4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-11FC8 CRC                   00000000 (0)\n-11FCC Compressed Size       00000000 (0)\n-11FD0 Uncompressed Size     00000000 (0)\n-11FD4 Filename Length       0036 (54)\n-11FD6 Extra Length          0009 (9)\n-11FD8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x11FD8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1200E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-12010   Length              0005 (5)\n-12012   Flags               01 (1) 'Modification'\n-12013   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-12017 PAYLOAD\n-\n-13BDF DATA DESCRIPTOR       08074B50 (134695760)\n-13BE3 CRC                   AC97EB3C (2895637308)\n-13BE7 Compressed Size       00001BC8 (7112)\n-13BEB Uncompressed Size     00001BC8 (7112)\n-\n-13BEF LOCAL HEADER #24      04034B50 (67324752)\n-13BF3 Extract Zip Spec      14 (20) '2.0'\n-13BF4 Extract OS            00 (0) 'MS-DOS'\n-13BF5 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-13BF7 Compression Method    0000 (0) 'Stored'\n-13BF9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13BFD CRC                   00000000 (0)\n-13C01 Compressed Size       00000000 (0)\n-13C05 Uncompressed Size     00000000 (0)\n-13C09 Filename Length       003A (58)\n-13C0B Extra Length          0009 (9)\n-13C0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13C0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13C47 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13C49   Length              0005 (5)\n-13C4B   Flags               01 (1) 'Modification'\n-13C4C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13C50 PAYLOAD\n-\n-141A0 DATA DESCRIPTOR       08074B50 (134695760)\n-141A4 CRC                   DC5A73E8 (3696915432)\n-141A8 Compressed Size       00000550 (1360)\n-141AC Uncompressed Size     00000550 (1360)\n-\n-141B0 LOCAL HEADER #25      04034B50 (67324752)\n-141B4 Extract Zip Spec      14 (20) '2.0'\n-141B5 Extract OS            00 (0) 'MS-DOS'\n-141B6 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-141B8 Compression Method    0000 (0) 'Stored'\n-141BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-141BE CRC                   00000000 (0)\n-141C2 Compressed Size       00000000 (0)\n-141C6 Uncompressed Size     00000000 (0)\n-141CA Filename Length       0032 (50)\n-141CC Extra Length          0009 (9)\n-141CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x141CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14200 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14202   Length              0005 (5)\n-14204   Flags               01 (1) 'Modification'\n-14205   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-14209 PAYLOAD\n-\n-1482A DATA DESCRIPTOR       08074B50 (134695760)\n-1482E CRC                   D65E206C (3596492908)\n-14832 Compressed Size       00000621 (1569)\n-14836 Uncompressed Size     00000621 (1569)\n-\n-1483A LOCAL HEADER #26      04034B50 (67324752)\n-1483E Extract Zip Spec      14 (20) '2.0'\n-1483F Extract OS            00 (0) 'MS-DOS'\n-14840 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-14842 Compression Method    0000 (0) 'Stored'\n-14844 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14848 CRC                   00000000 (0)\n-1484C Compressed Size       00000000 (0)\n-14850 Uncompressed Size     00000000 (0)\n-14854 Filename Length       0055 (85)\n-14856 Extra Length          0009 (9)\n-14858 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14858: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-148AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-148AF   Length              0005 (5)\n-148B1   Flags               01 (1) 'Modification'\n-148B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-148B6 PAYLOAD\n-\n-155E9 DATA DESCRIPTOR       08074B50 (134695760)\n-155ED CRC                   E02B2907 (3760924935)\n-155F1 Compressed Size       00000D33 (3379)\n-155F5 Uncompressed Size     00000D33 (3379)\n-\n-155F9 LOCAL HEADER #27      04034B50 (67324752)\n-155FD Extract Zip Spec      14 (20) '2.0'\n-155FE Extract OS            00 (0) 'MS-DOS'\n-155FF General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-15601 Compression Method    0000 (0) 'Stored'\n-15603 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15607 CRC                   00000000 (0)\n-1560B Compressed Size       00000000 (0)\n-1560F Uncompressed Size     00000000 (0)\n-15613 Filename Length       0038 (56)\n-15615 Extra Length          0009 (9)\n-15617 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15617: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1564F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15651   Length              0005 (5)\n-15653   Flags               01 (1) 'Modification'\n-15654   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-15658 PAYLOAD\n-\n-17582 DATA DESCRIPTOR       08074B50 (134695760)\n-17586 CRC                   A6E4BF6C (2800009068)\n-1758A Compressed Size       00001F2A (7978)\n-1758E Uncompressed Size     00001F2A (7978)\n-\n-17592 LOCAL HEADER #28      04034B50 (67324752)\n-17596 Extract Zip Spec      14 (20) '2.0'\n-17597 Extract OS            00 (0) 'MS-DOS'\n-17598 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1759A Compression Method    0000 (0) 'Stored'\n-1759C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-175A0 CRC                   00000000 (0)\n-175A4 Compressed Size       00000000 (0)\n-175A8 Uncompressed Size     00000000 (0)\n-175AC Filename Length       003C (60)\n-175AE Extra Length          0009 (9)\n-175B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x175B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-175EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-175EE   Length              0005 (5)\n-175F0   Flags               01 (1) 'Modification'\n-175F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-175F5 PAYLOAD\n-\n-17BB6 DATA DESCRIPTOR       08074B50 (134695760)\n-17BBA CRC                   09491BDF (155786207)\n-17BBE Compressed Size       000005C1 (1473)\n-17BC2 Uncompressed Size     000005C1 (1473)\n-\n-17BC6 LOCAL HEADER #29      04034B50 (67324752)\n-17BCA Extract Zip Spec      14 (20) '2.0'\n-17BCB Extract OS            00 (0) 'MS-DOS'\n-17BCC General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-17BCE Compression Method    0000 (0) 'Stored'\n-17BD0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-17BD4 CRC                   00000000 (0)\n-17BD8 Compressed Size       00000000 (0)\n-17BDC Uncompressed Size     00000000 (0)\n-17BE0 Filename Length       005B (91)\n-17BE2 Extra Length          0009 (9)\n-17BE4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x17BE4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-17C3F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-17C41   Length              0005 (5)\n-17C43   Flags               01 (1) 'Modification'\n-17C44   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-17C48 PAYLOAD\n-\n-193BD DATA DESCRIPTOR       08074B50 (134695760)\n-193C1 CRC                   0745DDF2 (122019314)\n-193C5 Compressed Size       00001775 (6005)\n-193C9 Uncompressed Size     00001775 (6005)\n-\n-193CD LOCAL HEADER #30      04034B50 (67324752)\n-193D1 Extract Zip Spec      14 (20) '2.0'\n-193D2 Extract OS            00 (0) 'MS-DOS'\n-193D3 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-193D5 Compression Method    0000 (0) 'Stored'\n-193D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-193DB CRC                   00000000 (0)\n-193DF Compressed Size       00000000 (0)\n-193E3 Uncompressed Size     00000000 (0)\n-193E7 Filename Length       003B (59)\n-193E9 Extra Length          0009 (9)\n-193EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x193EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-19426 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-19428   Length              0005 (5)\n-1942A   Flags               01 (1) 'Modification'\n-1942B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1942F PAYLOAD\n-\n-1CA45 DATA DESCRIPTOR       08074B50 (134695760)\n-1CA49 CRC                   EA136B52 (3927141202)\n-1CA4D Compressed Size       00003616 (13846)\n-1CA51 Uncompressed Size     00003616 (13846)\n-\n-1CA55 LOCAL HEADER #31      04034B50 (67324752)\n-1CA59 Extract Zip Spec      14 (20) '2.0'\n-1CA5A Extract OS            00 (0) 'MS-DOS'\n-1CA5B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1CA5D Compression Method    0000 (0) 'Stored'\n-1CA5F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1CA63 CRC                   00000000 (0)\n-1CA67 Compressed Size       00000000 (0)\n-1CA6B Uncompressed Size     00000000 (0)\n-1CA6F Filename Length       0063 (99)\n-1CA71 Extra Length          0009 (9)\n-1CA73 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1CA73: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1CAD6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1CAD8   Length              0005 (5)\n-1CADA   Flags               01 (1) 'Modification'\n-1CADB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1CADF PAYLOAD\n-\n-1D9F8 DATA DESCRIPTOR       08074B50 (134695760)\n-1D9FC CRC                   AFA6A742 (2946934594)\n-1DA00 Compressed Size       00000F19 (3865)\n-1DA04 Uncompressed Size     00000F19 (3865)\n-\n-1DA08 LOCAL HEADER #32      04034B50 (67324752)\n-1DA0C Extract Zip Spec      14 (20) '2.0'\n-1DA0D Extract OS            00 (0) 'MS-DOS'\n-1DA0E General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1DA10 Compression Method    0000 (0) 'Stored'\n-1DA12 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1DA16 CRC                   00000000 (0)\n-1DA1A Compressed Size       00000000 (0)\n-1DA1E Uncompressed Size     00000000 (0)\n-1DA22 Filename Length       003F (63)\n-1DA24 Extra Length          0009 (9)\n-1DA26 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1DA26: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1DA65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1DA67   Length              0005 (5)\n-1DA69   Flags               01 (1) 'Modification'\n-1DA6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1DA6E PAYLOAD\n-\n-1FD20 DATA DESCRIPTOR       08074B50 (134695760)\n-1FD24 CRC                   8A07E750 (2315773776)\n-1FD28 Compressed Size       000022B2 (8882)\n-1FD2C Uncompressed Size     000022B2 (8882)\n-\n-1FD30 LOCAL HEADER #33      04034B50 (67324752)\n-1FD34 Extract Zip Spec      14 (20) '2.0'\n-1FD35 Extract OS            00 (0) 'MS-DOS'\n-1FD36 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1FD38 Compression Method    0000 (0) 'Stored'\n-1FD3A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1FD3E CRC                   00000000 (0)\n-1FD42 Compressed Size       00000000 (0)\n-1FD46 Uncompressed Size     00000000 (0)\n-1FD4A Filename Length       0043 (67)\n-1FD4C Extra Length          0009 (9)\n-1FD4E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1FD4E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1FD91 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1FD93   Length              0005 (5)\n-1FD95   Flags               01 (1) 'Modification'\n-1FD96   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1FD9A PAYLOAD\n-\n-1FEC2 DATA DESCRIPTOR       08074B50 (134695760)\n-1FEC6 CRC                   9C368749 (2620819273)\n-1FECA Compressed Size       00000128 (296)\n-1FECE Uncompressed Size     00000128 (296)\n-\n-1FED2 LOCAL HEADER #34      04034B50 (67324752)\n-1FED6 Extract Zip Spec      14 (20) '2.0'\n-1FED7 Extract OS            00 (0) 'MS-DOS'\n-1FED8 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-1FEDA Compression Method    0000 (0) 'Stored'\n-1FEDC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1FEE0 CRC                   00000000 (0)\n-1FEE4 Compressed Size       00000000 (0)\n-1FEE8 Uncompressed Size     00000000 (0)\n-1FEEC Filename Length       005D (93)\n-1FEEE Extra Length          0009 (9)\n-1FEF0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1FEF0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1FF4D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1FF4F   Length              0005 (5)\n-1FF51   Flags               01 (1) 'Modification'\n-1FF52   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1FF56 PAYLOAD\n-\n-204C4 DATA DESCRIPTOR       08074B50 (134695760)\n-204C8 CRC                   D7668659 (3613820505)\n-204CC Compressed Size       0000056E (1390)\n-204D0 Uncompressed Size     0000056E (1390)\n-\n-204D4 LOCAL HEADER #35      04034B50 (67324752)\n-204D8 Extract Zip Spec      14 (20) '2.0'\n-204D9 Extract OS            00 (0) 'MS-DOS'\n-204DA General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-204DC Compression Method    0000 (0) 'Stored'\n-204DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-204E2 CRC                   00000000 (0)\n-204E6 Compressed Size       00000000 (0)\n-204EA Uncompressed Size     00000000 (0)\n-204EE Filename Length       0041 (65)\n-204F0 Extra Length          0009 (9)\n-204F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x204F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-20533 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-20535   Length              0005 (5)\n-20537   Flags               01 (1) 'Modification'\n-20538   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2053C PAYLOAD\n-\n-22931 DATA DESCRIPTOR       08074B50 (134695760)\n-22935 CRC                   03389AAD (54041261)\n-22939 Compressed Size       000023F5 (9205)\n-2293D Uncompressed Size     000023F5 (9205)\n-\n-22941 LOCAL HEADER #36      04034B50 (67324752)\n-22945 Extract Zip Spec      14 (20) '2.0'\n-22946 Extract OS            00 (0) 'MS-DOS'\n-22947 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-22949 Compression Method    0000 (0) 'Stored'\n-2294B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2294F CRC                   00000000 (0)\n-22953 Compressed Size       00000000 (0)\n-22957 Uncompressed Size     00000000 (0)\n-2295B Filename Length       0032 (50)\n-2295D Extra Length          0009 (9)\n-2295F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2295F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-22991 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-22993   Length              0005 (5)\n-22995   Flags               01 (1) 'Modification'\n-22996   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2299A PAYLOAD\n-\n-259B7 DATA DESCRIPTOR       08074B50 (134695760)\n-259BB CRC                   01C123D9 (29434841)\n-259BF Compressed Size       0000301D (12317)\n-259C3 Uncompressed Size     0000301D (12317)\n-\n-259C7 LOCAL HEADER #37      04034B50 (67324752)\n-259CB Extract Zip Spec      14 (20) '2.0'\n-259CC Extract OS            00 (0) 'MS-DOS'\n-259CD General Purpose Flag  0000 (0)\n-259CF Compression Method    0000 (0) 'Stored'\n-259D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-259D5 CRC                   00000000 (0)\n-259D9 Compressed Size       00000000 (0)\n-259DD Uncompressed Size     00000000 (0)\n-259E1 Filename Length       0021 (33)\n-259E3 Extra Length          0009 (9)\n-259E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x259E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-25A06 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-25A08   Length              0005 (5)\n-25A0A   Flags               01 (1) 'Modification'\n-25A0B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-25A0F LOCAL HEADER #38      04034B50 (67324752)\n-25A13 Extract Zip Spec      14 (20) '2.0'\n-25A14 Extract OS            00 (0) 'MS-DOS'\n-25A15 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-25A17 Compression Method    0000 (0) 'Stored'\n-25A19 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-25A1D CRC                   00000000 (0)\n-25A21 Compressed Size       00000000 (0)\n-25A25 Uncompressed Size     00000000 (0)\n-25A29 Filename Length       0044 (68)\n-25A2B Extra Length          0009 (9)\n-25A2D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x25A2D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-25A71 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-25A73   Length              0005 (5)\n-25A75   Flags               01 (1) 'Modification'\n-25A76   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-25A7A PAYLOAD\n-\n-25C89 DATA DESCRIPTOR       08074B50 (134695760)\n-25C8D CRC                   248D6C5D (613248093)\n-25C91 Compressed Size       0000020F (527)\n-25C95 Uncompressed Size     0000020F (527)\n-\n-25C99 LOCAL HEADER #39      04034B50 (67324752)\n-25C9D Extract Zip Spec      14 (20) '2.0'\n-25C9E Extract OS            00 (0) 'MS-DOS'\n-25C9F General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-25CA1 Compression Method    0000 (0) 'Stored'\n-25CA3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-25CA7 CRC                   00000000 (0)\n-25CAB Compressed Size       00000000 (0)\n-25CAF Uncompressed Size     00000000 (0)\n-25CB3 Filename Length       0049 (73)\n-25CB5 Extra Length          0009 (9)\n-25CB7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x25CB7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-25D00 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-25D02   Length              0005 (5)\n-25D04   Flags               01 (1) 'Modification'\n-25D05   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-25D09 PAYLOAD\n-\n-25F40 DATA DESCRIPTOR       08074B50 (134695760)\n-25F44 CRC                   C8C614FC (3368424700)\n-25F48 Compressed Size       00000237 (567)\n-25F4C Uncompressed Size     00000237 (567)\n-\n-25F50 LOCAL HEADER #40      04034B50 (67324752)\n-25F54 Extract Zip Spec      14 (20) '2.0'\n-25F55 Extract OS            00 (0) 'MS-DOS'\n-25F56 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-25F58 Compression Method    0000 (0) 'Stored'\n-25F5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-25F5E CRC                   00000000 (0)\n-25F62 Compressed Size       00000000 (0)\n-25F66 Uncompressed Size     00000000 (0)\n-25F6A Filename Length       0045 (69)\n-25F6C Extra Length          0009 (9)\n-25F6E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x25F6E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-25FB3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-25FB5   Length              0005 (5)\n-25FB7   Flags               01 (1) 'Modification'\n-25FB8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-25FBC PAYLOAD\n-\n-261D3 DATA DESCRIPTOR       08074B50 (134695760)\n-261D7 CRC                   F51179FA (4111563258)\n-261DB Compressed Size       00000217 (535)\n-261DF Uncompressed Size     00000217 (535)\n-\n-261E3 LOCAL HEADER #41      04034B50 (67324752)\n-261E7 Extract Zip Spec      14 (20) '2.0'\n-261E8 Extract OS            00 (0) 'MS-DOS'\n-261E9 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-261EB Compression Method    0000 (0) 'Stored'\n-261ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-261F1 CRC                   00000000 (0)\n-261F5 Compressed Size       00000000 (0)\n-261F9 Uncompressed Size     00000000 (0)\n-261FD Filename Length       0048 (72)\n-261FF Extra Length          0009 (9)\n-26201 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x26201: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-26249 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2624B   Length              0005 (5)\n-2624D   Flags               01 (1) 'Modification'\n-2624E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-26252 PAYLOAD\n-\n-26481 DATA DESCRIPTOR       08074B50 (134695760)\n-26485 CRC                   09959589 (160798089)\n-26489 Compressed Size       0000022F (559)\n-2648D Uncompressed Size     0000022F (559)\n-\n-26491 LOCAL HEADER #42      04034B50 (67324752)\n-26495 Extract Zip Spec      14 (20) '2.0'\n-26496 Extract OS            00 (0) 'MS-DOS'\n-26497 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-26499 Compression Method    0000 (0) 'Stored'\n-2649B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2649F CRC                   00000000 (0)\n-264A3 Compressed Size       00000000 (0)\n-264A7 Uncompressed Size     00000000 (0)\n-264AB Filename Length       004A (74)\n-264AD Extra Length          0009 (9)\n-264AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x264AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-264F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-264FB   Length              0005 (5)\n-264FD   Flags               01 (1) 'Modification'\n-264FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-26502 PAYLOAD\n-\n-26741 DATA DESCRIPTOR       08074B50 (134695760)\n-26745 CRC                   0C1B18E3 (203102435)\n-26749 Compressed Size       0000023F (575)\n-2674D Uncompressed Size     0000023F (575)\n-\n-26751 LOCAL HEADER #43      04034B50 (67324752)\n-26755 Extract Zip Spec      14 (20) '2.0'\n-26756 Extract OS            00 (0) 'MS-DOS'\n-26757 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-26759 Compression Method    0000 (0) 'Stored'\n-2675B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2675F CRC                   00000000 (0)\n-26763 Compressed Size       00000000 (0)\n-26767 Uncompressed Size     00000000 (0)\n-2676B Filename Length       004D (77)\n-2676D Extra Length          0009 (9)\n-2676F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2676F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-267BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-267BE   Length              0005 (5)\n-267C0   Flags               01 (1) 'Modification'\n-267C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-267C5 PAYLOAD\n-\n-26A1C DATA DESCRIPTOR       08074B50 (134695760)\n-26A20 CRC                   5A2ED1B7 (1513017783)\n-26A24 Compressed Size       00000257 (599)\n-26A28 Uncompressed Size     00000257 (599)\n-\n-26A2C LOCAL HEADER #44      04034B50 (67324752)\n-26A30 Extract Zip Spec      14 (20) '2.0'\n-26A31 Extract OS            00 (0) 'MS-DOS'\n-26A32 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-26A34 Compression Method    0000 (0) 'Stored'\n-26A36 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-26A3A CRC                   00000000 (0)\n-26A3E Compressed Size       00000000 (0)\n-26A42 Uncompressed Size     00000000 (0)\n-26A46 Filename Length       0051 (81)\n-26A48 Extra Length          0009 (9)\n-26A4A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x26A4A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-26A9B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-26A9D   Length              0005 (5)\n-26A9F   Flags               01 (1) 'Modification'\n-26AA0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-26AA4 PAYLOAD\n-\n-26D1B DATA DESCRIPTOR       08074B50 (134695760)\n-26D1F CRC                   697CECA2 (1769794722)\n-26D23 Compressed Size       00000277 (631)\n-26D27 Uncompressed Size     00000277 (631)\n-\n-26D2B CENTRAL HEADER #1     02014B50 (33639248)\n-26D2F Created Zip Spec      14 (20) '2.0'\n-26D30 Created OS            00 (0) 'MS-DOS'\n-26D31 Extract Zip Spec      14 (20) '2.0'\n-26D32 Extract OS            00 (0) 'MS-DOS'\n-26D33 General Purpose Flag  0000 (0)\n-26D35 Compression Method    0000 (0) 'Stored'\n-26D37 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-26D3B CRC                   00000000 (0)\n-26D3F Compressed Size       00000000 (0)\n-26D43 Uncompressed Size     00000000 (0)\n-26D47 Filename Length       0009 (9)\n-26D49 Extra Length          0009 (9)\n-26D4B Comment Length        0000 (0)\n-26D4D Disk Start            0000 (0)\n-26D4F Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-26D51 Ext File Attributes   00000000 (0)\n-26D55 Local Header Offset   00000000 (0)\n-26D59 Filename              'XXXXXXXXX'\n-#\n-# WARNING: Offset 0x26D59: Filename 'XXXXXXXXX'\n-#          Zero length filename\n-#\n-26D62 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-26D64   Length              0005 (5)\n-26D66   Flags               01 (1) 'Modification'\n-26D67   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-26D6B CENTRAL HEADER #2     02014B50 (33639248)\n-26D6F Created Zip Spec      14 (20) '2.0'\n-26D70 Created OS            00 (0) 'MS-DOS'\n-26D71 Extract Zip Spec      14 (20) '2.0'\n-26D72 Extract OS            00 (0) 'MS-DOS'\n-26D73 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-26D75 Compression Method    0000 (0) 'Stored'\n-26D77 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-26D7B CRC                   EE027FB2 (3993141170)\n-26D7F Compressed Size       00000019 (25)\n-26D83 Uncompressed Size     00000019 (25)\n-26D87 Filename Length       0014 (20)\n-26D89 Extra Length          0009 (9)\n-26D8B Comment Length        0000 (0)\n-26D8D Disk Start            0000 (0)\n-26D8F Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-26D91 Ext File Attributes   00000000 (0)\n-26D95 Local Header Offset   00000030 (48)\n-26D99 Filename              'XXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x26D99: Filename 'XXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-26DAD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-26DAF   Length              0005 (5)\n-26DB1   Flags               01 (1) 'Modification'\n-26DB2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-26DB6 CENTRAL HEADER #3     02014B50 (33639248)\n-26DBA Created Zip Spec      14 (20) '2.0'\n-26DBB Created OS            00 (0) 'MS-DOS'\n-26DBC Extract Zip Spec      14 (20) '2.0'\n-26DBD Extract OS            00 (0) 'MS-DOS'\n-26DBE General Purpose Flag  0000 (0)\n-26DC0 Compression Method    0000 (0) 'Stored'\n-26DC2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-26DC6 CRC                   00000000 (0)\n-26DCA Compressed Size       00000000 (0)\n-26DCE Uncompressed Size     00000000 (0)\n-26DD2 Filename Length       000F (15)\n-26DD4 Extra Length          0009 (9)\n-26DD6 Comment Length        0000 (0)\n-26DD8 Disk Start            0000 (0)\n-26DDA Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-26DDC Ext File Attributes   00000000 (0)\n-26DE0 Local Header Offset   00000094 (148)\n-26DE4 Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x26DE4: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-26DF3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-26DF5   Length              0005 (5)\n-26DF7   Flags               01 (1) 'Modification'\n-26DF8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-26DFC CENTRAL HEADER #4     02014B50 (33639248)\n-26E00 Created Zip Spec      14 (20) '2.0'\n-26E01 Created OS            00 (0) 'MS-DOS'\n-26E02 Extract Zip Spec      14 (20) '2.0'\n-26E03 Extract OS            00 (0) 'MS-DOS'\n-26E04 General Purpose Flag  0000 (0)\n-26E06 Compression Method    0000 (0) 'Stored'\n-26E08 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-26E0C CRC                   00000000 (0)\n-26E10 Compressed Size       00000000 (0)\n-26E14 Uncompressed Size     00000000 (0)\n-26E18 Filename Length       001F (31)\n-26E1A Extra Length          0009 (9)\n-26E1C Comment Length        0000 (0)\n-26E1E Disk Start            0000 (0)\n-26E20 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-26E22 Ext File Attributes   00000000 (0)\n-26E26 Local Header Offset   000000CA (202)\n-26E2A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x26E2A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-26E49 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-26E4B   Length              0005 (5)\n-26E4D   Flags               01 (1) 'Modification'\n-26E4E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-26E52 CENTRAL HEADER #5     02014B50 (33639248)\n-26E56 Created Zip Spec      14 (20) '2.0'\n-26E57 Created OS            00 (0) 'MS-DOS'\n-26E58 Extract Zip Spec      14 (20) '2.0'\n-26E59 Extract OS            00 (0) 'MS-DOS'\n-26E5A General Purpose Flag  0000 (0)\n-26E5C Compression Method    0000 (0) 'Stored'\n-26E5E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-26E62 CRC                   00000000 (0)\n-26E66 Compressed Size       00000000 (0)\n-26E6A Uncompressed Size     00000000 (0)\n-26E6E Filename Length       0033 (51)\n-26E70 Extra Length          0009 (9)\n-26E72 Comment Length        0000 (0)\n-26E74 Disk Start            0000 (0)\n-26E76 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-26E78 Ext File Attributes   00000000 (0)\n-26E7C Local Header Offset   00000110 (272)\n-26E80 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x26E80: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-26EB3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-26EB5   Length              0005 (5)\n-26EB7   Flags               01 (1) 'Modification'\n-26EB8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-26EBC CENTRAL HEADER #6     02014B50 (33639248)\n-26EC0 Created Zip Spec      14 (20) '2.0'\n-26EC1 Created OS            00 (0) 'MS-DOS'\n-26EC2 Extract Zip Spec      14 (20) '2.0'\n-26EC3 Extract OS            00 (0) 'MS-DOS'\n-26EC4 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-26EC6 Compression Method    0000 (0) 'Stored'\n-26EC8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-26ECC CRC                   00000000 (0)\n-26ED0 Compressed Size       00000000 (0)\n-26ED4 Uncompressed Size     00000000 (0)\n-26ED8 Filename Length       0041 (65)\n-26EDA Extra Length          0009 (9)\n-26EDC Comment Length        0000 (0)\n-26EDE Disk Start            0000 (0)\n-26EE0 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-26EE2 Ext File Attributes   00000000 (0)\n-26EE6 Local Header Offset   0000016A (362)\n-26EEA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x26EEA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-26F2B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-26F2D   Length              0005 (5)\n-26F2F   Flags               01 (1) 'Modification'\n-26F30   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-26F34 CENTRAL HEADER #7     02014B50 (33639248)\n-26F38 Created Zip Spec      14 (20) '2.0'\n-26F39 Created OS            00 (0) 'MS-DOS'\n-26F3A Extract Zip Spec      14 (20) '2.0'\n-26F3B Extract OS            00 (0) 'MS-DOS'\n-26F3C General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-26F3E Compression Method    0000 (0) 'Stored'\n-26F40 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-26F44 CRC                   51873E5B (1367817819)\n-26F48 Compressed Size       00000A93 (2707)\n-26F4C Uncompressed Size     00000A93 (2707)\n-26F50 Filename Length       003A (58)\n-26F52 Extra Length          0009 (9)\n-26F54 Comment Length        0000 (0)\n-26F56 Disk Start            0000 (0)\n-26F58 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-26F5A Ext File Attributes   00000000 (0)\n-26F5E Local Header Offset   000001E2 (482)\n-26F62 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x26F62: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-26F9C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-26F9E   Length              0005 (5)\n-26FA0   Flags               01 (1) 'Modification'\n-26FA1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-26FA5 CENTRAL HEADER #8     02014B50 (33639248)\n-26FA9 Created Zip Spec      14 (20) '2.0'\n-26FAA Created OS            00 (0) 'MS-DOS'\n-26FAB Extract Zip Spec      14 (20) '2.0'\n-26FAC Extract OS            00 (0) 'MS-DOS'\n-26FAD General Purpose Flag  0000 (0)\n-26FAF Compression Method    0000 (0) 'Stored'\n-26FB1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-26FB5 CRC                   00000000 (0)\n-26FB9 Compressed Size       00000000 (0)\n-26FBD Uncompressed Size     00000000 (0)\n-26FC1 Filename Length       0004 (4)\n-26FC3 Extra Length          0009 (9)\n-26FC5 Comment Length        0000 (0)\n-26FC7 Disk Start            0000 (0)\n-26FC9 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-26FCB Ext File Attributes   00000000 (0)\n-26FCF Local Header Offset   00000CE6 (3302)\n-26FD3 Filename              'XXXX'\n-#\n-# WARNING: Offset 0x26FD3: Filename 'XXXX'\n-#          Zero length filename\n-#\n-26FD7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-26FD9   Length              0005 (5)\n-26FDB   Flags               01 (1) 'Modification'\n-26FDC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-26FE0 CENTRAL HEADER #9     02014B50 (33639248)\n-26FE4 Created Zip Spec      14 (20) '2.0'\n-26FE5 Created OS            00 (0) 'MS-DOS'\n-26FE6 Extract Zip Spec      14 (20) '2.0'\n-26FE7 Extract OS            00 (0) 'MS-DOS'\n-26FE8 General Purpose Flag  0000 (0)\n-26FEA Compression Method    0000 (0) 'Stored'\n-26FEC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-26FF0 CRC                   00000000 (0)\n-26FF4 Compressed Size       00000000 (0)\n-26FF8 Uncompressed Size     00000000 (0)\n-26FFC Filename Length       0010 (16)\n-26FFE Extra Length          0009 (9)\n-27000 Comment Length        0000 (0)\n-27002 Disk Start            0000 (0)\n-27004 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-27006 Ext File Attributes   00000000 (0)\n-2700A Local Header Offset   00000D11 (3345)\n-2700E Filename              'XXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2700E: Filename 'XXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2701E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27020   Length              0005 (5)\n-27022   Flags               01 (1) 'Modification'\n-27023   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27027 CENTRAL HEADER #10    02014B50 (33639248)\n-2702B Created Zip Spec      14 (20) '2.0'\n-2702C Created OS            00 (0) 'MS-DOS'\n-2702D Extract Zip Spec      14 (20) '2.0'\n-2702E Extract OS            00 (0) 'MS-DOS'\n-2702F General Purpose Flag  0000 (0)\n-27031 Compression Method    0000 (0) 'Stored'\n-27033 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27037 CRC                   00000000 (0)\n-2703B Compressed Size       00000000 (0)\n-2703F Uncompressed Size     00000000 (0)\n-27043 Filename Length       0016 (22)\n-27045 Extra Length          0009 (9)\n-27047 Comment Length        0000 (0)\n-27049 Disk Start            0000 (0)\n-2704B Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2704D Ext File Attributes   00000000 (0)\n-27051 Local Header Offset   00000D48 (3400)\n-27055 Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27055: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2706B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2706D   Length              0005 (5)\n-2706F   Flags               01 (1) 'Modification'\n-27070   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27074 CENTRAL HEADER #11    02014B50 (33639248)\n-27078 Created Zip Spec      14 (20) '2.0'\n-27079 Created OS            00 (0) 'MS-DOS'\n-2707A Extract Zip Spec      14 (20) '2.0'\n-2707B Extract OS            00 (0) 'MS-DOS'\n-2707C General Purpose Flag  0000 (0)\n-2707E Compression Method    0000 (0) 'Stored'\n-27080 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27084 CRC                   00000000 (0)\n-27088 Compressed Size       00000000 (0)\n-2708C Uncompressed Size     00000000 (0)\n-27090 Filename Length       001D (29)\n-27092 Extra Length          0009 (9)\n-27094 Comment Length        0000 (0)\n-27096 Disk Start            0000 (0)\n-27098 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2709A Ext File Attributes   00000000 (0)\n-2709E Local Header Offset   00000D85 (3461)\n-270A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x270A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-270BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-270C1   Length              0005 (5)\n-270C3   Flags               01 (1) 'Modification'\n-270C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-270C8 CENTRAL HEADER #12    02014B50 (33639248)\n-270CC Created Zip Spec      14 (20) '2.0'\n-270CD Created OS            00 (0) 'MS-DOS'\n-270CE Extract Zip Spec      14 (20) '2.0'\n-270CF Extract OS            00 (0) 'MS-DOS'\n-270D0 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-270D2 Compression Method    0000 (0) 'Stored'\n-270D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-270D8 CRC                   E1E75EFE (3790036734)\n-270DC Compressed Size       00003D54 (15700)\n-270E0 Uncompressed Size     00003D54 (15700)\n-270E4 Filename Length       0037 (55)\n-270E6 Extra Length          0009 (9)\n-270E8 Comment Length        0000 (0)\n-270EA Disk Start            0000 (0)\n-270EC Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-270EE Ext File Attributes   00000000 (0)\n-270F2 Local Header Offset   00000DC9 (3529)\n-270F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x270F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2712D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2712F   Length              0005 (5)\n-27131   Flags               01 (1) 'Modification'\n-27132   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27136 CENTRAL HEADER #13    02014B50 (33639248)\n-2713A Created Zip Spec      14 (20) '2.0'\n-2713B Created OS            00 (0) 'MS-DOS'\n-2713C Extract Zip Spec      14 (20) '2.0'\n-2713D Extract OS            00 (0) 'MS-DOS'\n-2713E General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27140 Compression Method    0000 (0) 'Stored'\n-27142 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27146 CRC                   8575B06E (2239082606)\n-2714A Compressed Size       000016E1 (5857)\n-2714E Uncompressed Size     000016E1 (5857)\n-27152 Filename Length       0049 (73)\n-27154 Extra Length          0009 (9)\n-27156 Comment Length        0000 (0)\n-27158 Disk Start            0000 (0)\n-2715A Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2715C Ext File Attributes   00000000 (0)\n-27160 Local Header Offset   00004B8B (19339)\n-27164 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27164: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-271AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-271AF   Length              0005 (5)\n-271B1   Flags               01 (1) 'Modification'\n-271B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-271B6 CENTRAL HEADER #14    02014B50 (33639248)\n-271BA Created Zip Spec      14 (20) '2.0'\n-271BB Created OS            00 (0) 'MS-DOS'\n-271BC Extract Zip Spec      14 (20) '2.0'\n-271BD Extract OS            00 (0) 'MS-DOS'\n-271BE General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-271C0 Compression Method    0000 (0) 'Stored'\n-271C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-271C6 CRC                   CAB4373B (3400808251)\n-271CA Compressed Size       00002C27 (11303)\n-271CE Uncompressed Size     00002C27 (11303)\n-271D2 Filename Length       0032 (50)\n-271D4 Extra Length          0009 (9)\n-271D6 Comment Length        0000 (0)\n-271D8 Disk Start            0000 (0)\n-271DA Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-271DC Ext File Attributes   00000000 (0)\n-271E0 Local Header Offset   000062EC (25324)\n-271E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x271E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27216 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27218   Length              0005 (5)\n-2721A   Flags               01 (1) 'Modification'\n-2721B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2721F CENTRAL HEADER #15    02014B50 (33639248)\n-27223 Created Zip Spec      14 (20) '2.0'\n-27224 Created OS            00 (0) 'MS-DOS'\n-27225 Extract Zip Spec      14 (20) '2.0'\n-27226 Extract OS            00 (0) 'MS-DOS'\n-27227 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27229 Compression Method    0000 (0) 'Stored'\n-2722B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2722F CRC                   40383E4E (1077427790)\n-27233 Compressed Size       00000A3C (2620)\n-27237 Uncompressed Size     00000A3C (2620)\n-2723B Filename Length       0036 (54)\n-2723D Extra Length          0009 (9)\n-2723F Comment Length        0000 (0)\n-27241 Disk Start            0000 (0)\n-27243 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-27245 Ext File Attributes   00000000 (0)\n-27249 Local Header Offset   00008F7C (36732)\n-2724D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2724D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27283 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27285   Length              0005 (5)\n-27287   Flags               01 (1) 'Modification'\n-27288   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2728C CENTRAL HEADER #16    02014B50 (33639248)\n-27290 Created Zip Spec      14 (20) '2.0'\n-27291 Created OS            00 (0) 'MS-DOS'\n-27292 Extract Zip Spec      14 (20) '2.0'\n-27293 Extract OS            00 (0) 'MS-DOS'\n-27294 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27296 Compression Method    0000 (0) 'Stored'\n-27298 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2729C CRC                   82D7EEB6 (2195189430)\n-272A0 Compressed Size       00000F8C (3980)\n-272A4 Uncompressed Size     00000F8C (3980)\n-272A8 Filename Length       0053 (83)\n-272AA Extra Length          0009 (9)\n-272AC Comment Length        0000 (0)\n-272AE Disk Start            0000 (0)\n-272B0 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-272B2 Ext File Attributes   00000000 (0)\n-272B6 Local Header Offset   00009A25 (39461)\n-272BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x272BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2730D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2730F   Length              0005 (5)\n-27311   Flags               01 (1) 'Modification'\n-27312   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27316 CENTRAL HEADER #17    02014B50 (33639248)\n-2731A Created Zip Spec      14 (20) '2.0'\n-2731B Created OS            00 (0) 'MS-DOS'\n-2731C Extract Zip Spec      14 (20) '2.0'\n-2731D Extract OS            00 (0) 'MS-DOS'\n-2731E General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27320 Compression Method    0000 (0) 'Stored'\n-27322 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27326 CRC                   A919C03B (2837037115)\n-2732A Compressed Size       00002215 (8725)\n-2732E Uncompressed Size     00002215 (8725)\n-27332 Filename Length       0037 (55)\n-27334 Extra Length          0009 (9)\n-27336 Comment Length        0000 (0)\n-27338 Disk Start            0000 (0)\n-2733A Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2733C Ext File Attributes   00000000 (0)\n-27340 Local Header Offset   0000AA3B (43579)\n-27344 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27344: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2737B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2737D   Length              0005 (5)\n-2737F   Flags               01 (1) 'Modification'\n-27380   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27384 CENTRAL HEADER #18    02014B50 (33639248)\n-27388 Created Zip Spec      14 (20) '2.0'\n-27389 Created OS            00 (0) 'MS-DOS'\n-2738A Extract Zip Spec      14 (20) '2.0'\n-2738B Extract OS            00 (0) 'MS-DOS'\n-2738C General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2738E Compression Method    0000 (0) 'Stored'\n-27390 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27394 CRC                   724E7A93 (1917745811)\n-27398 Compressed Size       0000061D (1565)\n-2739C Uncompressed Size     0000061D (1565)\n-273A0 Filename Length       003B (59)\n-273A2 Extra Length          0009 (9)\n-273A4 Comment Length        0000 (0)\n-273A6 Disk Start            0000 (0)\n-273A8 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-273AA Ext File Attributes   00000000 (0)\n-273AE Local Header Offset   0000CCBE (52414)\n-273B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x273B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-273ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-273EF   Length              0005 (5)\n-273F1   Flags               01 (1) 'Modification'\n-273F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-273F6 CENTRAL HEADER #19    02014B50 (33639248)\n-273FA Created Zip Spec      14 (20) '2.0'\n-273FB Created OS            00 (0) 'MS-DOS'\n-273FC Extract Zip Spec      14 (20) '2.0'\n-273FD Extract OS            00 (0) 'MS-DOS'\n-273FE General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27400 Compression Method    0000 (0) 'Stored'\n-27402 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27406 CRC                   5BEA4F01 (1542082305)\n-2740A Compressed Size       00001350 (4944)\n-2740E Uncompressed Size     00001350 (4944)\n-27412 Filename Length       004B (75)\n-27414 Extra Length          0009 (9)\n-27416 Comment Length        0000 (0)\n-27418 Disk Start            0000 (0)\n-2741A Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2741C Ext File Attributes   00000000 (0)\n-27420 Local Header Offset   0000D34D (54093)\n-27424 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27424: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2746F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27471   Length              0005 (5)\n-27473   Flags               01 (1) 'Modification'\n-27474   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27478 CENTRAL HEADER #20    02014B50 (33639248)\n-2747C Created Zip Spec      14 (20) '2.0'\n-2747D Created OS            00 (0) 'MS-DOS'\n-2747E Extract Zip Spec      14 (20) '2.0'\n-2747F Extract OS            00 (0) 'MS-DOS'\n-27480 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27482 Compression Method    0000 (0) 'Stored'\n-27484 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27488 CRC                   2A02383A (704788538)\n-2748C Compressed Size       0000227B (8827)\n-27490 Uncompressed Size     0000227B (8827)\n-27494 Filename Length       0033 (51)\n-27496 Extra Length          0009 (9)\n-27498 Comment Length        0000 (0)\n-2749A Disk Start            0000 (0)\n-2749C Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2749E Ext File Attributes   00000000 (0)\n-274A2 Local Header Offset   0000E71F (59167)\n-274A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x274A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-274D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-274DB   Length              0005 (5)\n-274DD   Flags               01 (1) 'Modification'\n-274DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-274E2 CENTRAL HEADER #21    02014B50 (33639248)\n-274E6 Created Zip Spec      14 (20) '2.0'\n-274E7 Created OS            00 (0) 'MS-DOS'\n-274E8 Extract Zip Spec      14 (20) '2.0'\n-274E9 Extract OS            00 (0) 'MS-DOS'\n-274EA General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-274EC Compression Method    0000 (0) 'Stored'\n-274EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-274F2 CRC                   BD63801D (3177414685)\n-274F6 Compressed Size       00000566 (1382)\n-274FA Uncompressed Size     00000566 (1382)\n-274FE Filename Length       0037 (55)\n-27500 Extra Length          0009 (9)\n-27502 Comment Length        0000 (0)\n-27504 Disk Start            0000 (0)\n-27506 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-27508 Ext File Attributes   00000000 (0)\n-2750C Local Header Offset   00010A04 (68100)\n-27510 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27510: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27547 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27549   Length              0005 (5)\n-2754B   Flags               01 (1) 'Modification'\n-2754C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27550 CENTRAL HEADER #22    02014B50 (33639248)\n-27554 Created Zip Spec      14 (20) '2.0'\n-27555 Created OS            00 (0) 'MS-DOS'\n-27556 Extract Zip Spec      14 (20) '2.0'\n-27557 Extract OS            00 (0) 'MS-DOS'\n-27558 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2755A Compression Method    0000 (0) 'Stored'\n-2755C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27560 CRC                   BAD85CBC (3134741692)\n-27564 Compressed Size       00000F5A (3930)\n-27568 Uncompressed Size     00000F5A (3930)\n-2756C Filename Length       0051 (81)\n-2756E Extra Length          0009 (9)\n-27570 Comment Length        0000 (0)\n-27572 Disk Start            0000 (0)\n-27574 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-27576 Ext File Attributes   00000000 (0)\n-2757A Local Header Offset   00010FD8 (69592)\n-2757E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2757E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-275CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-275D1   Length              0005 (5)\n-275D3   Flags               01 (1) 'Modification'\n-275D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-275D8 CENTRAL HEADER #23    02014B50 (33639248)\n-275DC Created Zip Spec      14 (20) '2.0'\n-275DD Created OS            00 (0) 'MS-DOS'\n-275DE Extract Zip Spec      14 (20) '2.0'\n-275DF Extract OS            00 (0) 'MS-DOS'\n-275E0 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-275E2 Compression Method    0000 (0) 'Stored'\n-275E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-275E8 CRC                   AC97EB3C (2895637308)\n-275EC Compressed Size       00001BC8 (7112)\n-275F0 Uncompressed Size     00001BC8 (7112)\n-275F4 Filename Length       0036 (54)\n-275F6 Extra Length          0009 (9)\n-275F8 Comment Length        0000 (0)\n-275FA Disk Start            0000 (0)\n-275FC Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-275FE Ext File Attributes   00000000 (0)\n-27602 Local Header Offset   00011FBA (73658)\n-27606 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27606: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2763C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2763E   Length              0005 (5)\n-27640   Flags               01 (1) 'Modification'\n-27641   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27645 CENTRAL HEADER #24    02014B50 (33639248)\n-27649 Created Zip Spec      14 (20) '2.0'\n-2764A Created OS            00 (0) 'MS-DOS'\n-2764B Extract Zip Spec      14 (20) '2.0'\n-2764C Extract OS            00 (0) 'MS-DOS'\n-2764D General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2764F Compression Method    0000 (0) 'Stored'\n-27651 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27655 CRC                   DC5A73E8 (3696915432)\n-27659 Compressed Size       00000550 (1360)\n-2765D Uncompressed Size     00000550 (1360)\n-27661 Filename Length       003A (58)\n-27663 Extra Length          0009 (9)\n-27665 Comment Length        0000 (0)\n-27667 Disk Start            0000 (0)\n-27669 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-2766B Ext File Attributes   00000000 (0)\n-2766F Local Header Offset   00013BEF (80879)\n-27673 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27673: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-276AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-276AF   Length              0005 (5)\n-276B1   Flags               01 (1) 'Modification'\n-276B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-276B6 CENTRAL HEADER #25    02014B50 (33639248)\n-276BA Created Zip Spec      14 (20) '2.0'\n-276BB Created OS            00 (0) 'MS-DOS'\n-276BC Extract Zip Spec      14 (20) '2.0'\n-276BD Extract OS            00 (0) 'MS-DOS'\n-276BE General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-276C0 Compression Method    0000 (0) 'Stored'\n-276C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-276C6 CRC                   D65E206C (3596492908)\n-276CA Compressed Size       00000621 (1569)\n-276CE Uncompressed Size     00000621 (1569)\n-276D2 Filename Length       0032 (50)\n-276D4 Extra Length          0009 (9)\n-276D6 Comment Length        0000 (0)\n-276D8 Disk Start            0000 (0)\n-276DA Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-276DC Ext File Attributes   00000000 (0)\n-276E0 Local Header Offset   000141B0 (82352)\n-276E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x276E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27716 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27718   Length              0005 (5)\n-2771A   Flags               01 (1) 'Modification'\n-2771B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2771F CENTRAL HEADER #26    02014B50 (33639248)\n-27723 Created Zip Spec      14 (20) '2.0'\n-27724 Created OS            00 (0) 'MS-DOS'\n-27725 Extract Zip Spec      14 (20) '2.0'\n-27726 Extract OS            00 (0) 'MS-DOS'\n-27727 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27729 Compression Method    0000 (0) 'Stored'\n-2772B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2772F CRC                   E02B2907 (3760924935)\n-27733 Compressed Size       00000D33 (3379)\n-27737 Uncompressed Size     00000D33 (3379)\n-2773B Filename Length       0055 (85)\n-2773D Extra Length          0009 (9)\n-2773F Comment Length        0000 (0)\n-27741 Disk Start            0000 (0)\n-27743 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-27745 Ext File Attributes   00000000 (0)\n-27749 Local Header Offset   0001483A (84026)\n-2774D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2774D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-277A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-277A4   Length              0005 (5)\n-277A6   Flags               01 (1) 'Modification'\n-277A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-277AB CENTRAL HEADER #27    02014B50 (33639248)\n-277AF Created Zip Spec      14 (20) '2.0'\n-277B0 Created OS            00 (0) 'MS-DOS'\n-277B1 Extract Zip Spec      14 (20) '2.0'\n-277B2 Extract OS            00 (0) 'MS-DOS'\n-277B3 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-277B5 Compression Method    0000 (0) 'Stored'\n-277B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-277BB CRC                   A6E4BF6C (2800009068)\n-277BF Compressed Size       00001F2A (7978)\n-277C3 Uncompressed Size     00001F2A (7978)\n-277C7 Filename Length       0038 (56)\n-277C9 Extra Length          0009 (9)\n-277CB Comment Length        0000 (0)\n-277CD Disk Start            0000 (0)\n-277CF Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-277D1 Ext File Attributes   00000000 (0)\n-277D5 Local Header Offset   000155F9 (87545)\n-277D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x277D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27811 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27813   Length              0005 (5)\n-27815   Flags               01 (1) 'Modification'\n-27816   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2781A CENTRAL HEADER #28    02014B50 (33639248)\n-2781E Created Zip Spec      14 (20) '2.0'\n-2781F Created OS            00 (0) 'MS-DOS'\n-27820 Extract Zip Spec      14 (20) '2.0'\n-27821 Extract OS            00 (0) 'MS-DOS'\n-27822 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27824 Compression Method    0000 (0) 'Stored'\n-27826 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2782A CRC                   09491BDF (155786207)\n-2782E Compressed Size       000005C1 (1473)\n-27832 Uncompressed Size     000005C1 (1473)\n-27836 Filename Length       003C (60)\n-27838 Extra Length          0009 (9)\n-2783A Comment Length        0000 (0)\n-2783C Disk Start            0000 (0)\n-2783E Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-27840 Ext File Attributes   00000000 (0)\n-27844 Local Header Offset   00017592 (95634)\n-27848 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27848: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27884 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27886   Length              0005 (5)\n-27888   Flags               01 (1) 'Modification'\n-27889   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2788D CENTRAL HEADER #29    02014B50 (33639248)\n-27891 Created Zip Spec      14 (20) '2.0'\n-27892 Created OS            00 (0) 'MS-DOS'\n-27893 Extract Zip Spec      14 (20) '2.0'\n-27894 Extract OS            00 (0) 'MS-DOS'\n-27895 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27897 Compression Method    0000 (0) 'Stored'\n-27899 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2789D CRC                   0745DDF2 (122019314)\n-278A1 Compressed Size       00001775 (6005)\n-278A5 Uncompressed Size     00001775 (6005)\n-278A9 Filename Length       005B (91)\n-278AB Extra Length          0009 (9)\n-278AD Comment Length        0000 (0)\n-278AF Disk Start            0000 (0)\n-278B1 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-278B3 Ext File Attributes   00000000 (0)\n-278B7 Local Header Offset   00017BC6 (97222)\n-278BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x278BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27916 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27918   Length              0005 (5)\n-2791A   Flags               01 (1) 'Modification'\n-2791B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2791F CENTRAL HEADER #30    02014B50 (33639248)\n-27923 Created Zip Spec      14 (20) '2.0'\n-27924 Created OS            00 (0) 'MS-DOS'\n-27925 Extract Zip Spec      14 (20) '2.0'\n-27926 Extract OS            00 (0) 'MS-DOS'\n-27927 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27929 Compression Method    0000 (0) 'Stored'\n-2792B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2792F CRC                   EA136B52 (3927141202)\n-27933 Compressed Size       00003616 (13846)\n-27937 Uncompressed Size     00003616 (13846)\n-2793B Filename Length       003B (59)\n-2793D Extra Length          0009 (9)\n-2793F Comment Length        0000 (0)\n-27941 Disk Start            0000 (0)\n-27943 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-27945 Ext File Attributes   00000000 (0)\n-27949 Local Header Offset   000193CD (103373)\n-2794D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2794D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27988 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2798A   Length              0005 (5)\n-2798C   Flags               01 (1) 'Modification'\n-2798D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27991 CENTRAL HEADER #31    02014B50 (33639248)\n-27995 Created Zip Spec      14 (20) '2.0'\n-27996 Created OS            00 (0) 'MS-DOS'\n-27997 Extract Zip Spec      14 (20) '2.0'\n-27998 Extract OS            00 (0) 'MS-DOS'\n-27999 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-2799B Compression Method    0000 (0) 'Stored'\n-2799D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-279A1 CRC                   AFA6A742 (2946934594)\n-279A5 Compressed Size       00000F19 (3865)\n-279A9 Uncompressed Size     00000F19 (3865)\n-279AD Filename Length       0063 (99)\n-279AF Extra Length          0009 (9)\n-279B1 Comment Length        0000 (0)\n-279B3 Disk Start            0000 (0)\n-279B5 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-279B7 Ext File Attributes   00000000 (0)\n-279BB Local Header Offset   0001CA55 (117333)\n-279BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x279BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27A22 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27A24   Length              0005 (5)\n-27A26   Flags               01 (1) 'Modification'\n-27A27   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27A2B CENTRAL HEADER #32    02014B50 (33639248)\n-27A2F Created Zip Spec      14 (20) '2.0'\n-27A30 Created OS            00 (0) 'MS-DOS'\n-27A31 Extract Zip Spec      14 (20) '2.0'\n-27A32 Extract OS            00 (0) 'MS-DOS'\n-27A33 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27A35 Compression Method    0000 (0) 'Stored'\n-27A37 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27A3B CRC                   8A07E750 (2315773776)\n-27A3F Compressed Size       000022B2 (8882)\n-27A43 Uncompressed Size     000022B2 (8882)\n-27A47 Filename Length       003F (63)\n-27A49 Extra Length          0009 (9)\n-27A4B Comment Length        0000 (0)\n-27A4D Disk Start            0000 (0)\n-27A4F Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-27A51 Ext File Attributes   00000000 (0)\n-27A55 Local Header Offset   0001DA08 (121352)\n-27A59 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27A59: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27A98 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27A9A   Length              0005 (5)\n-27A9C   Flags               01 (1) 'Modification'\n-27A9D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27AA1 CENTRAL HEADER #33    02014B50 (33639248)\n-27AA5 Created Zip Spec      14 (20) '2.0'\n-27AA6 Created OS            00 (0) 'MS-DOS'\n-27AA7 Extract Zip Spec      14 (20) '2.0'\n-27AA8 Extract OS            00 (0) 'MS-DOS'\n-27AA9 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27AAB Compression Method    0000 (0) 'Stored'\n-27AAD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27AB1 CRC                   9C368749 (2620819273)\n-27AB5 Compressed Size       00000128 (296)\n-27AB9 Uncompressed Size     00000128 (296)\n-27ABD Filename Length       0043 (67)\n-27ABF Extra Length          0009 (9)\n-27AC1 Comment Length        0000 (0)\n-27AC3 Disk Start            0000 (0)\n-27AC5 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-27AC7 Ext File Attributes   00000000 (0)\n-27ACB Local Header Offset   0001FD30 (130352)\n-27ACF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27ACF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27B12 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27B14   Length              0005 (5)\n-27B16   Flags               01 (1) 'Modification'\n-27B17   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27B1B CENTRAL HEADER #34    02014B50 (33639248)\n-27B1F Created Zip Spec      14 (20) '2.0'\n-27B20 Created OS            00 (0) 'MS-DOS'\n-27B21 Extract Zip Spec      14 (20) '2.0'\n-27B22 Extract OS            00 (0) 'MS-DOS'\n-27B23 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27B25 Compression Method    0000 (0) 'Stored'\n-27B27 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27B2B CRC                   D7668659 (3613820505)\n-27B2F Compressed Size       0000056E (1390)\n-27B33 Uncompressed Size     0000056E (1390)\n-27B37 Filename Length       005D (93)\n-27B39 Extra Length          0009 (9)\n-27B3B Comment Length        0000 (0)\n-27B3D Disk Start            0000 (0)\n-27B3F Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-27B41 Ext File Attributes   00000000 (0)\n-27B45 Local Header Offset   0001FED2 (130770)\n-27B49 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27B49: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27BA6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27BA8   Length              0005 (5)\n-27BAA   Flags               01 (1) 'Modification'\n-27BAB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27BAF CENTRAL HEADER #35    02014B50 (33639248)\n-27BB3 Created Zip Spec      14 (20) '2.0'\n-27BB4 Created OS            00 (0) 'MS-DOS'\n-27BB5 Extract Zip Spec      14 (20) '2.0'\n-27BB6 Extract OS            00 (0) 'MS-DOS'\n-27BB7 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27BB9 Compression Method    0000 (0) 'Stored'\n-27BBB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27BBF CRC                   03389AAD (54041261)\n-27BC3 Compressed Size       000023F5 (9205)\n-27BC7 Uncompressed Size     000023F5 (9205)\n-27BCB Filename Length       0041 (65)\n-27BCD Extra Length          0009 (9)\n-27BCF Comment Length        0000 (0)\n-27BD1 Disk Start            0000 (0)\n-27BD3 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-27BD5 Ext File Attributes   00000000 (0)\n-27BD9 Local Header Offset   000204D4 (132308)\n-27BDD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27BDD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27C1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27C20   Length              0005 (5)\n-27C22   Flags               01 (1) 'Modification'\n-27C23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27C27 CENTRAL HEADER #36    02014B50 (33639248)\n-27C2B Created Zip Spec      14 (20) '2.0'\n-27C2C Created OS            00 (0) 'MS-DOS'\n-27C2D Extract Zip Spec      14 (20) '2.0'\n-27C2E Extract OS            00 (0) 'MS-DOS'\n-27C2F General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27C31 Compression Method    0000 (0) 'Stored'\n-27C33 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27C37 CRC                   01C123D9 (29434841)\n-27C3B Compressed Size       0000301D (12317)\n-27C3F Uncompressed Size     0000301D (12317)\n-27C43 Filename Length       0032 (50)\n-27C45 Extra Length          0009 (9)\n-27C47 Comment Length        0000 (0)\n-27C49 Disk Start            0000 (0)\n-27C4B Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-27C4D Ext File Attributes   00000000 (0)\n-27C51 Local Header Offset   00022941 (141633)\n-27C55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27C55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27C87 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27C89   Length              0005 (5)\n-27C8B   Flags               01 (1) 'Modification'\n-27C8C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27C90 CENTRAL HEADER #37    02014B50 (33639248)\n-27C94 Created Zip Spec      14 (20) '2.0'\n-27C95 Created OS            00 (0) 'MS-DOS'\n-27C96 Extract Zip Spec      14 (20) '2.0'\n-27C97 Extract OS            00 (0) 'MS-DOS'\n-27C98 General Purpose Flag  0000 (0)\n-27C9A Compression Method    0000 (0) 'Stored'\n-27C9C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27CA0 CRC                   00000000 (0)\n-27CA4 Compressed Size       00000000 (0)\n-27CA8 Uncompressed Size     00000000 (0)\n-27CAC Filename Length       0021 (33)\n-27CAE Extra Length          0009 (9)\n-27CB0 Comment Length        0000 (0)\n-27CB2 Disk Start            0000 (0)\n-27CB4 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-27CB6 Ext File Attributes   00000000 (0)\n-27CBA Local Header Offset   000259C7 (154055)\n-27CBE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27CBE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27CDF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27CE1   Length              0005 (5)\n-27CE3   Flags               01 (1) 'Modification'\n-27CE4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27CE8 CENTRAL HEADER #38    02014B50 (33639248)\n-27CEC Created Zip Spec      14 (20) '2.0'\n-27CED Created OS            00 (0) 'MS-DOS'\n-27CEE Extract Zip Spec      14 (20) '2.0'\n-27CEF Extract OS            00 (0) 'MS-DOS'\n-27CF0 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27CF2 Compression Method    0000 (0) 'Stored'\n-27CF4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27CF8 CRC                   248D6C5D (613248093)\n-27CFC Compressed Size       0000020F (527)\n-27D00 Uncompressed Size     0000020F (527)\n-27D04 Filename Length       0044 (68)\n-27D06 Extra Length          0009 (9)\n-27D08 Comment Length        0000 (0)\n-27D0A Disk Start            0000 (0)\n-27D0C Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-27D0E Ext File Attributes   00000000 (0)\n-27D12 Local Header Offset   00025A0F (154127)\n-27D16 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27D16: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27D5A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27D5C   Length              0005 (5)\n-27D5E   Flags               01 (1) 'Modification'\n-27D5F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27D63 CENTRAL HEADER #39    02014B50 (33639248)\n-27D67 Created Zip Spec      14 (20) '2.0'\n-27D68 Created OS            00 (0) 'MS-DOS'\n-27D69 Extract Zip Spec      14 (20) '2.0'\n-27D6A Extract OS            00 (0) 'MS-DOS'\n-27D6B General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27D6D Compression Method    0000 (0) 'Stored'\n-27D6F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27D73 CRC                   C8C614FC (3368424700)\n-27D77 Compressed Size       00000237 (567)\n-27D7B Uncompressed Size     00000237 (567)\n-27D7F Filename Length       0049 (73)\n-27D81 Extra Length          0009 (9)\n-27D83 Comment Length        0000 (0)\n-27D85 Disk Start            0000 (0)\n-27D87 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-27D89 Ext File Attributes   00000000 (0)\n-27D8D Local Header Offset   00025C99 (154777)\n-27D91 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27D91: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27DDA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27DDC   Length              0005 (5)\n-27DDE   Flags               01 (1) 'Modification'\n-27DDF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27DE3 CENTRAL HEADER #40    02014B50 (33639248)\n-27DE7 Created Zip Spec      14 (20) '2.0'\n-27DE8 Created OS            00 (0) 'MS-DOS'\n-27DE9 Extract Zip Spec      14 (20) '2.0'\n-27DEA Extract OS            00 (0) 'MS-DOS'\n-27DEB General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27DED Compression Method    0000 (0) 'Stored'\n-27DEF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27DF3 CRC                   F51179FA (4111563258)\n-27DF7 Compressed Size       00000217 (535)\n-27DFB Uncompressed Size     00000217 (535)\n-27DFF Filename Length       0045 (69)\n-27E01 Extra Length          0009 (9)\n-27E03 Comment Length        0000 (0)\n-27E05 Disk Start            0000 (0)\n-27E07 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-27E09 Ext File Attributes   00000000 (0)\n-27E0D Local Header Offset   00025F50 (155472)\n-27E11 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27E11: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27E56 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27E58   Length              0005 (5)\n-27E5A   Flags               01 (1) 'Modification'\n-27E5B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27E5F CENTRAL HEADER #41    02014B50 (33639248)\n-27E63 Created Zip Spec      14 (20) '2.0'\n-27E64 Created OS            00 (0) 'MS-DOS'\n-27E65 Extract Zip Spec      14 (20) '2.0'\n-27E66 Extract OS            00 (0) 'MS-DOS'\n-27E67 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27E69 Compression Method    0000 (0) 'Stored'\n-27E6B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27E6F CRC                   09959589 (160798089)\n-27E73 Compressed Size       0000022F (559)\n-27E77 Uncompressed Size     0000022F (559)\n-27E7B Filename Length       0048 (72)\n-27E7D Extra Length          0009 (9)\n-27E7F Comment Length        0000 (0)\n-27E81 Disk Start            0000 (0)\n-27E83 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-27E85 Ext File Attributes   00000000 (0)\n-27E89 Local Header Offset   000261E3 (156131)\n-27E8D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27E8D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27ED5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27ED7   Length              0005 (5)\n-27ED9   Flags               01 (1) 'Modification'\n-27EDA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27EDE CENTRAL HEADER #42    02014B50 (33639248)\n-27EE2 Created Zip Spec      14 (20) '2.0'\n-27EE3 Created OS            00 (0) 'MS-DOS'\n-27EE4 Extract Zip Spec      14 (20) '2.0'\n-27EE5 Extract OS            00 (0) 'MS-DOS'\n-27EE6 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27EE8 Compression Method    0000 (0) 'Stored'\n-27EEA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27EEE CRC                   0C1B18E3 (203102435)\n-27EF2 Compressed Size       0000023F (575)\n-27EF6 Uncompressed Size     0000023F (575)\n-27EFA Filename Length       004A (74)\n-27EFC Extra Length          0009 (9)\n-27EFE Comment Length        0000 (0)\n-27F00 Disk Start            0000 (0)\n-27F02 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-27F04 Ext File Attributes   00000000 (0)\n-27F08 Local Header Offset   00026491 (156817)\n-27F0C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27F0C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27F56 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27F58   Length              0005 (5)\n-27F5A   Flags               01 (1) 'Modification'\n-27F5B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27F5F CENTRAL HEADER #43    02014B50 (33639248)\n-27F63 Created Zip Spec      14 (20) '2.0'\n-27F64 Created OS            00 (0) 'MS-DOS'\n-27F65 Extract Zip Spec      14 (20) '2.0'\n-27F66 Extract OS            00 (0) 'MS-DOS'\n-27F67 General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27F69 Compression Method    0000 (0) 'Stored'\n-27F6B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27F6F CRC                   5A2ED1B7 (1513017783)\n-27F73 Compressed Size       00000257 (599)\n-27F77 Uncompressed Size     00000257 (599)\n-27F7B Filename Length       004D (77)\n-27F7D Extra Length          0009 (9)\n-27F7F Comment Length        0000 (0)\n-27F81 Disk Start            0000 (0)\n-27F83 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-27F85 Ext File Attributes   00000000 (0)\n-27F89 Local Header Offset   00026751 (157521)\n-27F8D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27F8D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27FDA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27FDC   Length              0005 (5)\n-27FDE   Flags               01 (1) 'Modification'\n-27FDF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27FE3 CENTRAL HEADER #44    02014B50 (33639248)\n-27FE7 Created Zip Spec      14 (20) '2.0'\n-27FE8 Created OS            00 (0) 'MS-DOS'\n-27FE9 Extract Zip Spec      14 (20) '2.0'\n-27FEA Extract OS            00 (0) 'MS-DOS'\n-27FEB General Purpose Flag  0008 (8)\n-      [Bit  3]              1 'Streamed'\n-27FED Compression Method    0000 (0) 'Stored'\n-27FEF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27FF3 CRC                   697CECA2 (1769794722)\n-27FF7 Compressed Size       00000277 (631)\n-27FFB Uncompressed Size     00000277 (631)\n-27FFF Filename Length       0051 (81)\n-28001 Extra Length          0009 (9)\n-28003 Comment Length        0000 (0)\n-28005 Disk Start            0000 (0)\n-28007 Int File Attributes   0000 (0)\n-      [Bit 0]               0 'Binary Data'\n-28009 Ext File Attributes   00000000 (0)\n-2800D Local Header Offset   00026A2C (158252)\n-28011 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x28011: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-28062 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-28064   Length              0005 (5)\n-28066   Flags               01 (1) 'Modification'\n-28067   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2806B END CENTRAL HEADER    06054B50 (101010256)\n-2806F Number of this disk   0000 (0)\n-28071 Central Dir Disk no   0000 (0)\n-28073 Entries in this disk  002C (44)\n-28075 Total Entries         002C (44)\n-28077 Size of Central Dir   00001340 (4928)\n-2807B Offset to Central Dir 00026D2B (159019)\n-2807F Comment Length        0000 (0)\n+04B68 DATA DESCRIPTOR       08074B50 (134695760)\n+04B6C CRC                   D8BCCFF0 (3636252656)\n+04B70 Compressed Size       00003D41 (15681)\n+04B74 Uncompressed Size     00003D41 (15681)\n+\n+04B78 LOCAL HEADER #13      04034B50 (67324752)\n+04B7C Extract Zip Spec      14 (20) '2.0'\n+04B7D Extract OS            00 (0) 'MS-DOS'\n+04B7E General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+04B80 Compression Method    0000 (0) 'Stored'\n+04B82 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04B86 CRC                   00000000 (0)\n+04B8A Compressed Size       00000000 (0)\n+04B8E Uncompressed Size     00000000 (0)\n+04B92 Filename Length       0049 (73)\n+04B94 Extra Length          0009 (9)\n+04B96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4B96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04BDF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04BE1   Length              0005 (5)\n+04BE3   Flags               01 (1) 'Modification'\n+04BE4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+04BE8 PAYLOAD\n+\n+062C9 DATA DESCRIPTOR       08074B50 (134695760)\n+062CD CRC                   20116D16 (538012950)\n+062D1 Compressed Size       000016E1 (5857)\n+062D5 Uncompressed Size     000016E1 (5857)\n+\n+062D9 LOCAL HEADER #14      04034B50 (67324752)\n+062DD Extract Zip Spec      14 (20) '2.0'\n+062DE Extract OS            00 (0) 'MS-DOS'\n+062DF General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+062E1 Compression Method    0000 (0) 'Stored'\n+062E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+062E7 CRC                   00000000 (0)\n+062EB Compressed Size       00000000 (0)\n+062EF Uncompressed Size     00000000 (0)\n+062F3 Filename Length       0032 (50)\n+062F5 Extra Length          0009 (9)\n+062F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x62F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06329 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0632B   Length              0005 (5)\n+0632D   Flags               01 (1) 'Modification'\n+0632E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+06332 PAYLOAD\n+\n+08F42 DATA DESCRIPTOR       08074B50 (134695760)\n+08F46 CRC                   FA425B0B (4198652683)\n+08F4A Compressed Size       00002C10 (11280)\n+08F4E Uncompressed Size     00002C10 (11280)\n+\n+08F52 LOCAL HEADER #15      04034B50 (67324752)\n+08F56 Extract Zip Spec      14 (20) '2.0'\n+08F57 Extract OS            00 (0) 'MS-DOS'\n+08F58 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+08F5A Compression Method    0000 (0) 'Stored'\n+08F5C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+08F60 CRC                   00000000 (0)\n+08F64 Compressed Size       00000000 (0)\n+08F68 Uncompressed Size     00000000 (0)\n+08F6C Filename Length       0036 (54)\n+08F6E Extra Length          0009 (9)\n+08F70 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x8F70: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+08FA6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+08FA8   Length              0005 (5)\n+08FAA   Flags               01 (1) 'Modification'\n+08FAB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+08FAF PAYLOAD\n+\n+09A26 DATA DESCRIPTOR       08074B50 (134695760)\n+09A2A CRC                   F137D171 (4046967153)\n+09A2E Compressed Size       00000A77 (2679)\n+09A32 Uncompressed Size     00000A77 (2679)\n+\n+09A36 LOCAL HEADER #16      04034B50 (67324752)\n+09A3A Extract Zip Spec      14 (20) '2.0'\n+09A3B Extract OS            00 (0) 'MS-DOS'\n+09A3C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+09A3E Compression Method    0000 (0) 'Stored'\n+09A40 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+09A44 CRC                   00000000 (0)\n+09A48 Compressed Size       00000000 (0)\n+09A4C Uncompressed Size     00000000 (0)\n+09A50 Filename Length       0053 (83)\n+09A52 Extra Length          0009 (9)\n+09A54 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x9A54: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+09AA7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+09AA9   Length              0005 (5)\n+09AAB   Flags               01 (1) 'Modification'\n+09AAC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+09AB0 PAYLOAD\n+\n+0AA3C DATA DESCRIPTOR       08074B50 (134695760)\n+0AA40 CRC                   5EC9A7BB (1590273979)\n+0AA44 Compressed Size       00000F8C (3980)\n+0AA48 Uncompressed Size     00000F8C (3980)\n+\n+0AA4C LOCAL HEADER #17      04034B50 (67324752)\n+0AA50 Extract Zip Spec      14 (20) '2.0'\n+0AA51 Extract OS            00 (0) 'MS-DOS'\n+0AA52 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0AA54 Compression Method    0000 (0) 'Stored'\n+0AA56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0AA5A CRC                   00000000 (0)\n+0AA5E Compressed Size       00000000 (0)\n+0AA62 Uncompressed Size     00000000 (0)\n+0AA66 Filename Length       0037 (55)\n+0AA68 Extra Length          0009 (9)\n+0AA6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xAA6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0AAA1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0AAA3   Length              0005 (5)\n+0AAA5   Flags               01 (1) 'Modification'\n+0AAA6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0AAAA PAYLOAD\n+\n+0CCB0 DATA DESCRIPTOR       08074B50 (134695760)\n+0CCB4 CRC                   429A10E7 (1117393127)\n+0CCB8 Compressed Size       00002206 (8710)\n+0CCBC Uncompressed Size     00002206 (8710)\n+\n+0CCC0 LOCAL HEADER #18      04034B50 (67324752)\n+0CCC4 Extract Zip Spec      14 (20) '2.0'\n+0CCC5 Extract OS            00 (0) 'MS-DOS'\n+0CCC6 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0CCC8 Compression Method    0000 (0) 'Stored'\n+0CCCA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0CCCE CRC                   00000000 (0)\n+0CCD2 Compressed Size       00000000 (0)\n+0CCD6 Uncompressed Size     00000000 (0)\n+0CCDA Filename Length       003B (59)\n+0CCDC Extra Length          0009 (9)\n+0CCDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xCCDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0CD19 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0CD1B   Length              0005 (5)\n+0CD1D   Flags               01 (1) 'Modification'\n+0CD1E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0CD22 PAYLOAD\n+\n+0D37A DATA DESCRIPTOR       08074B50 (134695760)\n+0D37E CRC                   2FE04107 (803225863)\n+0D382 Compressed Size       00000658 (1624)\n+0D386 Uncompressed Size     00000658 (1624)\n+\n+0D38A LOCAL HEADER #19      04034B50 (67324752)\n+0D38E Extract Zip Spec      14 (20) '2.0'\n+0D38F Extract OS            00 (0) 'MS-DOS'\n+0D390 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0D392 Compression Method    0000 (0) 'Stored'\n+0D394 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0D398 CRC                   00000000 (0)\n+0D39C Compressed Size       00000000 (0)\n+0D3A0 Uncompressed Size     00000000 (0)\n+0D3A4 Filename Length       004B (75)\n+0D3A6 Extra Length          0009 (9)\n+0D3A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xD3A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0D3F3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0D3F5   Length              0005 (5)\n+0D3F7   Flags               01 (1) 'Modification'\n+0D3F8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0D3FC PAYLOAD\n+\n+0E74C DATA DESCRIPTOR       08074B50 (134695760)\n+0E750 CRC                   D4D4C2C0 (3570713280)\n+0E754 Compressed Size       00001350 (4944)\n+0E758 Uncompressed Size     00001350 (4944)\n+\n+0E75C LOCAL HEADER #20      04034B50 (67324752)\n+0E760 Extract Zip Spec      14 (20) '2.0'\n+0E761 Extract OS            00 (0) 'MS-DOS'\n+0E762 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+0E764 Compression Method    0000 (0) 'Stored'\n+0E766 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0E76A CRC                   00000000 (0)\n+0E76E Compressed Size       00000000 (0)\n+0E772 Uncompressed Size     00000000 (0)\n+0E776 Filename Length       0033 (51)\n+0E778 Extra Length          0009 (9)\n+0E77A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xE77A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0E7AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0E7AF   Length              0005 (5)\n+0E7B1   Flags               01 (1) 'Modification'\n+0E7B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0E7B6 PAYLOAD\n+\n+10A1D DATA DESCRIPTOR       08074B50 (134695760)\n+10A21 CRC                   2DCB2766 (768288614)\n+10A25 Compressed Size       00002267 (8807)\n+10A29 Uncompressed Size     00002267 (8807)\n+\n+10A2D LOCAL HEADER #21      04034B50 (67324752)\n+10A31 Extract Zip Spec      14 (20) '2.0'\n+10A32 Extract OS            00 (0) 'MS-DOS'\n+10A33 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+10A35 Compression Method    0000 (0) 'Stored'\n+10A37 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+10A3B CRC                   00000000 (0)\n+10A3F Compressed Size       00000000 (0)\n+10A43 Uncompressed Size     00000000 (0)\n+10A47 Filename Length       0037 (55)\n+10A49 Extra Length          0009 (9)\n+10A4B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x10A4B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+10A82 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+10A84   Length              0005 (5)\n+10A86   Flags               01 (1) 'Modification'\n+10A87   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+10A8B PAYLOAD\n+\n+1102C DATA DESCRIPTOR       08074B50 (134695760)\n+11030 CRC                   C808975D (3356006237)\n+11034 Compressed Size       000005A1 (1441)\n+11038 Uncompressed Size     000005A1 (1441)\n+\n+1103C LOCAL HEADER #22      04034B50 (67324752)\n+11040 Extract Zip Spec      14 (20) '2.0'\n+11041 Extract OS            00 (0) 'MS-DOS'\n+11042 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+11044 Compression Method    0000 (0) 'Stored'\n+11046 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1104A CRC                   00000000 (0)\n+1104E Compressed Size       00000000 (0)\n+11052 Uncompressed Size     00000000 (0)\n+11056 Filename Length       0051 (81)\n+11058 Extra Length          0009 (9)\n+1105A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1105A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+110AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+110AD   Length              0005 (5)\n+110AF   Flags               01 (1) 'Modification'\n+110B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+110B4 PAYLOAD\n+\n+1200E DATA DESCRIPTOR       08074B50 (134695760)\n+12012 CRC                   DF426F8C (3745673100)\n+12016 Compressed Size       00000F5A (3930)\n+1201A Uncompressed Size     00000F5A (3930)\n+\n+1201E LOCAL HEADER #23      04034B50 (67324752)\n+12022 Extract Zip Spec      14 (20) '2.0'\n+12023 Extract OS            00 (0) 'MS-DOS'\n+12024 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+12026 Compression Method    0000 (0) 'Stored'\n+12028 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1202C CRC                   00000000 (0)\n+12030 Compressed Size       00000000 (0)\n+12034 Uncompressed Size     00000000 (0)\n+12038 Filename Length       0036 (54)\n+1203A Extra Length          0009 (9)\n+1203C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1203C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+12072 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+12074   Length              0005 (5)\n+12076   Flags               01 (1) 'Modification'\n+12077   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1207B PAYLOAD\n+\n+13C43 DATA DESCRIPTOR       08074B50 (134695760)\n+13C47 CRC                   7F142298 (2132026008)\n+13C4B Compressed Size       00001BC8 (7112)\n+13C4F Uncompressed Size     00001BC8 (7112)\n+\n+13C53 LOCAL HEADER #24      04034B50 (67324752)\n+13C57 Extract Zip Spec      14 (20) '2.0'\n+13C58 Extract OS            00 (0) 'MS-DOS'\n+13C59 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+13C5B Compression Method    0000 (0) 'Stored'\n+13C5D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13C61 CRC                   00000000 (0)\n+13C65 Compressed Size       00000000 (0)\n+13C69 Uncompressed Size     00000000 (0)\n+13C6D Filename Length       003A (58)\n+13C6F Extra Length          0009 (9)\n+13C71 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13C71: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13CAB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13CAD   Length              0005 (5)\n+13CAF   Flags               01 (1) 'Modification'\n+13CB0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13CB4 PAYLOAD\n+\n+1423F DATA DESCRIPTOR       08074B50 (134695760)\n+14243 CRC                   0CADD54F (212718927)\n+14247 Compressed Size       0000058B (1419)\n+1424B Uncompressed Size     0000058B (1419)\n+\n+1424F LOCAL HEADER #25      04034B50 (67324752)\n+14253 Extract Zip Spec      14 (20) '2.0'\n+14254 Extract OS            00 (0) 'MS-DOS'\n+14255 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+14257 Compression Method    0000 (0) 'Stored'\n+14259 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1425D CRC                   00000000 (0)\n+14261 Compressed Size       00000000 (0)\n+14265 Uncompressed Size     00000000 (0)\n+14269 Filename Length       0032 (50)\n+1426B Extra Length          0009 (9)\n+1426D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1426D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1429F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+142A1   Length              0005 (5)\n+142A3   Flags               01 (1) 'Modification'\n+142A4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+142A8 PAYLOAD\n+\n+148C9 DATA DESCRIPTOR       08074B50 (134695760)\n+148CD CRC                   82D3B65C (2194912860)\n+148D1 Compressed Size       00000621 (1569)\n+148D5 Uncompressed Size     00000621 (1569)\n+\n+148D9 LOCAL HEADER #26      04034B50 (67324752)\n+148DD Extract Zip Spec      14 (20) '2.0'\n+148DE Extract OS            00 (0) 'MS-DOS'\n+148DF General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+148E1 Compression Method    0000 (0) 'Stored'\n+148E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+148E7 CRC                   00000000 (0)\n+148EB Compressed Size       00000000 (0)\n+148EF Uncompressed Size     00000000 (0)\n+148F3 Filename Length       0055 (85)\n+148F5 Extra Length          0009 (9)\n+148F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x148F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1494C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1494E   Length              0005 (5)\n+14950   Flags               01 (1) 'Modification'\n+14951   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14955 PAYLOAD\n+\n+15688 DATA DESCRIPTOR       08074B50 (134695760)\n+1568C CRC                   83217F0A (2200010506)\n+15690 Compressed Size       00000D33 (3379)\n+15694 Uncompressed Size     00000D33 (3379)\n+\n+15698 LOCAL HEADER #27      04034B50 (67324752)\n+1569C Extract Zip Spec      14 (20) '2.0'\n+1569D Extract OS            00 (0) 'MS-DOS'\n+1569E General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+156A0 Compression Method    0000 (0) 'Stored'\n+156A2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+156A6 CRC                   00000000 (0)\n+156AA Compressed Size       00000000 (0)\n+156AE Uncompressed Size     00000000 (0)\n+156B2 Filename Length       0038 (56)\n+156B4 Extra Length          0009 (9)\n+156B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x156B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+156EE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+156F0   Length              0005 (5)\n+156F2   Flags               01 (1) 'Modification'\n+156F3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+156F7 PAYLOAD\n+\n+17603 DATA DESCRIPTOR       08074B50 (134695760)\n+17607 CRC                   A98DCBF0 (2844642288)\n+1760B Compressed Size       00001F0C (7948)\n+1760F Uncompressed Size     00001F0C (7948)\n+\n+17613 LOCAL HEADER #28      04034B50 (67324752)\n+17617 Extract Zip Spec      14 (20) '2.0'\n+17618 Extract OS            00 (0) 'MS-DOS'\n+17619 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1761B Compression Method    0000 (0) 'Stored'\n+1761D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+17621 CRC                   00000000 (0)\n+17625 Compressed Size       00000000 (0)\n+17629 Uncompressed Size     00000000 (0)\n+1762D Filename Length       003C (60)\n+1762F Extra Length          0009 (9)\n+17631 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x17631: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1766D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1766F   Length              0005 (5)\n+17671   Flags               01 (1) 'Modification'\n+17672   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+17676 PAYLOAD\n+\n+17C72 DATA DESCRIPTOR       08074B50 (134695760)\n+17C76 CRC                   D2D29897 (3537016983)\n+17C7A Compressed Size       000005FC (1532)\n+17C7E Uncompressed Size     000005FC (1532)\n+\n+17C82 LOCAL HEADER #29      04034B50 (67324752)\n+17C86 Extract Zip Spec      14 (20) '2.0'\n+17C87 Extract OS            00 (0) 'MS-DOS'\n+17C88 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+17C8A Compression Method    0000 (0) 'Stored'\n+17C8C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+17C90 CRC                   00000000 (0)\n+17C94 Compressed Size       00000000 (0)\n+17C98 Uncompressed Size     00000000 (0)\n+17C9C Filename Length       005B (91)\n+17C9E Extra Length          0009 (9)\n+17CA0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x17CA0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+17CFB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+17CFD   Length              0005 (5)\n+17CFF   Flags               01 (1) 'Modification'\n+17D00   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+17D04 PAYLOAD\n+\n+19479 DATA DESCRIPTOR       08074B50 (134695760)\n+1947D CRC                   9FE4AE16 (2682564118)\n+19481 Compressed Size       00001775 (6005)\n+19485 Uncompressed Size     00001775 (6005)\n+\n+19489 LOCAL HEADER #30      04034B50 (67324752)\n+1948D Extract Zip Spec      14 (20) '2.0'\n+1948E Extract OS            00 (0) 'MS-DOS'\n+1948F General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+19491 Compression Method    0000 (0) 'Stored'\n+19493 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+19497 CRC                   00000000 (0)\n+1949B Compressed Size       00000000 (0)\n+1949F Uncompressed Size     00000000 (0)\n+194A3 Filename Length       003B (59)\n+194A5 Extra Length          0009 (9)\n+194A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x194A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+194E2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+194E4   Length              0005 (5)\n+194E6   Flags               01 (1) 'Modification'\n+194E7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+194EB PAYLOAD\n+\n+1CB17 DATA DESCRIPTOR       08074B50 (134695760)\n+1CB1B CRC                   7E9E2F95 (2124296085)\n+1CB1F Compressed Size       0000362C (13868)\n+1CB23 Uncompressed Size     0000362C (13868)\n+\n+1CB27 LOCAL HEADER #31      04034B50 (67324752)\n+1CB2B Extract Zip Spec      14 (20) '2.0'\n+1CB2C Extract OS            00 (0) 'MS-DOS'\n+1CB2D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1CB2F Compression Method    0000 (0) 'Stored'\n+1CB31 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1CB35 CRC                   00000000 (0)\n+1CB39 Compressed Size       00000000 (0)\n+1CB3D Uncompressed Size     00000000 (0)\n+1CB41 Filename Length       0063 (99)\n+1CB43 Extra Length          0009 (9)\n+1CB45 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1CB45: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1CBA8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1CBAA   Length              0005 (5)\n+1CBAC   Flags               01 (1) 'Modification'\n+1CBAD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1CBB1 PAYLOAD\n+\n+1DACA DATA DESCRIPTOR       08074B50 (134695760)\n+1DACE CRC                   EE6B0A05 (3999992325)\n+1DAD2 Compressed Size       00000F19 (3865)\n+1DAD6 Uncompressed Size     00000F19 (3865)\n+\n+1DADA LOCAL HEADER #32      04034B50 (67324752)\n+1DADE Extract Zip Spec      14 (20) '2.0'\n+1DADF Extract OS            00 (0) 'MS-DOS'\n+1DAE0 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1DAE2 Compression Method    0000 (0) 'Stored'\n+1DAE4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1DAE8 CRC                   00000000 (0)\n+1DAEC Compressed Size       00000000 (0)\n+1DAF0 Uncompressed Size     00000000 (0)\n+1DAF4 Filename Length       003F (63)\n+1DAF6 Extra Length          0009 (9)\n+1DAF8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1DAF8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1DB37 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1DB39   Length              0005 (5)\n+1DB3B   Flags               01 (1) 'Modification'\n+1DB3C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1DB40 PAYLOAD\n+\n+1FE1F DATA DESCRIPTOR       08074B50 (134695760)\n+1FE23 CRC                   B28B70F3 (2995482867)\n+1FE27 Compressed Size       000022DF (8927)\n+1FE2B Uncompressed Size     000022DF (8927)\n+\n+1FE2F LOCAL HEADER #33      04034B50 (67324752)\n+1FE33 Extract Zip Spec      14 (20) '2.0'\n+1FE34 Extract OS            00 (0) 'MS-DOS'\n+1FE35 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1FE37 Compression Method    0000 (0) 'Stored'\n+1FE39 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1FE3D CRC                   00000000 (0)\n+1FE41 Compressed Size       00000000 (0)\n+1FE45 Uncompressed Size     00000000 (0)\n+1FE49 Filename Length       0043 (67)\n+1FE4B Extra Length          0009 (9)\n+1FE4D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1FE4D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1FE90 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1FE92   Length              0005 (5)\n+1FE94   Flags               01 (1) 'Modification'\n+1FE95   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1FE99 PAYLOAD\n+\n+1FFC1 DATA DESCRIPTOR       08074B50 (134695760)\n+1FFC5 CRC                   DEC741C8 (3737600456)\n+1FFC9 Compressed Size       00000128 (296)\n+1FFCD Uncompressed Size     00000128 (296)\n+\n+1FFD1 LOCAL HEADER #34      04034B50 (67324752)\n+1FFD5 Extract Zip Spec      14 (20) '2.0'\n+1FFD6 Extract OS            00 (0) 'MS-DOS'\n+1FFD7 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+1FFD9 Compression Method    0000 (0) 'Stored'\n+1FFDB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1FFDF CRC                   00000000 (0)\n+1FFE3 Compressed Size       00000000 (0)\n+1FFE7 Uncompressed Size     00000000 (0)\n+1FFEB Filename Length       005D (93)\n+1FFED Extra Length          0009 (9)\n+1FFEF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1FFEF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2004C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2004E   Length              0005 (5)\n+20050   Flags               01 (1) 'Modification'\n+20051   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+20055 PAYLOAD\n+\n+205C3 DATA DESCRIPTOR       08074B50 (134695760)\n+205C7 CRC                   93E7DA4A (2481445450)\n+205CB Compressed Size       0000056E (1390)\n+205CF Uncompressed Size     0000056E (1390)\n+\n+205D3 LOCAL HEADER #35      04034B50 (67324752)\n+205D7 Extract Zip Spec      14 (20) '2.0'\n+205D8 Extract OS            00 (0) 'MS-DOS'\n+205D9 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+205DB Compression Method    0000 (0) 'Stored'\n+205DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+205E1 CRC                   00000000 (0)\n+205E5 Compressed Size       00000000 (0)\n+205E9 Uncompressed Size     00000000 (0)\n+205ED Filename Length       0041 (65)\n+205EF Extra Length          0009 (9)\n+205F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x205F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+20632 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+20634   Length              0005 (5)\n+20636   Flags               01 (1) 'Modification'\n+20637   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2063B PAYLOAD\n+\n+22A15 DATA DESCRIPTOR       08074B50 (134695760)\n+22A19 CRC                   6DE170BF (1843491007)\n+22A1D Compressed Size       000023DA (9178)\n+22A21 Uncompressed Size     000023DA (9178)\n+\n+22A25 LOCAL HEADER #36      04034B50 (67324752)\n+22A29 Extract Zip Spec      14 (20) '2.0'\n+22A2A Extract OS            00 (0) 'MS-DOS'\n+22A2B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+22A2D Compression Method    0000 (0) 'Stored'\n+22A2F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+22A33 CRC                   00000000 (0)\n+22A37 Compressed Size       00000000 (0)\n+22A3B Uncompressed Size     00000000 (0)\n+22A3F Filename Length       0032 (50)\n+22A41 Extra Length          0009 (9)\n+22A43 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x22A43: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+22A75 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+22A77   Length              0005 (5)\n+22A79   Flags               01 (1) 'Modification'\n+22A7A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+22A7E PAYLOAD\n+\n+25A7B DATA DESCRIPTOR       08074B50 (134695760)\n+25A7F CRC                   637DAED3 (1669181139)\n+25A83 Compressed Size       00002FFD (12285)\n+25A87 Uncompressed Size     00002FFD (12285)\n+\n+25A8B LOCAL HEADER #37      04034B50 (67324752)\n+25A8F Extract Zip Spec      14 (20) '2.0'\n+25A90 Extract OS            00 (0) 'MS-DOS'\n+25A91 General Purpose Flag  0000 (0)\n+25A93 Compression Method    0000 (0) 'Stored'\n+25A95 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+25A99 CRC                   00000000 (0)\n+25A9D Compressed Size       00000000 (0)\n+25AA1 Uncompressed Size     00000000 (0)\n+25AA5 Filename Length       0021 (33)\n+25AA7 Extra Length          0009 (9)\n+25AA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x25AA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+25ACA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+25ACC   Length              0005 (5)\n+25ACE   Flags               01 (1) 'Modification'\n+25ACF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+25AD3 LOCAL HEADER #38      04034B50 (67324752)\n+25AD7 Extract Zip Spec      14 (20) '2.0'\n+25AD8 Extract OS            00 (0) 'MS-DOS'\n+25AD9 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+25ADB Compression Method    0000 (0) 'Stored'\n+25ADD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+25AE1 CRC                   00000000 (0)\n+25AE5 Compressed Size       00000000 (0)\n+25AE9 Uncompressed Size     00000000 (0)\n+25AED Filename Length       0044 (68)\n+25AEF Extra Length          0009 (9)\n+25AF1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x25AF1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+25B35 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+25B37   Length              0005 (5)\n+25B39   Flags               01 (1) 'Modification'\n+25B3A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+25B3E PAYLOAD\n+\n+25D4D DATA DESCRIPTOR       08074B50 (134695760)\n+25D51 CRC                   A160D4E4 (2707477732)\n+25D55 Compressed Size       0000020F (527)\n+25D59 Uncompressed Size     0000020F (527)\n+\n+25D5D LOCAL HEADER #39      04034B50 (67324752)\n+25D61 Extract Zip Spec      14 (20) '2.0'\n+25D62 Extract OS            00 (0) 'MS-DOS'\n+25D63 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+25D65 Compression Method    0000 (0) 'Stored'\n+25D67 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+25D6B CRC                   00000000 (0)\n+25D6F Compressed Size       00000000 (0)\n+25D73 Uncompressed Size     00000000 (0)\n+25D77 Filename Length       0049 (73)\n+25D79 Extra Length          0009 (9)\n+25D7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x25D7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+25DC4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+25DC6   Length              0005 (5)\n+25DC8   Flags               01 (1) 'Modification'\n+25DC9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+25DCD PAYLOAD\n+\n+26004 DATA DESCRIPTOR       08074B50 (134695760)\n+26008 CRC                   91076967 (2433182055)\n+2600C Compressed Size       00000237 (567)\n+26010 Uncompressed Size     00000237 (567)\n+\n+26014 LOCAL HEADER #40      04034B50 (67324752)\n+26018 Extract Zip Spec      14 (20) '2.0'\n+26019 Extract OS            00 (0) 'MS-DOS'\n+2601A General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2601C Compression Method    0000 (0) 'Stored'\n+2601E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+26022 CRC                   00000000 (0)\n+26026 Compressed Size       00000000 (0)\n+2602A Uncompressed Size     00000000 (0)\n+2602E Filename Length       0045 (69)\n+26030 Extra Length          0009 (9)\n+26032 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x26032: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+26077 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+26079   Length              0005 (5)\n+2607B   Flags               01 (1) 'Modification'\n+2607C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+26080 PAYLOAD\n+\n+26297 DATA DESCRIPTOR       08074B50 (134695760)\n+2629B CRC                   9FCDF535 (2681074997)\n+2629F Compressed Size       00000217 (535)\n+262A3 Uncompressed Size     00000217 (535)\n+\n+262A7 LOCAL HEADER #41      04034B50 (67324752)\n+262AB Extract Zip Spec      14 (20) '2.0'\n+262AC Extract OS            00 (0) 'MS-DOS'\n+262AD General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+262AF Compression Method    0000 (0) 'Stored'\n+262B1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+262B5 CRC                   00000000 (0)\n+262B9 Compressed Size       00000000 (0)\n+262BD Uncompressed Size     00000000 (0)\n+262C1 Filename Length       0048 (72)\n+262C3 Extra Length          0009 (9)\n+262C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x262C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2630D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2630F   Length              0005 (5)\n+26311   Flags               01 (1) 'Modification'\n+26312   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+26316 PAYLOAD\n+\n+26545 DATA DESCRIPTOR       08074B50 (134695760)\n+26549 CRC                   51CAEA39 (1372252729)\n+2654D Compressed Size       0000022F (559)\n+26551 Uncompressed Size     0000022F (559)\n+\n+26555 LOCAL HEADER #42      04034B50 (67324752)\n+26559 Extract Zip Spec      14 (20) '2.0'\n+2655A Extract OS            00 (0) 'MS-DOS'\n+2655B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2655D Compression Method    0000 (0) 'Stored'\n+2655F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+26563 CRC                   00000000 (0)\n+26567 Compressed Size       00000000 (0)\n+2656B Uncompressed Size     00000000 (0)\n+2656F Filename Length       004A (74)\n+26571 Extra Length          0009 (9)\n+26573 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x26573: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+265BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+265BF   Length              0005 (5)\n+265C1   Flags               01 (1) 'Modification'\n+265C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+265C6 PAYLOAD\n+\n+26805 DATA DESCRIPTOR       08074B50 (134695760)\n+26809 CRC                   BE7699EF (3195443695)\n+2680D Compressed Size       0000023F (575)\n+26811 Uncompressed Size     0000023F (575)\n+\n+26815 LOCAL HEADER #43      04034B50 (67324752)\n+26819 Extract Zip Spec      14 (20) '2.0'\n+2681A Extract OS            00 (0) 'MS-DOS'\n+2681B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2681D Compression Method    0000 (0) 'Stored'\n+2681F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+26823 CRC                   00000000 (0)\n+26827 Compressed Size       00000000 (0)\n+2682B Uncompressed Size     00000000 (0)\n+2682F Filename Length       004D (77)\n+26831 Extra Length          0009 (9)\n+26833 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x26833: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+26880 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+26882   Length              0005 (5)\n+26884   Flags               01 (1) 'Modification'\n+26885   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+26889 PAYLOAD\n+\n+26AE0 DATA DESCRIPTOR       08074B50 (134695760)\n+26AE4 CRC                   AEE0F48D (2933978253)\n+26AE8 Compressed Size       00000257 (599)\n+26AEC Uncompressed Size     00000257 (599)\n+\n+26AF0 LOCAL HEADER #44      04034B50 (67324752)\n+26AF4 Extract Zip Spec      14 (20) '2.0'\n+26AF5 Extract OS            00 (0) 'MS-DOS'\n+26AF6 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+26AF8 Compression Method    0000 (0) 'Stored'\n+26AFA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+26AFE CRC                   00000000 (0)\n+26B02 Compressed Size       00000000 (0)\n+26B06 Uncompressed Size     00000000 (0)\n+26B0A Filename Length       0051 (81)\n+26B0C Extra Length          0009 (9)\n+26B0E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x26B0E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+26B5F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+26B61   Length              0005 (5)\n+26B63   Flags               01 (1) 'Modification'\n+26B64   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+26B68 PAYLOAD\n+\n+26DDF DATA DESCRIPTOR       08074B50 (134695760)\n+26DE3 CRC                   B5B97BFA (3048831994)\n+26DE7 Compressed Size       00000277 (631)\n+26DEB Uncompressed Size     00000277 (631)\n+\n+26DEF CENTRAL HEADER #1     02014B50 (33639248)\n+26DF3 Created Zip Spec      14 (20) '2.0'\n+26DF4 Created OS            00 (0) 'MS-DOS'\n+26DF5 Extract Zip Spec      14 (20) '2.0'\n+26DF6 Extract OS            00 (0) 'MS-DOS'\n+26DF7 General Purpose Flag  0000 (0)\n+26DF9 Compression Method    0000 (0) 'Stored'\n+26DFB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+26DFF CRC                   00000000 (0)\n+26E03 Compressed Size       00000000 (0)\n+26E07 Uncompressed Size     00000000 (0)\n+26E0B Filename Length       0009 (9)\n+26E0D Extra Length          0009 (9)\n+26E0F Comment Length        0000 (0)\n+26E11 Disk Start            0000 (0)\n+26E13 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+26E15 Ext File Attributes   00000000 (0)\n+26E19 Local Header Offset   00000000 (0)\n+26E1D Filename              'XXXXXXXXX'\n+#\n+# WARNING: Offset 0x26E1D: Filename 'XXXXXXXXX'\n+#          Zero length filename\n+#\n+26E26 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+26E28   Length              0005 (5)\n+26E2A   Flags               01 (1) 'Modification'\n+26E2B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+26E2F CENTRAL HEADER #2     02014B50 (33639248)\n+26E33 Created Zip Spec      14 (20) '2.0'\n+26E34 Created OS            00 (0) 'MS-DOS'\n+26E35 Extract Zip Spec      14 (20) '2.0'\n+26E36 Extract OS            00 (0) 'MS-DOS'\n+26E37 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+26E39 Compression Method    0000 (0) 'Stored'\n+26E3B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+26E3F CRC                   EE027FB2 (3993141170)\n+26E43 Compressed Size       00000019 (25)\n+26E47 Uncompressed Size     00000019 (25)\n+26E4B Filename Length       0014 (20)\n+26E4D Extra Length          0009 (9)\n+26E4F Comment Length        0000 (0)\n+26E51 Disk Start            0000 (0)\n+26E53 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+26E55 Ext File Attributes   00000000 (0)\n+26E59 Local Header Offset   00000030 (48)\n+26E5D Filename              'XXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x26E5D: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+26E71 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+26E73   Length              0005 (5)\n+26E75   Flags               01 (1) 'Modification'\n+26E76   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+26E7A CENTRAL HEADER #3     02014B50 (33639248)\n+26E7E Created Zip Spec      14 (20) '2.0'\n+26E7F Created OS            00 (0) 'MS-DOS'\n+26E80 Extract Zip Spec      14 (20) '2.0'\n+26E81 Extract OS            00 (0) 'MS-DOS'\n+26E82 General Purpose Flag  0000 (0)\n+26E84 Compression Method    0000 (0) 'Stored'\n+26E86 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+26E8A CRC                   00000000 (0)\n+26E8E Compressed Size       00000000 (0)\n+26E92 Uncompressed Size     00000000 (0)\n+26E96 Filename Length       000F (15)\n+26E98 Extra Length          0009 (9)\n+26E9A Comment Length        0000 (0)\n+26E9C Disk Start            0000 (0)\n+26E9E Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+26EA0 Ext File Attributes   00000000 (0)\n+26EA4 Local Header Offset   00000094 (148)\n+26EA8 Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x26EA8: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+26EB7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+26EB9   Length              0005 (5)\n+26EBB   Flags               01 (1) 'Modification'\n+26EBC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+26EC0 CENTRAL HEADER #4     02014B50 (33639248)\n+26EC4 Created Zip Spec      14 (20) '2.0'\n+26EC5 Created OS            00 (0) 'MS-DOS'\n+26EC6 Extract Zip Spec      14 (20) '2.0'\n+26EC7 Extract OS            00 (0) 'MS-DOS'\n+26EC8 General Purpose Flag  0000 (0)\n+26ECA Compression Method    0000 (0) 'Stored'\n+26ECC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+26ED0 CRC                   00000000 (0)\n+26ED4 Compressed Size       00000000 (0)\n+26ED8 Uncompressed Size     00000000 (0)\n+26EDC Filename Length       001F (31)\n+26EDE Extra Length          0009 (9)\n+26EE0 Comment Length        0000 (0)\n+26EE2 Disk Start            0000 (0)\n+26EE4 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+26EE6 Ext File Attributes   00000000 (0)\n+26EEA Local Header Offset   000000CA (202)\n+26EEE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x26EEE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+26F0D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+26F0F   Length              0005 (5)\n+26F11   Flags               01 (1) 'Modification'\n+26F12   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+26F16 CENTRAL HEADER #5     02014B50 (33639248)\n+26F1A Created Zip Spec      14 (20) '2.0'\n+26F1B Created OS            00 (0) 'MS-DOS'\n+26F1C Extract Zip Spec      14 (20) '2.0'\n+26F1D Extract OS            00 (0) 'MS-DOS'\n+26F1E General Purpose Flag  0000 (0)\n+26F20 Compression Method    0000 (0) 'Stored'\n+26F22 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+26F26 CRC                   00000000 (0)\n+26F2A Compressed Size       00000000 (0)\n+26F2E Uncompressed Size     00000000 (0)\n+26F32 Filename Length       0033 (51)\n+26F34 Extra Length          0009 (9)\n+26F36 Comment Length        0000 (0)\n+26F38 Disk Start            0000 (0)\n+26F3A Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+26F3C Ext File Attributes   00000000 (0)\n+26F40 Local Header Offset   00000110 (272)\n+26F44 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x26F44: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+26F77 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+26F79   Length              0005 (5)\n+26F7B   Flags               01 (1) 'Modification'\n+26F7C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+26F80 CENTRAL HEADER #6     02014B50 (33639248)\n+26F84 Created Zip Spec      14 (20) '2.0'\n+26F85 Created OS            00 (0) 'MS-DOS'\n+26F86 Extract Zip Spec      14 (20) '2.0'\n+26F87 Extract OS            00 (0) 'MS-DOS'\n+26F88 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+26F8A Compression Method    0000 (0) 'Stored'\n+26F8C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+26F90 CRC                   00000000 (0)\n+26F94 Compressed Size       00000000 (0)\n+26F98 Uncompressed Size     00000000 (0)\n+26F9C Filename Length       0041 (65)\n+26F9E Extra Length          0009 (9)\n+26FA0 Comment Length        0000 (0)\n+26FA2 Disk Start            0000 (0)\n+26FA4 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+26FA6 Ext File Attributes   00000000 (0)\n+26FAA Local Header Offset   0000016A (362)\n+26FAE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x26FAE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+26FEF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+26FF1   Length              0005 (5)\n+26FF3   Flags               01 (1) 'Modification'\n+26FF4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+26FF8 CENTRAL HEADER #7     02014B50 (33639248)\n+26FFC Created Zip Spec      14 (20) '2.0'\n+26FFD Created OS            00 (0) 'MS-DOS'\n+26FFE Extract Zip Spec      14 (20) '2.0'\n+26FFF Extract OS            00 (0) 'MS-DOS'\n+27000 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27002 Compression Method    0000 (0) 'Stored'\n+27004 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27008 CRC                   51873E5B (1367817819)\n+2700C Compressed Size       00000A93 (2707)\n+27010 Uncompressed Size     00000A93 (2707)\n+27014 Filename Length       003A (58)\n+27016 Extra Length          0009 (9)\n+27018 Comment Length        0000 (0)\n+2701A Disk Start            0000 (0)\n+2701C Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2701E Ext File Attributes   00000000 (0)\n+27022 Local Header Offset   000001E2 (482)\n+27026 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27026: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27060 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27062   Length              0005 (5)\n+27064   Flags               01 (1) 'Modification'\n+27065   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27069 CENTRAL HEADER #8     02014B50 (33639248)\n+2706D Created Zip Spec      14 (20) '2.0'\n+2706E Created OS            00 (0) 'MS-DOS'\n+2706F Extract Zip Spec      14 (20) '2.0'\n+27070 Extract OS            00 (0) 'MS-DOS'\n+27071 General Purpose Flag  0000 (0)\n+27073 Compression Method    0000 (0) 'Stored'\n+27075 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27079 CRC                   00000000 (0)\n+2707D Compressed Size       00000000 (0)\n+27081 Uncompressed Size     00000000 (0)\n+27085 Filename Length       0004 (4)\n+27087 Extra Length          0009 (9)\n+27089 Comment Length        0000 (0)\n+2708B Disk Start            0000 (0)\n+2708D Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2708F Ext File Attributes   00000000 (0)\n+27093 Local Header Offset   00000CE6 (3302)\n+27097 Filename              'XXXX'\n+#\n+# WARNING: Offset 0x27097: Filename 'XXXX'\n+#          Zero length filename\n+#\n+2709B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2709D   Length              0005 (5)\n+2709F   Flags               01 (1) 'Modification'\n+270A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+270A4 CENTRAL HEADER #9     02014B50 (33639248)\n+270A8 Created Zip Spec      14 (20) '2.0'\n+270A9 Created OS            00 (0) 'MS-DOS'\n+270AA Extract Zip Spec      14 (20) '2.0'\n+270AB Extract OS            00 (0) 'MS-DOS'\n+270AC General Purpose Flag  0000 (0)\n+270AE Compression Method    0000 (0) 'Stored'\n+270B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+270B4 CRC                   00000000 (0)\n+270B8 Compressed Size       00000000 (0)\n+270BC Uncompressed Size     00000000 (0)\n+270C0 Filename Length       0010 (16)\n+270C2 Extra Length          0009 (9)\n+270C4 Comment Length        0000 (0)\n+270C6 Disk Start            0000 (0)\n+270C8 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+270CA Ext File Attributes   00000000 (0)\n+270CE Local Header Offset   00000D11 (3345)\n+270D2 Filename              'XXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x270D2: Filename 'XXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+270E2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+270E4   Length              0005 (5)\n+270E6   Flags               01 (1) 'Modification'\n+270E7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+270EB CENTRAL HEADER #10    02014B50 (33639248)\n+270EF Created Zip Spec      14 (20) '2.0'\n+270F0 Created OS            00 (0) 'MS-DOS'\n+270F1 Extract Zip Spec      14 (20) '2.0'\n+270F2 Extract OS            00 (0) 'MS-DOS'\n+270F3 General Purpose Flag  0000 (0)\n+270F5 Compression Method    0000 (0) 'Stored'\n+270F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+270FB CRC                   00000000 (0)\n+270FF Compressed Size       00000000 (0)\n+27103 Uncompressed Size     00000000 (0)\n+27107 Filename Length       0016 (22)\n+27109 Extra Length          0009 (9)\n+2710B Comment Length        0000 (0)\n+2710D Disk Start            0000 (0)\n+2710F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27111 Ext File Attributes   00000000 (0)\n+27115 Local Header Offset   00000D48 (3400)\n+27119 Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27119: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2712F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27131   Length              0005 (5)\n+27133   Flags               01 (1) 'Modification'\n+27134   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27138 CENTRAL HEADER #11    02014B50 (33639248)\n+2713C Created Zip Spec      14 (20) '2.0'\n+2713D Created OS            00 (0) 'MS-DOS'\n+2713E Extract Zip Spec      14 (20) '2.0'\n+2713F Extract OS            00 (0) 'MS-DOS'\n+27140 General Purpose Flag  0000 (0)\n+27142 Compression Method    0000 (0) 'Stored'\n+27144 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27148 CRC                   00000000 (0)\n+2714C Compressed Size       00000000 (0)\n+27150 Uncompressed Size     00000000 (0)\n+27154 Filename Length       001D (29)\n+27156 Extra Length          0009 (9)\n+27158 Comment Length        0000 (0)\n+2715A Disk Start            0000 (0)\n+2715C Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2715E Ext File Attributes   00000000 (0)\n+27162 Local Header Offset   00000D85 (3461)\n+27166 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27166: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27183 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27185   Length              0005 (5)\n+27187   Flags               01 (1) 'Modification'\n+27188   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2718C CENTRAL HEADER #12    02014B50 (33639248)\n+27190 Created Zip Spec      14 (20) '2.0'\n+27191 Created OS            00 (0) 'MS-DOS'\n+27192 Extract Zip Spec      14 (20) '2.0'\n+27193 Extract OS            00 (0) 'MS-DOS'\n+27194 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27196 Compression Method    0000 (0) 'Stored'\n+27198 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2719C CRC                   D8BCCFF0 (3636252656)\n+271A0 Compressed Size       00003D41 (15681)\n+271A4 Uncompressed Size     00003D41 (15681)\n+271A8 Filename Length       0037 (55)\n+271AA Extra Length          0009 (9)\n+271AC Comment Length        0000 (0)\n+271AE Disk Start            0000 (0)\n+271B0 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+271B2 Ext File Attributes   00000000 (0)\n+271B6 Local Header Offset   00000DC9 (3529)\n+271BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x271BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+271F1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+271F3   Length              0005 (5)\n+271F5   Flags               01 (1) 'Modification'\n+271F6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+271FA CENTRAL HEADER #13    02014B50 (33639248)\n+271FE Created Zip Spec      14 (20) '2.0'\n+271FF Created OS            00 (0) 'MS-DOS'\n+27200 Extract Zip Spec      14 (20) '2.0'\n+27201 Extract OS            00 (0) 'MS-DOS'\n+27202 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27204 Compression Method    0000 (0) 'Stored'\n+27206 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2720A CRC                   20116D16 (538012950)\n+2720E Compressed Size       000016E1 (5857)\n+27212 Uncompressed Size     000016E1 (5857)\n+27216 Filename Length       0049 (73)\n+27218 Extra Length          0009 (9)\n+2721A Comment Length        0000 (0)\n+2721C Disk Start            0000 (0)\n+2721E Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27220 Ext File Attributes   00000000 (0)\n+27224 Local Header Offset   00004B78 (19320)\n+27228 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27228: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27271 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27273   Length              0005 (5)\n+27275   Flags               01 (1) 'Modification'\n+27276   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2727A CENTRAL HEADER #14    02014B50 (33639248)\n+2727E Created Zip Spec      14 (20) '2.0'\n+2727F Created OS            00 (0) 'MS-DOS'\n+27280 Extract Zip Spec      14 (20) '2.0'\n+27281 Extract OS            00 (0) 'MS-DOS'\n+27282 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27284 Compression Method    0000 (0) 'Stored'\n+27286 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2728A CRC                   FA425B0B (4198652683)\n+2728E Compressed Size       00002C10 (11280)\n+27292 Uncompressed Size     00002C10 (11280)\n+27296 Filename Length       0032 (50)\n+27298 Extra Length          0009 (9)\n+2729A Comment Length        0000 (0)\n+2729C Disk Start            0000 (0)\n+2729E Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+272A0 Ext File Attributes   00000000 (0)\n+272A4 Local Header Offset   000062D9 (25305)\n+272A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x272A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+272DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+272DC   Length              0005 (5)\n+272DE   Flags               01 (1) 'Modification'\n+272DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+272E3 CENTRAL HEADER #15    02014B50 (33639248)\n+272E7 Created Zip Spec      14 (20) '2.0'\n+272E8 Created OS            00 (0) 'MS-DOS'\n+272E9 Extract Zip Spec      14 (20) '2.0'\n+272EA Extract OS            00 (0) 'MS-DOS'\n+272EB General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+272ED Compression Method    0000 (0) 'Stored'\n+272EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+272F3 CRC                   F137D171 (4046967153)\n+272F7 Compressed Size       00000A77 (2679)\n+272FB Uncompressed Size     00000A77 (2679)\n+272FF Filename Length       0036 (54)\n+27301 Extra Length          0009 (9)\n+27303 Comment Length        0000 (0)\n+27305 Disk Start            0000 (0)\n+27307 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27309 Ext File Attributes   00000000 (0)\n+2730D Local Header Offset   00008F52 (36690)\n+27311 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27311: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27347 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27349   Length              0005 (5)\n+2734B   Flags               01 (1) 'Modification'\n+2734C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27350 CENTRAL HEADER #16    02014B50 (33639248)\n+27354 Created Zip Spec      14 (20) '2.0'\n+27355 Created OS            00 (0) 'MS-DOS'\n+27356 Extract Zip Spec      14 (20) '2.0'\n+27357 Extract OS            00 (0) 'MS-DOS'\n+27358 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2735A Compression Method    0000 (0) 'Stored'\n+2735C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27360 CRC                   5EC9A7BB (1590273979)\n+27364 Compressed Size       00000F8C (3980)\n+27368 Uncompressed Size     00000F8C (3980)\n+2736C Filename Length       0053 (83)\n+2736E Extra Length          0009 (9)\n+27370 Comment Length        0000 (0)\n+27372 Disk Start            0000 (0)\n+27374 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27376 Ext File Attributes   00000000 (0)\n+2737A Local Header Offset   00009A36 (39478)\n+2737E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2737E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+273D1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+273D3   Length              0005 (5)\n+273D5   Flags               01 (1) 'Modification'\n+273D6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+273DA CENTRAL HEADER #17    02014B50 (33639248)\n+273DE Created Zip Spec      14 (20) '2.0'\n+273DF Created OS            00 (0) 'MS-DOS'\n+273E0 Extract Zip Spec      14 (20) '2.0'\n+273E1 Extract OS            00 (0) 'MS-DOS'\n+273E2 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+273E4 Compression Method    0000 (0) 'Stored'\n+273E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+273EA CRC                   429A10E7 (1117393127)\n+273EE Compressed Size       00002206 (8710)\n+273F2 Uncompressed Size     00002206 (8710)\n+273F6 Filename Length       0037 (55)\n+273F8 Extra Length          0009 (9)\n+273FA Comment Length        0000 (0)\n+273FC Disk Start            0000 (0)\n+273FE Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27400 Ext File Attributes   00000000 (0)\n+27404 Local Header Offset   0000AA4C (43596)\n+27408 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27408: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2743F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27441   Length              0005 (5)\n+27443   Flags               01 (1) 'Modification'\n+27444   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27448 CENTRAL HEADER #18    02014B50 (33639248)\n+2744C Created Zip Spec      14 (20) '2.0'\n+2744D Created OS            00 (0) 'MS-DOS'\n+2744E Extract Zip Spec      14 (20) '2.0'\n+2744F Extract OS            00 (0) 'MS-DOS'\n+27450 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27452 Compression Method    0000 (0) 'Stored'\n+27454 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27458 CRC                   2FE04107 (803225863)\n+2745C Compressed Size       00000658 (1624)\n+27460 Uncompressed Size     00000658 (1624)\n+27464 Filename Length       003B (59)\n+27466 Extra Length          0009 (9)\n+27468 Comment Length        0000 (0)\n+2746A Disk Start            0000 (0)\n+2746C Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2746E Ext File Attributes   00000000 (0)\n+27472 Local Header Offset   0000CCC0 (52416)\n+27476 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27476: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+274B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+274B3   Length              0005 (5)\n+274B5   Flags               01 (1) 'Modification'\n+274B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+274BA CENTRAL HEADER #19    02014B50 (33639248)\n+274BE Created Zip Spec      14 (20) '2.0'\n+274BF Created OS            00 (0) 'MS-DOS'\n+274C0 Extract Zip Spec      14 (20) '2.0'\n+274C1 Extract OS            00 (0) 'MS-DOS'\n+274C2 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+274C4 Compression Method    0000 (0) 'Stored'\n+274C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+274CA CRC                   D4D4C2C0 (3570713280)\n+274CE Compressed Size       00001350 (4944)\n+274D2 Uncompressed Size     00001350 (4944)\n+274D6 Filename Length       004B (75)\n+274D8 Extra Length          0009 (9)\n+274DA Comment Length        0000 (0)\n+274DC Disk Start            0000 (0)\n+274DE Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+274E0 Ext File Attributes   00000000 (0)\n+274E4 Local Header Offset   0000D38A (54154)\n+274E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x274E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27533 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27535   Length              0005 (5)\n+27537   Flags               01 (1) 'Modification'\n+27538   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2753C CENTRAL HEADER #20    02014B50 (33639248)\n+27540 Created Zip Spec      14 (20) '2.0'\n+27541 Created OS            00 (0) 'MS-DOS'\n+27542 Extract Zip Spec      14 (20) '2.0'\n+27543 Extract OS            00 (0) 'MS-DOS'\n+27544 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27546 Compression Method    0000 (0) 'Stored'\n+27548 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2754C CRC                   2DCB2766 (768288614)\n+27550 Compressed Size       00002267 (8807)\n+27554 Uncompressed Size     00002267 (8807)\n+27558 Filename Length       0033 (51)\n+2755A Extra Length          0009 (9)\n+2755C Comment Length        0000 (0)\n+2755E Disk Start            0000 (0)\n+27560 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27562 Ext File Attributes   00000000 (0)\n+27566 Local Header Offset   0000E75C (59228)\n+2756A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2756A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2759D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2759F   Length              0005 (5)\n+275A1   Flags               01 (1) 'Modification'\n+275A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+275A6 CENTRAL HEADER #21    02014B50 (33639248)\n+275AA Created Zip Spec      14 (20) '2.0'\n+275AB Created OS            00 (0) 'MS-DOS'\n+275AC Extract Zip Spec      14 (20) '2.0'\n+275AD Extract OS            00 (0) 'MS-DOS'\n+275AE General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+275B0 Compression Method    0000 (0) 'Stored'\n+275B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+275B6 CRC                   C808975D (3356006237)\n+275BA Compressed Size       000005A1 (1441)\n+275BE Uncompressed Size     000005A1 (1441)\n+275C2 Filename Length       0037 (55)\n+275C4 Extra Length          0009 (9)\n+275C6 Comment Length        0000 (0)\n+275C8 Disk Start            0000 (0)\n+275CA Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+275CC Ext File Attributes   00000000 (0)\n+275D0 Local Header Offset   00010A2D (68141)\n+275D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x275D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2760B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2760D   Length              0005 (5)\n+2760F   Flags               01 (1) 'Modification'\n+27610   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27614 CENTRAL HEADER #22    02014B50 (33639248)\n+27618 Created Zip Spec      14 (20) '2.0'\n+27619 Created OS            00 (0) 'MS-DOS'\n+2761A Extract Zip Spec      14 (20) '2.0'\n+2761B Extract OS            00 (0) 'MS-DOS'\n+2761C General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2761E Compression Method    0000 (0) 'Stored'\n+27620 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27624 CRC                   DF426F8C (3745673100)\n+27628 Compressed Size       00000F5A (3930)\n+2762C Uncompressed Size     00000F5A (3930)\n+27630 Filename Length       0051 (81)\n+27632 Extra Length          0009 (9)\n+27634 Comment Length        0000 (0)\n+27636 Disk Start            0000 (0)\n+27638 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2763A Ext File Attributes   00000000 (0)\n+2763E Local Header Offset   0001103C (69692)\n+27642 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27642: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27693 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27695   Length              0005 (5)\n+27697   Flags               01 (1) 'Modification'\n+27698   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2769C CENTRAL HEADER #23    02014B50 (33639248)\n+276A0 Created Zip Spec      14 (20) '2.0'\n+276A1 Created OS            00 (0) 'MS-DOS'\n+276A2 Extract Zip Spec      14 (20) '2.0'\n+276A3 Extract OS            00 (0) 'MS-DOS'\n+276A4 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+276A6 Compression Method    0000 (0) 'Stored'\n+276A8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+276AC CRC                   7F142298 (2132026008)\n+276B0 Compressed Size       00001BC8 (7112)\n+276B4 Uncompressed Size     00001BC8 (7112)\n+276B8 Filename Length       0036 (54)\n+276BA Extra Length          0009 (9)\n+276BC Comment Length        0000 (0)\n+276BE Disk Start            0000 (0)\n+276C0 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+276C2 Ext File Attributes   00000000 (0)\n+276C6 Local Header Offset   0001201E (73758)\n+276CA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x276CA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27700 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27702   Length              0005 (5)\n+27704   Flags               01 (1) 'Modification'\n+27705   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27709 CENTRAL HEADER #24    02014B50 (33639248)\n+2770D Created Zip Spec      14 (20) '2.0'\n+2770E Created OS            00 (0) 'MS-DOS'\n+2770F Extract Zip Spec      14 (20) '2.0'\n+27710 Extract OS            00 (0) 'MS-DOS'\n+27711 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27713 Compression Method    0000 (0) 'Stored'\n+27715 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27719 CRC                   0CADD54F (212718927)\n+2771D Compressed Size       0000058B (1419)\n+27721 Uncompressed Size     0000058B (1419)\n+27725 Filename Length       003A (58)\n+27727 Extra Length          0009 (9)\n+27729 Comment Length        0000 (0)\n+2772B Disk Start            0000 (0)\n+2772D Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+2772F Ext File Attributes   00000000 (0)\n+27733 Local Header Offset   00013C53 (80979)\n+27737 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27737: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27771 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27773   Length              0005 (5)\n+27775   Flags               01 (1) 'Modification'\n+27776   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2777A CENTRAL HEADER #25    02014B50 (33639248)\n+2777E Created Zip Spec      14 (20) '2.0'\n+2777F Created OS            00 (0) 'MS-DOS'\n+27780 Extract Zip Spec      14 (20) '2.0'\n+27781 Extract OS            00 (0) 'MS-DOS'\n+27782 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27784 Compression Method    0000 (0) 'Stored'\n+27786 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2778A CRC                   82D3B65C (2194912860)\n+2778E Compressed Size       00000621 (1569)\n+27792 Uncompressed Size     00000621 (1569)\n+27796 Filename Length       0032 (50)\n+27798 Extra Length          0009 (9)\n+2779A Comment Length        0000 (0)\n+2779C Disk Start            0000 (0)\n+2779E Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+277A0 Ext File Attributes   00000000 (0)\n+277A4 Local Header Offset   0001424F (82511)\n+277A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x277A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+277DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+277DC   Length              0005 (5)\n+277DE   Flags               01 (1) 'Modification'\n+277DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+277E3 CENTRAL HEADER #26    02014B50 (33639248)\n+277E7 Created Zip Spec      14 (20) '2.0'\n+277E8 Created OS            00 (0) 'MS-DOS'\n+277E9 Extract Zip Spec      14 (20) '2.0'\n+277EA Extract OS            00 (0) 'MS-DOS'\n+277EB General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+277ED Compression Method    0000 (0) 'Stored'\n+277EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+277F3 CRC                   83217F0A (2200010506)\n+277F7 Compressed Size       00000D33 (3379)\n+277FB Uncompressed Size     00000D33 (3379)\n+277FF Filename Length       0055 (85)\n+27801 Extra Length          0009 (9)\n+27803 Comment Length        0000 (0)\n+27805 Disk Start            0000 (0)\n+27807 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27809 Ext File Attributes   00000000 (0)\n+2780D Local Header Offset   000148D9 (84185)\n+27811 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27811: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27866 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27868   Length              0005 (5)\n+2786A   Flags               01 (1) 'Modification'\n+2786B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2786F CENTRAL HEADER #27    02014B50 (33639248)\n+27873 Created Zip Spec      14 (20) '2.0'\n+27874 Created OS            00 (0) 'MS-DOS'\n+27875 Extract Zip Spec      14 (20) '2.0'\n+27876 Extract OS            00 (0) 'MS-DOS'\n+27877 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27879 Compression Method    0000 (0) 'Stored'\n+2787B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2787F CRC                   A98DCBF0 (2844642288)\n+27883 Compressed Size       00001F0C (7948)\n+27887 Uncompressed Size     00001F0C (7948)\n+2788B Filename Length       0038 (56)\n+2788D Extra Length          0009 (9)\n+2788F Comment Length        0000 (0)\n+27891 Disk Start            0000 (0)\n+27893 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27895 Ext File Attributes   00000000 (0)\n+27899 Local Header Offset   00015698 (87704)\n+2789D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2789D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+278D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+278D7   Length              0005 (5)\n+278D9   Flags               01 (1) 'Modification'\n+278DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+278DE CENTRAL HEADER #28    02014B50 (33639248)\n+278E2 Created Zip Spec      14 (20) '2.0'\n+278E3 Created OS            00 (0) 'MS-DOS'\n+278E4 Extract Zip Spec      14 (20) '2.0'\n+278E5 Extract OS            00 (0) 'MS-DOS'\n+278E6 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+278E8 Compression Method    0000 (0) 'Stored'\n+278EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+278EE CRC                   D2D29897 (3537016983)\n+278F2 Compressed Size       000005FC (1532)\n+278F6 Uncompressed Size     000005FC (1532)\n+278FA Filename Length       003C (60)\n+278FC Extra Length          0009 (9)\n+278FE Comment Length        0000 (0)\n+27900 Disk Start            0000 (0)\n+27902 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27904 Ext File Attributes   00000000 (0)\n+27908 Local Header Offset   00017613 (95763)\n+2790C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2790C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27948 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2794A   Length              0005 (5)\n+2794C   Flags               01 (1) 'Modification'\n+2794D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27951 CENTRAL HEADER #29    02014B50 (33639248)\n+27955 Created Zip Spec      14 (20) '2.0'\n+27956 Created OS            00 (0) 'MS-DOS'\n+27957 Extract Zip Spec      14 (20) '2.0'\n+27958 Extract OS            00 (0) 'MS-DOS'\n+27959 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2795B Compression Method    0000 (0) 'Stored'\n+2795D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27961 CRC                   9FE4AE16 (2682564118)\n+27965 Compressed Size       00001775 (6005)\n+27969 Uncompressed Size     00001775 (6005)\n+2796D Filename Length       005B (91)\n+2796F Extra Length          0009 (9)\n+27971 Comment Length        0000 (0)\n+27973 Disk Start            0000 (0)\n+27975 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27977 Ext File Attributes   00000000 (0)\n+2797B Local Header Offset   00017C82 (97410)\n+2797F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2797F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+279DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+279DC   Length              0005 (5)\n+279DE   Flags               01 (1) 'Modification'\n+279DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+279E3 CENTRAL HEADER #30    02014B50 (33639248)\n+279E7 Created Zip Spec      14 (20) '2.0'\n+279E8 Created OS            00 (0) 'MS-DOS'\n+279E9 Extract Zip Spec      14 (20) '2.0'\n+279EA Extract OS            00 (0) 'MS-DOS'\n+279EB General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+279ED Compression Method    0000 (0) 'Stored'\n+279EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+279F3 CRC                   7E9E2F95 (2124296085)\n+279F7 Compressed Size       0000362C (13868)\n+279FB Uncompressed Size     0000362C (13868)\n+279FF Filename Length       003B (59)\n+27A01 Extra Length          0009 (9)\n+27A03 Comment Length        0000 (0)\n+27A05 Disk Start            0000 (0)\n+27A07 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27A09 Ext File Attributes   00000000 (0)\n+27A0D Local Header Offset   00019489 (103561)\n+27A11 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27A11: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27A4C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27A4E   Length              0005 (5)\n+27A50   Flags               01 (1) 'Modification'\n+27A51   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27A55 CENTRAL HEADER #31    02014B50 (33639248)\n+27A59 Created Zip Spec      14 (20) '2.0'\n+27A5A Created OS            00 (0) 'MS-DOS'\n+27A5B Extract Zip Spec      14 (20) '2.0'\n+27A5C Extract OS            00 (0) 'MS-DOS'\n+27A5D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27A5F Compression Method    0000 (0) 'Stored'\n+27A61 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27A65 CRC                   EE6B0A05 (3999992325)\n+27A69 Compressed Size       00000F19 (3865)\n+27A6D Uncompressed Size     00000F19 (3865)\n+27A71 Filename Length       0063 (99)\n+27A73 Extra Length          0009 (9)\n+27A75 Comment Length        0000 (0)\n+27A77 Disk Start            0000 (0)\n+27A79 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27A7B Ext File Attributes   00000000 (0)\n+27A7F Local Header Offset   0001CB27 (117543)\n+27A83 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27A83: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27AE6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27AE8   Length              0005 (5)\n+27AEA   Flags               01 (1) 'Modification'\n+27AEB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27AEF CENTRAL HEADER #32    02014B50 (33639248)\n+27AF3 Created Zip Spec      14 (20) '2.0'\n+27AF4 Created OS            00 (0) 'MS-DOS'\n+27AF5 Extract Zip Spec      14 (20) '2.0'\n+27AF6 Extract OS            00 (0) 'MS-DOS'\n+27AF7 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27AF9 Compression Method    0000 (0) 'Stored'\n+27AFB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27AFF CRC                   B28B70F3 (2995482867)\n+27B03 Compressed Size       000022DF (8927)\n+27B07 Uncompressed Size     000022DF (8927)\n+27B0B Filename Length       003F (63)\n+27B0D Extra Length          0009 (9)\n+27B0F Comment Length        0000 (0)\n+27B11 Disk Start            0000 (0)\n+27B13 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27B15 Ext File Attributes   00000000 (0)\n+27B19 Local Header Offset   0001DADA (121562)\n+27B1D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27B1D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27B5C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27B5E   Length              0005 (5)\n+27B60   Flags               01 (1) 'Modification'\n+27B61   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27B65 CENTRAL HEADER #33    02014B50 (33639248)\n+27B69 Created Zip Spec      14 (20) '2.0'\n+27B6A Created OS            00 (0) 'MS-DOS'\n+27B6B Extract Zip Spec      14 (20) '2.0'\n+27B6C Extract OS            00 (0) 'MS-DOS'\n+27B6D General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27B6F Compression Method    0000 (0) 'Stored'\n+27B71 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27B75 CRC                   DEC741C8 (3737600456)\n+27B79 Compressed Size       00000128 (296)\n+27B7D Uncompressed Size     00000128 (296)\n+27B81 Filename Length       0043 (67)\n+27B83 Extra Length          0009 (9)\n+27B85 Comment Length        0000 (0)\n+27B87 Disk Start            0000 (0)\n+27B89 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27B8B Ext File Attributes   00000000 (0)\n+27B8F Local Header Offset   0001FE2F (130607)\n+27B93 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27B93: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27BD6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27BD8   Length              0005 (5)\n+27BDA   Flags               01 (1) 'Modification'\n+27BDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27BDF CENTRAL HEADER #34    02014B50 (33639248)\n+27BE3 Created Zip Spec      14 (20) '2.0'\n+27BE4 Created OS            00 (0) 'MS-DOS'\n+27BE5 Extract Zip Spec      14 (20) '2.0'\n+27BE6 Extract OS            00 (0) 'MS-DOS'\n+27BE7 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27BE9 Compression Method    0000 (0) 'Stored'\n+27BEB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27BEF CRC                   93E7DA4A (2481445450)\n+27BF3 Compressed Size       0000056E (1390)\n+27BF7 Uncompressed Size     0000056E (1390)\n+27BFB Filename Length       005D (93)\n+27BFD Extra Length          0009 (9)\n+27BFF Comment Length        0000 (0)\n+27C01 Disk Start            0000 (0)\n+27C03 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27C05 Ext File Attributes   00000000 (0)\n+27C09 Local Header Offset   0001FFD1 (131025)\n+27C0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27C0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27C6A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27C6C   Length              0005 (5)\n+27C6E   Flags               01 (1) 'Modification'\n+27C6F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27C73 CENTRAL HEADER #35    02014B50 (33639248)\n+27C77 Created Zip Spec      14 (20) '2.0'\n+27C78 Created OS            00 (0) 'MS-DOS'\n+27C79 Extract Zip Spec      14 (20) '2.0'\n+27C7A Extract OS            00 (0) 'MS-DOS'\n+27C7B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27C7D Compression Method    0000 (0) 'Stored'\n+27C7F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27C83 CRC                   6DE170BF (1843491007)\n+27C87 Compressed Size       000023DA (9178)\n+27C8B Uncompressed Size     000023DA (9178)\n+27C8F Filename Length       0041 (65)\n+27C91 Extra Length          0009 (9)\n+27C93 Comment Length        0000 (0)\n+27C95 Disk Start            0000 (0)\n+27C97 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27C99 Ext File Attributes   00000000 (0)\n+27C9D Local Header Offset   000205D3 (132563)\n+27CA1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27CA1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27CE2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27CE4   Length              0005 (5)\n+27CE6   Flags               01 (1) 'Modification'\n+27CE7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27CEB CENTRAL HEADER #36    02014B50 (33639248)\n+27CEF Created Zip Spec      14 (20) '2.0'\n+27CF0 Created OS            00 (0) 'MS-DOS'\n+27CF1 Extract Zip Spec      14 (20) '2.0'\n+27CF2 Extract OS            00 (0) 'MS-DOS'\n+27CF3 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27CF5 Compression Method    0000 (0) 'Stored'\n+27CF7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27CFB CRC                   637DAED3 (1669181139)\n+27CFF Compressed Size       00002FFD (12285)\n+27D03 Uncompressed Size     00002FFD (12285)\n+27D07 Filename Length       0032 (50)\n+27D09 Extra Length          0009 (9)\n+27D0B Comment Length        0000 (0)\n+27D0D Disk Start            0000 (0)\n+27D0F Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27D11 Ext File Attributes   00000000 (0)\n+27D15 Local Header Offset   00022A25 (141861)\n+27D19 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27D19: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27D4B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27D4D   Length              0005 (5)\n+27D4F   Flags               01 (1) 'Modification'\n+27D50   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27D54 CENTRAL HEADER #37    02014B50 (33639248)\n+27D58 Created Zip Spec      14 (20) '2.0'\n+27D59 Created OS            00 (0) 'MS-DOS'\n+27D5A Extract Zip Spec      14 (20) '2.0'\n+27D5B Extract OS            00 (0) 'MS-DOS'\n+27D5C General Purpose Flag  0000 (0)\n+27D5E Compression Method    0000 (0) 'Stored'\n+27D60 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27D64 CRC                   00000000 (0)\n+27D68 Compressed Size       00000000 (0)\n+27D6C Uncompressed Size     00000000 (0)\n+27D70 Filename Length       0021 (33)\n+27D72 Extra Length          0009 (9)\n+27D74 Comment Length        0000 (0)\n+27D76 Disk Start            0000 (0)\n+27D78 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27D7A Ext File Attributes   00000000 (0)\n+27D7E Local Header Offset   00025A8B (154251)\n+27D82 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27D82: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27DA3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27DA5   Length              0005 (5)\n+27DA7   Flags               01 (1) 'Modification'\n+27DA8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27DAC CENTRAL HEADER #38    02014B50 (33639248)\n+27DB0 Created Zip Spec      14 (20) '2.0'\n+27DB1 Created OS            00 (0) 'MS-DOS'\n+27DB2 Extract Zip Spec      14 (20) '2.0'\n+27DB3 Extract OS            00 (0) 'MS-DOS'\n+27DB4 General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27DB6 Compression Method    0000 (0) 'Stored'\n+27DB8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27DBC CRC                   A160D4E4 (2707477732)\n+27DC0 Compressed Size       0000020F (527)\n+27DC4 Uncompressed Size     0000020F (527)\n+27DC8 Filename Length       0044 (68)\n+27DCA Extra Length          0009 (9)\n+27DCC Comment Length        0000 (0)\n+27DCE Disk Start            0000 (0)\n+27DD0 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27DD2 Ext File Attributes   00000000 (0)\n+27DD6 Local Header Offset   00025AD3 (154323)\n+27DDA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27DDA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27E1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27E20   Length              0005 (5)\n+27E22   Flags               01 (1) 'Modification'\n+27E23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27E27 CENTRAL HEADER #39    02014B50 (33639248)\n+27E2B Created Zip Spec      14 (20) '2.0'\n+27E2C Created OS            00 (0) 'MS-DOS'\n+27E2D Extract Zip Spec      14 (20) '2.0'\n+27E2E Extract OS            00 (0) 'MS-DOS'\n+27E2F General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27E31 Compression Method    0000 (0) 'Stored'\n+27E33 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27E37 CRC                   91076967 (2433182055)\n+27E3B Compressed Size       00000237 (567)\n+27E3F Uncompressed Size     00000237 (567)\n+27E43 Filename Length       0049 (73)\n+27E45 Extra Length          0009 (9)\n+27E47 Comment Length        0000 (0)\n+27E49 Disk Start            0000 (0)\n+27E4B Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27E4D Ext File Attributes   00000000 (0)\n+27E51 Local Header Offset   00025D5D (154973)\n+27E55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27E55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27E9E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27EA0   Length              0005 (5)\n+27EA2   Flags               01 (1) 'Modification'\n+27EA3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27EA7 CENTRAL HEADER #40    02014B50 (33639248)\n+27EAB Created Zip Spec      14 (20) '2.0'\n+27EAC Created OS            00 (0) 'MS-DOS'\n+27EAD Extract Zip Spec      14 (20) '2.0'\n+27EAE Extract OS            00 (0) 'MS-DOS'\n+27EAF General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27EB1 Compression Method    0000 (0) 'Stored'\n+27EB3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27EB7 CRC                   9FCDF535 (2681074997)\n+27EBB Compressed Size       00000217 (535)\n+27EBF Uncompressed Size     00000217 (535)\n+27EC3 Filename Length       0045 (69)\n+27EC5 Extra Length          0009 (9)\n+27EC7 Comment Length        0000 (0)\n+27EC9 Disk Start            0000 (0)\n+27ECB Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27ECD Ext File Attributes   00000000 (0)\n+27ED1 Local Header Offset   00026014 (155668)\n+27ED5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27ED5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27F1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27F1C   Length              0005 (5)\n+27F1E   Flags               01 (1) 'Modification'\n+27F1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27F23 CENTRAL HEADER #41    02014B50 (33639248)\n+27F27 Created Zip Spec      14 (20) '2.0'\n+27F28 Created OS            00 (0) 'MS-DOS'\n+27F29 Extract Zip Spec      14 (20) '2.0'\n+27F2A Extract OS            00 (0) 'MS-DOS'\n+27F2B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27F2D Compression Method    0000 (0) 'Stored'\n+27F2F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27F33 CRC                   51CAEA39 (1372252729)\n+27F37 Compressed Size       0000022F (559)\n+27F3B Uncompressed Size     0000022F (559)\n+27F3F Filename Length       0048 (72)\n+27F41 Extra Length          0009 (9)\n+27F43 Comment Length        0000 (0)\n+27F45 Disk Start            0000 (0)\n+27F47 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27F49 Ext File Attributes   00000000 (0)\n+27F4D Local Header Offset   000262A7 (156327)\n+27F51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27F51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27F99 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27F9B   Length              0005 (5)\n+27F9D   Flags               01 (1) 'Modification'\n+27F9E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27FA2 CENTRAL HEADER #42    02014B50 (33639248)\n+27FA6 Created Zip Spec      14 (20) '2.0'\n+27FA7 Created OS            00 (0) 'MS-DOS'\n+27FA8 Extract Zip Spec      14 (20) '2.0'\n+27FA9 Extract OS            00 (0) 'MS-DOS'\n+27FAA General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+27FAC Compression Method    0000 (0) 'Stored'\n+27FAE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27FB2 CRC                   BE7699EF (3195443695)\n+27FB6 Compressed Size       0000023F (575)\n+27FBA Uncompressed Size     0000023F (575)\n+27FBE Filename Length       004A (74)\n+27FC0 Extra Length          0009 (9)\n+27FC2 Comment Length        0000 (0)\n+27FC4 Disk Start            0000 (0)\n+27FC6 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+27FC8 Ext File Attributes   00000000 (0)\n+27FCC Local Header Offset   00026555 (157013)\n+27FD0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27FD0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2801A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2801C   Length              0005 (5)\n+2801E   Flags               01 (1) 'Modification'\n+2801F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+28023 CENTRAL HEADER #43    02014B50 (33639248)\n+28027 Created Zip Spec      14 (20) '2.0'\n+28028 Created OS            00 (0) 'MS-DOS'\n+28029 Extract Zip Spec      14 (20) '2.0'\n+2802A Extract OS            00 (0) 'MS-DOS'\n+2802B General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+2802D Compression Method    0000 (0) 'Stored'\n+2802F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+28033 CRC                   AEE0F48D (2933978253)\n+28037 Compressed Size       00000257 (599)\n+2803B Uncompressed Size     00000257 (599)\n+2803F Filename Length       004D (77)\n+28041 Extra Length          0009 (9)\n+28043 Comment Length        0000 (0)\n+28045 Disk Start            0000 (0)\n+28047 Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+28049 Ext File Attributes   00000000 (0)\n+2804D Local Header Offset   00026815 (157717)\n+28051 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x28051: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2809E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+280A0   Length              0005 (5)\n+280A2   Flags               01 (1) 'Modification'\n+280A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+280A7 CENTRAL HEADER #44    02014B50 (33639248)\n+280AB Created Zip Spec      14 (20) '2.0'\n+280AC Created OS            00 (0) 'MS-DOS'\n+280AD Extract Zip Spec      14 (20) '2.0'\n+280AE Extract OS            00 (0) 'MS-DOS'\n+280AF General Purpose Flag  0008 (8)\n+      [Bit  3]              1 'Streamed'\n+280B1 Compression Method    0000 (0) 'Stored'\n+280B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+280B7 CRC                   B5B97BFA (3048831994)\n+280BB Compressed Size       00000277 (631)\n+280BF Uncompressed Size     00000277 (631)\n+280C3 Filename Length       0051 (81)\n+280C5 Extra Length          0009 (9)\n+280C7 Comment Length        0000 (0)\n+280C9 Disk Start            0000 (0)\n+280CB Int File Attributes   0000 (0)\n+      [Bit 0]               0 'Binary Data'\n+280CD Ext File Attributes   00000000 (0)\n+280D1 Local Header Offset   00026AF0 (158448)\n+280D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x280D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+28126 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+28128   Length              0005 (5)\n+2812A   Flags               01 (1) 'Modification'\n+2812B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2812F END CENTRAL HEADER    06054B50 (101010256)\n+28133 Number of this disk   0000 (0)\n+28135 Central Dir Disk no   0000 (0)\n+28137 Entries in this disk  002C (44)\n+28139 Total Entries         002C (44)\n+2813B Size of Central Dir   00001340 (4928)\n+2813F Offset to Central Dir 00026DEF (159215)\n+28143 Comment Length        0000 (0)\n #\n # Warning Count: 88\n #\n # Done\n"}, {"source1": "dev/langchain4j/model/openai/InternalOpenAiHelper.class", "source2": "dev/langchain4j/model/openai/InternalOpenAiHelper.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,660 +1,652 @@\n-  SHA-256 checksum b1f8c95c2f177f62439426d6fffc972dd1cc593f84ab33cdf90b8a52a88c37d0\n+  SHA-256 checksum c54e76831a349b1afa0b342490431dc9269e8adcab47cdf843b9467e73a664eb\n   Compiled from \"InternalOpenAiHelper.java\"\n public class dev.langchain4j.model.openai.InternalOpenAiHelper\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #149                        // dev/langchain4j/model/openai/InternalOpenAiHelper\n-  super_class: #54                        // java/lang/Object\n+  this_class: #187                        // dev/langchain4j/model/openai/InternalOpenAiHelper\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 3, methods: 19, attributes: 3\n Constant pool:\n-    #1 = Methodref          #54.#266      // java/lang/Object.\"<init>\":()V\n-    #2 = InterfaceMethodref #7.#267       // java/util/List.stream:()Ljava/util/stream/Stream;\n-    #3 = InvokeDynamic      #0:#273       // #0:apply:()Ljava/util/function/Function;\n-    #4 = InterfaceMethodref #274.#275     // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-    #5 = Methodref          #276.#277     // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-    #6 = InterfaceMethodref #274.#278     // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-    #7 = Class              #279          // java/util/List\n-    #8 = Class              #280          // dev/langchain4j/data/message/SystemMessage\n-    #9 = Methodref          #8.#281       // dev/langchain4j/data/message/SystemMessage.text:()Ljava/lang/String;\n-   #10 = Methodref          #282.#283     // dev/ai4j/openai4j/chat/SystemMessage.from:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/SystemMessage;\n-   #11 = Class              #284          // dev/langchain4j/data/message/UserMessage\n-   #12 = Methodref          #11.#285      // dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n-   #13 = Methodref          #286.#287     // dev/ai4j/openai4j/chat/UserMessage.builder:()Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n-   #14 = Methodref          #11.#281      // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-   #15 = Methodref          #288.#289     // dev/ai4j/openai4j/chat/UserMessage$Builder.content:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n-   #16 = Methodref          #11.#290      // dev/langchain4j/data/message/UserMessage.name:()Ljava/lang/String;\n-   #17 = Methodref          #288.#291     // dev/ai4j/openai4j/chat/UserMessage$Builder.name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n-   #18 = Methodref          #288.#292     // dev/ai4j/openai4j/chat/UserMessage$Builder.build:()Ldev/ai4j/openai4j/chat/UserMessage;\n-   #19 = Methodref          #11.#293      // dev/langchain4j/data/message/UserMessage.contents:()Ljava/util/List;\n-   #20 = InvokeDynamic      #1:#273       // #1:apply:()Ljava/util/function/Function;\n-   #21 = Methodref          #288.#296     // dev/ai4j/openai4j/chat/UserMessage$Builder.content:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n-   #22 = Class              #297          // dev/langchain4j/data/message/AiMessage\n-   #23 = Methodref          #22.#298      // dev/langchain4j/data/message/AiMessage.hasToolExecutionRequests:()Z\n-   #24 = Methodref          #22.#281      // dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-   #25 = Methodref          #299.#300     // dev/ai4j/openai4j/chat/AssistantMessage.from:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/AssistantMessage;\n-   #26 = Methodref          #22.#301      // dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-   #27 = InterfaceMethodref #7.#302       // java/util/List.get:(I)Ljava/lang/Object;\n-   #28 = Class              #303          // dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #29 = Methodref          #28.#304      // dev/langchain4j/agent/tool/ToolExecutionRequest.id:()Ljava/lang/String;\n-   #30 = Methodref          #305.#306     // dev/ai4j/openai4j/chat/FunctionCall.builder:()Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n-   #31 = Methodref          #28.#290      // dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n-   #32 = Methodref          #307.#308     // dev/ai4j/openai4j/chat/FunctionCall$Builder.name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n-   #33 = Methodref          #28.#309      // dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-   #34 = Methodref          #307.#310     // dev/ai4j/openai4j/chat/FunctionCall$Builder.arguments:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n-   #35 = Methodref          #307.#311     // dev/ai4j/openai4j/chat/FunctionCall$Builder.build:()Ldev/ai4j/openai4j/chat/FunctionCall;\n-   #36 = Methodref          #299.#312     // dev/ai4j/openai4j/chat/AssistantMessage.builder:()Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n-   #37 = Methodref          #313.#314     // dev/ai4j/openai4j/chat/AssistantMessage$Builder.functionCall:(Ldev/ai4j/openai4j/chat/FunctionCall;)Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n-   #38 = Methodref          #313.#315     // dev/ai4j/openai4j/chat/AssistantMessage$Builder.build:()Ldev/ai4j/openai4j/chat/AssistantMessage;\n-   #39 = InvokeDynamic      #2:#273       // #2:apply:()Ljava/util/function/Function;\n-   #40 = Methodref          #313.#318     // dev/ai4j/openai4j/chat/AssistantMessage$Builder.toolCalls:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n-   #41 = Class              #319          // dev/langchain4j/data/message/ToolExecutionResultMessage\n-   #42 = Methodref          #41.#304      // dev/langchain4j/data/message/ToolExecutionResultMessage.id:()Ljava/lang/String;\n-   #43 = Methodref          #41.#320      // dev/langchain4j/data/message/ToolExecutionResultMessage.toolName:()Ljava/lang/String;\n-   #44 = Methodref          #41.#281      // dev/langchain4j/data/message/ToolExecutionResultMessage.text:()Ljava/lang/String;\n-   #45 = Methodref          #321.#322     // dev/ai4j/openai4j/chat/FunctionMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionMessage;\n-   #46 = Methodref          #323.#324     // dev/ai4j/openai4j/chat/ToolMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ToolMessage;\n-   #47 = Class              #325          // java/lang/StringBuilder\n-   #48 = Methodref          #47.#266      // java/lang/StringBuilder.\"<init>\":()V\n-   #49 = String             #326          // Unknown message type:\n-   #50 = Methodref          #47.#327      // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #51 = InterfaceMethodref #328.#329     // dev/langchain4j/data/message/ChatMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n-   #52 = Methodref          #47.#330      // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #53 = Methodref          #47.#331      // java/lang/StringBuilder.toString:()Ljava/lang/String;\n-   #54 = Class              #332          // java/lang/Object\n-   #55 = Methodref          #333.#334     // dev/langchain4j/internal/Exceptions.illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n-   #56 = Class              #335          // dev/langchain4j/data/message/TextContent\n-   #57 = Methodref          #149.#336     // dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiContent:(Ldev/langchain4j/data/message/TextContent;)Ldev/ai4j/openai4j/chat/Content;\n-   #58 = Class              #337          // dev/langchain4j/data/message/ImageContent\n-   #59 = Methodref          #149.#338     // dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiContent:(Ldev/langchain4j/data/message/ImageContent;)Ldev/ai4j/openai4j/chat/Content;\n-   #60 = String             #339          // Unknown content type:\n-   #61 = Methodref          #340.#341     // dev/ai4j/openai4j/chat/Content.builder:()Ldev/ai4j/openai4j/chat/Content$Builder;\n-   #62 = Fieldref           #342.#343     // dev/ai4j/openai4j/chat/ContentType.TEXT:Ldev/ai4j/openai4j/chat/ContentType;\n-   #63 = Methodref          #344.#345     // dev/ai4j/openai4j/chat/Content$Builder.type:(Ldev/ai4j/openai4j/chat/ContentType;)Ldev/ai4j/openai4j/chat/Content$Builder;\n-   #64 = Methodref          #56.#281      // dev/langchain4j/data/message/TextContent.text:()Ljava/lang/String;\n-   #65 = Methodref          #344.#346     // dev/ai4j/openai4j/chat/Content$Builder.text:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Content$Builder;\n-   #66 = Methodref          #344.#347     // dev/ai4j/openai4j/chat/Content$Builder.build:()Ldev/ai4j/openai4j/chat/Content;\n-   #67 = Fieldref           #342.#348     // dev/ai4j/openai4j/chat/ContentType.IMAGE_URL:Ldev/ai4j/openai4j/chat/ContentType;\n-   #68 = Methodref          #349.#350     // dev/ai4j/openai4j/chat/ImageUrl.builder:()Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n-   #69 = Methodref          #58.#351      // dev/langchain4j/data/message/ImageContent.image:()Ldev/langchain4j/data/image/Image;\n-   #70 = Methodref          #149.#352     // dev/langchain4j/model/openai/InternalOpenAiHelper.toUrl:(Ldev/langchain4j/data/image/Image;)Ljava/lang/String;\n-   #71 = Methodref          #353.#354     // dev/ai4j/openai4j/chat/ImageUrl$Builder.url:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n-   #72 = Methodref          #58.#355      // dev/langchain4j/data/message/ImageContent.detailLevel:()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-   #73 = Methodref          #149.#356     // dev/langchain4j/model/openai/InternalOpenAiHelper.toDetail:(Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/ai4j/openai4j/chat/ImageDetail;\n-   #74 = Methodref          #353.#357     // dev/ai4j/openai4j/chat/ImageUrl$Builder.detail:(Ldev/ai4j/openai4j/chat/ImageDetail;)Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n-   #75 = Methodref          #353.#358     // dev/ai4j/openai4j/chat/ImageUrl$Builder.build:()Ldev/ai4j/openai4j/chat/ImageUrl;\n-   #76 = Methodref          #344.#359     // dev/ai4j/openai4j/chat/Content$Builder.imageUrl:(Ldev/ai4j/openai4j/chat/ImageUrl;)Ldev/ai4j/openai4j/chat/Content$Builder;\n-   #77 = Methodref          #360.#361     // dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-   #78 = Methodref          #362.#331     // java/net/URI.toString:()Ljava/lang/String;\n-   #79 = String             #363          // data:%s;base64,%s\n-   #80 = Methodref          #360.#364     // dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n-   #81 = Methodref          #360.#365     // dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n-   #82 = Methodref          #366.#367     // java/lang/String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n-   #83 = Methodref          #207.#290     // dev/langchain4j/data/message/ImageContent$DetailLevel.name:()Ljava/lang/String;\n-   #84 = Methodref          #368.#369     // dev/ai4j/openai4j/chat/ImageDetail.valueOf:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ImageDetail;\n-   #85 = InterfaceMethodref #370.#267     // java/util/Collection.stream:()Ljava/util/stream/Stream;\n-   #86 = InvokeDynamic      #3:#273       // #3:apply:()Ljava/util/function/Function;\n-   #87 = Methodref          #373.#374     // dev/ai4j/openai4j/chat/Function.builder:()Ldev/ai4j/openai4j/chat/Function$Builder;\n-   #88 = Methodref          #375.#290     // dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n-   #89 = Methodref          #376.#377     // dev/ai4j/openai4j/chat/Function$Builder.name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Function$Builder;\n-   #90 = Methodref          #375.#378     // dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n-   #91 = Methodref          #376.#379     // dev/ai4j/openai4j/chat/Function$Builder.description:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Function$Builder;\n-   #92 = Methodref          #375.#380     // dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-   #93 = Methodref          #149.#381     // dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiParameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/ai4j/openai4j/chat/Parameters;\n-   #94 = Methodref          #376.#382     // dev/ai4j/openai4j/chat/Function$Builder.parameters:(Ldev/ai4j/openai4j/chat/Parameters;)Ldev/ai4j/openai4j/chat/Function$Builder;\n-   #95 = Methodref          #376.#383     // dev/ai4j/openai4j/chat/Function$Builder.build:()Ldev/ai4j/openai4j/chat/Function;\n-   #96 = Methodref          #384.#385     // dev/ai4j/openai4j/chat/Tool.from:(Ldev/ai4j/openai4j/chat/Function;)Ldev/ai4j/openai4j/chat/Tool;\n-   #97 = InvokeDynamic      #4:#273       // #4:apply:()Ljava/util/function/Function;\n-   #98 = Methodref          #388.#389     // dev/ai4j/openai4j/chat/Parameters.builder:()Ldev/ai4j/openai4j/chat/Parameters$Builder;\n-   #99 = Methodref          #390.#391     // dev/ai4j/openai4j/chat/Parameters$Builder.build:()Ldev/ai4j/openai4j/chat/Parameters;\n-  #100 = Methodref          #392.#393     // dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n-  #101 = Methodref          #390.#394     // dev/ai4j/openai4j/chat/Parameters$Builder.properties:(Ljava/util/Map;)Ldev/ai4j/openai4j/chat/Parameters$Builder;\n-  #102 = Methodref          #392.#395     // dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n-  #103 = Methodref          #390.#396     // dev/ai4j/openai4j/chat/Parameters$Builder.required:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/Parameters$Builder;\n-  #104 = Methodref          #397.#398     // dev/ai4j/openai4j/chat/ChatCompletionResponse.choices:()Ljava/util/List;\n-  #105 = Class              #399          // dev/ai4j/openai4j/chat/ChatCompletionChoice\n-  #106 = Methodref          #105.#400     // dev/ai4j/openai4j/chat/ChatCompletionChoice.message:()Ldev/ai4j/openai4j/chat/AssistantMessage;\n-  #107 = Methodref          #299.#401     // dev/ai4j/openai4j/chat/AssistantMessage.toolCalls:()Ljava/util/List;\n-  #108 = Methodref          #402.#403     // dev/langchain4j/internal/Utils.isNullOrEmpty:(Ljava/util/Collection;)Z\n-  #109 = InvokeDynamic      #5:#407       // #5:test:()Ljava/util/function/Predicate;\n-  #110 = InterfaceMethodref #274.#408     // java/util/stream/Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n-  #111 = InvokeDynamic      #6:#273       // #6:apply:()Ljava/util/function/Function;\n-  #112 = Methodref          #22.#411      // dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n-  #113 = Methodref          #299.#412     // dev/ai4j/openai4j/chat/AssistantMessage.functionCall:()Ldev/ai4j/openai4j/chat/FunctionCall;\n-  #114 = Methodref          #28.#413      // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #115 = Methodref          #305.#290     // dev/ai4j/openai4j/chat/FunctionCall.name:()Ljava/lang/String;\n-  #116 = Methodref          #414.#415     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #117 = Methodref          #305.#309     // dev/ai4j/openai4j/chat/FunctionCall.arguments:()Ljava/lang/String;\n-  #118 = Methodref          #414.#416     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #119 = Methodref          #414.#417     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #120 = Methodref          #22.#418      // dev/langchain4j/data/message/AiMessage.aiMessage:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-  #121 = Methodref          #299.#419     // dev/ai4j/openai4j/chat/AssistantMessage.content:()Ljava/lang/String;\n-  #122 = Methodref          #22.#420      // dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #123 = Methodref          #421.#422     // dev/ai4j/openai4j/chat/ToolCall.function:()Ldev/ai4j/openai4j/chat/FunctionCall;\n-  #124 = Methodref          #421.#304     // dev/ai4j/openai4j/chat/ToolCall.id:()Ljava/lang/String;\n-  #125 = Methodref          #414.#423     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #126 = Class              #424          // dev/langchain4j/model/output/TokenUsage\n-  #127 = Methodref          #425.#426     // dev/ai4j/openai4j/shared/Usage.promptTokens:()Ljava/lang/Integer;\n-  #128 = Methodref          #425.#427     // dev/ai4j/openai4j/shared/Usage.completionTokens:()Ljava/lang/Integer;\n-  #129 = Methodref          #425.#428     // dev/ai4j/openai4j/shared/Usage.totalTokens:()Ljava/lang/Integer;\n-  #130 = Methodref          #126.#429     // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-  #131 = Methodref          #366.#430     // java/lang/String.hashCode:()I\n-  #132 = String             #431          // stop\n-  #133 = Methodref          #366.#432     // java/lang/String.equals:(Ljava/lang/Object;)Z\n-  #134 = String             #433          // length\n-  #135 = String             #434          // tool_calls\n-  #136 = String             #435          // function_call\n-  #137 = String             #436          // content_filter\n-  #138 = Fieldref           #437.#438     // dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n-  #139 = Fieldref           #437.#439     // dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-  #140 = Fieldref           #437.#440     // dev/langchain4j/model/output/FinishReason.TOOL_EXECUTION:Ldev/langchain4j/model/output/FinishReason;\n-  #141 = Fieldref           #437.#441     // dev/langchain4j/model/output/FinishReason.CONTENT_FILTER:Ldev/langchain4j/model/output/FinishReason;\n-  #142 = Methodref          #421.#442     // dev/ai4j/openai4j/chat/ToolCall.type:()Ldev/ai4j/openai4j/chat/ToolType;\n-  #143 = Fieldref           #443.#444     // dev/ai4j/openai4j/chat/ToolType.FUNCTION:Ldev/ai4j/openai4j/chat/ToolType;\n-  #144 = Methodref          #421.#445     // dev/ai4j/openai4j/chat/ToolCall.builder:()Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n-  #145 = Methodref          #446.#447     // dev/ai4j/openai4j/chat/ToolCall$Builder.id:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n-  #146 = Methodref          #446.#448     // dev/ai4j/openai4j/chat/ToolCall$Builder.type:(Ldev/ai4j/openai4j/chat/ToolType;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n-  #147 = Methodref          #446.#449     // dev/ai4j/openai4j/chat/ToolCall$Builder.function:(Ldev/ai4j/openai4j/chat/FunctionCall;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n-  #148 = Methodref          #446.#450     // dev/ai4j/openai4j/chat/ToolCall$Builder.build:()Ldev/ai4j/openai4j/chat/ToolCall;\n-  #149 = Class              #451          // dev/langchain4j/model/openai/InternalOpenAiHelper\n-  #150 = Utf8               OPENAI_URL\n-  #151 = Utf8               Ljava/lang/String;\n-  #152 = Utf8               ConstantValue\n-  #153 = String             #452          // https://api.openai.com/v1\n-  #154 = Utf8               OPENAI_DEMO_API_KEY\n-  #155 = String             #453          // demo\n-  #156 = Utf8               OPENAI_DEMO_URL\n-  #157 = String             #454          // http://langchain4j.dev/demo/openai/v1\n-  #158 = Utf8               <init>\n-  #159 = Utf8               ()V\n-  #160 = Utf8               Code\n-  #161 = Utf8               LineNumberTable\n-  #162 = Utf8               LocalVariableTable\n-  #163 = Utf8               this\n-  #164 = Utf8               Ldev/langchain4j/model/openai/InternalOpenAiHelper;\n-  #165 = Utf8               toOpenAiMessages\n-  #166 = Utf8               (Ljava/util/List;)Ljava/util/List;\n-  #167 = Utf8               messages\n-  #168 = Utf8               Ljava/util/List;\n-  #169 = Utf8               LocalVariableTypeTable\n-  #170 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-  #171 = Utf8               Signature\n-  #172 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ljava/util/List<Ldev/ai4j/openai4j/chat/Message;>;\n-  #173 = Utf8               toOpenAiMessage\n-  #174 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)Ldev/ai4j/openai4j/chat/Message;\n-  #175 = Utf8               userMessage\n-  #176 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n-  #177 = Utf8               functionCall\n-  #178 = Utf8               Ldev/ai4j/openai4j/chat/FunctionCall;\n-  #179 = Utf8               aiMessage\n-  #180 = Utf8               Ldev/langchain4j/data/message/AiMessage;\n-  #181 = Utf8               toolExecutionRequest\n-  #182 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #183 = Utf8               toolCalls\n-  #184 = Utf8               toolExecutionResultMessage\n-  #185 = Utf8               Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-  #186 = Utf8               message\n-  #187 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n-  #188 = Utf8               Ljava/util/List<Ldev/ai4j/openai4j/chat/ToolCall;>;\n-  #189 = Utf8               StackMapTable\n-  #190 = Class              #284          // dev/langchain4j/data/message/UserMessage\n-  #191 = Class              #297          // dev/langchain4j/data/message/AiMessage\n-  #192 = Class              #303          // dev/langchain4j/agent/tool/ToolExecutionRequest\n-  #193 = Class              #319          // dev/langchain4j/data/message/ToolExecutionResultMessage\n-  #194 = Utf8               toOpenAiContent\n-  #195 = Utf8               (Ldev/langchain4j/data/message/Content;)Ldev/ai4j/openai4j/chat/Content;\n-  #196 = Utf8               content\n-  #197 = Utf8               Ldev/langchain4j/data/message/Content;\n-  #198 = Utf8               (Ldev/langchain4j/data/message/TextContent;)Ldev/ai4j/openai4j/chat/Content;\n-  #199 = Utf8               Ldev/langchain4j/data/message/TextContent;\n-  #200 = Utf8               (Ldev/langchain4j/data/message/ImageContent;)Ldev/ai4j/openai4j/chat/Content;\n-  #201 = Utf8               Ldev/langchain4j/data/message/ImageContent;\n-  #202 = Utf8               toUrl\n-  #203 = Utf8               (Ldev/langchain4j/data/image/Image;)Ljava/lang/String;\n-  #204 = Utf8               image\n-  #205 = Utf8               Ldev/langchain4j/data/image/Image;\n-  #206 = Utf8               toDetail\n-  #207 = Class              #455          // dev/langchain4j/data/message/ImageContent$DetailLevel\n-  #208 = Utf8               DetailLevel\n-  #209 = Utf8               InnerClasses\n-  #210 = Utf8               (Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/ai4j/openai4j/chat/ImageDetail;\n-  #211 = Utf8               detailLevel\n-  #212 = Utf8               Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-  #213 = Utf8               toTools\n-  #214 = Utf8               (Ljava/util/Collection;)Ljava/util/List;\n-  #215 = Utf8               toolSpecifications\n-  #216 = Utf8               Ljava/util/Collection;\n-  #217 = Utf8               Ljava/util/Collection<Ldev/langchain4j/agent/tool/ToolSpecification;>;\n-  #218 = Utf8               (Ljava/util/Collection<Ldev/langchain4j/agent/tool/ToolSpecification;>;)Ljava/util/List<Ldev/ai4j/openai4j/chat/Tool;>;\n-  #219 = Utf8               toTool\n-  #220 = Utf8               (Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Tool;\n-  #221 = Utf8               toolSpecification\n-  #222 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecification;\n-  #223 = Utf8               function\n-  #224 = Utf8               Ldev/ai4j/openai4j/chat/Function;\n-  #225 = Utf8               toFunctions\n-  #226 = Utf8               Deprecated\n-  #227 = Utf8               (Ljava/util/Collection<Ldev/langchain4j/agent/tool/ToolSpecification;>;)Ljava/util/List<Ldev/ai4j/openai4j/chat/Function;>;\n-  #228 = Utf8               RuntimeVisibleAnnotations\n-  #229 = Utf8               Ljava/lang/Deprecated;\n-  #230 = Utf8               toFunction\n-  #231 = Utf8               (Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Function;\n-  #232 = Utf8               toOpenAiParameters\n-  #233 = Utf8               (Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/ai4j/openai4j/chat/Parameters;\n-  #234 = Utf8               toolParameters\n-  #235 = Utf8               Ldev/langchain4j/agent/tool/ToolParameters;\n-  #236 = Utf8               aiMessageFrom\n-  #237 = Utf8               (Ldev/ai4j/openai4j/chat/ChatCompletionResponse;)Ldev/langchain4j/data/message/AiMessage;\n-  #238 = Utf8               toolExecutionRequests\n-  #239 = Utf8               response\n-  #240 = Utf8               Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n-  #241 = Utf8               assistantMessage\n-  #242 = Utf8               Ldev/ai4j/openai4j/chat/AssistantMessage;\n-  #243 = Utf8               Ljava/util/List<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;\n-  #244 = Class              #456          // dev/ai4j/openai4j/chat/AssistantMessage\n-  #245 = Class              #279          // java/util/List\n-  #246 = Class              #457          // dev/ai4j/openai4j/chat/FunctionCall\n-  #247 = Utf8               toToolExecutionRequest\n-  #248 = Utf8               (Ldev/ai4j/openai4j/chat/ToolCall;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #249 = Utf8               toolCall\n-  #250 = Utf8               Ldev/ai4j/openai4j/chat/ToolCall;\n-  #251 = Utf8               tokenUsageFrom\n-  #252 = Utf8               (Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n-  #253 = Utf8               openAiUsage\n-  #254 = Utf8               Ldev/ai4j/openai4j/shared/Usage;\n-  #255 = Utf8               finishReasonFrom\n-  #256 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n-  #257 = Utf8               openAiFinishReason\n-  #258 = Class              #458          // java/lang/String\n-  #259 = Utf8               lambda$aiMessageFrom$1\n-  #260 = Utf8               (Ldev/ai4j/openai4j/chat/ToolCall;)Z\n-  #261 = Utf8               lambda$toOpenAiMessage$0\n-  #262 = Utf8               (Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/ai4j/openai4j/chat/ToolCall;\n-  #263 = Utf8               it\n-  #264 = Utf8               SourceFile\n-  #265 = Utf8               InternalOpenAiHelper.java\n-  #266 = NameAndType        #158:#159     // \"<init>\":()V\n-  #267 = NameAndType        #459:#460     // stream:()Ljava/util/stream/Stream;\n-  #268 = Utf8               BootstrapMethods\n-  #269 = MethodHandle       6:#461        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #270 = MethodType         #462          //  (Ljava/lang/Object;)Ljava/lang/Object;\n-  #271 = MethodHandle       6:#463        // REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiMessage:(Ldev/langchain4j/data/message/ChatMessage;)Ldev/ai4j/openai4j/chat/Message;\n-  #272 = MethodType         #174          //  (Ldev/langchain4j/data/message/ChatMessage;)Ldev/ai4j/openai4j/chat/Message;\n-  #273 = NameAndType        #464:#465     // apply:()Ljava/util/function/Function;\n-  #274 = Class              #466          // java/util/stream/Stream\n-  #275 = NameAndType        #467:#468     // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-  #276 = Class              #469          // java/util/stream/Collectors\n-  #277 = NameAndType        #470:#471     // toList:()Ljava/util/stream/Collector;\n-  #278 = NameAndType        #472:#473     // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-  #279 = Utf8               java/util/List\n-  #280 = Utf8               dev/langchain4j/data/message/SystemMessage\n-  #281 = NameAndType        #474:#475     // text:()Ljava/lang/String;\n-  #282 = Class              #476          // dev/ai4j/openai4j/chat/SystemMessage\n-  #283 = NameAndType        #477:#478     // from:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/SystemMessage;\n-  #284 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #285 = NameAndType        #479:#480     // hasSingleText:()Z\n-  #286 = Class              #481          // dev/ai4j/openai4j/chat/UserMessage\n-  #287 = NameAndType        #482:#484     // builder:()Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n-  #288 = Class              #485          // dev/ai4j/openai4j/chat/UserMessage$Builder\n-  #289 = NameAndType        #196:#486     // content:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n-  #290 = NameAndType        #487:#475     // name:()Ljava/lang/String;\n-  #291 = NameAndType        #487:#486     // name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n-  #292 = NameAndType        #488:#489     // build:()Ldev/ai4j/openai4j/chat/UserMessage;\n-  #293 = NameAndType        #490:#491     // contents:()Ljava/util/List;\n-  #294 = MethodHandle       6:#492        // REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiContent:(Ldev/langchain4j/data/message/Content;)Ldev/ai4j/openai4j/chat/Content;\n-  #295 = MethodType         #195          //  (Ldev/langchain4j/data/message/Content;)Ldev/ai4j/openai4j/chat/Content;\n-  #296 = NameAndType        #196:#493     // content:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n-  #297 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #298 = NameAndType        #494:#480     // hasToolExecutionRequests:()Z\n-  #299 = Class              #456          // dev/ai4j/openai4j/chat/AssistantMessage\n-  #300 = NameAndType        #477:#495     // from:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/AssistantMessage;\n-  #301 = NameAndType        #238:#491     // toolExecutionRequests:()Ljava/util/List;\n-  #302 = NameAndType        #496:#497     // get:(I)Ljava/lang/Object;\n-  #303 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n-  #304 = NameAndType        #498:#475     // id:()Ljava/lang/String;\n-  #305 = Class              #457          // dev/ai4j/openai4j/chat/FunctionCall\n-  #306 = NameAndType        #482:#499     // builder:()Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n-  #307 = Class              #500          // dev/ai4j/openai4j/chat/FunctionCall$Builder\n-  #308 = NameAndType        #487:#501     // name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n-  #309 = NameAndType        #502:#475     // arguments:()Ljava/lang/String;\n-  #310 = NameAndType        #502:#501     // arguments:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n-  #311 = NameAndType        #488:#503     // build:()Ldev/ai4j/openai4j/chat/FunctionCall;\n-  #312 = NameAndType        #482:#504     // builder:()Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n-  #313 = Class              #505          // dev/ai4j/openai4j/chat/AssistantMessage$Builder\n-  #314 = NameAndType        #177:#506     // functionCall:(Ldev/ai4j/openai4j/chat/FunctionCall;)Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n-  #315 = NameAndType        #488:#507     // build:()Ldev/ai4j/openai4j/chat/AssistantMessage;\n-  #316 = MethodHandle       6:#508        // REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.lambda$toOpenAiMessage$0:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/ai4j/openai4j/chat/ToolCall;\n-  #317 = MethodType         #262          //  (Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/ai4j/openai4j/chat/ToolCall;\n-  #318 = NameAndType        #183:#509     // toolCalls:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n-  #319 = Utf8               dev/langchain4j/data/message/ToolExecutionResultMessage\n-  #320 = NameAndType        #510:#475     // toolName:()Ljava/lang/String;\n-  #321 = Class              #511          // dev/ai4j/openai4j/chat/FunctionMessage\n-  #322 = NameAndType        #477:#512     // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionMessage;\n-  #323 = Class              #513          // dev/ai4j/openai4j/chat/ToolMessage\n-  #324 = NameAndType        #477:#514     // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ToolMessage;\n-  #325 = Utf8               java/lang/StringBuilder\n-  #326 = Utf8               Unknown message type:\n-  #327 = NameAndType        #515:#516     // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #328 = Class              #517          // dev/langchain4j/data/message/ChatMessage\n-  #329 = NameAndType        #518:#519     // type:()Ldev/langchain4j/data/message/ChatMessageType;\n-  #330 = NameAndType        #515:#520     // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-  #331 = NameAndType        #521:#475     // toString:()Ljava/lang/String;\n-  #332 = Utf8               java/lang/Object\n-  #333 = Class              #522          // dev/langchain4j/internal/Exceptions\n-  #334 = NameAndType        #523:#524     // illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n-  #335 = Utf8               dev/langchain4j/data/message/TextContent\n-  #336 = NameAndType        #194:#198     // toOpenAiContent:(Ldev/langchain4j/data/message/TextContent;)Ldev/ai4j/openai4j/chat/Content;\n-  #337 = Utf8               dev/langchain4j/data/message/ImageContent\n-  #338 = NameAndType        #194:#200     // toOpenAiContent:(Ldev/langchain4j/data/message/ImageContent;)Ldev/ai4j/openai4j/chat/Content;\n-  #339 = Utf8               Unknown content type:\n-  #340 = Class              #525          // dev/ai4j/openai4j/chat/Content\n-  #341 = NameAndType        #482:#526     // builder:()Ldev/ai4j/openai4j/chat/Content$Builder;\n-  #342 = Class              #527          // dev/ai4j/openai4j/chat/ContentType\n-  #343 = NameAndType        #528:#529     // TEXT:Ldev/ai4j/openai4j/chat/ContentType;\n-  #344 = Class              #530          // dev/ai4j/openai4j/chat/Content$Builder\n-  #345 = NameAndType        #518:#531     // type:(Ldev/ai4j/openai4j/chat/ContentType;)Ldev/ai4j/openai4j/chat/Content$Builder;\n-  #346 = NameAndType        #474:#532     // text:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Content$Builder;\n-  #347 = NameAndType        #488:#533     // build:()Ldev/ai4j/openai4j/chat/Content;\n-  #348 = NameAndType        #534:#529     // IMAGE_URL:Ldev/ai4j/openai4j/chat/ContentType;\n-  #349 = Class              #535          // dev/ai4j/openai4j/chat/ImageUrl\n-  #350 = NameAndType        #482:#536     // builder:()Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n-  #351 = NameAndType        #204:#537     // image:()Ldev/langchain4j/data/image/Image;\n-  #352 = NameAndType        #202:#203     // toUrl:(Ldev/langchain4j/data/image/Image;)Ljava/lang/String;\n-  #353 = Class              #538          // dev/ai4j/openai4j/chat/ImageUrl$Builder\n-  #354 = NameAndType        #539:#540     // url:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n-  #355 = NameAndType        #211:#541     // detailLevel:()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-  #356 = NameAndType        #206:#210     // toDetail:(Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/ai4j/openai4j/chat/ImageDetail;\n-  #357 = NameAndType        #542:#543     // detail:(Ldev/ai4j/openai4j/chat/ImageDetail;)Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n-  #358 = NameAndType        #488:#544     // build:()Ldev/ai4j/openai4j/chat/ImageUrl;\n-  #359 = NameAndType        #545:#546     // imageUrl:(Ldev/ai4j/openai4j/chat/ImageUrl;)Ldev/ai4j/openai4j/chat/Content$Builder;\n-  #360 = Class              #547          // dev/langchain4j/data/image/Image\n-  #361 = NameAndType        #539:#548     // url:()Ljava/net/URI;\n-  #362 = Class              #549          // java/net/URI\n-  #363 = Utf8               data:%s;base64,%s\n-  #364 = NameAndType        #550:#475     // mimeType:()Ljava/lang/String;\n-  #365 = NameAndType        #551:#475     // base64Data:()Ljava/lang/String;\n-  #366 = Class              #458          // java/lang/String\n-  #367 = NameAndType        #552:#553     // format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n-  #368 = Class              #554          // dev/ai4j/openai4j/chat/ImageDetail\n-  #369 = NameAndType        #555:#556     // valueOf:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ImageDetail;\n-  #370 = Class              #557          // java/util/Collection\n-  #371 = MethodHandle       6:#558        // REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.toTool:(Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Tool;\n-  #372 = MethodType         #220          //  (Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Tool;\n-  #373 = Class              #559          // dev/ai4j/openai4j/chat/Function\n-  #374 = NameAndType        #482:#560     // builder:()Ldev/ai4j/openai4j/chat/Function$Builder;\n-  #375 = Class              #561          // dev/langchain4j/agent/tool/ToolSpecification\n-  #376 = Class              #562          // dev/ai4j/openai4j/chat/Function$Builder\n-  #377 = NameAndType        #487:#563     // name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Function$Builder;\n-  #378 = NameAndType        #564:#475     // description:()Ljava/lang/String;\n-  #379 = NameAndType        #564:#563     // description:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Function$Builder;\n-  #380 = NameAndType        #565:#566     // parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-  #381 = NameAndType        #232:#233     // toOpenAiParameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/ai4j/openai4j/chat/Parameters;\n-  #382 = NameAndType        #565:#567     // parameters:(Ldev/ai4j/openai4j/chat/Parameters;)Ldev/ai4j/openai4j/chat/Function$Builder;\n-  #383 = NameAndType        #488:#568     // build:()Ldev/ai4j/openai4j/chat/Function;\n-  #384 = Class              #569          // dev/ai4j/openai4j/chat/Tool\n-  #385 = NameAndType        #477:#570     // from:(Ldev/ai4j/openai4j/chat/Function;)Ldev/ai4j/openai4j/chat/Tool;\n-  #386 = MethodHandle       6:#571        // REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.toFunction:(Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Function;\n-  #387 = MethodType         #231          //  (Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Function;\n-  #388 = Class              #572          // dev/ai4j/openai4j/chat/Parameters\n-  #389 = NameAndType        #482:#573     // builder:()Ldev/ai4j/openai4j/chat/Parameters$Builder;\n-  #390 = Class              #574          // dev/ai4j/openai4j/chat/Parameters$Builder\n-  #391 = NameAndType        #488:#575     // build:()Ldev/ai4j/openai4j/chat/Parameters;\n-  #392 = Class              #576          // dev/langchain4j/agent/tool/ToolParameters\n-  #393 = NameAndType        #577:#578     // properties:()Ljava/util/Map;\n-  #394 = NameAndType        #577:#579     // properties:(Ljava/util/Map;)Ldev/ai4j/openai4j/chat/Parameters$Builder;\n-  #395 = NameAndType        #580:#491     // required:()Ljava/util/List;\n-  #396 = NameAndType        #580:#581     // required:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/Parameters$Builder;\n-  #397 = Class              #582          // dev/ai4j/openai4j/chat/ChatCompletionResponse\n-  #398 = NameAndType        #583:#491     // choices:()Ljava/util/List;\n-  #399 = Utf8               dev/ai4j/openai4j/chat/ChatCompletionChoice\n-  #400 = NameAndType        #186:#507     // message:()Ldev/ai4j/openai4j/chat/AssistantMessage;\n-  #401 = NameAndType        #183:#491     // toolCalls:()Ljava/util/List;\n-  #402 = Class              #584          // dev/langchain4j/internal/Utils\n-  #403 = NameAndType        #585:#586     // isNullOrEmpty:(Ljava/util/Collection;)Z\n-  #404 = MethodType         #587          //  (Ljava/lang/Object;)Z\n-  #405 = MethodHandle       6:#588        // REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.lambda$aiMessageFrom$1:(Ldev/ai4j/openai4j/chat/ToolCall;)Z\n-  #406 = MethodType         #260          //  (Ldev/ai4j/openai4j/chat/ToolCall;)Z\n-  #407 = NameAndType        #589:#590     // test:()Ljava/util/function/Predicate;\n-  #408 = NameAndType        #591:#592     // filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n-  #409 = MethodHandle       6:#593        // REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.toToolExecutionRequest:(Ldev/ai4j/openai4j/chat/ToolCall;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #410 = MethodType         #248          //  (Ldev/ai4j/openai4j/chat/ToolCall;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #411 = NameAndType        #179:#594     // aiMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n-  #412 = NameAndType        #177:#503     // functionCall:()Ldev/ai4j/openai4j/chat/FunctionCall;\n-  #413 = NameAndType        #482:#595     // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #414 = Class              #596          // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #415 = NameAndType        #487:#597     // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #416 = NameAndType        #502:#597     // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #417 = NameAndType        #488:#598     // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #418 = NameAndType        #179:#599     // aiMessage:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-  #419 = NameAndType        #196:#475     // content:()Ljava/lang/String;\n-  #420 = NameAndType        #179:#600     // aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #421 = Class              #601          // dev/ai4j/openai4j/chat/ToolCall\n-  #422 = NameAndType        #223:#503     // function:()Ldev/ai4j/openai4j/chat/FunctionCall;\n-  #423 = NameAndType        #498:#597     // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #424 = Utf8               dev/langchain4j/model/output/TokenUsage\n-  #425 = Class              #602          // dev/ai4j/openai4j/shared/Usage\n-  #426 = NameAndType        #603:#604     // promptTokens:()Ljava/lang/Integer;\n-  #427 = NameAndType        #605:#604     // completionTokens:()Ljava/lang/Integer;\n-  #428 = NameAndType        #606:#604     // totalTokens:()Ljava/lang/Integer;\n-  #429 = NameAndType        #158:#607     // \"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-  #430 = NameAndType        #608:#609     // hashCode:()I\n-  #431 = Utf8               stop\n-  #432 = NameAndType        #610:#587     // equals:(Ljava/lang/Object;)Z\n-  #433 = Utf8               length\n-  #434 = Utf8               tool_calls\n-  #435 = Utf8               function_call\n-  #436 = Utf8               content_filter\n-  #437 = Class              #611          // dev/langchain4j/model/output/FinishReason\n-  #438 = NameAndType        #612:#613     // STOP:Ldev/langchain4j/model/output/FinishReason;\n-  #439 = NameAndType        #614:#613     // LENGTH:Ldev/langchain4j/model/output/FinishReason;\n-  #440 = NameAndType        #615:#613     // TOOL_EXECUTION:Ldev/langchain4j/model/output/FinishReason;\n-  #441 = NameAndType        #616:#613     // CONTENT_FILTER:Ldev/langchain4j/model/output/FinishReason;\n-  #442 = NameAndType        #518:#617     // type:()Ldev/ai4j/openai4j/chat/ToolType;\n-  #443 = Class              #618          // dev/ai4j/openai4j/chat/ToolType\n-  #444 = NameAndType        #619:#620     // FUNCTION:Ldev/ai4j/openai4j/chat/ToolType;\n-  #445 = NameAndType        #482:#621     // builder:()Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n-  #446 = Class              #622          // dev/ai4j/openai4j/chat/ToolCall$Builder\n-  #447 = NameAndType        #498:#623     // id:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n-  #448 = NameAndType        #518:#624     // type:(Ldev/ai4j/openai4j/chat/ToolType;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n-  #449 = NameAndType        #223:#625     // function:(Ldev/ai4j/openai4j/chat/FunctionCall;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n-  #450 = NameAndType        #488:#626     // build:()Ldev/ai4j/openai4j/chat/ToolCall;\n-  #451 = Utf8               dev/langchain4j/model/openai/InternalOpenAiHelper\n-  #452 = Utf8               https://api.openai.com/v1\n-  #453 = Utf8               demo\n-  #454 = Utf8               http://langchain4j.dev/demo/openai/v1\n-  #455 = Utf8               dev/langchain4j/data/message/ImageContent$DetailLevel\n-  #456 = Utf8               dev/ai4j/openai4j/chat/AssistantMessage\n-  #457 = Utf8               dev/ai4j/openai4j/chat/FunctionCall\n-  #458 = Utf8               java/lang/String\n-  #459 = Utf8               stream\n-  #460 = Utf8               ()Ljava/util/stream/Stream;\n-  #461 = Methodref          #627.#628     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #462 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #463 = Methodref          #149.#629     // dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiMessage:(Ldev/langchain4j/data/message/ChatMessage;)Ldev/ai4j/openai4j/chat/Message;\n-  #464 = Utf8               apply\n-  #465 = Utf8               ()Ljava/util/function/Function;\n-  #466 = Utf8               java/util/stream/Stream\n-  #467 = Utf8               map\n-  #468 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-  #469 = Utf8               java/util/stream/Collectors\n-  #470 = Utf8               toList\n-  #471 = Utf8               ()Ljava/util/stream/Collector;\n-  #472 = Utf8               collect\n-  #473 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n-  #474 = Utf8               text\n-  #475 = Utf8               ()Ljava/lang/String;\n-  #476 = Utf8               dev/ai4j/openai4j/chat/SystemMessage\n-  #477 = Utf8               from\n-  #478 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/chat/SystemMessage;\n-  #479 = Utf8               hasSingleText\n-  #480 = Utf8               ()Z\n-  #481 = Utf8               dev/ai4j/openai4j/chat/UserMessage\n-  #482 = Utf8               builder\n-  #483 = Utf8               Builder\n-  #484 = Utf8               ()Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n-  #485 = Utf8               dev/ai4j/openai4j/chat/UserMessage$Builder\n-  #486 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n-  #487 = Utf8               name\n-  #488 = Utf8               build\n-  #489 = Utf8               ()Ldev/ai4j/openai4j/chat/UserMessage;\n-  #490 = Utf8               contents\n-  #491 = Utf8               ()Ljava/util/List;\n-  #492 = Methodref          #149.#630     // dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiContent:(Ldev/langchain4j/data/message/Content;)Ldev/ai4j/openai4j/chat/Content;\n-  #493 = Utf8               (Ljava/util/List;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n-  #494 = Utf8               hasToolExecutionRequests\n-  #495 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/chat/AssistantMessage;\n-  #496 = Utf8               get\n-  #497 = Utf8               (I)Ljava/lang/Object;\n-  #498 = Utf8               id\n-  #499 = Utf8               ()Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n-  #500 = Utf8               dev/ai4j/openai4j/chat/FunctionCall$Builder\n-  #501 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n-  #502 = Utf8               arguments\n-  #503 = Utf8               ()Ldev/ai4j/openai4j/chat/FunctionCall;\n-  #504 = Utf8               ()Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n-  #505 = Utf8               dev/ai4j/openai4j/chat/AssistantMessage$Builder\n-  #506 = Utf8               (Ldev/ai4j/openai4j/chat/FunctionCall;)Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n-  #507 = Utf8               ()Ldev/ai4j/openai4j/chat/AssistantMessage;\n-  #508 = Methodref          #149.#631     // dev/langchain4j/model/openai/InternalOpenAiHelper.lambda$toOpenAiMessage$0:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/ai4j/openai4j/chat/ToolCall;\n-  #509 = Utf8               (Ljava/util/List;)Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n-  #510 = Utf8               toolName\n-  #511 = Utf8               dev/ai4j/openai4j/chat/FunctionMessage\n-  #512 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionMessage;\n-  #513 = Utf8               dev/ai4j/openai4j/chat/ToolMessage\n-  #514 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ToolMessage;\n-  #515 = Utf8               append\n-  #516 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #517 = Utf8               dev/langchain4j/data/message/ChatMessage\n-  #518 = Utf8               type\n-  #519 = Utf8               ()Ldev/langchain4j/data/message/ChatMessageType;\n-  #520 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-  #521 = Utf8               toString\n-  #522 = Utf8               dev/langchain4j/internal/Exceptions\n-  #523 = Utf8               illegalArgument\n-  #524 = Utf8               (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n-  #525 = Utf8               dev/ai4j/openai4j/chat/Content\n-  #526 = Utf8               ()Ldev/ai4j/openai4j/chat/Content$Builder;\n-  #527 = Utf8               dev/ai4j/openai4j/chat/ContentType\n-  #528 = Utf8               TEXT\n-  #529 = Utf8               Ldev/ai4j/openai4j/chat/ContentType;\n-  #530 = Utf8               dev/ai4j/openai4j/chat/Content$Builder\n-  #531 = Utf8               (Ldev/ai4j/openai4j/chat/ContentType;)Ldev/ai4j/openai4j/chat/Content$Builder;\n-  #532 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Content$Builder;\n-  #533 = Utf8               ()Ldev/ai4j/openai4j/chat/Content;\n-  #534 = Utf8               IMAGE_URL\n-  #535 = Utf8               dev/ai4j/openai4j/chat/ImageUrl\n-  #536 = Utf8               ()Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n-  #537 = Utf8               ()Ldev/langchain4j/data/image/Image;\n-  #538 = Utf8               dev/ai4j/openai4j/chat/ImageUrl$Builder\n-  #539 = Utf8               url\n-  #540 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n-  #541 = Utf8               ()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-  #542 = Utf8               detail\n-  #543 = Utf8               (Ldev/ai4j/openai4j/chat/ImageDetail;)Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n-  #544 = Utf8               ()Ldev/ai4j/openai4j/chat/ImageUrl;\n-  #545 = Utf8               imageUrl\n-  #546 = Utf8               (Ldev/ai4j/openai4j/chat/ImageUrl;)Ldev/ai4j/openai4j/chat/Content$Builder;\n-  #547 = Utf8               dev/langchain4j/data/image/Image\n-  #548 = Utf8               ()Ljava/net/URI;\n-  #549 = Utf8               java/net/URI\n-  #550 = Utf8               mimeType\n-  #551 = Utf8               base64Data\n-  #552 = Utf8               format\n-  #553 = Utf8               (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n-  #554 = Utf8               dev/ai4j/openai4j/chat/ImageDetail\n-  #555 = Utf8               valueOf\n-  #556 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ImageDetail;\n-  #557 = Utf8               java/util/Collection\n-  #558 = Methodref          #149.#632     // dev/langchain4j/model/openai/InternalOpenAiHelper.toTool:(Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Tool;\n-  #559 = Utf8               dev/ai4j/openai4j/chat/Function\n-  #560 = Utf8               ()Ldev/ai4j/openai4j/chat/Function$Builder;\n-  #561 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n-  #562 = Utf8               dev/ai4j/openai4j/chat/Function$Builder\n-  #563 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Function$Builder;\n-  #564 = Utf8               description\n-  #565 = Utf8               parameters\n-  #566 = Utf8               ()Ldev/langchain4j/agent/tool/ToolParameters;\n-  #567 = Utf8               (Ldev/ai4j/openai4j/chat/Parameters;)Ldev/ai4j/openai4j/chat/Function$Builder;\n-  #568 = Utf8               ()Ldev/ai4j/openai4j/chat/Function;\n-  #569 = Utf8               dev/ai4j/openai4j/chat/Tool\n-  #570 = Utf8               (Ldev/ai4j/openai4j/chat/Function;)Ldev/ai4j/openai4j/chat/Tool;\n-  #571 = Methodref          #149.#633     // dev/langchain4j/model/openai/InternalOpenAiHelper.toFunction:(Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Function;\n-  #572 = Utf8               dev/ai4j/openai4j/chat/Parameters\n-  #573 = Utf8               ()Ldev/ai4j/openai4j/chat/Parameters$Builder;\n-  #574 = Utf8               dev/ai4j/openai4j/chat/Parameters$Builder\n-  #575 = Utf8               ()Ldev/ai4j/openai4j/chat/Parameters;\n-  #576 = Utf8               dev/langchain4j/agent/tool/ToolParameters\n-  #577 = Utf8               properties\n-  #578 = Utf8               ()Ljava/util/Map;\n-  #579 = Utf8               (Ljava/util/Map;)Ldev/ai4j/openai4j/chat/Parameters$Builder;\n-  #580 = Utf8               required\n-  #581 = Utf8               (Ljava/util/List;)Ldev/ai4j/openai4j/chat/Parameters$Builder;\n-  #582 = Utf8               dev/ai4j/openai4j/chat/ChatCompletionResponse\n-  #583 = Utf8               choices\n-  #584 = Utf8               dev/langchain4j/internal/Utils\n-  #585 = Utf8               isNullOrEmpty\n-  #586 = Utf8               (Ljava/util/Collection;)Z\n-  #587 = Utf8               (Ljava/lang/Object;)Z\n-  #588 = Methodref          #149.#634     // dev/langchain4j/model/openai/InternalOpenAiHelper.lambda$aiMessageFrom$1:(Ldev/ai4j/openai4j/chat/ToolCall;)Z\n-  #589 = Utf8               test\n-  #590 = Utf8               ()Ljava/util/function/Predicate;\n-  #591 = Utf8               filter\n-  #592 = Utf8               (Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n-  #593 = Methodref          #149.#635     // dev/langchain4j/model/openai/InternalOpenAiHelper.toToolExecutionRequest:(Ldev/ai4j/openai4j/chat/ToolCall;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #594 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n-  #595 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #596 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #597 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #598 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #599 = Utf8               ([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-  #600 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #601 = Utf8               dev/ai4j/openai4j/chat/ToolCall\n-  #602 = Utf8               dev/ai4j/openai4j/shared/Usage\n-  #603 = Utf8               promptTokens\n-  #604 = Utf8               ()Ljava/lang/Integer;\n-  #605 = Utf8               completionTokens\n-  #606 = Utf8               totalTokens\n-  #607 = Utf8               (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n-  #608 = Utf8               hashCode\n-  #609 = Utf8               ()I\n-  #610 = Utf8               equals\n-  #611 = Utf8               dev/langchain4j/model/output/FinishReason\n-  #612 = Utf8               STOP\n-  #613 = Utf8               Ldev/langchain4j/model/output/FinishReason;\n-  #614 = Utf8               LENGTH\n-  #615 = Utf8               TOOL_EXECUTION\n-  #616 = Utf8               CONTENT_FILTER\n-  #617 = Utf8               ()Ldev/ai4j/openai4j/chat/ToolType;\n-  #618 = Utf8               dev/ai4j/openai4j/chat/ToolType\n-  #619 = Utf8               FUNCTION\n-  #620 = Utf8               Ldev/ai4j/openai4j/chat/ToolType;\n-  #621 = Utf8               ()Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n-  #622 = Utf8               dev/ai4j/openai4j/chat/ToolCall$Builder\n-  #623 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n-  #624 = Utf8               (Ldev/ai4j/openai4j/chat/ToolType;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n-  #625 = Utf8               (Ldev/ai4j/openai4j/chat/FunctionCall;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n-  #626 = Utf8               ()Ldev/ai4j/openai4j/chat/ToolCall;\n-  #627 = Class              #636          // java/lang/invoke/LambdaMetafactory\n-  #628 = NameAndType        #637:#640     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #629 = NameAndType        #173:#174     // toOpenAiMessage:(Ldev/langchain4j/data/message/ChatMessage;)Ldev/ai4j/openai4j/chat/Message;\n-  #630 = NameAndType        #194:#195     // toOpenAiContent:(Ldev/langchain4j/data/message/Content;)Ldev/ai4j/openai4j/chat/Content;\n-  #631 = NameAndType        #261:#262     // lambda$toOpenAiMessage$0:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/ai4j/openai4j/chat/ToolCall;\n-  #632 = NameAndType        #219:#220     // toTool:(Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Tool;\n-  #633 = NameAndType        #230:#231     // toFunction:(Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Function;\n-  #634 = NameAndType        #259:#260     // lambda$aiMessageFrom$1:(Ldev/ai4j/openai4j/chat/ToolCall;)Z\n-  #635 = NameAndType        #247:#248     // toToolExecutionRequest:(Ldev/ai4j/openai4j/chat/ToolCall;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #636 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #637 = Utf8               metafactory\n-  #638 = Class              #642          // java/lang/invoke/MethodHandles$Lookup\n-  #639 = Utf8               Lookup\n-  #640 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #641 = Class              #643          // java/lang/invoke/MethodHandles\n-  #642 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #643 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = InterfaceMethodref #8.#9         // java/util/List.stream:()Ljava/util/stream/Stream;\n+    #8 = Class              #10           // java/util/List\n+    #9 = NameAndType        #11:#12       // stream:()Ljava/util/stream/Stream;\n+   #10 = Utf8               java/util/List\n+   #11 = Utf8               stream\n+   #12 = Utf8               ()Ljava/util/stream/Stream;\n+   #13 = InvokeDynamic      #0:#14        // #0:apply:()Ljava/util/function/Function;\n+   #14 = NameAndType        #15:#16       // apply:()Ljava/util/function/Function;\n+   #15 = Utf8               apply\n+   #16 = Utf8               ()Ljava/util/function/Function;\n+   #17 = InterfaceMethodref #18.#19       // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #18 = Class              #20           // java/util/stream/Stream\n+   #19 = NameAndType        #21:#22       // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #20 = Utf8               java/util/stream/Stream\n+   #21 = Utf8               map\n+   #22 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+   #23 = Methodref          #24.#25       // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+   #24 = Class              #26           // java/util/stream/Collectors\n+   #25 = NameAndType        #27:#28       // toList:()Ljava/util/stream/Collector;\n+   #26 = Utf8               java/util/stream/Collectors\n+   #27 = Utf8               toList\n+   #28 = Utf8               ()Ljava/util/stream/Collector;\n+   #29 = InterfaceMethodref #18.#30       // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #30 = NameAndType        #31:#32       // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #31 = Utf8               collect\n+   #32 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n+   #33 = Class              #34           // dev/langchain4j/data/message/SystemMessage\n+   #34 = Utf8               dev/langchain4j/data/message/SystemMessage\n+   #35 = Methodref          #33.#36       // dev/langchain4j/data/message/SystemMessage.text:()Ljava/lang/String;\n+   #36 = NameAndType        #37:#38       // text:()Ljava/lang/String;\n+   #37 = Utf8               text\n+   #38 = Utf8               ()Ljava/lang/String;\n+   #39 = Methodref          #40.#41       // dev/ai4j/openai4j/chat/SystemMessage.from:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/SystemMessage;\n+   #40 = Class              #42           // dev/ai4j/openai4j/chat/SystemMessage\n+   #41 = NameAndType        #43:#44       // from:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/SystemMessage;\n+   #42 = Utf8               dev/ai4j/openai4j/chat/SystemMessage\n+   #43 = Utf8               from\n+   #44 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/chat/SystemMessage;\n+   #45 = Class              #46           // dev/langchain4j/data/message/UserMessage\n+   #46 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #47 = Methodref          #45.#48       // dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n+   #48 = NameAndType        #49:#50       // hasSingleText:()Z\n+   #49 = Utf8               hasSingleText\n+   #50 = Utf8               ()Z\n+   #51 = Methodref          #52.#53       // dev/ai4j/openai4j/chat/UserMessage.builder:()Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n+   #52 = Class              #54           // dev/ai4j/openai4j/chat/UserMessage\n+   #53 = NameAndType        #55:#56       // builder:()Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n+   #54 = Utf8               dev/ai4j/openai4j/chat/UserMessage\n+   #55 = Utf8               builder\n+   #56 = Utf8               ()Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n+   #57 = Methodref          #45.#36       // dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+   #58 = Methodref          #59.#60       // dev/ai4j/openai4j/chat/UserMessage$Builder.content:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n+   #59 = Class              #61           // dev/ai4j/openai4j/chat/UserMessage$Builder\n+   #60 = NameAndType        #62:#63       // content:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n+   #61 = Utf8               dev/ai4j/openai4j/chat/UserMessage$Builder\n+   #62 = Utf8               content\n+   #63 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n+   #64 = Methodref          #45.#65       // dev/langchain4j/data/message/UserMessage.name:()Ljava/lang/String;\n+   #65 = NameAndType        #66:#38       // name:()Ljava/lang/String;\n+   #66 = Utf8               name\n+   #67 = Methodref          #59.#68       // dev/ai4j/openai4j/chat/UserMessage$Builder.name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n+   #68 = NameAndType        #66:#63       // name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n+   #69 = Methodref          #59.#70       // dev/ai4j/openai4j/chat/UserMessage$Builder.build:()Ldev/ai4j/openai4j/chat/UserMessage;\n+   #70 = NameAndType        #71:#72       // build:()Ldev/ai4j/openai4j/chat/UserMessage;\n+   #71 = Utf8               build\n+   #72 = Utf8               ()Ldev/ai4j/openai4j/chat/UserMessage;\n+   #73 = Methodref          #45.#74       // dev/langchain4j/data/message/UserMessage.contents:()Ljava/util/List;\n+   #74 = NameAndType        #75:#76       // contents:()Ljava/util/List;\n+   #75 = Utf8               contents\n+   #76 = Utf8               ()Ljava/util/List;\n+   #77 = InvokeDynamic      #1:#14        // #1:apply:()Ljava/util/function/Function;\n+   #78 = Methodref          #59.#79       // dev/ai4j/openai4j/chat/UserMessage$Builder.content:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n+   #79 = NameAndType        #62:#80       // content:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n+   #80 = Utf8               (Ljava/util/List;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n+   #81 = Class              #82           // dev/langchain4j/data/message/AiMessage\n+   #82 = Utf8               dev/langchain4j/data/message/AiMessage\n+   #83 = Methodref          #81.#84       // dev/langchain4j/data/message/AiMessage.hasToolExecutionRequests:()Z\n+   #84 = NameAndType        #85:#50       // hasToolExecutionRequests:()Z\n+   #85 = Utf8               hasToolExecutionRequests\n+   #86 = Methodref          #81.#36       // dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+   #87 = Methodref          #88.#89       // dev/ai4j/openai4j/chat/AssistantMessage.from:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/AssistantMessage;\n+   #88 = Class              #90           // dev/ai4j/openai4j/chat/AssistantMessage\n+   #89 = NameAndType        #43:#91       // from:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/AssistantMessage;\n+   #90 = Utf8               dev/ai4j/openai4j/chat/AssistantMessage\n+   #91 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/chat/AssistantMessage;\n+   #92 = Methodref          #81.#93       // dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+   #93 = NameAndType        #94:#76       // toolExecutionRequests:()Ljava/util/List;\n+   #94 = Utf8               toolExecutionRequests\n+   #95 = InterfaceMethodref #8.#96        // java/util/List.get:(I)Ljava/lang/Object;\n+   #96 = NameAndType        #97:#98       // get:(I)Ljava/lang/Object;\n+   #97 = Utf8               get\n+   #98 = Utf8               (I)Ljava/lang/Object;\n+   #99 = Class              #100          // dev/langchain4j/agent/tool/ToolExecutionRequest\n+  #100 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n+  #101 = Methodref          #99.#102      // dev/langchain4j/agent/tool/ToolExecutionRequest.id:()Ljava/lang/String;\n+  #102 = NameAndType        #103:#38      // id:()Ljava/lang/String;\n+  #103 = Utf8               id\n+  #104 = Methodref          #105.#106     // dev/ai4j/openai4j/chat/FunctionCall.builder:()Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n+  #105 = Class              #107          // dev/ai4j/openai4j/chat/FunctionCall\n+  #106 = NameAndType        #55:#108      // builder:()Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n+  #107 = Utf8               dev/ai4j/openai4j/chat/FunctionCall\n+  #108 = Utf8               ()Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n+  #109 = Methodref          #99.#65       // dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n+  #110 = Methodref          #111.#112     // dev/ai4j/openai4j/chat/FunctionCall$Builder.name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n+  #111 = Class              #113          // dev/ai4j/openai4j/chat/FunctionCall$Builder\n+  #112 = NameAndType        #66:#114      // name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n+  #113 = Utf8               dev/ai4j/openai4j/chat/FunctionCall$Builder\n+  #114 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n+  #115 = Methodref          #99.#116      // dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+  #116 = NameAndType        #117:#38      // arguments:()Ljava/lang/String;\n+  #117 = Utf8               arguments\n+  #118 = Methodref          #111.#119     // dev/ai4j/openai4j/chat/FunctionCall$Builder.arguments:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n+  #119 = NameAndType        #117:#114     // arguments:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n+  #120 = Methodref          #111.#121     // dev/ai4j/openai4j/chat/FunctionCall$Builder.build:()Ldev/ai4j/openai4j/chat/FunctionCall;\n+  #121 = NameAndType        #71:#122      // build:()Ldev/ai4j/openai4j/chat/FunctionCall;\n+  #122 = Utf8               ()Ldev/ai4j/openai4j/chat/FunctionCall;\n+  #123 = Methodref          #88.#124      // dev/ai4j/openai4j/chat/AssistantMessage.builder:()Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n+  #124 = NameAndType        #55:#125      // builder:()Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n+  #125 = Utf8               ()Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n+  #126 = Methodref          #127.#128     // dev/ai4j/openai4j/chat/AssistantMessage$Builder.functionCall:(Ldev/ai4j/openai4j/chat/FunctionCall;)Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n+  #127 = Class              #129          // dev/ai4j/openai4j/chat/AssistantMessage$Builder\n+  #128 = NameAndType        #130:#131     // functionCall:(Ldev/ai4j/openai4j/chat/FunctionCall;)Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n+  #129 = Utf8               dev/ai4j/openai4j/chat/AssistantMessage$Builder\n+  #130 = Utf8               functionCall\n+  #131 = Utf8               (Ldev/ai4j/openai4j/chat/FunctionCall;)Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n+  #132 = Methodref          #127.#133     // dev/ai4j/openai4j/chat/AssistantMessage$Builder.build:()Ldev/ai4j/openai4j/chat/AssistantMessage;\n+  #133 = NameAndType        #71:#134      // build:()Ldev/ai4j/openai4j/chat/AssistantMessage;\n+  #134 = Utf8               ()Ldev/ai4j/openai4j/chat/AssistantMessage;\n+  #135 = InvokeDynamic      #2:#14        // #2:apply:()Ljava/util/function/Function;\n+  #136 = Methodref          #127.#137     // dev/ai4j/openai4j/chat/AssistantMessage$Builder.toolCalls:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n+  #137 = NameAndType        #138:#139     // toolCalls:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n+  #138 = Utf8               toolCalls\n+  #139 = Utf8               (Ljava/util/List;)Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n+  #140 = Class              #141          // dev/langchain4j/data/message/ToolExecutionResultMessage\n+  #141 = Utf8               dev/langchain4j/data/message/ToolExecutionResultMessage\n+  #142 = Methodref          #140.#102     // dev/langchain4j/data/message/ToolExecutionResultMessage.id:()Ljava/lang/String;\n+  #143 = Methodref          #140.#144     // dev/langchain4j/data/message/ToolExecutionResultMessage.toolName:()Ljava/lang/String;\n+  #144 = NameAndType        #145:#38      // toolName:()Ljava/lang/String;\n+  #145 = Utf8               toolName\n+  #146 = Methodref          #140.#36      // dev/langchain4j/data/message/ToolExecutionResultMessage.text:()Ljava/lang/String;\n+  #147 = Methodref          #148.#149     // dev/ai4j/openai4j/chat/FunctionMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionMessage;\n+  #148 = Class              #150          // dev/ai4j/openai4j/chat/FunctionMessage\n+  #149 = NameAndType        #43:#151      // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionMessage;\n+  #150 = Utf8               dev/ai4j/openai4j/chat/FunctionMessage\n+  #151 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionMessage;\n+  #152 = Methodref          #153.#154     // dev/ai4j/openai4j/chat/ToolMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ToolMessage;\n+  #153 = Class              #155          // dev/ai4j/openai4j/chat/ToolMessage\n+  #154 = NameAndType        #43:#156      // from:(Ljava/lang/String;Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ToolMessage;\n+  #155 = Utf8               dev/ai4j/openai4j/chat/ToolMessage\n+  #156 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ToolMessage;\n+  #157 = Class              #158          // java/lang/StringBuilder\n+  #158 = Utf8               java/lang/StringBuilder\n+  #159 = Methodref          #157.#3       // java/lang/StringBuilder.\"<init>\":()V\n+  #160 = String             #161          // Unknown message type:\n+  #161 = Utf8               Unknown message type:\n+  #162 = Methodref          #157.#163     // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+  #163 = NameAndType        #164:#165     // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+  #164 = Utf8               append\n+  #165 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n+  #166 = InterfaceMethodref #167.#168     // dev/langchain4j/data/message/ChatMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n+  #167 = Class              #169          // dev/langchain4j/data/message/ChatMessage\n+  #168 = NameAndType        #170:#171     // type:()Ldev/langchain4j/data/message/ChatMessageType;\n+  #169 = Utf8               dev/langchain4j/data/message/ChatMessage\n+  #170 = Utf8               type\n+  #171 = Utf8               ()Ldev/langchain4j/data/message/ChatMessageType;\n+  #172 = Methodref          #157.#173     // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+  #173 = NameAndType        #164:#174     // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+  #174 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+  #175 = Methodref          #157.#176     // java/lang/StringBuilder.toString:()Ljava/lang/String;\n+  #176 = NameAndType        #177:#38      // toString:()Ljava/lang/String;\n+  #177 = Utf8               toString\n+  #178 = Methodref          #179.#180     // dev/langchain4j/internal/Exceptions.illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n+  #179 = Class              #181          // dev/langchain4j/internal/Exceptions\n+  #180 = NameAndType        #182:#183     // illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n+  #181 = Utf8               dev/langchain4j/internal/Exceptions\n+  #182 = Utf8               illegalArgument\n+  #183 = Utf8               (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n+  #184 = Class              #185          // dev/langchain4j/data/message/TextContent\n+  #185 = Utf8               dev/langchain4j/data/message/TextContent\n+  #186 = Methodref          #187.#188     // dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiContent:(Ldev/langchain4j/data/message/TextContent;)Ldev/ai4j/openai4j/chat/Content;\n+  #187 = Class              #189          // dev/langchain4j/model/openai/InternalOpenAiHelper\n+  #188 = NameAndType        #190:#191     // toOpenAiContent:(Ldev/langchain4j/data/message/TextContent;)Ldev/ai4j/openai4j/chat/Content;\n+  #189 = Utf8               dev/langchain4j/model/openai/InternalOpenAiHelper\n+  #190 = Utf8               toOpenAiContent\n+  #191 = Utf8               (Ldev/langchain4j/data/message/TextContent;)Ldev/ai4j/openai4j/chat/Content;\n+  #192 = Class              #193          // dev/langchain4j/data/message/ImageContent\n+  #193 = Utf8               dev/langchain4j/data/message/ImageContent\n+  #194 = Methodref          #187.#195     // dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiContent:(Ldev/langchain4j/data/message/ImageContent;)Ldev/ai4j/openai4j/chat/Content;\n+  #195 = NameAndType        #190:#196     // toOpenAiContent:(Ldev/langchain4j/data/message/ImageContent;)Ldev/ai4j/openai4j/chat/Content;\n+  #196 = Utf8               (Ldev/langchain4j/data/message/ImageContent;)Ldev/ai4j/openai4j/chat/Content;\n+  #197 = String             #198          // Unknown content type:\n+  #198 = Utf8               Unknown content type:\n+  #199 = Methodref          #200.#201     // dev/ai4j/openai4j/chat/Content.builder:()Ldev/ai4j/openai4j/chat/Content$Builder;\n+  #200 = Class              #202          // dev/ai4j/openai4j/chat/Content\n+  #201 = NameAndType        #55:#203      // builder:()Ldev/ai4j/openai4j/chat/Content$Builder;\n+  #202 = Utf8               dev/ai4j/openai4j/chat/Content\n+  #203 = Utf8               ()Ldev/ai4j/openai4j/chat/Content$Builder;\n+  #204 = Fieldref           #205.#206     // dev/ai4j/openai4j/chat/ContentType.TEXT:Ldev/ai4j/openai4j/chat/ContentType;\n+  #205 = Class              #207          // dev/ai4j/openai4j/chat/ContentType\n+  #206 = NameAndType        #208:#209     // TEXT:Ldev/ai4j/openai4j/chat/ContentType;\n+  #207 = Utf8               dev/ai4j/openai4j/chat/ContentType\n+  #208 = Utf8               TEXT\n+  #209 = Utf8               Ldev/ai4j/openai4j/chat/ContentType;\n+  #210 = Methodref          #211.#212     // dev/ai4j/openai4j/chat/Content$Builder.type:(Ldev/ai4j/openai4j/chat/ContentType;)Ldev/ai4j/openai4j/chat/Content$Builder;\n+  #211 = Class              #213          // dev/ai4j/openai4j/chat/Content$Builder\n+  #212 = NameAndType        #170:#214     // type:(Ldev/ai4j/openai4j/chat/ContentType;)Ldev/ai4j/openai4j/chat/Content$Builder;\n+  #213 = Utf8               dev/ai4j/openai4j/chat/Content$Builder\n+  #214 = Utf8               (Ldev/ai4j/openai4j/chat/ContentType;)Ldev/ai4j/openai4j/chat/Content$Builder;\n+  #215 = Methodref          #184.#36      // dev/langchain4j/data/message/TextContent.text:()Ljava/lang/String;\n+  #216 = Methodref          #211.#217     // dev/ai4j/openai4j/chat/Content$Builder.text:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Content$Builder;\n+  #217 = NameAndType        #37:#218      // text:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Content$Builder;\n+  #218 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Content$Builder;\n+  #219 = Methodref          #211.#220     // dev/ai4j/openai4j/chat/Content$Builder.build:()Ldev/ai4j/openai4j/chat/Content;\n+  #220 = NameAndType        #71:#221      // build:()Ldev/ai4j/openai4j/chat/Content;\n+  #221 = Utf8               ()Ldev/ai4j/openai4j/chat/Content;\n+  #222 = Fieldref           #205.#223     // dev/ai4j/openai4j/chat/ContentType.IMAGE_URL:Ldev/ai4j/openai4j/chat/ContentType;\n+  #223 = NameAndType        #224:#209     // IMAGE_URL:Ldev/ai4j/openai4j/chat/ContentType;\n+  #224 = Utf8               IMAGE_URL\n+  #225 = Methodref          #226.#227     // dev/ai4j/openai4j/chat/ImageUrl.builder:()Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n+  #226 = Class              #228          // dev/ai4j/openai4j/chat/ImageUrl\n+  #227 = NameAndType        #55:#229      // builder:()Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n+  #228 = Utf8               dev/ai4j/openai4j/chat/ImageUrl\n+  #229 = Utf8               ()Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n+  #230 = Methodref          #192.#231     // dev/langchain4j/data/message/ImageContent.image:()Ldev/langchain4j/data/image/Image;\n+  #231 = NameAndType        #232:#233     // image:()Ldev/langchain4j/data/image/Image;\n+  #232 = Utf8               image\n+  #233 = Utf8               ()Ldev/langchain4j/data/image/Image;\n+  #234 = Methodref          #187.#235     // dev/langchain4j/model/openai/InternalOpenAiHelper.toUrl:(Ldev/langchain4j/data/image/Image;)Ljava/lang/String;\n+  #235 = NameAndType        #236:#237     // toUrl:(Ldev/langchain4j/data/image/Image;)Ljava/lang/String;\n+  #236 = Utf8               toUrl\n+  #237 = Utf8               (Ldev/langchain4j/data/image/Image;)Ljava/lang/String;\n+  #238 = Methodref          #239.#240     // dev/ai4j/openai4j/chat/ImageUrl$Builder.url:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n+  #239 = Class              #241          // dev/ai4j/openai4j/chat/ImageUrl$Builder\n+  #240 = NameAndType        #242:#243     // url:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n+  #241 = Utf8               dev/ai4j/openai4j/chat/ImageUrl$Builder\n+  #242 = Utf8               url\n+  #243 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n+  #244 = Methodref          #192.#245     // dev/langchain4j/data/message/ImageContent.detailLevel:()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+  #245 = NameAndType        #246:#247     // detailLevel:()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+  #246 = Utf8               detailLevel\n+  #247 = Utf8               ()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+  #248 = Methodref          #187.#249     // dev/langchain4j/model/openai/InternalOpenAiHelper.toDetail:(Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/ai4j/openai4j/chat/ImageDetail;\n+  #249 = NameAndType        #250:#251     // toDetail:(Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/ai4j/openai4j/chat/ImageDetail;\n+  #250 = Utf8               toDetail\n+  #251 = Utf8               (Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/ai4j/openai4j/chat/ImageDetail;\n+  #252 = Methodref          #239.#253     // dev/ai4j/openai4j/chat/ImageUrl$Builder.detail:(Ldev/ai4j/openai4j/chat/ImageDetail;)Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n+  #253 = NameAndType        #254:#255     // detail:(Ldev/ai4j/openai4j/chat/ImageDetail;)Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n+  #254 = Utf8               detail\n+  #255 = Utf8               (Ldev/ai4j/openai4j/chat/ImageDetail;)Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n+  #256 = Methodref          #239.#257     // dev/ai4j/openai4j/chat/ImageUrl$Builder.build:()Ldev/ai4j/openai4j/chat/ImageUrl;\n+  #257 = NameAndType        #71:#258      // build:()Ldev/ai4j/openai4j/chat/ImageUrl;\n+  #258 = Utf8               ()Ldev/ai4j/openai4j/chat/ImageUrl;\n+  #259 = Methodref          #211.#260     // dev/ai4j/openai4j/chat/Content$Builder.imageUrl:(Ldev/ai4j/openai4j/chat/ImageUrl;)Ldev/ai4j/openai4j/chat/Content$Builder;\n+  #260 = NameAndType        #261:#262     // imageUrl:(Ldev/ai4j/openai4j/chat/ImageUrl;)Ldev/ai4j/openai4j/chat/Content$Builder;\n+  #261 = Utf8               imageUrl\n+  #262 = Utf8               (Ldev/ai4j/openai4j/chat/ImageUrl;)Ldev/ai4j/openai4j/chat/Content$Builder;\n+  #263 = Methodref          #264.#265     // dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+  #264 = Class              #266          // dev/langchain4j/data/image/Image\n+  #265 = NameAndType        #242:#267     // url:()Ljava/net/URI;\n+  #266 = Utf8               dev/langchain4j/data/image/Image\n+  #267 = Utf8               ()Ljava/net/URI;\n+  #268 = Methodref          #269.#176     // java/net/URI.toString:()Ljava/lang/String;\n+  #269 = Class              #270          // java/net/URI\n+  #270 = Utf8               java/net/URI\n+  #271 = String             #272          // data:%s;base64,%s\n+  #272 = Utf8               data:%s;base64,%s\n+  #273 = Methodref          #264.#274     // dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n+  #274 = NameAndType        #275:#38      // mimeType:()Ljava/lang/String;\n+  #275 = Utf8               mimeType\n+  #276 = Methodref          #264.#277     // dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n+  #277 = NameAndType        #278:#38      // base64Data:()Ljava/lang/String;\n+  #278 = Utf8               base64Data\n+  #279 = Methodref          #280.#281     // java/lang/String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n+  #280 = Class              #282          // java/lang/String\n+  #281 = NameAndType        #283:#284     // format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n+  #282 = Utf8               java/lang/String\n+  #283 = Utf8               format\n+  #284 = Utf8               (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n+  #285 = Methodref          #286.#65      // dev/langchain4j/data/message/ImageContent$DetailLevel.name:()Ljava/lang/String;\n+  #286 = Class              #287          // dev/langchain4j/data/message/ImageContent$DetailLevel\n+  #287 = Utf8               dev/langchain4j/data/message/ImageContent$DetailLevel\n+  #288 = Methodref          #289.#290     // dev/ai4j/openai4j/chat/ImageDetail.valueOf:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ImageDetail;\n+  #289 = Class              #291          // dev/ai4j/openai4j/chat/ImageDetail\n+  #290 = NameAndType        #292:#293     // valueOf:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ImageDetail;\n+  #291 = Utf8               dev/ai4j/openai4j/chat/ImageDetail\n+  #292 = Utf8               valueOf\n+  #293 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ImageDetail;\n+  #294 = InterfaceMethodref #295.#9       // java/util/Collection.stream:()Ljava/util/stream/Stream;\n+  #295 = Class              #296          // java/util/Collection\n+  #296 = Utf8               java/util/Collection\n+  #297 = InvokeDynamic      #3:#14        // #3:apply:()Ljava/util/function/Function;\n+  #298 = Methodref          #299.#300     // dev/ai4j/openai4j/chat/Function.builder:()Ldev/ai4j/openai4j/chat/Function$Builder;\n+  #299 = Class              #301          // dev/ai4j/openai4j/chat/Function\n+  #300 = NameAndType        #55:#302      // builder:()Ldev/ai4j/openai4j/chat/Function$Builder;\n+  #301 = Utf8               dev/ai4j/openai4j/chat/Function\n+  #302 = Utf8               ()Ldev/ai4j/openai4j/chat/Function$Builder;\n+  #303 = Methodref          #304.#65      // dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n+  #304 = Class              #305          // dev/langchain4j/agent/tool/ToolSpecification\n+  #305 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n+  #306 = Methodref          #307.#308     // dev/ai4j/openai4j/chat/Function$Builder.name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Function$Builder;\n+  #307 = Class              #309          // dev/ai4j/openai4j/chat/Function$Builder\n+  #308 = NameAndType        #66:#310      // name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Function$Builder;\n+  #309 = Utf8               dev/ai4j/openai4j/chat/Function$Builder\n+  #310 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Function$Builder;\n+  #311 = Methodref          #304.#312     // dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n+  #312 = NameAndType        #313:#38      // description:()Ljava/lang/String;\n+  #313 = Utf8               description\n+  #314 = Methodref          #307.#315     // dev/ai4j/openai4j/chat/Function$Builder.description:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Function$Builder;\n+  #315 = NameAndType        #313:#310     // description:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Function$Builder;\n+  #316 = Methodref          #304.#317     // dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+  #317 = NameAndType        #318:#319     // parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+  #318 = Utf8               parameters\n+  #319 = Utf8               ()Ldev/langchain4j/agent/tool/ToolParameters;\n+  #320 = Methodref          #187.#321     // dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiParameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/ai4j/openai4j/chat/Parameters;\n+  #321 = NameAndType        #322:#323     // toOpenAiParameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/ai4j/openai4j/chat/Parameters;\n+  #322 = Utf8               toOpenAiParameters\n+  #323 = Utf8               (Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/ai4j/openai4j/chat/Parameters;\n+  #324 = Methodref          #307.#325     // dev/ai4j/openai4j/chat/Function$Builder.parameters:(Ldev/ai4j/openai4j/chat/Parameters;)Ldev/ai4j/openai4j/chat/Function$Builder;\n+  #325 = NameAndType        #318:#326     // parameters:(Ldev/ai4j/openai4j/chat/Parameters;)Ldev/ai4j/openai4j/chat/Function$Builder;\n+  #326 = Utf8               (Ldev/ai4j/openai4j/chat/Parameters;)Ldev/ai4j/openai4j/chat/Function$Builder;\n+  #327 = Methodref          #307.#328     // dev/ai4j/openai4j/chat/Function$Builder.build:()Ldev/ai4j/openai4j/chat/Function;\n+  #328 = NameAndType        #71:#329      // build:()Ldev/ai4j/openai4j/chat/Function;\n+  #329 = Utf8               ()Ldev/ai4j/openai4j/chat/Function;\n+  #330 = Methodref          #331.#332     // dev/ai4j/openai4j/chat/Tool.from:(Ldev/ai4j/openai4j/chat/Function;)Ldev/ai4j/openai4j/chat/Tool;\n+  #331 = Class              #333          // dev/ai4j/openai4j/chat/Tool\n+  #332 = NameAndType        #43:#334      // from:(Ldev/ai4j/openai4j/chat/Function;)Ldev/ai4j/openai4j/chat/Tool;\n+  #333 = Utf8               dev/ai4j/openai4j/chat/Tool\n+  #334 = Utf8               (Ldev/ai4j/openai4j/chat/Function;)Ldev/ai4j/openai4j/chat/Tool;\n+  #335 = InvokeDynamic      #4:#14        // #4:apply:()Ljava/util/function/Function;\n+  #336 = Methodref          #337.#338     // dev/ai4j/openai4j/chat/Parameters.builder:()Ldev/ai4j/openai4j/chat/Parameters$Builder;\n+  #337 = Class              #339          // dev/ai4j/openai4j/chat/Parameters\n+  #338 = NameAndType        #55:#340      // builder:()Ldev/ai4j/openai4j/chat/Parameters$Builder;\n+  #339 = Utf8               dev/ai4j/openai4j/chat/Parameters\n+  #340 = Utf8               ()Ldev/ai4j/openai4j/chat/Parameters$Builder;\n+  #341 = Methodref          #342.#343     // dev/ai4j/openai4j/chat/Parameters$Builder.build:()Ldev/ai4j/openai4j/chat/Parameters;\n+  #342 = Class              #344          // dev/ai4j/openai4j/chat/Parameters$Builder\n+  #343 = NameAndType        #71:#345      // build:()Ldev/ai4j/openai4j/chat/Parameters;\n+  #344 = Utf8               dev/ai4j/openai4j/chat/Parameters$Builder\n+  #345 = Utf8               ()Ldev/ai4j/openai4j/chat/Parameters;\n+  #346 = Methodref          #347.#348     // dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n+  #347 = Class              #349          // dev/langchain4j/agent/tool/ToolParameters\n+  #348 = NameAndType        #350:#351     // properties:()Ljava/util/Map;\n+  #349 = Utf8               dev/langchain4j/agent/tool/ToolParameters\n+  #350 = Utf8               properties\n+  #351 = Utf8               ()Ljava/util/Map;\n+  #352 = Methodref          #342.#353     // dev/ai4j/openai4j/chat/Parameters$Builder.properties:(Ljava/util/Map;)Ldev/ai4j/openai4j/chat/Parameters$Builder;\n+  #353 = NameAndType        #350:#354     // properties:(Ljava/util/Map;)Ldev/ai4j/openai4j/chat/Parameters$Builder;\n+  #354 = Utf8               (Ljava/util/Map;)Ldev/ai4j/openai4j/chat/Parameters$Builder;\n+  #355 = Methodref          #347.#356     // dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n+  #356 = NameAndType        #357:#76      // required:()Ljava/util/List;\n+  #357 = Utf8               required\n+  #358 = Methodref          #342.#359     // dev/ai4j/openai4j/chat/Parameters$Builder.required:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/Parameters$Builder;\n+  #359 = NameAndType        #357:#360     // required:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/Parameters$Builder;\n+  #360 = Utf8               (Ljava/util/List;)Ldev/ai4j/openai4j/chat/Parameters$Builder;\n+  #361 = Methodref          #362.#363     // dev/ai4j/openai4j/chat/ChatCompletionResponse.choices:()Ljava/util/List;\n+  #362 = Class              #364          // dev/ai4j/openai4j/chat/ChatCompletionResponse\n+  #363 = NameAndType        #365:#76      // choices:()Ljava/util/List;\n+  #364 = Utf8               dev/ai4j/openai4j/chat/ChatCompletionResponse\n+  #365 = Utf8               choices\n+  #366 = Class              #367          // dev/ai4j/openai4j/chat/ChatCompletionChoice\n+  #367 = Utf8               dev/ai4j/openai4j/chat/ChatCompletionChoice\n+  #368 = Methodref          #366.#369     // dev/ai4j/openai4j/chat/ChatCompletionChoice.message:()Ldev/ai4j/openai4j/chat/AssistantMessage;\n+  #369 = NameAndType        #370:#134     // message:()Ldev/ai4j/openai4j/chat/AssistantMessage;\n+  #370 = Utf8               message\n+  #371 = Methodref          #88.#372      // dev/ai4j/openai4j/chat/AssistantMessage.toolCalls:()Ljava/util/List;\n+  #372 = NameAndType        #138:#76      // toolCalls:()Ljava/util/List;\n+  #373 = Methodref          #374.#375     // dev/langchain4j/internal/Utils.isNullOrEmpty:(Ljava/util/Collection;)Z\n+  #374 = Class              #376          // dev/langchain4j/internal/Utils\n+  #375 = NameAndType        #377:#378     // isNullOrEmpty:(Ljava/util/Collection;)Z\n+  #376 = Utf8               dev/langchain4j/internal/Utils\n+  #377 = Utf8               isNullOrEmpty\n+  #378 = Utf8               (Ljava/util/Collection;)Z\n+  #379 = InvokeDynamic      #5:#380       // #5:test:()Ljava/util/function/Predicate;\n+  #380 = NameAndType        #381:#382     // test:()Ljava/util/function/Predicate;\n+  #381 = Utf8               test\n+  #382 = Utf8               ()Ljava/util/function/Predicate;\n+  #383 = InterfaceMethodref #18.#384      // java/util/stream/Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n+  #384 = NameAndType        #385:#386     // filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n+  #385 = Utf8               filter\n+  #386 = Utf8               (Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n+  #387 = InvokeDynamic      #6:#14        // #6:apply:()Ljava/util/function/Function;\n+  #388 = Methodref          #81.#389      // dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+  #389 = NameAndType        #390:#391     // aiMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+  #390 = Utf8               aiMessage\n+  #391 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+  #392 = Methodref          #88.#393      // dev/ai4j/openai4j/chat/AssistantMessage.functionCall:()Ldev/ai4j/openai4j/chat/FunctionCall;\n+  #393 = NameAndType        #130:#122     // functionCall:()Ldev/ai4j/openai4j/chat/FunctionCall;\n+  #394 = Methodref          #99.#395      // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #395 = NameAndType        #55:#396      // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #396 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #397 = Methodref          #105.#65      // dev/ai4j/openai4j/chat/FunctionCall.name:()Ljava/lang/String;\n+  #398 = Methodref          #399.#400     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #399 = Class              #401          // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+  #400 = NameAndType        #66:#402      // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #401 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+  #402 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #403 = Methodref          #105.#116     // dev/ai4j/openai4j/chat/FunctionCall.arguments:()Ljava/lang/String;\n+  #404 = Methodref          #399.#405     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #405 = NameAndType        #117:#402     // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #406 = Methodref          #399.#407     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #407 = NameAndType        #71:#408      // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #408 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #409 = Methodref          #81.#410      // dev/langchain4j/data/message/AiMessage.aiMessage:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #410 = NameAndType        #390:#411     // aiMessage:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #411 = Utf8               ([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #412 = Methodref          #88.#413      // dev/ai4j/openai4j/chat/AssistantMessage.content:()Ljava/lang/String;\n+  #413 = NameAndType        #62:#38       // content:()Ljava/lang/String;\n+  #414 = Methodref          #81.#415      // dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+  #415 = NameAndType        #390:#416     // aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+  #416 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+  #417 = Methodref          #418.#419     // dev/ai4j/openai4j/chat/ToolCall.function:()Ldev/ai4j/openai4j/chat/FunctionCall;\n+  #418 = Class              #420          // dev/ai4j/openai4j/chat/ToolCall\n+  #419 = NameAndType        #421:#122     // function:()Ldev/ai4j/openai4j/chat/FunctionCall;\n+  #420 = Utf8               dev/ai4j/openai4j/chat/ToolCall\n+  #421 = Utf8               function\n+  #422 = Methodref          #418.#102     // dev/ai4j/openai4j/chat/ToolCall.id:()Ljava/lang/String;\n+  #423 = Methodref          #399.#424     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #424 = NameAndType        #103:#402     // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #425 = Class              #426          // dev/langchain4j/model/output/TokenUsage\n+  #426 = Utf8               dev/langchain4j/model/output/TokenUsage\n+  #427 = Methodref          #428.#429     // dev/ai4j/openai4j/shared/Usage.promptTokens:()Ljava/lang/Integer;\n+  #428 = Class              #430          // dev/ai4j/openai4j/shared/Usage\n+  #429 = NameAndType        #431:#432     // promptTokens:()Ljava/lang/Integer;\n+  #430 = Utf8               dev/ai4j/openai4j/shared/Usage\n+  #431 = Utf8               promptTokens\n+  #432 = Utf8               ()Ljava/lang/Integer;\n+  #433 = Methodref          #428.#434     // dev/ai4j/openai4j/shared/Usage.completionTokens:()Ljava/lang/Integer;\n+  #434 = NameAndType        #435:#432     // completionTokens:()Ljava/lang/Integer;\n+  #435 = Utf8               completionTokens\n+  #436 = Methodref          #428.#437     // dev/ai4j/openai4j/shared/Usage.totalTokens:()Ljava/lang/Integer;\n+  #437 = NameAndType        #438:#432     // totalTokens:()Ljava/lang/Integer;\n+  #438 = Utf8               totalTokens\n+  #439 = Methodref          #425.#440     // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+  #440 = NameAndType        #5:#441       // \"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+  #441 = Utf8               (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+  #442 = Methodref          #280.#443     // java/lang/String.hashCode:()I\n+  #443 = NameAndType        #444:#445     // hashCode:()I\n+  #444 = Utf8               hashCode\n+  #445 = Utf8               ()I\n+  #446 = String             #447          // stop\n+  #447 = Utf8               stop\n+  #448 = Methodref          #280.#449     // java/lang/String.equals:(Ljava/lang/Object;)Z\n+  #449 = NameAndType        #450:#451     // equals:(Ljava/lang/Object;)Z\n+  #450 = Utf8               equals\n+  #451 = Utf8               (Ljava/lang/Object;)Z\n+  #452 = String             #453          // length\n+  #453 = Utf8               length\n+  #454 = String             #455          // tool_calls\n+  #455 = Utf8               tool_calls\n+  #456 = String             #457          // function_call\n+  #457 = Utf8               function_call\n+  #458 = String             #459          // content_filter\n+  #459 = Utf8               content_filter\n+  #460 = Fieldref           #461.#462     // dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n+  #461 = Class              #463          // dev/langchain4j/model/output/FinishReason\n+  #462 = NameAndType        #464:#465     // STOP:Ldev/langchain4j/model/output/FinishReason;\n+  #463 = Utf8               dev/langchain4j/model/output/FinishReason\n+  #464 = Utf8               STOP\n+  #465 = Utf8               Ldev/langchain4j/model/output/FinishReason;\n+  #466 = Fieldref           #461.#467     // dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+  #467 = NameAndType        #468:#465     // LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+  #468 = Utf8               LENGTH\n+  #469 = Fieldref           #461.#470     // dev/langchain4j/model/output/FinishReason.TOOL_EXECUTION:Ldev/langchain4j/model/output/FinishReason;\n+  #470 = NameAndType        #471:#465     // TOOL_EXECUTION:Ldev/langchain4j/model/output/FinishReason;\n+  #471 = Utf8               TOOL_EXECUTION\n+  #472 = Fieldref           #461.#473     // dev/langchain4j/model/output/FinishReason.CONTENT_FILTER:Ldev/langchain4j/model/output/FinishReason;\n+  #473 = NameAndType        #474:#465     // CONTENT_FILTER:Ldev/langchain4j/model/output/FinishReason;\n+  #474 = Utf8               CONTENT_FILTER\n+  #475 = Methodref          #418.#476     // dev/ai4j/openai4j/chat/ToolCall.type:()Ldev/ai4j/openai4j/chat/ToolType;\n+  #476 = NameAndType        #170:#477     // type:()Ldev/ai4j/openai4j/chat/ToolType;\n+  #477 = Utf8               ()Ldev/ai4j/openai4j/chat/ToolType;\n+  #478 = Fieldref           #479.#480     // dev/ai4j/openai4j/chat/ToolType.FUNCTION:Ldev/ai4j/openai4j/chat/ToolType;\n+  #479 = Class              #481          // dev/ai4j/openai4j/chat/ToolType\n+  #480 = NameAndType        #482:#483     // FUNCTION:Ldev/ai4j/openai4j/chat/ToolType;\n+  #481 = Utf8               dev/ai4j/openai4j/chat/ToolType\n+  #482 = Utf8               FUNCTION\n+  #483 = Utf8               Ldev/ai4j/openai4j/chat/ToolType;\n+  #484 = Methodref          #418.#485     // dev/ai4j/openai4j/chat/ToolCall.builder:()Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n+  #485 = NameAndType        #55:#486      // builder:()Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n+  #486 = Utf8               ()Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n+  #487 = Methodref          #488.#489     // dev/ai4j/openai4j/chat/ToolCall$Builder.id:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n+  #488 = Class              #490          // dev/ai4j/openai4j/chat/ToolCall$Builder\n+  #489 = NameAndType        #103:#491     // id:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n+  #490 = Utf8               dev/ai4j/openai4j/chat/ToolCall$Builder\n+  #491 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n+  #492 = Methodref          #488.#493     // dev/ai4j/openai4j/chat/ToolCall$Builder.type:(Ldev/ai4j/openai4j/chat/ToolType;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n+  #493 = NameAndType        #170:#494     // type:(Ldev/ai4j/openai4j/chat/ToolType;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n+  #494 = Utf8               (Ldev/ai4j/openai4j/chat/ToolType;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n+  #495 = Methodref          #488.#496     // dev/ai4j/openai4j/chat/ToolCall$Builder.function:(Ldev/ai4j/openai4j/chat/FunctionCall;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n+  #496 = NameAndType        #421:#497     // function:(Ldev/ai4j/openai4j/chat/FunctionCall;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n+  #497 = Utf8               (Ldev/ai4j/openai4j/chat/FunctionCall;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n+  #498 = Methodref          #488.#499     // dev/ai4j/openai4j/chat/ToolCall$Builder.build:()Ldev/ai4j/openai4j/chat/ToolCall;\n+  #499 = NameAndType        #71:#500      // build:()Ldev/ai4j/openai4j/chat/ToolCall;\n+  #500 = Utf8               ()Ldev/ai4j/openai4j/chat/ToolCall;\n+  #501 = Utf8               OPENAI_URL\n+  #502 = Utf8               Ljava/lang/String;\n+  #503 = Utf8               ConstantValue\n+  #504 = String             #505          // https://api.openai.com/v1\n+  #505 = Utf8               https://api.openai.com/v1\n+  #506 = Utf8               OPENAI_DEMO_API_KEY\n+  #507 = String             #508          // demo\n+  #508 = Utf8               demo\n+  #509 = Utf8               OPENAI_DEMO_URL\n+  #510 = String             #511          // http://langchain4j.dev/demo/openai/v1\n+  #511 = Utf8               http://langchain4j.dev/demo/openai/v1\n+  #512 = Utf8               Code\n+  #513 = Utf8               LineNumberTable\n+  #514 = Utf8               LocalVariableTable\n+  #515 = Utf8               this\n+  #516 = Utf8               Ldev/langchain4j/model/openai/InternalOpenAiHelper;\n+  #517 = Utf8               toOpenAiMessages\n+  #518 = Utf8               (Ljava/util/List;)Ljava/util/List;\n+  #519 = Utf8               messages\n+  #520 = Utf8               Ljava/util/List;\n+  #521 = Utf8               LocalVariableTypeTable\n+  #522 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #523 = Utf8               Signature\n+  #524 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ljava/util/List<Ldev/ai4j/openai4j/chat/Message;>;\n+  #525 = Utf8               toOpenAiMessage\n+  #526 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)Ldev/ai4j/openai4j/chat/Message;\n+  #527 = Utf8               userMessage\n+  #528 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n+  #529 = Utf8               Ldev/ai4j/openai4j/chat/FunctionCall;\n+  #530 = Utf8               Ldev/langchain4j/data/message/AiMessage;\n+  #531 = Utf8               toolExecutionRequest\n+  #532 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #533 = Utf8               toolExecutionResultMessage\n+  #534 = Utf8               Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #535 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n+  #536 = Utf8               Ljava/util/List<Ldev/ai4j/openai4j/chat/ToolCall;>;\n+  #537 = Utf8               StackMapTable\n+  #538 = Utf8               (Ldev/langchain4j/data/message/Content;)Ldev/ai4j/openai4j/chat/Content;\n+  #539 = Utf8               Ldev/langchain4j/data/message/Content;\n+  #540 = Utf8               Ldev/langchain4j/data/message/TextContent;\n+  #541 = Utf8               Ldev/langchain4j/data/message/ImageContent;\n+  #542 = Utf8               Ldev/langchain4j/data/image/Image;\n+  #543 = Utf8               Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+  #544 = Utf8               toTools\n+  #545 = Utf8               (Ljava/util/Collection;)Ljava/util/List;\n+  #546 = Utf8               toolSpecifications\n+  #547 = Utf8               Ljava/util/Collection;\n+  #548 = Utf8               Ljava/util/Collection<Ldev/langchain4j/agent/tool/ToolSpecification;>;\n+  #549 = Utf8               (Ljava/util/Collection<Ldev/langchain4j/agent/tool/ToolSpecification;>;)Ljava/util/List<Ldev/ai4j/openai4j/chat/Tool;>;\n+  #550 = Utf8               toTool\n+  #551 = Utf8               (Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Tool;\n+  #552 = Utf8               toolSpecification\n+  #553 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecification;\n+  #554 = Utf8               Ldev/ai4j/openai4j/chat/Function;\n+  #555 = Utf8               toFunctions\n+  #556 = Utf8               Deprecated\n+  #557 = Utf8               (Ljava/util/Collection<Ldev/langchain4j/agent/tool/ToolSpecification;>;)Ljava/util/List<Ldev/ai4j/openai4j/chat/Function;>;\n+  #558 = Utf8               RuntimeVisibleAnnotations\n+  #559 = Utf8               Ljava/lang/Deprecated;\n+  #560 = Utf8               toFunction\n+  #561 = Utf8               (Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Function;\n+  #562 = Utf8               toolParameters\n+  #563 = Utf8               Ldev/langchain4j/agent/tool/ToolParameters;\n+  #564 = Utf8               aiMessageFrom\n+  #565 = Utf8               (Ldev/ai4j/openai4j/chat/ChatCompletionResponse;)Ldev/langchain4j/data/message/AiMessage;\n+  #566 = Utf8               response\n+  #567 = Utf8               Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n+  #568 = Utf8               assistantMessage\n+  #569 = Utf8               Ldev/ai4j/openai4j/chat/AssistantMessage;\n+  #570 = Utf8               Ljava/util/List<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;\n+  #571 = Utf8               toToolExecutionRequest\n+  #572 = Utf8               (Ldev/ai4j/openai4j/chat/ToolCall;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #573 = Utf8               toolCall\n+  #574 = Utf8               Ldev/ai4j/openai4j/chat/ToolCall;\n+  #575 = Utf8               tokenUsageFrom\n+  #576 = Utf8               (Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n+  #577 = Utf8               openAiUsage\n+  #578 = Utf8               Ldev/ai4j/openai4j/shared/Usage;\n+  #579 = Utf8               finishReasonFrom\n+  #580 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n+  #581 = Utf8               openAiFinishReason\n+  #582 = Utf8               lambda$aiMessageFrom$1\n+  #583 = Utf8               (Ldev/ai4j/openai4j/chat/ToolCall;)Z\n+  #584 = Utf8               lambda$toOpenAiMessage$0\n+  #585 = Utf8               (Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/ai4j/openai4j/chat/ToolCall;\n+  #586 = Utf8               it\n+  #587 = Utf8               SourceFile\n+  #588 = Utf8               InternalOpenAiHelper.java\n+  #589 = Utf8               BootstrapMethods\n+  #590 = MethodHandle       6:#591        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #591 = Methodref          #592.#593     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #592 = Class              #594          // java/lang/invoke/LambdaMetafactory\n+  #593 = NameAndType        #595:#596     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #594 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #595 = Utf8               metafactory\n+  #596 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #597 = MethodType         #598          //  (Ljava/lang/Object;)Ljava/lang/Object;\n+  #598 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #599 = MethodHandle       6:#600        // REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiMessage:(Ldev/langchain4j/data/message/ChatMessage;)Ldev/ai4j/openai4j/chat/Message;\n+  #600 = Methodref          #187.#601     // dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiMessage:(Ldev/langchain4j/data/message/ChatMessage;)Ldev/ai4j/openai4j/chat/Message;\n+  #601 = NameAndType        #525:#526     // toOpenAiMessage:(Ldev/langchain4j/data/message/ChatMessage;)Ldev/ai4j/openai4j/chat/Message;\n+  #602 = MethodType         #526          //  (Ldev/langchain4j/data/message/ChatMessage;)Ldev/ai4j/openai4j/chat/Message;\n+  #603 = MethodHandle       6:#604        // REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiContent:(Ldev/langchain4j/data/message/Content;)Ldev/ai4j/openai4j/chat/Content;\n+  #604 = Methodref          #187.#605     // dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiContent:(Ldev/langchain4j/data/message/Content;)Ldev/ai4j/openai4j/chat/Content;\n+  #605 = NameAndType        #190:#538     // toOpenAiContent:(Ldev/langchain4j/data/message/Content;)Ldev/ai4j/openai4j/chat/Content;\n+  #606 = MethodType         #538          //  (Ldev/langchain4j/data/message/Content;)Ldev/ai4j/openai4j/chat/Content;\n+  #607 = MethodHandle       6:#608        // REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.lambda$toOpenAiMessage$0:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/ai4j/openai4j/chat/ToolCall;\n+  #608 = Methodref          #187.#609     // dev/langchain4j/model/openai/InternalOpenAiHelper.lambda$toOpenAiMessage$0:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/ai4j/openai4j/chat/ToolCall;\n+  #609 = NameAndType        #584:#585     // lambda$toOpenAiMessage$0:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/ai4j/openai4j/chat/ToolCall;\n+  #610 = MethodType         #585          //  (Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/ai4j/openai4j/chat/ToolCall;\n+  #611 = MethodHandle       6:#612        // REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.toTool:(Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Tool;\n+  #612 = Methodref          #187.#613     // dev/langchain4j/model/openai/InternalOpenAiHelper.toTool:(Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Tool;\n+  #613 = NameAndType        #550:#551     // toTool:(Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Tool;\n+  #614 = MethodType         #551          //  (Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Tool;\n+  #615 = MethodHandle       6:#616        // REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.toFunction:(Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Function;\n+  #616 = Methodref          #187.#617     // dev/langchain4j/model/openai/InternalOpenAiHelper.toFunction:(Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Function;\n+  #617 = NameAndType        #560:#561     // toFunction:(Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Function;\n+  #618 = MethodType         #561          //  (Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Function;\n+  #619 = MethodType         #451          //  (Ljava/lang/Object;)Z\n+  #620 = MethodHandle       6:#621        // REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.lambda$aiMessageFrom$1:(Ldev/ai4j/openai4j/chat/ToolCall;)Z\n+  #621 = Methodref          #187.#622     // dev/langchain4j/model/openai/InternalOpenAiHelper.lambda$aiMessageFrom$1:(Ldev/ai4j/openai4j/chat/ToolCall;)Z\n+  #622 = NameAndType        #582:#583     // lambda$aiMessageFrom$1:(Ldev/ai4j/openai4j/chat/ToolCall;)Z\n+  #623 = MethodType         #583          //  (Ldev/ai4j/openai4j/chat/ToolCall;)Z\n+  #624 = MethodHandle       6:#625        // REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.toToolExecutionRequest:(Ldev/ai4j/openai4j/chat/ToolCall;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #625 = Methodref          #187.#626     // dev/langchain4j/model/openai/InternalOpenAiHelper.toToolExecutionRequest:(Ldev/ai4j/openai4j/chat/ToolCall;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #626 = NameAndType        #571:#572     // toToolExecutionRequest:(Ldev/ai4j/openai4j/chat/ToolCall;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #627 = MethodType         #572          //  (Ldev/ai4j/openai4j/chat/ToolCall;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #628 = Utf8               InnerClasses\n+  #629 = Utf8               Builder\n+  #630 = Utf8               DetailLevel\n+  #631 = Class              #632          // java/lang/invoke/MethodHandles$Lookup\n+  #632 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #633 = Class              #634          // java/lang/invoke/MethodHandles\n+  #634 = Utf8               java/lang/invoke/MethodHandles\n+  #635 = Utf8               Lookup\n {\n   static final java.lang.String OPENAI_URL = \"https://api.openai.com/v1\";\n     descriptor: Ljava/lang/String;\n     flags: (0x0018) ACC_STATIC, ACC_FINAL\n     ConstantValue: String https://api.openai.com/v1\n \n   static final java.lang.String OPENAI_DEMO_API_KEY = \"demo\";\n@@ -683,163 +675,163 @@\n \n   public static java.util.List<dev.ai4j.openai4j.chat.Message> toOpenAiMessages(java.util.List<dev.langchain4j.data.message.ChatMessage>);\n     descriptor: (Ljava/util/List;)Ljava/util/List;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: invokeinterface #2,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n-         6: invokedynamic #3,  0              // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n-        11: invokeinterface #4,  2            // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-        16: invokestatic  #5                  // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-        19: invokeinterface #6,  2            // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-        24: checkcast     #7                  // class java/util/List\n+         1: invokeinterface #7,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n+         6: invokedynamic #13,  0             // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n+        11: invokeinterface #17,  2           // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+        16: invokestatic  #23                 // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+        19: invokeinterface #29,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+        24: checkcast     #8                  // class java/util/List\n         27: areturn\n       LineNumberTable:\n         line 37: 0\n         line 38: 11\n         line 39: 16\n         line 37: 27\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      28     0 messages   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      28     0 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-    Signature: #172                         // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ljava/util/List<Ldev/ai4j/openai4j/chat/Message;>;\n+    Signature: #524                         // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ljava/util/List<Ldev/ai4j/openai4j/chat/Message;>;\n \n   public static dev.ai4j.openai4j.chat.Message toOpenAiMessage(dev.langchain4j.data.message.ChatMessage);\n     descriptor: (Ldev/langchain4j/data/message/ChatMessage;)Ldev/ai4j/openai4j/chat/Message;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=3, locals=4, args_size=1\n          0: aload_0\n-         1: instanceof    #8                  // class dev/langchain4j/data/message/SystemMessage\n+         1: instanceof    #33                 // class dev/langchain4j/data/message/SystemMessage\n          4: ifeq          18\n          7: aload_0\n-         8: checkcast     #8                  // class dev/langchain4j/data/message/SystemMessage\n-        11: invokevirtual #9                  // Method dev/langchain4j/data/message/SystemMessage.text:()Ljava/lang/String;\n-        14: invokestatic  #10                 // Method dev/ai4j/openai4j/chat/SystemMessage.from:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/SystemMessage;\n+         8: checkcast     #33                 // class dev/langchain4j/data/message/SystemMessage\n+        11: invokevirtual #35                 // Method dev/langchain4j/data/message/SystemMessage.text:()Ljava/lang/String;\n+        14: invokestatic  #39                 // Method dev/ai4j/openai4j/chat/SystemMessage.from:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/SystemMessage;\n         17: areturn\n         18: aload_0\n-        19: instanceof    #11                 // class dev/langchain4j/data/message/UserMessage\n+        19: instanceof    #45                 // class dev/langchain4j/data/message/UserMessage\n         22: ifeq          105\n         25: aload_0\n-        26: checkcast     #11                 // class dev/langchain4j/data/message/UserMessage\n+        26: checkcast     #45                 // class dev/langchain4j/data/message/UserMessage\n         29: astore_1\n         30: aload_1\n-        31: invokevirtual #12                 // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n+        31: invokevirtual #47                 // Method dev/langchain4j/data/message/UserMessage.hasSingleText:()Z\n         34: ifeq          58\n-        37: invokestatic  #13                 // Method dev/ai4j/openai4j/chat/UserMessage.builder:()Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n+        37: invokestatic  #51                 // Method dev/ai4j/openai4j/chat/UserMessage.builder:()Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n         40: aload_1\n-        41: invokevirtual #14                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n-        44: invokevirtual #15                 // Method dev/ai4j/openai4j/chat/UserMessage$Builder.content:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n+        41: invokevirtual #57                 // Method dev/langchain4j/data/message/UserMessage.text:()Ljava/lang/String;\n+        44: invokevirtual #58                 // Method dev/ai4j/openai4j/chat/UserMessage$Builder.content:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n         47: aload_1\n-        48: invokevirtual #16                 // Method dev/langchain4j/data/message/UserMessage.name:()Ljava/lang/String;\n-        51: invokevirtual #17                 // Method dev/ai4j/openai4j/chat/UserMessage$Builder.name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n-        54: invokevirtual #18                 // Method dev/ai4j/openai4j/chat/UserMessage$Builder.build:()Ldev/ai4j/openai4j/chat/UserMessage;\n+        48: invokevirtual #64                 // Method dev/langchain4j/data/message/UserMessage.name:()Ljava/lang/String;\n+        51: invokevirtual #67                 // Method dev/ai4j/openai4j/chat/UserMessage$Builder.name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n+        54: invokevirtual #69                 // Method dev/ai4j/openai4j/chat/UserMessage$Builder.build:()Ldev/ai4j/openai4j/chat/UserMessage;\n         57: areturn\n-        58: invokestatic  #13                 // Method dev/ai4j/openai4j/chat/UserMessage.builder:()Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n+        58: invokestatic  #51                 // Method dev/ai4j/openai4j/chat/UserMessage.builder:()Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n         61: aload_1\n-        62: invokevirtual #19                 // Method dev/langchain4j/data/message/UserMessage.contents:()Ljava/util/List;\n-        65: invokeinterface #2,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n-        70: invokedynamic #20,  0             // InvokeDynamic #1:apply:()Ljava/util/function/Function;\n-        75: invokeinterface #4,  2            // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-        80: invokestatic  #5                  // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-        83: invokeinterface #6,  2            // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-        88: checkcast     #7                  // class java/util/List\n-        91: invokevirtual #21                 // Method dev/ai4j/openai4j/chat/UserMessage$Builder.content:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n+        62: invokevirtual #73                 // Method dev/langchain4j/data/message/UserMessage.contents:()Ljava/util/List;\n+        65: invokeinterface #7,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n+        70: invokedynamic #77,  0             // InvokeDynamic #1:apply:()Ljava/util/function/Function;\n+        75: invokeinterface #17,  2           // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+        80: invokestatic  #23                 // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+        83: invokeinterface #29,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+        88: checkcast     #8                  // class java/util/List\n+        91: invokevirtual #78                 // Method dev/ai4j/openai4j/chat/UserMessage$Builder.content:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n         94: aload_1\n-        95: invokevirtual #16                 // Method dev/langchain4j/data/message/UserMessage.name:()Ljava/lang/String;\n-        98: invokevirtual #17                 // Method dev/ai4j/openai4j/chat/UserMessage$Builder.name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n-       101: invokevirtual #18                 // Method dev/ai4j/openai4j/chat/UserMessage$Builder.build:()Ldev/ai4j/openai4j/chat/UserMessage;\n+        95: invokevirtual #64                 // Method dev/langchain4j/data/message/UserMessage.name:()Ljava/lang/String;\n+        98: invokevirtual #67                 // Method dev/ai4j/openai4j/chat/UserMessage$Builder.name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/UserMessage$Builder;\n+       101: invokevirtual #69                 // Method dev/ai4j/openai4j/chat/UserMessage$Builder.build:()Ldev/ai4j/openai4j/chat/UserMessage;\n        104: areturn\n        105: aload_0\n-       106: instanceof    #22                 // class dev/langchain4j/data/message/AiMessage\n+       106: instanceof    #81                 // class dev/langchain4j/data/message/AiMessage\n        109: ifeq          227\n        112: aload_0\n-       113: checkcast     #22                 // class dev/langchain4j/data/message/AiMessage\n+       113: checkcast     #81                 // class dev/langchain4j/data/message/AiMessage\n        116: astore_1\n        117: aload_1\n-       118: invokevirtual #23                 // Method dev/langchain4j/data/message/AiMessage.hasToolExecutionRequests:()Z\n+       118: invokevirtual #83                 // Method dev/langchain4j/data/message/AiMessage.hasToolExecutionRequests:()Z\n        121: ifne          132\n        124: aload_1\n-       125: invokevirtual #24                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-       128: invokestatic  #25                 // Method dev/ai4j/openai4j/chat/AssistantMessage.from:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/AssistantMessage;\n+       125: invokevirtual #86                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+       128: invokestatic  #87                 // Method dev/ai4j/openai4j/chat/AssistantMessage.from:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/AssistantMessage;\n        131: areturn\n        132: aload_1\n-       133: invokevirtual #26                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+       133: invokevirtual #92                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n        136: iconst_0\n-       137: invokeinterface #27,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-       142: checkcast     #28                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+       137: invokeinterface #95,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+       142: checkcast     #99                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n        145: astore_2\n        146: aload_2\n-       147: invokevirtual #29                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.id:()Ljava/lang/String;\n+       147: invokevirtual #101                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.id:()Ljava/lang/String;\n        150: ifnonnull     185\n-       153: invokestatic  #30                 // Method dev/ai4j/openai4j/chat/FunctionCall.builder:()Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n+       153: invokestatic  #104                // Method dev/ai4j/openai4j/chat/FunctionCall.builder:()Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n        156: aload_2\n-       157: invokevirtual #31                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n-       160: invokevirtual #32                 // Method dev/ai4j/openai4j/chat/FunctionCall$Builder.name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n+       157: invokevirtual #109                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n+       160: invokevirtual #110                // Method dev/ai4j/openai4j/chat/FunctionCall$Builder.name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n        163: aload_2\n-       164: invokevirtual #33                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-       167: invokevirtual #34                 // Method dev/ai4j/openai4j/chat/FunctionCall$Builder.arguments:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n-       170: invokevirtual #35                 // Method dev/ai4j/openai4j/chat/FunctionCall$Builder.build:()Ldev/ai4j/openai4j/chat/FunctionCall;\n+       164: invokevirtual #115                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+       167: invokevirtual #118                // Method dev/ai4j/openai4j/chat/FunctionCall$Builder.arguments:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n+       170: invokevirtual #120                // Method dev/ai4j/openai4j/chat/FunctionCall$Builder.build:()Ldev/ai4j/openai4j/chat/FunctionCall;\n        173: astore_3\n-       174: invokestatic  #36                 // Method dev/ai4j/openai4j/chat/AssistantMessage.builder:()Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n+       174: invokestatic  #123                // Method dev/ai4j/openai4j/chat/AssistantMessage.builder:()Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n        177: aload_3\n-       178: invokevirtual #37                 // Method dev/ai4j/openai4j/chat/AssistantMessage$Builder.functionCall:(Ldev/ai4j/openai4j/chat/FunctionCall;)Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n-       181: invokevirtual #38                 // Method dev/ai4j/openai4j/chat/AssistantMessage$Builder.build:()Ldev/ai4j/openai4j/chat/AssistantMessage;\n+       178: invokevirtual #126                // Method dev/ai4j/openai4j/chat/AssistantMessage$Builder.functionCall:(Ldev/ai4j/openai4j/chat/FunctionCall;)Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n+       181: invokevirtual #132                // Method dev/ai4j/openai4j/chat/AssistantMessage$Builder.build:()Ldev/ai4j/openai4j/chat/AssistantMessage;\n        184: areturn\n        185: aload_1\n-       186: invokevirtual #26                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-       189: invokeinterface #2,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n-       194: invokedynamic #39,  0             // InvokeDynamic #2:apply:()Ljava/util/function/Function;\n-       199: invokeinterface #4,  2            // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-       204: invokestatic  #5                  // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-       207: invokeinterface #6,  2            // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-       212: checkcast     #7                  // class java/util/List\n+       186: invokevirtual #92                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+       189: invokeinterface #7,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n+       194: invokedynamic #135,  0            // InvokeDynamic #2:apply:()Ljava/util/function/Function;\n+       199: invokeinterface #17,  2           // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+       204: invokestatic  #23                 // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+       207: invokeinterface #29,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+       212: checkcast     #8                  // class java/util/List\n        215: astore_3\n-       216: invokestatic  #36                 // Method dev/ai4j/openai4j/chat/AssistantMessage.builder:()Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n+       216: invokestatic  #123                // Method dev/ai4j/openai4j/chat/AssistantMessage.builder:()Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n        219: aload_3\n-       220: invokevirtual #40                 // Method dev/ai4j/openai4j/chat/AssistantMessage$Builder.toolCalls:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n-       223: invokevirtual #38                 // Method dev/ai4j/openai4j/chat/AssistantMessage$Builder.build:()Ldev/ai4j/openai4j/chat/AssistantMessage;\n+       220: invokevirtual #136                // Method dev/ai4j/openai4j/chat/AssistantMessage$Builder.toolCalls:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/AssistantMessage$Builder;\n+       223: invokevirtual #132                // Method dev/ai4j/openai4j/chat/AssistantMessage$Builder.build:()Ldev/ai4j/openai4j/chat/AssistantMessage;\n        226: areturn\n        227: aload_0\n-       228: instanceof    #41                 // class dev/langchain4j/data/message/ToolExecutionResultMessage\n+       228: instanceof    #140                // class dev/langchain4j/data/message/ToolExecutionResultMessage\n        231: ifeq          270\n        234: aload_0\n-       235: checkcast     #41                 // class dev/langchain4j/data/message/ToolExecutionResultMessage\n+       235: checkcast     #140                // class dev/langchain4j/data/message/ToolExecutionResultMessage\n        238: astore_1\n        239: aload_1\n-       240: invokevirtual #42                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.id:()Ljava/lang/String;\n+       240: invokevirtual #142                // Method dev/langchain4j/data/message/ToolExecutionResultMessage.id:()Ljava/lang/String;\n        243: ifnonnull     258\n        246: aload_1\n-       247: invokevirtual #43                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.toolName:()Ljava/lang/String;\n+       247: invokevirtual #143                // Method dev/langchain4j/data/message/ToolExecutionResultMessage.toolName:()Ljava/lang/String;\n        250: aload_1\n-       251: invokevirtual #44                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.text:()Ljava/lang/String;\n-       254: invokestatic  #45                 // Method dev/ai4j/openai4j/chat/FunctionMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionMessage;\n+       251: invokevirtual #146                // Method dev/langchain4j/data/message/ToolExecutionResultMessage.text:()Ljava/lang/String;\n+       254: invokestatic  #147                // Method dev/ai4j/openai4j/chat/FunctionMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionMessage;\n        257: areturn\n        258: aload_1\n-       259: invokevirtual #42                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.id:()Ljava/lang/String;\n+       259: invokevirtual #142                // Method dev/langchain4j/data/message/ToolExecutionResultMessage.id:()Ljava/lang/String;\n        262: aload_1\n-       263: invokevirtual #44                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.text:()Ljava/lang/String;\n-       266: invokestatic  #46                 // Method dev/ai4j/openai4j/chat/ToolMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ToolMessage;\n+       263: invokevirtual #146                // Method dev/langchain4j/data/message/ToolExecutionResultMessage.text:()Ljava/lang/String;\n+       266: invokestatic  #152                // Method dev/ai4j/openai4j/chat/ToolMessage.from:(Ljava/lang/String;Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ToolMessage;\n        269: areturn\n-       270: new           #47                 // class java/lang/StringBuilder\n+       270: new           #157                // class java/lang/StringBuilder\n        273: dup\n-       274: invokespecial #48                 // Method java/lang/StringBuilder.\"<init>\":()V\n-       277: ldc           #49                 // String Unknown message type:\n-       279: invokevirtual #50                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       274: invokespecial #159                // Method java/lang/StringBuilder.\"<init>\":()V\n+       277: ldc           #160                // String Unknown message type:\n+       279: invokevirtual #162                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        282: aload_0\n-       283: invokeinterface #51,  1           // InterfaceMethod dev/langchain4j/data/message/ChatMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n-       288: invokevirtual #52                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       291: invokevirtual #53                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+       283: invokeinterface #166,  1          // InterfaceMethod dev/langchain4j/data/message/ChatMessage.type:()Ldev/langchain4j/data/message/ChatMessageType;\n+       288: invokevirtual #172                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       291: invokevirtual #175                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n        294: iconst_0\n-       295: anewarray     #54                 // class java/lang/Object\n-       298: invokestatic  #55                 // Method dev/langchain4j/internal/Exceptions.illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n+       295: anewarray     #2                  // class java/lang/Object\n+       298: invokestatic  #178                // Method dev/langchain4j/internal/Exceptions.illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n        301: athrow\n       LineNumberTable:\n         line 43: 0\n         line 44: 7\n         line 47: 18\n         line 48: 25\n         line 50: 30\n@@ -918,38 +910,38 @@\n \n   private static dev.ai4j.openai4j.chat.Content toOpenAiContent(dev.langchain4j.data.message.Content);\n     descriptor: (Ldev/langchain4j/data/message/Content;)Ldev/ai4j/openai4j/chat/Content;\n     flags: (0x000a) ACC_PRIVATE, ACC_STATIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: instanceof    #56                 // class dev/langchain4j/data/message/TextContent\n+         1: instanceof    #184                // class dev/langchain4j/data/message/TextContent\n          4: ifeq          15\n          7: aload_0\n-         8: checkcast     #56                 // class dev/langchain4j/data/message/TextContent\n-        11: invokestatic  #57                 // Method toOpenAiContent:(Ldev/langchain4j/data/message/TextContent;)Ldev/ai4j/openai4j/chat/Content;\n+         8: checkcast     #184                // class dev/langchain4j/data/message/TextContent\n+        11: invokestatic  #186                // Method toOpenAiContent:(Ldev/langchain4j/data/message/TextContent;)Ldev/ai4j/openai4j/chat/Content;\n         14: areturn\n         15: aload_0\n-        16: instanceof    #58                 // class dev/langchain4j/data/message/ImageContent\n+        16: instanceof    #192                // class dev/langchain4j/data/message/ImageContent\n         19: ifeq          30\n         22: aload_0\n-        23: checkcast     #58                 // class dev/langchain4j/data/message/ImageContent\n-        26: invokestatic  #59                 // Method toOpenAiContent:(Ldev/langchain4j/data/message/ImageContent;)Ldev/ai4j/openai4j/chat/Content;\n+        23: checkcast     #192                // class dev/langchain4j/data/message/ImageContent\n+        26: invokestatic  #194                // Method toOpenAiContent:(Ldev/langchain4j/data/message/ImageContent;)Ldev/ai4j/openai4j/chat/Content;\n         29: areturn\n-        30: new           #47                 // class java/lang/StringBuilder\n+        30: new           #157                // class java/lang/StringBuilder\n         33: dup\n-        34: invokespecial #48                 // Method java/lang/StringBuilder.\"<init>\":()V\n-        37: ldc           #60                 // String Unknown content type:\n-        39: invokevirtual #50                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        34: invokespecial #159                // Method java/lang/StringBuilder.\"<init>\":()V\n+        37: ldc           #197                // String Unknown content type:\n+        39: invokevirtual #162                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         42: aload_0\n-        43: invokevirtual #52                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        46: invokevirtual #53                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        43: invokevirtual #172                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        46: invokevirtual #175                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n         49: iconst_0\n-        50: anewarray     #54                 // class java/lang/Object\n-        53: invokestatic  #55                 // Method dev/langchain4j/internal/Exceptions.illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n+        50: anewarray     #2                  // class java/lang/Object\n+        53: invokestatic  #178                // Method dev/langchain4j/internal/Exceptions.illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n         56: athrow\n       LineNumberTable:\n         line 114: 0\n         line 115: 7\n         line 116: 15\n         line 117: 22\n         line 119: 30\n@@ -961,21 +953,21 @@\n         frame_type = 14 /* same */\n \n   private static dev.ai4j.openai4j.chat.Content toOpenAiContent(dev.langchain4j.data.message.TextContent);\n     descriptor: (Ldev/langchain4j/data/message/TextContent;)Ldev/ai4j/openai4j/chat/Content;\n     flags: (0x000a) ACC_PRIVATE, ACC_STATIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: invokestatic  #61                 // Method dev/ai4j/openai4j/chat/Content.builder:()Ldev/ai4j/openai4j/chat/Content$Builder;\n-         3: getstatic     #62                 // Field dev/ai4j/openai4j/chat/ContentType.TEXT:Ldev/ai4j/openai4j/chat/ContentType;\n-         6: invokevirtual #63                 // Method dev/ai4j/openai4j/chat/Content$Builder.type:(Ldev/ai4j/openai4j/chat/ContentType;)Ldev/ai4j/openai4j/chat/Content$Builder;\n+         0: invokestatic  #199                // Method dev/ai4j/openai4j/chat/Content.builder:()Ldev/ai4j/openai4j/chat/Content$Builder;\n+         3: getstatic     #204                // Field dev/ai4j/openai4j/chat/ContentType.TEXT:Ldev/ai4j/openai4j/chat/ContentType;\n+         6: invokevirtual #210                // Method dev/ai4j/openai4j/chat/Content$Builder.type:(Ldev/ai4j/openai4j/chat/ContentType;)Ldev/ai4j/openai4j/chat/Content$Builder;\n          9: aload_0\n-        10: invokevirtual #64                 // Method dev/langchain4j/data/message/TextContent.text:()Ljava/lang/String;\n-        13: invokevirtual #65                 // Method dev/ai4j/openai4j/chat/Content$Builder.text:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Content$Builder;\n-        16: invokevirtual #66                 // Method dev/ai4j/openai4j/chat/Content$Builder.build:()Ldev/ai4j/openai4j/chat/Content;\n+        10: invokevirtual #215                // Method dev/langchain4j/data/message/TextContent.text:()Ljava/lang/String;\n+        13: invokevirtual #216                // Method dev/ai4j/openai4j/chat/Content$Builder.text:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Content$Builder;\n+        16: invokevirtual #219                // Method dev/ai4j/openai4j/chat/Content$Builder.build:()Ldev/ai4j/openai4j/chat/Content;\n         19: areturn\n       LineNumberTable:\n         line 124: 0\n         line 125: 6\n         line 126: 10\n         line 127: 16\n         line 124: 19\n@@ -984,29 +976,29 @@\n             0      20     0 content   Ldev/langchain4j/data/message/TextContent;\n \n   private static dev.ai4j.openai4j.chat.Content toOpenAiContent(dev.langchain4j.data.message.ImageContent);\n     descriptor: (Ldev/langchain4j/data/message/ImageContent;)Ldev/ai4j/openai4j/chat/Content;\n     flags: (0x000a) ACC_PRIVATE, ACC_STATIC\n     Code:\n       stack=3, locals=1, args_size=1\n-         0: invokestatic  #61                 // Method dev/ai4j/openai4j/chat/Content.builder:()Ldev/ai4j/openai4j/chat/Content$Builder;\n-         3: getstatic     #67                 // Field dev/ai4j/openai4j/chat/ContentType.IMAGE_URL:Ldev/ai4j/openai4j/chat/ContentType;\n-         6: invokevirtual #63                 // Method dev/ai4j/openai4j/chat/Content$Builder.type:(Ldev/ai4j/openai4j/chat/ContentType;)Ldev/ai4j/openai4j/chat/Content$Builder;\n-         9: invokestatic  #68                 // Method dev/ai4j/openai4j/chat/ImageUrl.builder:()Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n+         0: invokestatic  #199                // Method dev/ai4j/openai4j/chat/Content.builder:()Ldev/ai4j/openai4j/chat/Content$Builder;\n+         3: getstatic     #222                // Field dev/ai4j/openai4j/chat/ContentType.IMAGE_URL:Ldev/ai4j/openai4j/chat/ContentType;\n+         6: invokevirtual #210                // Method dev/ai4j/openai4j/chat/Content$Builder.type:(Ldev/ai4j/openai4j/chat/ContentType;)Ldev/ai4j/openai4j/chat/Content$Builder;\n+         9: invokestatic  #225                // Method dev/ai4j/openai4j/chat/ImageUrl.builder:()Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n         12: aload_0\n-        13: invokevirtual #69                 // Method dev/langchain4j/data/message/ImageContent.image:()Ldev/langchain4j/data/image/Image;\n-        16: invokestatic  #70                 // Method toUrl:(Ldev/langchain4j/data/image/Image;)Ljava/lang/String;\n-        19: invokevirtual #71                 // Method dev/ai4j/openai4j/chat/ImageUrl$Builder.url:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n+        13: invokevirtual #230                // Method dev/langchain4j/data/message/ImageContent.image:()Ldev/langchain4j/data/image/Image;\n+        16: invokestatic  #234                // Method toUrl:(Ldev/langchain4j/data/image/Image;)Ljava/lang/String;\n+        19: invokevirtual #238                // Method dev/ai4j/openai4j/chat/ImageUrl$Builder.url:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n         22: aload_0\n-        23: invokevirtual #72                 // Method dev/langchain4j/data/message/ImageContent.detailLevel:()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n-        26: invokestatic  #73                 // Method toDetail:(Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/ai4j/openai4j/chat/ImageDetail;\n-        29: invokevirtual #74                 // Method dev/ai4j/openai4j/chat/ImageUrl$Builder.detail:(Ldev/ai4j/openai4j/chat/ImageDetail;)Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n-        32: invokevirtual #75                 // Method dev/ai4j/openai4j/chat/ImageUrl$Builder.build:()Ldev/ai4j/openai4j/chat/ImageUrl;\n-        35: invokevirtual #76                 // Method dev/ai4j/openai4j/chat/Content$Builder.imageUrl:(Ldev/ai4j/openai4j/chat/ImageUrl;)Ldev/ai4j/openai4j/chat/Content$Builder;\n-        38: invokevirtual #66                 // Method dev/ai4j/openai4j/chat/Content$Builder.build:()Ldev/ai4j/openai4j/chat/Content;\n+        23: invokevirtual #244                // Method dev/langchain4j/data/message/ImageContent.detailLevel:()Ldev/langchain4j/data/message/ImageContent$DetailLevel;\n+        26: invokestatic  #248                // Method toDetail:(Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/ai4j/openai4j/chat/ImageDetail;\n+        29: invokevirtual #252                // Method dev/ai4j/openai4j/chat/ImageUrl$Builder.detail:(Ldev/ai4j/openai4j/chat/ImageDetail;)Ldev/ai4j/openai4j/chat/ImageUrl$Builder;\n+        32: invokevirtual #256                // Method dev/ai4j/openai4j/chat/ImageUrl$Builder.build:()Ldev/ai4j/openai4j/chat/ImageUrl;\n+        35: invokevirtual #259                // Method dev/ai4j/openai4j/chat/Content$Builder.imageUrl:(Ldev/ai4j/openai4j/chat/ImageUrl;)Ldev/ai4j/openai4j/chat/Content$Builder;\n+        38: invokevirtual #219                // Method dev/ai4j/openai4j/chat/Content$Builder.build:()Ldev/ai4j/openai4j/chat/Content;\n         41: areturn\n       LineNumberTable:\n         line 131: 0\n         line 132: 6\n         line 133: 9\n         line 134: 13\n         line 135: 23\n@@ -1020,57 +1012,57 @@\n \n   private static java.lang.String toUrl(dev.langchain4j.data.image.Image);\n     descriptor: (Ldev/langchain4j/data/image/Image;)Ljava/lang/String;\n     flags: (0x000a) ACC_PRIVATE, ACC_STATIC\n     Code:\n       stack=5, locals=1, args_size=1\n          0: aload_0\n-         1: invokevirtual #77                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+         1: invokevirtual #263                // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n          4: ifnull        15\n          7: aload_0\n-         8: invokevirtual #77                 // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n-        11: invokevirtual #78                 // Method java/net/URI.toString:()Ljava/lang/String;\n+         8: invokevirtual #263                // Method dev/langchain4j/data/image/Image.url:()Ljava/net/URI;\n+        11: invokevirtual #268                // Method java/net/URI.toString:()Ljava/lang/String;\n         14: areturn\n-        15: ldc           #79                 // String data:%s;base64,%s\n-        17: iconst_2\n-        18: anewarray     #54                 // class java/lang/Object\n-        21: dup\n-        22: iconst_0\n-        23: aload_0\n-        24: invokevirtual #80                 // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n-        27: aastore\n-        28: dup\n-        29: iconst_1\n-        30: aload_0\n-        31: invokevirtual #81                 // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n-        34: aastore\n-        35: invokestatic  #82                 // Method java/lang/String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n-        38: areturn\n+        15: ldc_w         #271                // String data:%s;base64,%s\n+        18: iconst_2\n+        19: anewarray     #2                  // class java/lang/Object\n+        22: dup\n+        23: iconst_0\n+        24: aload_0\n+        25: invokevirtual #273                // Method dev/langchain4j/data/image/Image.mimeType:()Ljava/lang/String;\n+        28: aastore\n+        29: dup\n+        30: iconst_1\n+        31: aload_0\n+        32: invokevirtual #276                // Method dev/langchain4j/data/image/Image.base64Data:()Ljava/lang/String;\n+        35: aastore\n+        36: invokestatic  #279                // Method java/lang/String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;\n+        39: areturn\n       LineNumberTable:\n         line 141: 0\n         line 142: 7\n         line 144: 15\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n-            0      39     0 image   Ldev/langchain4j/data/image/Image;\n+            0      40     0 image   Ldev/langchain4j/data/image/Image;\n       StackMapTable: number_of_entries = 1\n         frame_type = 15 /* same */\n \n   private static dev.ai4j.openai4j.chat.ImageDetail toDetail(dev.langchain4j.data.message.ImageContent$DetailLevel);\n     descriptor: (Ldev/langchain4j/data/message/ImageContent$DetailLevel;)Ldev/ai4j/openai4j/chat/ImageDetail;\n     flags: (0x000a) ACC_PRIVATE, ACC_STATIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n          1: ifnonnull     6\n          4: aconst_null\n          5: areturn\n          6: aload_0\n-         7: invokevirtual #83                 // Method dev/langchain4j/data/message/ImageContent$DetailLevel.name:()Ljava/lang/String;\n-        10: invokestatic  #84                 // Method dev/ai4j/openai4j/chat/ImageDetail.valueOf:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ImageDetail;\n+         7: invokevirtual #285                // Method dev/langchain4j/data/message/ImageContent$DetailLevel.name:()Ljava/lang/String;\n+        10: invokestatic  #288                // Method dev/ai4j/openai4j/chat/ImageDetail.valueOf:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ImageDetail;\n         13: areturn\n       LineNumberTable:\n         line 148: 0\n         line 149: 4\n         line 151: 6\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -1080,54 +1072,54 @@\n \n   public static java.util.List<dev.ai4j.openai4j.chat.Tool> toTools(java.util.Collection<dev.langchain4j.agent.tool.ToolSpecification>);\n     descriptor: (Ljava/util/Collection;)Ljava/util/List;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: invokeinterface #85,  1           // InterfaceMethod java/util/Collection.stream:()Ljava/util/stream/Stream;\n-         6: invokedynamic #86,  0             // InvokeDynamic #3:apply:()Ljava/util/function/Function;\n-        11: invokeinterface #4,  2            // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-        16: invokestatic  #5                  // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-        19: invokeinterface #6,  2            // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-        24: checkcast     #7                  // class java/util/List\n+         1: invokeinterface #294,  1          // InterfaceMethod java/util/Collection.stream:()Ljava/util/stream/Stream;\n+         6: invokedynamic #297,  0            // InvokeDynamic #3:apply:()Ljava/util/function/Function;\n+        11: invokeinterface #17,  2           // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+        16: invokestatic  #23                 // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+        19: invokeinterface #29,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+        24: checkcast     #8                  // class java/util/List\n         27: areturn\n       LineNumberTable:\n         line 155: 0\n         line 156: 11\n         line 157: 16\n         line 155: 27\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      28     0 toolSpecifications   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      28     0 toolSpecifications   Ljava/util/Collection<Ldev/langchain4j/agent/tool/ToolSpecification;>;\n-    Signature: #218                         // (Ljava/util/Collection<Ldev/langchain4j/agent/tool/ToolSpecification;>;)Ljava/util/List<Ldev/ai4j/openai4j/chat/Tool;>;\n+    Signature: #549                         // (Ljava/util/Collection<Ldev/langchain4j/agent/tool/ToolSpecification;>;)Ljava/util/List<Ldev/ai4j/openai4j/chat/Tool;>;\n \n   private static dev.ai4j.openai4j.chat.Tool toTool(dev.langchain4j.agent.tool.ToolSpecification);\n     descriptor: (Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Tool;\n     flags: (0x000a) ACC_PRIVATE, ACC_STATIC\n     Code:\n       stack=2, locals=2, args_size=1\n-         0: invokestatic  #87                 // Method dev/ai4j/openai4j/chat/Function.builder:()Ldev/ai4j/openai4j/chat/Function$Builder;\n+         0: invokestatic  #298                // Method dev/ai4j/openai4j/chat/Function.builder:()Ldev/ai4j/openai4j/chat/Function$Builder;\n          3: aload_0\n-         4: invokevirtual #88                 // Method dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n-         7: invokevirtual #89                 // Method dev/ai4j/openai4j/chat/Function$Builder.name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Function$Builder;\n+         4: invokevirtual #303                // Method dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n+         7: invokevirtual #306                // Method dev/ai4j/openai4j/chat/Function$Builder.name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Function$Builder;\n         10: aload_0\n-        11: invokevirtual #90                 // Method dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n-        14: invokevirtual #91                 // Method dev/ai4j/openai4j/chat/Function$Builder.description:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Function$Builder;\n+        11: invokevirtual #311                // Method dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n+        14: invokevirtual #314                // Method dev/ai4j/openai4j/chat/Function$Builder.description:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Function$Builder;\n         17: aload_0\n-        18: invokevirtual #92                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-        21: invokestatic  #93                 // Method toOpenAiParameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/ai4j/openai4j/chat/Parameters;\n-        24: invokevirtual #94                 // Method dev/ai4j/openai4j/chat/Function$Builder.parameters:(Ldev/ai4j/openai4j/chat/Parameters;)Ldev/ai4j/openai4j/chat/Function$Builder;\n-        27: invokevirtual #95                 // Method dev/ai4j/openai4j/chat/Function$Builder.build:()Ldev/ai4j/openai4j/chat/Function;\n+        18: invokevirtual #316                // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+        21: invokestatic  #320                // Method toOpenAiParameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/ai4j/openai4j/chat/Parameters;\n+        24: invokevirtual #324                // Method dev/ai4j/openai4j/chat/Function$Builder.parameters:(Ldev/ai4j/openai4j/chat/Parameters;)Ldev/ai4j/openai4j/chat/Function$Builder;\n+        27: invokevirtual #327                // Method dev/ai4j/openai4j/chat/Function$Builder.build:()Ldev/ai4j/openai4j/chat/Function;\n         30: astore_1\n         31: aload_1\n-        32: invokestatic  #96                 // Method dev/ai4j/openai4j/chat/Tool.from:(Ldev/ai4j/openai4j/chat/Function;)Ldev/ai4j/openai4j/chat/Tool;\n+        32: invokestatic  #330                // Method dev/ai4j/openai4j/chat/Tool.from:(Ldev/ai4j/openai4j/chat/Function;)Ldev/ai4j/openai4j/chat/Tool;\n         35: areturn\n       LineNumberTable:\n         line 161: 0\n         line 162: 4\n         line 163: 11\n         line 164: 18\n         line 165: 27\n@@ -1139,89 +1131,89 @@\n \n   public static java.util.List<dev.ai4j.openai4j.chat.Function> toFunctions(java.util.Collection<dev.langchain4j.agent.tool.ToolSpecification>);\n     descriptor: (Ljava/util/Collection;)Ljava/util/List;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: invokeinterface #85,  1           // InterfaceMethod java/util/Collection.stream:()Ljava/util/stream/Stream;\n-         6: invokedynamic #97,  0             // InvokeDynamic #4:apply:()Ljava/util/function/Function;\n-        11: invokeinterface #4,  2            // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-        16: invokestatic  #5                  // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-        19: invokeinterface #6,  2            // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-        24: checkcast     #7                  // class java/util/List\n+         1: invokeinterface #294,  1          // InterfaceMethod java/util/Collection.stream:()Ljava/util/stream/Stream;\n+         6: invokedynamic #335,  0            // InvokeDynamic #4:apply:()Ljava/util/function/Function;\n+        11: invokeinterface #17,  2           // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+        16: invokestatic  #23                 // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+        19: invokeinterface #29,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+        24: checkcast     #8                  // class java/util/List\n         27: areturn\n       LineNumberTable:\n         line 171: 0\n         line 172: 11\n         line 173: 16\n         line 171: 27\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      28     0 toolSpecifications   Ljava/util/Collection;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      28     0 toolSpecifications   Ljava/util/Collection<Ldev/langchain4j/agent/tool/ToolSpecification;>;\n     Deprecated: true\n-    Signature: #227                         // (Ljava/util/Collection<Ldev/langchain4j/agent/tool/ToolSpecification;>;)Ljava/util/List<Ldev/ai4j/openai4j/chat/Function;>;\n+    Signature: #557                         // (Ljava/util/Collection<Ldev/langchain4j/agent/tool/ToolSpecification;>;)Ljava/util/List<Ldev/ai4j/openai4j/chat/Function;>;\n     RuntimeVisibleAnnotations:\n-      0: #229()\n+      0: #559()\n         java.lang.Deprecated\n \n   private static dev.ai4j.openai4j.chat.Function toFunction(dev.langchain4j.agent.tool.ToolSpecification);\n     descriptor: (Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Function;\n     flags: (0x000a) ACC_PRIVATE, ACC_STATIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: invokestatic  #87                 // Method dev/ai4j/openai4j/chat/Function.builder:()Ldev/ai4j/openai4j/chat/Function$Builder;\n+         0: invokestatic  #298                // Method dev/ai4j/openai4j/chat/Function.builder:()Ldev/ai4j/openai4j/chat/Function$Builder;\n          3: aload_0\n-         4: invokevirtual #88                 // Method dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n-         7: invokevirtual #89                 // Method dev/ai4j/openai4j/chat/Function$Builder.name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Function$Builder;\n+         4: invokevirtual #303                // Method dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n+         7: invokevirtual #306                // Method dev/ai4j/openai4j/chat/Function$Builder.name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Function$Builder;\n         10: aload_0\n-        11: invokevirtual #90                 // Method dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n-        14: invokevirtual #91                 // Method dev/ai4j/openai4j/chat/Function$Builder.description:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Function$Builder;\n+        11: invokevirtual #311                // Method dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n+        14: invokevirtual #314                // Method dev/ai4j/openai4j/chat/Function$Builder.description:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/Function$Builder;\n         17: aload_0\n-        18: invokevirtual #92                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-        21: invokestatic  #93                 // Method toOpenAiParameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/ai4j/openai4j/chat/Parameters;\n-        24: invokevirtual #94                 // Method dev/ai4j/openai4j/chat/Function$Builder.parameters:(Ldev/ai4j/openai4j/chat/Parameters;)Ldev/ai4j/openai4j/chat/Function$Builder;\n-        27: invokevirtual #95                 // Method dev/ai4j/openai4j/chat/Function$Builder.build:()Ldev/ai4j/openai4j/chat/Function;\n+        18: invokevirtual #316                // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+        21: invokestatic  #320                // Method toOpenAiParameters:(Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/ai4j/openai4j/chat/Parameters;\n+        24: invokevirtual #324                // Method dev/ai4j/openai4j/chat/Function$Builder.parameters:(Ldev/ai4j/openai4j/chat/Parameters;)Ldev/ai4j/openai4j/chat/Function$Builder;\n+        27: invokevirtual #327                // Method dev/ai4j/openai4j/chat/Function$Builder.build:()Ldev/ai4j/openai4j/chat/Function;\n         30: areturn\n       LineNumberTable:\n         line 178: 0\n         line 179: 4\n         line 180: 11\n         line 181: 18\n         line 182: 27\n         line 178: 30\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      31     0 toolSpecification   Ldev/langchain4j/agent/tool/ToolSpecification;\n     Deprecated: true\n     RuntimeVisibleAnnotations:\n-      0: #229()\n+      0: #559()\n         java.lang.Deprecated\n \n   private static dev.ai4j.openai4j.chat.Parameters toOpenAiParameters(dev.langchain4j.agent.tool.ToolParameters);\n     descriptor: (Ldev/langchain4j/agent/tool/ToolParameters;)Ldev/ai4j/openai4j/chat/Parameters;\n     flags: (0x000a) ACC_PRIVATE, ACC_STATIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n          1: ifnonnull     11\n-         4: invokestatic  #98                 // Method dev/ai4j/openai4j/chat/Parameters.builder:()Ldev/ai4j/openai4j/chat/Parameters$Builder;\n-         7: invokevirtual #99                 // Method dev/ai4j/openai4j/chat/Parameters$Builder.build:()Ldev/ai4j/openai4j/chat/Parameters;\n+         4: invokestatic  #336                // Method dev/ai4j/openai4j/chat/Parameters.builder:()Ldev/ai4j/openai4j/chat/Parameters$Builder;\n+         7: invokevirtual #341                // Method dev/ai4j/openai4j/chat/Parameters$Builder.build:()Ldev/ai4j/openai4j/chat/Parameters;\n         10: areturn\n-        11: invokestatic  #98                 // Method dev/ai4j/openai4j/chat/Parameters.builder:()Ldev/ai4j/openai4j/chat/Parameters$Builder;\n+        11: invokestatic  #336                // Method dev/ai4j/openai4j/chat/Parameters.builder:()Ldev/ai4j/openai4j/chat/Parameters$Builder;\n         14: aload_0\n-        15: invokevirtual #100                // Method dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n-        18: invokevirtual #101                // Method dev/ai4j/openai4j/chat/Parameters$Builder.properties:(Ljava/util/Map;)Ldev/ai4j/openai4j/chat/Parameters$Builder;\n+        15: invokevirtual #346                // Method dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n+        18: invokevirtual #352                // Method dev/ai4j/openai4j/chat/Parameters$Builder.properties:(Ljava/util/Map;)Ldev/ai4j/openai4j/chat/Parameters$Builder;\n         21: aload_0\n-        22: invokevirtual #102                // Method dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n-        25: invokevirtual #103                // Method dev/ai4j/openai4j/chat/Parameters$Builder.required:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/Parameters$Builder;\n-        28: invokevirtual #99                 // Method dev/ai4j/openai4j/chat/Parameters$Builder.build:()Ldev/ai4j/openai4j/chat/Parameters;\n+        22: invokevirtual #355                // Method dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n+        25: invokevirtual #358                // Method dev/ai4j/openai4j/chat/Parameters$Builder.required:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/Parameters$Builder;\n+        28: invokevirtual #341                // Method dev/ai4j/openai4j/chat/Parameters$Builder.build:()Ldev/ai4j/openai4j/chat/Parameters;\n         31: areturn\n       LineNumberTable:\n         line 186: 0\n         line 187: 4\n         line 189: 11\n         line 190: 15\n         line 191: 22\n@@ -1235,64 +1227,64 @@\n \n   public static dev.langchain4j.data.message.AiMessage aiMessageFrom(dev.ai4j.openai4j.chat.ChatCompletionResponse);\n     descriptor: (Ldev/ai4j/openai4j/chat/ChatCompletionResponse;)Ldev/langchain4j/data/message/AiMessage;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=4, locals=5, args_size=1\n          0: aload_0\n-         1: invokevirtual #104                // Method dev/ai4j/openai4j/chat/ChatCompletionResponse.choices:()Ljava/util/List;\n+         1: invokevirtual #361                // Method dev/ai4j/openai4j/chat/ChatCompletionResponse.choices:()Ljava/util/List;\n          4: iconst_0\n-         5: invokeinterface #27,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-        10: checkcast     #105                // class dev/ai4j/openai4j/chat/ChatCompletionChoice\n-        13: invokevirtual #106                // Method dev/ai4j/openai4j/chat/ChatCompletionChoice.message:()Ldev/ai4j/openai4j/chat/AssistantMessage;\n+         5: invokeinterface #95,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+        10: checkcast     #366                // class dev/ai4j/openai4j/chat/ChatCompletionChoice\n+        13: invokevirtual #368                // Method dev/ai4j/openai4j/chat/ChatCompletionChoice.message:()Ldev/ai4j/openai4j/chat/AssistantMessage;\n         16: astore_1\n         17: aload_1\n-        18: invokevirtual #107                // Method dev/ai4j/openai4j/chat/AssistantMessage.toolCalls:()Ljava/util/List;\n+        18: invokevirtual #371                // Method dev/ai4j/openai4j/chat/AssistantMessage.toolCalls:()Ljava/util/List;\n         21: astore_2\n         22: aload_2\n-        23: invokestatic  #108                // Method dev/langchain4j/internal/Utils.isNullOrEmpty:(Ljava/util/Collection;)Z\n+        23: invokestatic  #373                // Method dev/langchain4j/internal/Utils.isNullOrEmpty:(Ljava/util/Collection;)Z\n         26: ifne          72\n         29: aload_2\n-        30: invokeinterface #2,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n-        35: invokedynamic #109,  0            // InvokeDynamic #5:test:()Ljava/util/function/Predicate;\n-        40: invokeinterface #110,  2          // InterfaceMethod java/util/stream/Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n-        45: invokedynamic #111,  0            // InvokeDynamic #6:apply:()Ljava/util/function/Function;\n-        50: invokeinterface #4,  2            // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-        55: invokestatic  #5                  // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-        58: invokeinterface #6,  2            // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-        63: checkcast     #7                  // class java/util/List\n+        30: invokeinterface #7,  1            // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n+        35: invokedynamic #379,  0            // InvokeDynamic #5:test:()Ljava/util/function/Predicate;\n+        40: invokeinterface #383,  2          // InterfaceMethod java/util/stream/Stream.filter:(Ljava/util/function/Predicate;)Ljava/util/stream/Stream;\n+        45: invokedynamic #387,  0            // InvokeDynamic #6:apply:()Ljava/util/function/Function;\n+        50: invokeinterface #17,  2           // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+        55: invokestatic  #23                 // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+        58: invokeinterface #29,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+        63: checkcast     #8                  // class java/util/List\n         66: astore_3\n         67: aload_3\n-        68: invokestatic  #112                // Method dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+        68: invokestatic  #388                // Method dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n         71: areturn\n         72: aload_1\n-        73: invokevirtual #113                // Method dev/ai4j/openai4j/chat/AssistantMessage.functionCall:()Ldev/ai4j/openai4j/chat/FunctionCall;\n+        73: invokevirtual #392                // Method dev/ai4j/openai4j/chat/AssistantMessage.functionCall:()Ldev/ai4j/openai4j/chat/FunctionCall;\n         76: astore_3\n         77: aload_3\n         78: ifnull        116\n-        81: invokestatic  #114                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        81: invokestatic  #394                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n         84: aload_3\n-        85: invokevirtual #115                // Method dev/ai4j/openai4j/chat/FunctionCall.name:()Ljava/lang/String;\n-        88: invokevirtual #116                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        85: invokevirtual #397                // Method dev/ai4j/openai4j/chat/FunctionCall.name:()Ljava/lang/String;\n+        88: invokevirtual #398                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n         91: aload_3\n-        92: invokevirtual #117                // Method dev/ai4j/openai4j/chat/FunctionCall.arguments:()Ljava/lang/String;\n-        95: invokevirtual #118                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        98: invokevirtual #119                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+        92: invokevirtual #403                // Method dev/ai4j/openai4j/chat/FunctionCall.arguments:()Ljava/lang/String;\n+        95: invokevirtual #404                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        98: invokevirtual #406                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n        101: astore        4\n        103: iconst_1\n-       104: anewarray     #28                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+       104: anewarray     #99                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n        107: dup\n        108: iconst_0\n        109: aload         4\n        111: aastore\n-       112: invokestatic  #120                // Method dev/langchain4j/data/message/AiMessage.aiMessage:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+       112: invokestatic  #409                // Method dev/langchain4j/data/message/AiMessage.aiMessage:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n        115: areturn\n        116: aload_1\n-       117: invokevirtual #121                // Method dev/ai4j/openai4j/chat/AssistantMessage.content:()Ljava/lang/String;\n-       120: invokestatic  #122                // Method dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+       117: invokevirtual #412                // Method dev/ai4j/openai4j/chat/AssistantMessage.content:()Ljava/lang/String;\n+       120: invokestatic  #414                // Method dev/langchain4j/data/message/AiMessage.aiMessage:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n        123: areturn\n       LineNumberTable:\n         line 196: 0\n         line 198: 17\n         line 199: 22\n         line 200: 29\n         line 201: 40\n@@ -1329,27 +1321,27 @@\n \n   private static dev.langchain4j.agent.tool.ToolExecutionRequest toToolExecutionRequest(dev.ai4j.openai4j.chat.ToolCall);\n     descriptor: (Ldev/ai4j/openai4j/chat/ToolCall;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n     flags: (0x000a) ACC_PRIVATE, ACC_STATIC\n     Code:\n       stack=2, locals=2, args_size=1\n          0: aload_0\n-         1: invokevirtual #123                // Method dev/ai4j/openai4j/chat/ToolCall.function:()Ldev/ai4j/openai4j/chat/FunctionCall;\n+         1: invokevirtual #417                // Method dev/ai4j/openai4j/chat/ToolCall.function:()Ldev/ai4j/openai4j/chat/FunctionCall;\n          4: astore_1\n-         5: invokestatic  #114                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         5: invokestatic  #394                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n          8: aload_0\n-         9: invokevirtual #124                // Method dev/ai4j/openai4j/chat/ToolCall.id:()Ljava/lang/String;\n-        12: invokevirtual #125                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         9: invokevirtual #422                // Method dev/ai4j/openai4j/chat/ToolCall.id:()Ljava/lang/String;\n+        12: invokevirtual #423                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n         15: aload_1\n-        16: invokevirtual #115                // Method dev/ai4j/openai4j/chat/FunctionCall.name:()Ljava/lang/String;\n-        19: invokevirtual #116                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        16: invokevirtual #397                // Method dev/ai4j/openai4j/chat/FunctionCall.name:()Ljava/lang/String;\n+        19: invokevirtual #398                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n         22: aload_1\n-        23: invokevirtual #117                // Method dev/ai4j/openai4j/chat/FunctionCall.arguments:()Ljava/lang/String;\n-        26: invokevirtual #118                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        29: invokevirtual #119                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+        23: invokevirtual #403                // Method dev/ai4j/openai4j/chat/FunctionCall.arguments:()Ljava/lang/String;\n+        26: invokevirtual #404                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        29: invokevirtual #406                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         32: areturn\n       LineNumberTable:\n         line 220: 0\n         line 221: 5\n         line 222: 9\n         line 223: 16\n         line 224: 23\n@@ -1365,23 +1357,23 @@\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=5, locals=1, args_size=1\n          0: aload_0\n          1: ifnonnull     6\n          4: aconst_null\n          5: areturn\n-         6: new           #126                // class dev/langchain4j/model/output/TokenUsage\n+         6: new           #425                // class dev/langchain4j/model/output/TokenUsage\n          9: dup\n         10: aload_0\n-        11: invokevirtual #127                // Method dev/ai4j/openai4j/shared/Usage.promptTokens:()Ljava/lang/Integer;\n+        11: invokevirtual #427                // Method dev/ai4j/openai4j/shared/Usage.promptTokens:()Ljava/lang/Integer;\n         14: aload_0\n-        15: invokevirtual #128                // Method dev/ai4j/openai4j/shared/Usage.completionTokens:()Ljava/lang/Integer;\n+        15: invokevirtual #433                // Method dev/ai4j/openai4j/shared/Usage.completionTokens:()Ljava/lang/Integer;\n         18: aload_0\n-        19: invokevirtual #129                // Method dev/ai4j/openai4j/shared/Usage.totalTokens:()Ljava/lang/Integer;\n-        22: invokespecial #130                // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        19: invokevirtual #436                // Method dev/ai4j/openai4j/shared/Usage.totalTokens:()Ljava/lang/Integer;\n+        22: invokespecial #439                // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Integer;)V\n         25: areturn\n       LineNumberTable:\n         line 229: 0\n         line 230: 4\n         line 232: 6\n         line 233: 11\n         line 234: 15\n@@ -1403,112 +1395,112 @@\n          4: aconst_null\n          5: areturn\n          6: aload_0\n          7: astore_1\n          8: iconst_m1\n          9: istore_2\n         10: aload_1\n-        11: invokevirtual #131                // Method java/lang/String.hashCode:()I\n+        11: invokevirtual #442                // Method java/lang/String.hashCode:()I\n         14: lookupswitch  { // 5\n-             -1106363674: 78\n-               -25949074: 92\n+             -1106363674: 79\n+               -25949074: 94\n                  3540994: 64\n-               124602878: 120\n-              2053138021: 106\n-                 default: 131\n+               124602878: 124\n+              2053138021: 109\n+                 default: 136\n             }\n         64: aload_1\n-        65: ldc           #132                // String stop\n-        67: invokevirtual #133                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n-        70: ifeq          131\n-        73: iconst_0\n-        74: istore_2\n-        75: goto          131\n-        78: aload_1\n-        79: ldc           #134                // String length\n-        81: invokevirtual #133                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n-        84: ifeq          131\n-        87: iconst_1\n-        88: istore_2\n-        89: goto          131\n-        92: aload_1\n-        93: ldc           #135                // String tool_calls\n-        95: invokevirtual #133                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n-        98: ifeq          131\n-       101: iconst_2\n-       102: istore_2\n-       103: goto          131\n-       106: aload_1\n-       107: ldc           #136                // String function_call\n-       109: invokevirtual #133                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n-       112: ifeq          131\n-       115: iconst_3\n-       116: istore_2\n-       117: goto          131\n-       120: aload_1\n-       121: ldc           #137                // String content_filter\n-       123: invokevirtual #133                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n-       126: ifeq          131\n-       129: iconst_4\n-       130: istore_2\n-       131: iload_2\n-       132: tableswitch   { // 0 to 4\n-                       0: 168\n-                       1: 172\n-                       2: 176\n-                       3: 176\n-                       4: 180\n-                 default: 184\n+        65: ldc_w         #446                // String stop\n+        68: invokevirtual #448                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+        71: ifeq          136\n+        74: iconst_0\n+        75: istore_2\n+        76: goto          136\n+        79: aload_1\n+        80: ldc_w         #452                // String length\n+        83: invokevirtual #448                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+        86: ifeq          136\n+        89: iconst_1\n+        90: istore_2\n+        91: goto          136\n+        94: aload_1\n+        95: ldc_w         #454                // String tool_calls\n+        98: invokevirtual #448                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+       101: ifeq          136\n+       104: iconst_2\n+       105: istore_2\n+       106: goto          136\n+       109: aload_1\n+       110: ldc_w         #456                // String function_call\n+       113: invokevirtual #448                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+       116: ifeq          136\n+       119: iconst_3\n+       120: istore_2\n+       121: goto          136\n+       124: aload_1\n+       125: ldc_w         #458                // String content_filter\n+       128: invokevirtual #448                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+       131: ifeq          136\n+       134: iconst_4\n+       135: istore_2\n+       136: iload_2\n+       137: tableswitch   { // 0 to 4\n+                       0: 172\n+                       1: 176\n+                       2: 180\n+                       3: 180\n+                       4: 184\n+                 default: 188\n             }\n-       168: getstatic     #138                // Field dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n-       171: areturn\n-       172: getstatic     #139                // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n+       172: getstatic     #460                // Field dev/langchain4j/model/output/FinishReason.STOP:Ldev/langchain4j/model/output/FinishReason;\n        175: areturn\n-       176: getstatic     #140                // Field dev/langchain4j/model/output/FinishReason.TOOL_EXECUTION:Ldev/langchain4j/model/output/FinishReason;\n+       176: getstatic     #466                // Field dev/langchain4j/model/output/FinishReason.LENGTH:Ldev/langchain4j/model/output/FinishReason;\n        179: areturn\n-       180: getstatic     #141                // Field dev/langchain4j/model/output/FinishReason.CONTENT_FILTER:Ldev/langchain4j/model/output/FinishReason;\n+       180: getstatic     #469                // Field dev/langchain4j/model/output/FinishReason.TOOL_EXECUTION:Ldev/langchain4j/model/output/FinishReason;\n        183: areturn\n-       184: aconst_null\n-       185: areturn\n+       184: getstatic     #472                // Field dev/langchain4j/model/output/FinishReason.CONTENT_FILTER:Ldev/langchain4j/model/output/FinishReason;\n+       187: areturn\n+       188: aconst_null\n+       189: areturn\n       LineNumberTable:\n         line 240: 0\n         line 241: 4\n         line 243: 6\n-        line 245: 168\n-        line 247: 172\n-        line 250: 176\n-        line 252: 180\n-        line 254: 184\n+        line 245: 172\n+        line 247: 176\n+        line 250: 180\n+        line 252: 184\n+        line 254: 188\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n-            0     186     0 openAiFinishReason   Ljava/lang/String;\n+            0     190     0 openAiFinishReason   Ljava/lang/String;\n       StackMapTable: number_of_entries = 12\n         frame_type = 6 /* same */\n         frame_type = 253 /* append */\n           offset_delta = 57\n           locals = [ class java/lang/String, int ]\n-        frame_type = 13 /* same */\n-        frame_type = 13 /* same */\n-        frame_type = 13 /* same */\n-        frame_type = 13 /* same */\n-        frame_type = 10 /* same */\n-        frame_type = 36 /* same */\n+        frame_type = 14 /* same */\n+        frame_type = 14 /* same */\n+        frame_type = 14 /* same */\n+        frame_type = 14 /* same */\n+        frame_type = 11 /* same */\n+        frame_type = 35 /* same */\n         frame_type = 3 /* same */\n         frame_type = 3 /* same */\n         frame_type = 3 /* same */\n         frame_type = 3 /* same */\n \n   private static boolean lambda$aiMessageFrom$1(dev.ai4j.openai4j.chat.ToolCall);\n     descriptor: (Ldev/ai4j/openai4j/chat/ToolCall;)Z\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: invokevirtual #142                // Method dev/ai4j/openai4j/chat/ToolCall.type:()Ldev/ai4j/openai4j/chat/ToolType;\n-         4: getstatic     #143                // Field dev/ai4j/openai4j/chat/ToolType.FUNCTION:Ldev/ai4j/openai4j/chat/ToolType;\n+         1: invokevirtual #475                // Method dev/ai4j/openai4j/chat/ToolCall.type:()Ldev/ai4j/openai4j/chat/ToolType;\n+         4: getstatic     #478                // Field dev/ai4j/openai4j/chat/ToolType.FUNCTION:Ldev/ai4j/openai4j/chat/ToolType;\n          7: if_acmpne     14\n         10: iconst_1\n         11: goto          15\n         14: iconst_0\n         15: ireturn\n       LineNumberTable:\n         line 201: 0\n@@ -1521,30 +1513,30 @@\n           stack = [ int ]\n \n   private static dev.ai4j.openai4j.chat.ToolCall lambda$toOpenAiMessage$0(dev.langchain4j.agent.tool.ToolExecutionRequest);\n     descriptor: (Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/ai4j/openai4j/chat/ToolCall;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=1, args_size=1\n-         0: invokestatic  #144                // Method dev/ai4j/openai4j/chat/ToolCall.builder:()Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n+         0: invokestatic  #484                // Method dev/ai4j/openai4j/chat/ToolCall.builder:()Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n          3: aload_0\n-         4: invokevirtual #29                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.id:()Ljava/lang/String;\n-         7: invokevirtual #145                // Method dev/ai4j/openai4j/chat/ToolCall$Builder.id:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n-        10: getstatic     #143                // Field dev/ai4j/openai4j/chat/ToolType.FUNCTION:Ldev/ai4j/openai4j/chat/ToolType;\n-        13: invokevirtual #146                // Method dev/ai4j/openai4j/chat/ToolCall$Builder.type:(Ldev/ai4j/openai4j/chat/ToolType;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n-        16: invokestatic  #30                 // Method dev/ai4j/openai4j/chat/FunctionCall.builder:()Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n+         4: invokevirtual #101                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.id:()Ljava/lang/String;\n+         7: invokevirtual #487                // Method dev/ai4j/openai4j/chat/ToolCall$Builder.id:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n+        10: getstatic     #478                // Field dev/ai4j/openai4j/chat/ToolType.FUNCTION:Ldev/ai4j/openai4j/chat/ToolType;\n+        13: invokevirtual #492                // Method dev/ai4j/openai4j/chat/ToolCall$Builder.type:(Ldev/ai4j/openai4j/chat/ToolType;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n+        16: invokestatic  #104                // Method dev/ai4j/openai4j/chat/FunctionCall.builder:()Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n         19: aload_0\n-        20: invokevirtual #31                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n-        23: invokevirtual #32                 // Method dev/ai4j/openai4j/chat/FunctionCall$Builder.name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n+        20: invokevirtual #109                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n+        23: invokevirtual #110                // Method dev/ai4j/openai4j/chat/FunctionCall$Builder.name:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n         26: aload_0\n-        27: invokevirtual #33                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-        30: invokevirtual #34                 // Method dev/ai4j/openai4j/chat/FunctionCall$Builder.arguments:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n-        33: invokevirtual #35                 // Method dev/ai4j/openai4j/chat/FunctionCall$Builder.build:()Ldev/ai4j/openai4j/chat/FunctionCall;\n-        36: invokevirtual #147                // Method dev/ai4j/openai4j/chat/ToolCall$Builder.function:(Ldev/ai4j/openai4j/chat/FunctionCall;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n-        39: invokevirtual #148                // Method dev/ai4j/openai4j/chat/ToolCall$Builder.build:()Ldev/ai4j/openai4j/chat/ToolCall;\n+        27: invokevirtual #115                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+        30: invokevirtual #118                // Method dev/ai4j/openai4j/chat/FunctionCall$Builder.arguments:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/FunctionCall$Builder;\n+        33: invokevirtual #120                // Method dev/ai4j/openai4j/chat/FunctionCall$Builder.build:()Ldev/ai4j/openai4j/chat/FunctionCall;\n+        36: invokevirtual #495                // Method dev/ai4j/openai4j/chat/ToolCall$Builder.function:(Ldev/ai4j/openai4j/chat/FunctionCall;)Ldev/ai4j/openai4j/chat/ToolCall$Builder;\n+        39: invokevirtual #498                // Method dev/ai4j/openai4j/chat/ToolCall$Builder.build:()Ldev/ai4j/openai4j/chat/ToolCall;\n         42: areturn\n       LineNumberTable:\n         line 85: 0\n         line 86: 4\n         line 87: 13\n         line 88: 16\n         line 89: 20\n@@ -1554,55 +1546,55 @@\n         line 92: 39\n         line 85: 42\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      43     0    it   Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n }\n SourceFile: \"InternalOpenAiHelper.java\"\n-InnerClasses:\n-  public static final #208= #207 of #58;  // DetailLevel=class dev/langchain4j/data/message/ImageContent$DetailLevel of class dev/langchain4j/data/message/ImageContent\n-  public static final #483= #288 of #286; // Builder=class dev/ai4j/openai4j/chat/UserMessage$Builder of class dev/ai4j/openai4j/chat/UserMessage\n-  public static final #483= #307 of #305; // Builder=class dev/ai4j/openai4j/chat/FunctionCall$Builder of class dev/ai4j/openai4j/chat/FunctionCall\n-  public static final #483= #313 of #299; // Builder=class dev/ai4j/openai4j/chat/AssistantMessage$Builder of class dev/ai4j/openai4j/chat/AssistantMessage\n-  public static final #483= #344 of #340; // Builder=class dev/ai4j/openai4j/chat/Content$Builder of class dev/ai4j/openai4j/chat/Content\n-  public static final #483= #353 of #349; // Builder=class dev/ai4j/openai4j/chat/ImageUrl$Builder of class dev/ai4j/openai4j/chat/ImageUrl\n-  public static final #483= #376 of #373; // Builder=class dev/ai4j/openai4j/chat/Function$Builder of class dev/ai4j/openai4j/chat/Function\n-  public static final #483= #390 of #388; // Builder=class dev/ai4j/openai4j/chat/Parameters$Builder of class dev/ai4j/openai4j/chat/Parameters\n-  public static final #483= #414 of #28;  // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n-  public static final #483= #446 of #421; // Builder=class dev/ai4j/openai4j/chat/ToolCall$Builder of class dev/ai4j/openai4j/chat/ToolCall\n-  public static final #639= #638 of #641; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #269 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #590 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #270 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #271 REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiMessage:(Ldev/langchain4j/data/message/ChatMessage;)Ldev/ai4j/openai4j/chat/Message;\n-      #272 (Ldev/langchain4j/data/message/ChatMessage;)Ldev/ai4j/openai4j/chat/Message;\n-  1: #269 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #597 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #599 REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiMessage:(Ldev/langchain4j/data/message/ChatMessage;)Ldev/ai4j/openai4j/chat/Message;\n+      #602 (Ldev/langchain4j/data/message/ChatMessage;)Ldev/ai4j/openai4j/chat/Message;\n+  1: #590 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #270 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #294 REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiContent:(Ldev/langchain4j/data/message/Content;)Ldev/ai4j/openai4j/chat/Content;\n-      #295 (Ldev/langchain4j/data/message/Content;)Ldev/ai4j/openai4j/chat/Content;\n-  2: #269 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #597 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #603 REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiContent:(Ldev/langchain4j/data/message/Content;)Ldev/ai4j/openai4j/chat/Content;\n+      #606 (Ldev/langchain4j/data/message/Content;)Ldev/ai4j/openai4j/chat/Content;\n+  2: #590 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #270 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #316 REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.lambda$toOpenAiMessage$0:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/ai4j/openai4j/chat/ToolCall;\n-      #317 (Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/ai4j/openai4j/chat/ToolCall;\n-  3: #269 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #597 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #607 REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.lambda$toOpenAiMessage$0:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/ai4j/openai4j/chat/ToolCall;\n+      #610 (Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/ai4j/openai4j/chat/ToolCall;\n+  3: #590 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #270 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #371 REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.toTool:(Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Tool;\n-      #372 (Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Tool;\n-  4: #269 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #597 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #611 REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.toTool:(Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Tool;\n+      #614 (Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Tool;\n+  4: #590 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #270 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #386 REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.toFunction:(Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Function;\n-      #387 (Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Function;\n-  5: #269 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #597 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #615 REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.toFunction:(Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Function;\n+      #618 (Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/ai4j/openai4j/chat/Function;\n+  5: #590 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #404 (Ljava/lang/Object;)Z\n-      #405 REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.lambda$aiMessageFrom$1:(Ldev/ai4j/openai4j/chat/ToolCall;)Z\n-      #406 (Ldev/ai4j/openai4j/chat/ToolCall;)Z\n-  6: #269 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #619 (Ljava/lang/Object;)Z\n+      #620 REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.lambda$aiMessageFrom$1:(Ldev/ai4j/openai4j/chat/ToolCall;)Z\n+      #623 (Ldev/ai4j/openai4j/chat/ToolCall;)Z\n+  6: #590 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #270 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #409 REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.toToolExecutionRequest:(Ldev/ai4j/openai4j/chat/ToolCall;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-      #410 (Ldev/ai4j/openai4j/chat/ToolCall;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+      #597 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #624 REF_invokeStatic dev/langchain4j/model/openai/InternalOpenAiHelper.toToolExecutionRequest:(Ldev/ai4j/openai4j/chat/ToolCall;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+      #627 (Ldev/ai4j/openai4j/chat/ToolCall;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+InnerClasses:\n+  public static final #629= #59 of #52;   // Builder=class dev/ai4j/openai4j/chat/UserMessage$Builder of class dev/ai4j/openai4j/chat/UserMessage\n+  public static final #629= #111 of #105; // Builder=class dev/ai4j/openai4j/chat/FunctionCall$Builder of class dev/ai4j/openai4j/chat/FunctionCall\n+  public static final #629= #127 of #88;  // Builder=class dev/ai4j/openai4j/chat/AssistantMessage$Builder of class dev/ai4j/openai4j/chat/AssistantMessage\n+  public static final #629= #211 of #200; // Builder=class dev/ai4j/openai4j/chat/Content$Builder of class dev/ai4j/openai4j/chat/Content\n+  public static final #629= #239 of #226; // Builder=class dev/ai4j/openai4j/chat/ImageUrl$Builder of class dev/ai4j/openai4j/chat/ImageUrl\n+  public static final #630= #286 of #192; // DetailLevel=class dev/langchain4j/data/message/ImageContent$DetailLevel of class dev/langchain4j/data/message/ImageContent\n+  public static final #629= #307 of #299; // Builder=class dev/ai4j/openai4j/chat/Function$Builder of class dev/ai4j/openai4j/chat/Function\n+  public static final #629= #342 of #337; // Builder=class dev/ai4j/openai4j/chat/Parameters$Builder of class dev/ai4j/openai4j/chat/Parameters\n+  public static final #629= #399 of #99;  // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n+  public static final #629= #488 of #418; // Builder=class dev/ai4j/openai4j/chat/ToolCall$Builder of class dev/ai4j/openai4j/chat/ToolCall\n+  public static final #635= #631 of #633; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.class", "source2": "dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,186 +1,186 @@\n-  SHA-256 checksum 332a24138cc7009286fae609605cd46a627ab056eea7a802c302312572182830\n+  SHA-256 checksum 4e102da99c5d44942b1b4744cbb29f25d348f5f0082a9fb4995d17cbeff7506d\n   Compiled from \"OpenAiChatModel.java\"\n public class dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #51                         // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder\n-  super_class: #52                        // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 20, methods: 24, attributes: 2\n Constant pool:\n-    #1 = Methodref          #52.#114      // java/lang/Object.\"<init>\":()V\n-    #2 = Fieldref           #51.#115      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.modelName:Ljava/lang/String;\n-    #3 = Methodref          #116.#117     // dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n-    #4 = Fieldref           #51.#118      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.baseUrl:Ljava/lang/String;\n-    #5 = Fieldref           #51.#119      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.apiKey:Ljava/lang/String;\n-    #6 = Fieldref           #51.#120      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.organizationId:Ljava/lang/String;\n-    #7 = Fieldref           #51.#121      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.temperature:Ljava/lang/Double;\n-    #8 = Fieldref           #51.#122      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.topP:Ljava/lang/Double;\n-    #9 = Fieldref           #51.#123      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.stop:Ljava/util/List;\n-   #10 = Fieldref           #51.#124      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.maxTokens:Ljava/lang/Integer;\n-   #11 = Fieldref           #51.#125      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.presencePenalty:Ljava/lang/Double;\n-   #12 = Fieldref           #51.#126      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.frequencyPenalty:Ljava/lang/Double;\n-   #13 = Fieldref           #51.#127      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.logitBias:Ljava/util/Map;\n-   #14 = Fieldref           #51.#128      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.responseFormat:Ljava/lang/String;\n-   #15 = Fieldref           #51.#129      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.seed:Ljava/lang/Integer;\n-   #16 = Fieldref           #51.#130      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.user:Ljava/lang/String;\n-   #17 = Fieldref           #51.#131      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.timeout:Ljava/time/Duration;\n-   #18 = Fieldref           #51.#132      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.maxRetries:Ljava/lang/Integer;\n-   #19 = Fieldref           #51.#133      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.proxy:Ljava/net/Proxy;\n-   #20 = Fieldref           #51.#134      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.logRequests:Ljava/lang/Boolean;\n-   #21 = Fieldref           #51.#135      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.logResponses:Ljava/lang/Boolean;\n-   #22 = Fieldref           #51.#136      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.tokenizer:Ldev/langchain4j/model/Tokenizer;\n-   #23 = Class              #137          // dev/langchain4j/model/openai/OpenAiChatModel\n-   #24 = Methodref          #23.#138      // dev/langchain4j/model/openai/OpenAiChatModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n-   #25 = Class              #139          // java/lang/StringBuilder\n-   #26 = Methodref          #25.#114      // java/lang/StringBuilder.\"<init>\":()V\n-   #27 = String             #140          // OpenAiChatModel.OpenAiChatModelBuilder(baseUrl=\n-   #28 = Methodref          #25.#141      // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #29 = String             #142          // , apiKey=\n-   #30 = String             #143          // , organizationId=\n-   #31 = String             #144          // , modelName=\n-   #32 = String             #145          // , temperature=\n-   #33 = Methodref          #25.#146      // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #34 = String             #147          // , topP=\n-   #35 = String             #148          // , stop=\n-   #36 = String             #149          // , maxTokens=\n-   #37 = String             #150          // , presencePenalty=\n-   #38 = String             #151          // , frequencyPenalty=\n-   #39 = String             #152          // , logitBias=\n-   #40 = String             #153          // , responseFormat=\n-   #41 = String             #154          // , seed=\n-   #42 = String             #155          // , user=\n-   #43 = String             #156          // , timeout=\n-   #44 = String             #157          // , maxRetries=\n-   #45 = String             #158          // , proxy=\n-   #46 = String             #159          // , logRequests=\n-   #47 = String             #160          // , logResponses=\n-   #48 = String             #161          // , tokenizer=\n-   #49 = String             #162          // )\n-   #50 = Methodref          #25.#117      // java/lang/StringBuilder.toString:()Ljava/lang/String;\n-   #51 = Class              #163          // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder\n-   #52 = Class              #164          // java/lang/Object\n-   #53 = Utf8               baseUrl\n-   #54 = Utf8               Ljava/lang/String;\n-   #55 = Utf8               apiKey\n-   #56 = Utf8               organizationId\n-   #57 = Utf8               modelName\n-   #58 = Utf8               temperature\n-   #59 = Utf8               Ljava/lang/Double;\n-   #60 = Utf8               topP\n-   #61 = Utf8               stop\n-   #62 = Utf8               Ljava/util/List;\n-   #63 = Utf8               Signature\n-   #64 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n-   #65 = Utf8               maxTokens\n-   #66 = Utf8               Ljava/lang/Integer;\n-   #67 = Utf8               presencePenalty\n-   #68 = Utf8               frequencyPenalty\n-   #69 = Utf8               logitBias\n-   #70 = Utf8               Ljava/util/Map;\n-   #71 = Utf8               Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;\n-   #72 = Utf8               responseFormat\n-   #73 = Utf8               seed\n-   #74 = Utf8               user\n-   #75 = Utf8               timeout\n-   #76 = Utf8               Ljava/time/Duration;\n-   #77 = Utf8               maxRetries\n-   #78 = Utf8               proxy\n-   #79 = Utf8               Ljava/net/Proxy;\n-   #80 = Utf8               logRequests\n-   #81 = Utf8               Ljava/lang/Boolean;\n-   #82 = Utf8               logResponses\n-   #83 = Utf8               tokenizer\n-   #84 = Utf8               Ldev/langchain4j/model/Tokenizer;\n-   #85 = Utf8               <init>\n-   #86 = Utf8               ()V\n-   #87 = Utf8               Code\n-   #88 = Utf8               LineNumberTable\n-   #89 = Utf8               LocalVariableTable\n-   #90 = Utf8               this\n-   #91 = Utf8               OpenAiChatModelBuilder\n-   #92 = Utf8               InnerClasses\n-   #93 = Utf8               Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-   #94 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-   #95 = Utf8               (Ldev/langchain4j/model/openai/OpenAiChatModelName;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-   #96 = Utf8               Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #97 = Utf8               (Ljava/lang/Double;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-   #98 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-   #99 = Utf8               LocalVariableTypeTable\n-  #100 = Utf8               (Ljava/util/List<Ljava/lang/String;>;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-  #101 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-  #102 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-  #103 = Utf8               (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-  #104 = Utf8               (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-  #105 = Utf8               (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-  #106 = Utf8               (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-  #107 = Utf8               (Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-  #108 = Utf8               build\n-  #109 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiChatModel;\n-  #110 = Utf8               toString\n-  #111 = Utf8               ()Ljava/lang/String;\n-  #112 = Utf8               SourceFile\n-  #113 = Utf8               OpenAiChatModel.java\n-  #114 = NameAndType        #85:#86       // \"<init>\":()V\n-  #115 = NameAndType        #57:#54       // modelName:Ljava/lang/String;\n-  #116 = Class              #165          // dev/langchain4j/model/openai/OpenAiChatModelName\n-  #117 = NameAndType        #110:#111     // toString:()Ljava/lang/String;\n-  #118 = NameAndType        #53:#54       // baseUrl:Ljava/lang/String;\n-  #119 = NameAndType        #55:#54       // apiKey:Ljava/lang/String;\n-  #120 = NameAndType        #56:#54       // organizationId:Ljava/lang/String;\n-  #121 = NameAndType        #58:#59       // temperature:Ljava/lang/Double;\n-  #122 = NameAndType        #60:#59       // topP:Ljava/lang/Double;\n-  #123 = NameAndType        #61:#62       // stop:Ljava/util/List;\n-  #124 = NameAndType        #65:#66       // maxTokens:Ljava/lang/Integer;\n-  #125 = NameAndType        #67:#59       // presencePenalty:Ljava/lang/Double;\n-  #126 = NameAndType        #68:#59       // frequencyPenalty:Ljava/lang/Double;\n-  #127 = NameAndType        #69:#70       // logitBias:Ljava/util/Map;\n-  #128 = NameAndType        #72:#54       // responseFormat:Ljava/lang/String;\n-  #129 = NameAndType        #73:#66       // seed:Ljava/lang/Integer;\n-  #130 = NameAndType        #74:#54       // user:Ljava/lang/String;\n-  #131 = NameAndType        #75:#76       // timeout:Ljava/time/Duration;\n-  #132 = NameAndType        #77:#66       // maxRetries:Ljava/lang/Integer;\n-  #133 = NameAndType        #78:#79       // proxy:Ljava/net/Proxy;\n-  #134 = NameAndType        #80:#81       // logRequests:Ljava/lang/Boolean;\n-  #135 = NameAndType        #82:#81       // logResponses:Ljava/lang/Boolean;\n-  #136 = NameAndType        #83:#84       // tokenizer:Ldev/langchain4j/model/Tokenizer;\n-  #137 = Utf8               dev/langchain4j/model/openai/OpenAiChatModel\n-  #138 = NameAndType        #85:#166      // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n-  #139 = Utf8               java/lang/StringBuilder\n-  #140 = Utf8               OpenAiChatModel.OpenAiChatModelBuilder(baseUrl=\n-  #141 = NameAndType        #167:#168     // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #142 = Utf8               , apiKey=\n-  #143 = Utf8               , organizationId=\n-  #144 = Utf8               , modelName=\n-  #145 = Utf8               , temperature=\n-  #146 = NameAndType        #167:#169     // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-  #147 = Utf8               , topP=\n-  #148 = Utf8               , stop=\n-  #149 = Utf8               , maxTokens=\n-  #150 = Utf8               , presencePenalty=\n-  #151 = Utf8               , frequencyPenalty=\n-  #152 = Utf8               , logitBias=\n-  #153 = Utf8               , responseFormat=\n-  #154 = Utf8               , seed=\n-  #155 = Utf8               , user=\n-  #156 = Utf8               , timeout=\n-  #157 = Utf8               , maxRetries=\n-  #158 = Utf8               , proxy=\n-  #159 = Utf8               , logRequests=\n-  #160 = Utf8               , logResponses=\n-  #161 = Utf8               , tokenizer=\n-  #162 = Utf8               )\n-  #163 = Utf8               dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder\n-  #164 = Utf8               java/lang/Object\n-  #165 = Utf8               dev/langchain4j/model/openai/OpenAiChatModelName\n-  #166 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n-  #167 = Utf8               append\n-  #168 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #169 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Fieldref           #8.#9         // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.modelName:Ljava/lang/String;\n+    #8 = Class              #10           // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder\n+    #9 = NameAndType        #11:#12       // modelName:Ljava/lang/String;\n+   #10 = Utf8               dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder\n+   #11 = Utf8               modelName\n+   #12 = Utf8               Ljava/lang/String;\n+   #13 = Methodref          #14.#15       // dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n+   #14 = Class              #16           // dev/langchain4j/model/openai/OpenAiChatModelName\n+   #15 = NameAndType        #17:#18       // toString:()Ljava/lang/String;\n+   #16 = Utf8               dev/langchain4j/model/openai/OpenAiChatModelName\n+   #17 = Utf8               toString\n+   #18 = Utf8               ()Ljava/lang/String;\n+   #19 = Fieldref           #8.#20        // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.baseUrl:Ljava/lang/String;\n+   #20 = NameAndType        #21:#12       // baseUrl:Ljava/lang/String;\n+   #21 = Utf8               baseUrl\n+   #22 = Fieldref           #8.#23        // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.apiKey:Ljava/lang/String;\n+   #23 = NameAndType        #24:#12       // apiKey:Ljava/lang/String;\n+   #24 = Utf8               apiKey\n+   #25 = Fieldref           #8.#26        // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.organizationId:Ljava/lang/String;\n+   #26 = NameAndType        #27:#12       // organizationId:Ljava/lang/String;\n+   #27 = Utf8               organizationId\n+   #28 = Fieldref           #8.#29        // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.temperature:Ljava/lang/Double;\n+   #29 = NameAndType        #30:#31       // temperature:Ljava/lang/Double;\n+   #30 = Utf8               temperature\n+   #31 = Utf8               Ljava/lang/Double;\n+   #32 = Fieldref           #8.#33        // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.topP:Ljava/lang/Double;\n+   #33 = NameAndType        #34:#31       // topP:Ljava/lang/Double;\n+   #34 = Utf8               topP\n+   #35 = Fieldref           #8.#36        // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.stop:Ljava/util/List;\n+   #36 = NameAndType        #37:#38       // stop:Ljava/util/List;\n+   #37 = Utf8               stop\n+   #38 = Utf8               Ljava/util/List;\n+   #39 = Fieldref           #8.#40        // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.maxTokens:Ljava/lang/Integer;\n+   #40 = NameAndType        #41:#42       // maxTokens:Ljava/lang/Integer;\n+   #41 = Utf8               maxTokens\n+   #42 = Utf8               Ljava/lang/Integer;\n+   #43 = Fieldref           #8.#44        // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.presencePenalty:Ljava/lang/Double;\n+   #44 = NameAndType        #45:#31       // presencePenalty:Ljava/lang/Double;\n+   #45 = Utf8               presencePenalty\n+   #46 = Fieldref           #8.#47        // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.frequencyPenalty:Ljava/lang/Double;\n+   #47 = NameAndType        #48:#31       // frequencyPenalty:Ljava/lang/Double;\n+   #48 = Utf8               frequencyPenalty\n+   #49 = Fieldref           #8.#50        // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.logitBias:Ljava/util/Map;\n+   #50 = NameAndType        #51:#52       // logitBias:Ljava/util/Map;\n+   #51 = Utf8               logitBias\n+   #52 = Utf8               Ljava/util/Map;\n+   #53 = Fieldref           #8.#54        // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.responseFormat:Ljava/lang/String;\n+   #54 = NameAndType        #55:#12       // responseFormat:Ljava/lang/String;\n+   #55 = Utf8               responseFormat\n+   #56 = Fieldref           #8.#57        // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.seed:Ljava/lang/Integer;\n+   #57 = NameAndType        #58:#42       // seed:Ljava/lang/Integer;\n+   #58 = Utf8               seed\n+   #59 = Fieldref           #8.#60        // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.user:Ljava/lang/String;\n+   #60 = NameAndType        #61:#12       // user:Ljava/lang/String;\n+   #61 = Utf8               user\n+   #62 = Fieldref           #8.#63        // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.timeout:Ljava/time/Duration;\n+   #63 = NameAndType        #64:#65       // timeout:Ljava/time/Duration;\n+   #64 = Utf8               timeout\n+   #65 = Utf8               Ljava/time/Duration;\n+   #66 = Fieldref           #8.#67        // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.maxRetries:Ljava/lang/Integer;\n+   #67 = NameAndType        #68:#42       // maxRetries:Ljava/lang/Integer;\n+   #68 = Utf8               maxRetries\n+   #69 = Fieldref           #8.#70        // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.proxy:Ljava/net/Proxy;\n+   #70 = NameAndType        #71:#72       // proxy:Ljava/net/Proxy;\n+   #71 = Utf8               proxy\n+   #72 = Utf8               Ljava/net/Proxy;\n+   #73 = Fieldref           #8.#74        // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.logRequests:Ljava/lang/Boolean;\n+   #74 = NameAndType        #75:#76       // logRequests:Ljava/lang/Boolean;\n+   #75 = Utf8               logRequests\n+   #76 = Utf8               Ljava/lang/Boolean;\n+   #77 = Fieldref           #8.#78        // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.logResponses:Ljava/lang/Boolean;\n+   #78 = NameAndType        #79:#76       // logResponses:Ljava/lang/Boolean;\n+   #79 = Utf8               logResponses\n+   #80 = Fieldref           #8.#81        // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.tokenizer:Ldev/langchain4j/model/Tokenizer;\n+   #81 = NameAndType        #82:#83       // tokenizer:Ldev/langchain4j/model/Tokenizer;\n+   #82 = Utf8               tokenizer\n+   #83 = Utf8               Ldev/langchain4j/model/Tokenizer;\n+   #84 = Class              #85           // dev/langchain4j/model/openai/OpenAiChatModel\n+   #85 = Utf8               dev/langchain4j/model/openai/OpenAiChatModel\n+   #86 = Methodref          #84.#87       // dev/langchain4j/model/openai/OpenAiChatModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+   #87 = NameAndType        #5:#88        // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+   #88 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+   #89 = Class              #90           // java/lang/StringBuilder\n+   #90 = Utf8               java/lang/StringBuilder\n+   #91 = Methodref          #89.#3        // java/lang/StringBuilder.\"<init>\":()V\n+   #92 = String             #93           // OpenAiChatModel.OpenAiChatModelBuilder(baseUrl=\n+   #93 = Utf8               OpenAiChatModel.OpenAiChatModelBuilder(baseUrl=\n+   #94 = Methodref          #89.#95       // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #95 = NameAndType        #96:#97       // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #96 = Utf8               append\n+   #97 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #98 = String             #99           // , apiKey=\n+   #99 = Utf8               , apiKey=\n+  #100 = String             #101          // , organizationId=\n+  #101 = Utf8               , organizationId=\n+  #102 = String             #103          // , modelName=\n+  #103 = Utf8               , modelName=\n+  #104 = String             #105          // , temperature=\n+  #105 = Utf8               , temperature=\n+  #106 = Methodref          #89.#107      // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+  #107 = NameAndType        #96:#108      // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+  #108 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+  #109 = String             #110          // , topP=\n+  #110 = Utf8               , topP=\n+  #111 = String             #112          // , stop=\n+  #112 = Utf8               , stop=\n+  #113 = String             #114          // , maxTokens=\n+  #114 = Utf8               , maxTokens=\n+  #115 = String             #116          // , presencePenalty=\n+  #116 = Utf8               , presencePenalty=\n+  #117 = String             #118          // , frequencyPenalty=\n+  #118 = Utf8               , frequencyPenalty=\n+  #119 = String             #120          // , logitBias=\n+  #120 = Utf8               , logitBias=\n+  #121 = String             #122          // , responseFormat=\n+  #122 = Utf8               , responseFormat=\n+  #123 = String             #124          // , seed=\n+  #124 = Utf8               , seed=\n+  #125 = String             #126          // , user=\n+  #126 = Utf8               , user=\n+  #127 = String             #128          // , timeout=\n+  #128 = Utf8               , timeout=\n+  #129 = String             #130          // , maxRetries=\n+  #130 = Utf8               , maxRetries=\n+  #131 = String             #132          // , proxy=\n+  #132 = Utf8               , proxy=\n+  #133 = String             #134          // , logRequests=\n+  #134 = Utf8               , logRequests=\n+  #135 = String             #136          // , logResponses=\n+  #136 = Utf8               , logResponses=\n+  #137 = String             #138          // , tokenizer=\n+  #138 = Utf8               , tokenizer=\n+  #139 = String             #140          // )\n+  #140 = Utf8               )\n+  #141 = Methodref          #89.#15       // java/lang/StringBuilder.toString:()Ljava/lang/String;\n+  #142 = Utf8               Signature\n+  #143 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n+  #144 = Utf8               Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;\n+  #145 = Utf8               Code\n+  #146 = Utf8               LineNumberTable\n+  #147 = Utf8               LocalVariableTable\n+  #148 = Utf8               this\n+  #149 = Utf8               Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+  #150 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+  #151 = Utf8               (Ldev/langchain4j/model/openai/OpenAiChatModelName;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+  #152 = Utf8               Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+  #153 = Utf8               (Ljava/lang/Double;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+  #154 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+  #155 = Utf8               LocalVariableTypeTable\n+  #156 = Utf8               (Ljava/util/List<Ljava/lang/String;>;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+  #157 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+  #158 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+  #159 = Utf8               (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+  #160 = Utf8               (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+  #161 = Utf8               (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+  #162 = Utf8               (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+  #163 = Utf8               (Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+  #164 = Utf8               build\n+  #165 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiChatModel;\n+  #166 = Utf8               SourceFile\n+  #167 = Utf8               OpenAiChatModel.java\n+  #168 = Utf8               InnerClasses\n+  #169 = Utf8               OpenAiChatModelBuilder\n {\n   private java.lang.String baseUrl;\n     descriptor: Ljava/lang/String;\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.lang.String apiKey;\n     descriptor: Ljava/lang/String;\n@@ -201,15 +201,15 @@\n   private java.lang.Double topP;\n     descriptor: Ljava/lang/Double;\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.util.List<java.lang.String> stop;\n     descriptor: Ljava/util/List;\n     flags: (0x0002) ACC_PRIVATE\n-    Signature: #64                          // Ljava/util/List<Ljava/lang/String;>;\n+    Signature: #143                         // Ljava/util/List<Ljava/lang/String;>;\n \n   private java.lang.Integer maxTokens;\n     descriptor: Ljava/lang/Integer;\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.lang.Double presencePenalty;\n     descriptor: Ljava/lang/Double;\n@@ -218,15 +218,15 @@\n   private java.lang.Double frequencyPenalty;\n     descriptor: Ljava/lang/Double;\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.util.Map<java.lang.String, java.lang.Integer> logitBias;\n     descriptor: Ljava/util/Map;\n     flags: (0x0002) ACC_PRIVATE\n-    Signature: #71                          // Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;\n+    Signature: #144                         // Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;\n \n   private java.lang.String responseFormat;\n     descriptor: Ljava/lang/String;\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.lang.Integer seed;\n     descriptor: Ljava/lang/Integer;\n@@ -278,15 +278,15 @@\n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder modelName(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #2                  // Field modelName:Ljava/lang/String;\n+         2: putfield      #7                  // Field modelName:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 181: 0\n         line 182: 5\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -296,16 +296,16 @@\n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder modelName(dev.langchain4j.model.openai.OpenAiChatModelName);\n     descriptor: (Ldev/langchain4j/model/openai/OpenAiChatModelName;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokevirtual #3                  // Method dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n-         5: putfield      #2                  // Field modelName:Ljava/lang/String;\n+         2: invokevirtual #13                 // Method dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n+         5: putfield      #7                  // Field modelName:Ljava/lang/String;\n          8: aload_0\n          9: areturn\n       LineNumberTable:\n         line 186: 0\n         line 187: 8\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -315,15 +315,15 @@\n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder baseUrl(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #4                  // Field baseUrl:Ljava/lang/String;\n+         2: putfield      #19                 // Field baseUrl:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n@@ -332,15 +332,15 @@\n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder apiKey(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #5                  // Field apiKey:Ljava/lang/String;\n+         2: putfield      #22                 // Field apiKey:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n@@ -349,15 +349,15 @@\n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder organizationId(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #6                  // Field organizationId:Ljava/lang/String;\n+         2: putfield      #25                 // Field organizationId:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n@@ -366,15 +366,15 @@\n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder temperature(java.lang.Double);\n     descriptor: (Ljava/lang/Double;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #7                  // Field temperature:Ljava/lang/Double;\n+         2: putfield      #28                 // Field temperature:Ljava/lang/Double;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n@@ -383,15 +383,15 @@\n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder topP(java.lang.Double);\n     descriptor: (Ljava/lang/Double;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #8                  // Field topP:Ljava/lang/Double;\n+         2: putfield      #32                 // Field topP:Ljava/lang/Double;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n@@ -400,36 +400,36 @@\n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder stop(java.util.List<java.lang.String>);\n     descriptor: (Ljava/util/List;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #9                  // Field stop:Ljava/util/List;\n+         2: putfield      #35                 // Field stop:Ljava/util/List;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n             0       7     1  stop   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0       7     1  stop   Ljava/util/List<Ljava/lang/String;>;\n-    Signature: #100                         // (Ljava/util/List<Ljava/lang/String;>;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+    Signature: #156                         // (Ljava/util/List<Ljava/lang/String;>;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n \n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder maxTokens(java.lang.Integer);\n     descriptor: (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #10                 // Field maxTokens:Ljava/lang/Integer;\n+         2: putfield      #39                 // Field maxTokens:Ljava/lang/Integer;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n@@ -438,15 +438,15 @@\n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder presencePenalty(java.lang.Double);\n     descriptor: (Ljava/lang/Double;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #11                 // Field presencePenalty:Ljava/lang/Double;\n+         2: putfield      #43                 // Field presencePenalty:Ljava/lang/Double;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n@@ -455,15 +455,15 @@\n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder frequencyPenalty(java.lang.Double);\n     descriptor: (Ljava/lang/Double;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #12                 // Field frequencyPenalty:Ljava/lang/Double;\n+         2: putfield      #46                 // Field frequencyPenalty:Ljava/lang/Double;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n@@ -472,36 +472,36 @@\n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder logitBias(java.util.Map<java.lang.String, java.lang.Integer>);\n     descriptor: (Ljava/util/Map;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #13                 // Field logitBias:Ljava/util/Map;\n+         2: putfield      #49                 // Field logitBias:Ljava/util/Map;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n             0       7     1 logitBias   Ljava/util/Map;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0       7     1 logitBias   Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;\n-    Signature: #103                         // (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+    Signature: #159                         // (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n \n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder responseFormat(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #14                 // Field responseFormat:Ljava/lang/String;\n+         2: putfield      #53                 // Field responseFormat:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n@@ -510,15 +510,15 @@\n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder seed(java.lang.Integer);\n     descriptor: (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #15                 // Field seed:Ljava/lang/Integer;\n+         2: putfield      #56                 // Field seed:Ljava/lang/Integer;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n@@ -527,15 +527,15 @@\n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder user(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #16                 // Field user:Ljava/lang/String;\n+         2: putfield      #59                 // Field user:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n@@ -544,15 +544,15 @@\n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder timeout(java.time.Duration);\n     descriptor: (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #17                 // Field timeout:Ljava/time/Duration;\n+         2: putfield      #62                 // Field timeout:Ljava/time/Duration;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n@@ -561,15 +561,15 @@\n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder maxRetries(java.lang.Integer);\n     descriptor: (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #18                 // Field maxRetries:Ljava/lang/Integer;\n+         2: putfield      #66                 // Field maxRetries:Ljava/lang/Integer;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n@@ -578,15 +578,15 @@\n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder proxy(java.net.Proxy);\n     descriptor: (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #19                 // Field proxy:Ljava/net/Proxy;\n+         2: putfield      #69                 // Field proxy:Ljava/net/Proxy;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n@@ -595,15 +595,15 @@\n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder logRequests(java.lang.Boolean);\n     descriptor: (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #20                 // Field logRequests:Ljava/lang/Boolean;\n+         2: putfield      #73                 // Field logRequests:Ljava/lang/Boolean;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n@@ -612,15 +612,15 @@\n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder logResponses(java.lang.Boolean);\n     descriptor: (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #21                 // Field logResponses:Ljava/lang/Boolean;\n+         2: putfield      #77                 // Field logResponses:Ljava/lang/Boolean;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n@@ -629,193 +629,193 @@\n   public dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder tokenizer(dev.langchain4j.model.Tokenizer);\n     descriptor: (Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #22                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+         2: putfield      #80                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n             0       7     1 tokenizer   Ldev/langchain4j/model/Tokenizer;\n \n   public dev.langchain4j.model.openai.OpenAiChatModel build();\n     descriptor: ()Ldev/langchain4j/model/openai/OpenAiChatModel;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=22, locals=1, args_size=1\n-         0: new           #23                 // class dev/langchain4j/model/openai/OpenAiChatModel\n+         0: new           #84                 // class dev/langchain4j/model/openai/OpenAiChatModel\n          3: dup\n          4: aload_0\n-         5: getfield      #4                  // Field baseUrl:Ljava/lang/String;\n+         5: getfield      #19                 // Field baseUrl:Ljava/lang/String;\n          8: aload_0\n-         9: getfield      #5                  // Field apiKey:Ljava/lang/String;\n+         9: getfield      #22                 // Field apiKey:Ljava/lang/String;\n         12: aload_0\n-        13: getfield      #6                  // Field organizationId:Ljava/lang/String;\n+        13: getfield      #25                 // Field organizationId:Ljava/lang/String;\n         16: aload_0\n-        17: getfield      #2                  // Field modelName:Ljava/lang/String;\n+        17: getfield      #7                  // Field modelName:Ljava/lang/String;\n         20: aload_0\n-        21: getfield      #7                  // Field temperature:Ljava/lang/Double;\n+        21: getfield      #28                 // Field temperature:Ljava/lang/Double;\n         24: aload_0\n-        25: getfield      #8                  // Field topP:Ljava/lang/Double;\n+        25: getfield      #32                 // Field topP:Ljava/lang/Double;\n         28: aload_0\n-        29: getfield      #9                  // Field stop:Ljava/util/List;\n+        29: getfield      #35                 // Field stop:Ljava/util/List;\n         32: aload_0\n-        33: getfield      #10                 // Field maxTokens:Ljava/lang/Integer;\n+        33: getfield      #39                 // Field maxTokens:Ljava/lang/Integer;\n         36: aload_0\n-        37: getfield      #11                 // Field presencePenalty:Ljava/lang/Double;\n+        37: getfield      #43                 // Field presencePenalty:Ljava/lang/Double;\n         40: aload_0\n-        41: getfield      #12                 // Field frequencyPenalty:Ljava/lang/Double;\n+        41: getfield      #46                 // Field frequencyPenalty:Ljava/lang/Double;\n         44: aload_0\n-        45: getfield      #13                 // Field logitBias:Ljava/util/Map;\n+        45: getfield      #49                 // Field logitBias:Ljava/util/Map;\n         48: aload_0\n-        49: getfield      #14                 // Field responseFormat:Ljava/lang/String;\n+        49: getfield      #53                 // Field responseFormat:Ljava/lang/String;\n         52: aload_0\n-        53: getfield      #15                 // Field seed:Ljava/lang/Integer;\n+        53: getfield      #56                 // Field seed:Ljava/lang/Integer;\n         56: aload_0\n-        57: getfield      #16                 // Field user:Ljava/lang/String;\n+        57: getfield      #59                 // Field user:Ljava/lang/String;\n         60: aload_0\n-        61: getfield      #17                 // Field timeout:Ljava/time/Duration;\n+        61: getfield      #62                 // Field timeout:Ljava/time/Duration;\n         64: aload_0\n-        65: getfield      #18                 // Field maxRetries:Ljava/lang/Integer;\n+        65: getfield      #66                 // Field maxRetries:Ljava/lang/Integer;\n         68: aload_0\n-        69: getfield      #19                 // Field proxy:Ljava/net/Proxy;\n+        69: getfield      #69                 // Field proxy:Ljava/net/Proxy;\n         72: aload_0\n-        73: getfield      #20                 // Field logRequests:Ljava/lang/Boolean;\n+        73: getfield      #73                 // Field logRequests:Ljava/lang/Boolean;\n         76: aload_0\n-        77: getfield      #21                 // Field logResponses:Ljava/lang/Boolean;\n+        77: getfield      #77                 // Field logResponses:Ljava/lang/Boolean;\n         80: aload_0\n-        81: getfield      #22                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n-        84: invokespecial #24                 // Method dev/langchain4j/model/openai/OpenAiChatModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+        81: getfield      #80                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+        84: invokespecial #86                 // Method dev/langchain4j/model/openai/OpenAiChatModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n         87: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      88     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n \n   public java.lang.String toString();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: new           #25                 // class java/lang/StringBuilder\n+         0: new           #89                 // class java/lang/StringBuilder\n          3: dup\n-         4: invokespecial #26                 // Method java/lang/StringBuilder.\"<init>\":()V\n-         7: ldc           #27                 // String OpenAiChatModel.OpenAiChatModelBuilder(baseUrl=\n-         9: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+         4: invokespecial #91                 // Method java/lang/StringBuilder.\"<init>\":()V\n+         7: ldc           #92                 // String OpenAiChatModel.OpenAiChatModelBuilder(baseUrl=\n+         9: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         12: aload_0\n-        13: getfield      #4                  // Field baseUrl:Ljava/lang/String;\n-        16: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        19: ldc           #29                 // String , apiKey=\n-        21: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        13: getfield      #19                 // Field baseUrl:Ljava/lang/String;\n+        16: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        19: ldc           #98                 // String , apiKey=\n+        21: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         24: aload_0\n-        25: getfield      #5                  // Field apiKey:Ljava/lang/String;\n-        28: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        31: ldc           #30                 // String , organizationId=\n-        33: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        25: getfield      #22                 // Field apiKey:Ljava/lang/String;\n+        28: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        31: ldc           #100                // String , organizationId=\n+        33: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         36: aload_0\n-        37: getfield      #6                  // Field organizationId:Ljava/lang/String;\n-        40: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        43: ldc           #31                 // String , modelName=\n-        45: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        37: getfield      #25                 // Field organizationId:Ljava/lang/String;\n+        40: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        43: ldc           #102                // String , modelName=\n+        45: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         48: aload_0\n-        49: getfield      #2                  // Field modelName:Ljava/lang/String;\n-        52: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        55: ldc           #32                 // String , temperature=\n-        57: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        49: getfield      #7                  // Field modelName:Ljava/lang/String;\n+        52: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        55: ldc           #104                // String , temperature=\n+        57: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         60: aload_0\n-        61: getfield      #7                  // Field temperature:Ljava/lang/Double;\n-        64: invokevirtual #33                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        67: ldc           #34                 // String , topP=\n-        69: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        61: getfield      #28                 // Field temperature:Ljava/lang/Double;\n+        64: invokevirtual #106                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        67: ldc           #109                // String , topP=\n+        69: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         72: aload_0\n-        73: getfield      #8                  // Field topP:Ljava/lang/Double;\n-        76: invokevirtual #33                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        79: ldc           #35                 // String , stop=\n-        81: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        73: getfield      #32                 // Field topP:Ljava/lang/Double;\n+        76: invokevirtual #106                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        79: ldc           #111                // String , stop=\n+        81: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         84: aload_0\n-        85: getfield      #9                  // Field stop:Ljava/util/List;\n-        88: invokevirtual #33                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        91: ldc           #36                 // String , maxTokens=\n-        93: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        85: getfield      #35                 // Field stop:Ljava/util/List;\n+        88: invokevirtual #106                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        91: ldc           #113                // String , maxTokens=\n+        93: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         96: aload_0\n-        97: getfield      #10                 // Field maxTokens:Ljava/lang/Integer;\n-       100: invokevirtual #33                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       103: ldc           #37                 // String , presencePenalty=\n-       105: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        97: getfield      #39                 // Field maxTokens:Ljava/lang/Integer;\n+       100: invokevirtual #106                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       103: ldc           #115                // String , presencePenalty=\n+       105: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        108: aload_0\n-       109: getfield      #11                 // Field presencePenalty:Ljava/lang/Double;\n-       112: invokevirtual #33                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       115: ldc           #38                 // String , frequencyPenalty=\n-       117: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       109: getfield      #43                 // Field presencePenalty:Ljava/lang/Double;\n+       112: invokevirtual #106                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       115: ldc           #117                // String , frequencyPenalty=\n+       117: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        120: aload_0\n-       121: getfield      #12                 // Field frequencyPenalty:Ljava/lang/Double;\n-       124: invokevirtual #33                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       127: ldc           #39                 // String , logitBias=\n-       129: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       121: getfield      #46                 // Field frequencyPenalty:Ljava/lang/Double;\n+       124: invokevirtual #106                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       127: ldc           #119                // String , logitBias=\n+       129: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        132: aload_0\n-       133: getfield      #13                 // Field logitBias:Ljava/util/Map;\n-       136: invokevirtual #33                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       139: ldc           #40                 // String , responseFormat=\n-       141: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       133: getfield      #49                 // Field logitBias:Ljava/util/Map;\n+       136: invokevirtual #106                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       139: ldc           #121                // String , responseFormat=\n+       141: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        144: aload_0\n-       145: getfield      #14                 // Field responseFormat:Ljava/lang/String;\n-       148: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-       151: ldc           #41                 // String , seed=\n-       153: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       145: getfield      #53                 // Field responseFormat:Ljava/lang/String;\n+       148: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       151: ldc           #123                // String , seed=\n+       153: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        156: aload_0\n-       157: getfield      #15                 // Field seed:Ljava/lang/Integer;\n-       160: invokevirtual #33                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       163: ldc           #42                 // String , user=\n-       165: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       157: getfield      #56                 // Field seed:Ljava/lang/Integer;\n+       160: invokevirtual #106                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       163: ldc           #125                // String , user=\n+       165: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        168: aload_0\n-       169: getfield      #16                 // Field user:Ljava/lang/String;\n-       172: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-       175: ldc           #43                 // String , timeout=\n-       177: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       169: getfield      #59                 // Field user:Ljava/lang/String;\n+       172: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       175: ldc           #127                // String , timeout=\n+       177: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        180: aload_0\n-       181: getfield      #17                 // Field timeout:Ljava/time/Duration;\n-       184: invokevirtual #33                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       187: ldc           #44                 // String , maxRetries=\n-       189: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       181: getfield      #62                 // Field timeout:Ljava/time/Duration;\n+       184: invokevirtual #106                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       187: ldc           #129                // String , maxRetries=\n+       189: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        192: aload_0\n-       193: getfield      #18                 // Field maxRetries:Ljava/lang/Integer;\n-       196: invokevirtual #33                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       199: ldc           #45                 // String , proxy=\n-       201: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       193: getfield      #66                 // Field maxRetries:Ljava/lang/Integer;\n+       196: invokevirtual #106                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       199: ldc           #131                // String , proxy=\n+       201: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        204: aload_0\n-       205: getfield      #19                 // Field proxy:Ljava/net/Proxy;\n-       208: invokevirtual #33                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       211: ldc           #46                 // String , logRequests=\n-       213: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       205: getfield      #69                 // Field proxy:Ljava/net/Proxy;\n+       208: invokevirtual #106                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       211: ldc           #133                // String , logRequests=\n+       213: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        216: aload_0\n-       217: getfield      #20                 // Field logRequests:Ljava/lang/Boolean;\n-       220: invokevirtual #33                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       223: ldc           #47                 // String , logResponses=\n-       225: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       217: getfield      #73                 // Field logRequests:Ljava/lang/Boolean;\n+       220: invokevirtual #106                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       223: ldc           #135                // String , logResponses=\n+       225: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        228: aload_0\n-       229: getfield      #21                 // Field logResponses:Ljava/lang/Boolean;\n-       232: invokevirtual #33                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       235: ldc           #48                 // String , tokenizer=\n-       237: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       229: getfield      #77                 // Field logResponses:Ljava/lang/Boolean;\n+       232: invokevirtual #106                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       235: ldc           #137                // String , tokenizer=\n+       237: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        240: aload_0\n-       241: getfield      #22                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n-       244: invokevirtual #33                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       247: ldc           #49                 // String )\n-       249: invokevirtual #28                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-       252: invokevirtual #50                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+       241: getfield      #80                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+       244: invokevirtual #106                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       247: ldc           #139                // String )\n+       249: invokevirtual #94                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       252: invokevirtual #141                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n        255: areturn\n       LineNumberTable:\n         line 50: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     256     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n }\n SourceFile: \"OpenAiChatModel.java\"\n InnerClasses:\n-  public static #91= #51 of #23;          // OpenAiChatModelBuilder=class dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder of class dev/langchain4j/model/openai/OpenAiChatModel\n+  public static #169= #8 of #84;          // OpenAiChatModelBuilder=class dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder of class dev/langchain4j/model/openai/OpenAiChatModel\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiChatModel.class", "source2": "dev/langchain4j/model/openai/OpenAiChatModel.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,437 +1,429 @@\n-  SHA-256 checksum 3b93c82126d04b24cafac05e4ef6f6ede2e0fc91e938681656e770fd47deb3fb\n+  SHA-256 checksum cde15b20ade63d629572ab4f7e0d9576965183378a74878325652973b4e624c3\n   Compiled from \"OpenAiChatModel.java\"\n public class dev.langchain4j.model.openai.OpenAiChatModel implements dev.langchain4j.model.chat.ChatLanguageModel,dev.langchain4j.model.chat.TokenCountEstimator\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #97                         // dev/langchain4j/model/openai/OpenAiChatModel\n-  super_class: #98                        // java/lang/Object\n+  this_class: #84                         // dev/langchain4j/model/openai/OpenAiChatModel\n+  super_class: #6                         // java/lang/Object\n   interfaces: 2, fields: 14, methods: 10, attributes: 3\n Constant pool:\n-    #1 = Class              #197          // dev/langchain4j/model/openai/OpenAiModelName\n-    #2 = Class              #198          // dev/langchain4j/model/openai/InternalOpenAiHelper\n-    #3 = Methodref          #98.#199      // java/lang/Object.\"<init>\":()V\n-    #4 = String             #200          // https://api.openai.com/v1\n-    #5 = Methodref          #201.#202     // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-    #6 = Class              #203          // java/lang/String\n-    #7 = String             #204          // demo\n-    #8 = Methodref          #6.#205       // java/lang/String.equals:(Ljava/lang/Object;)Z\n-    #9 = String             #206          // http://langchain4j.dev/demo/openai/v1\n-   #10 = Long               60l\n-   #12 = Methodref          #13.#207      // java/time/Duration.ofSeconds:(J)Ljava/time/Duration;\n-   #13 = Class              #208          // java/time/Duration\n-   #14 = Methodref          #209.#210     // dev/ai4j/openai4j/OpenAiClient.builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #15 = Methodref          #211.#212     // dev/ai4j/openai4j/OpenAiClient$Builder.openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #16 = Methodref          #211.#213     // dev/ai4j/openai4j/OpenAiClient$Builder.baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #17 = Methodref          #211.#214     // dev/ai4j/openai4j/OpenAiClient$Builder.organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #18 = Methodref          #211.#215     // dev/ai4j/openai4j/OpenAiClient$Builder.callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #19 = Methodref          #211.#216     // dev/ai4j/openai4j/OpenAiClient$Builder.connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #20 = Methodref          #211.#217     // dev/ai4j/openai4j/OpenAiClient$Builder.readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #21 = Methodref          #211.#218     // dev/ai4j/openai4j/OpenAiClient$Builder.writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #22 = Methodref          #211.#219     // dev/ai4j/openai4j/OpenAiClient$Builder.proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #23 = Methodref          #211.#220     // dev/ai4j/openai4j/OpenAiClient$Builder.logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #24 = Methodref          #211.#221     // dev/ai4j/openai4j/OpenAiClient$Builder.logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #25 = Methodref          #211.#222     // dev/ai4j/openai4j/OpenAiClient$Builder.build:()Ldev/ai4j/openai4j/OpenAiClient;\n-   #26 = Fieldref           #97.#223      // dev/langchain4j/model/openai/OpenAiChatModel.client:Ldev/ai4j/openai4j/OpenAiClient;\n-   #27 = String             #224          // gpt-3.5-turbo\n-   #28 = Fieldref           #97.#225      // dev/langchain4j/model/openai/OpenAiChatModel.modelName:Ljava/lang/String;\n-   #29 = Double             0.7d\n-   #31 = Methodref          #32.#226      // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-   #32 = Class              #227          // java/lang/Double\n-   #33 = Fieldref           #97.#228      // dev/langchain4j/model/openai/OpenAiChatModel.temperature:Ljava/lang/Double;\n-   #34 = Fieldref           #97.#229      // dev/langchain4j/model/openai/OpenAiChatModel.topP:Ljava/lang/Double;\n-   #35 = Fieldref           #97.#230      // dev/langchain4j/model/openai/OpenAiChatModel.stop:Ljava/util/List;\n-   #36 = Fieldref           #97.#231      // dev/langchain4j/model/openai/OpenAiChatModel.maxTokens:Ljava/lang/Integer;\n-   #37 = Fieldref           #97.#232      // dev/langchain4j/model/openai/OpenAiChatModel.presencePenalty:Ljava/lang/Double;\n-   #38 = Fieldref           #97.#233      // dev/langchain4j/model/openai/OpenAiChatModel.frequencyPenalty:Ljava/lang/Double;\n-   #39 = Fieldref           #97.#234      // dev/langchain4j/model/openai/OpenAiChatModel.logitBias:Ljava/util/Map;\n-   #40 = Fieldref           #97.#235      // dev/langchain4j/model/openai/OpenAiChatModel.responseFormat:Ljava/lang/String;\n-   #41 = Fieldref           #97.#236      // dev/langchain4j/model/openai/OpenAiChatModel.seed:Ljava/lang/Integer;\n-   #42 = Fieldref           #97.#237      // dev/langchain4j/model/openai/OpenAiChatModel.user:Ljava/lang/String;\n-   #43 = Methodref          #44.#238      // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #44 = Class              #239          // java/lang/Integer\n-   #45 = Fieldref           #97.#240      // dev/langchain4j/model/openai/OpenAiChatModel.maxRetries:Ljava/lang/Integer;\n-   #46 = InvokeDynamic      #0:#246       // #0:get:(Ldev/langchain4j/model/openai/OpenAiChatModel;)Ljava/util/function/Supplier;\n-   #47 = Methodref          #201.#247     // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-   #48 = Class              #248          // dev/langchain4j/model/Tokenizer\n-   #49 = Fieldref           #97.#249      // dev/langchain4j/model/openai/OpenAiChatModel.tokenizer:Ldev/langchain4j/model/Tokenizer;\n-   #50 = Methodref          #97.#250      // dev/langchain4j/model/openai/OpenAiChatModel.generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n-   #51 = Methodref          #251.#252     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #52 = Methodref          #253.#254     // dev/ai4j/openai4j/chat/ChatCompletionRequest.builder:()Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-   #53 = Methodref          #173.#255     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.model:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-   #54 = Methodref          #2.#256       // dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiMessages:(Ljava/util/List;)Ljava/util/List;\n-   #55 = Methodref          #173.#257     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.messages:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-   #56 = Methodref          #173.#258     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.temperature:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-   #57 = Methodref          #173.#259     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.topP:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-   #58 = Methodref          #173.#260     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.stop:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-   #59 = Methodref          #173.#261     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.maxTokens:(Ljava/lang/Integer;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-   #60 = Methodref          #173.#262     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.presencePenalty:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-   #61 = Methodref          #173.#263     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.frequencyPenalty:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-   #62 = Methodref          #173.#264     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.logitBias:(Ljava/util/Map;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-   #63 = Methodref          #173.#265     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.responseFormat:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-   #64 = Methodref          #173.#266     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.seed:(Ljava/lang/Integer;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-   #65 = Methodref          #173.#267     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.user:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-   #66 = InterfaceMethodref #268.#269     // java/util/List.isEmpty:()Z\n-   #67 = Methodref          #2.#270       // dev/langchain4j/model/openai/InternalOpenAiHelper.toTools:(Ljava/util/Collection;)Ljava/util/List;\n-   #68 = Methodref          #173.#271     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.tools:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-   #69 = Methodref          #272.#273     // dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n-   #70 = Methodref          #173.#274     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.toolChoice:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-   #71 = Methodref          #173.#275     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.build:()Ldev/ai4j/openai4j/chat/ChatCompletionRequest;\n-   #72 = InvokeDynamic      #1:#278       // #1:call:(Ldev/langchain4j/model/openai/OpenAiChatModel;Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ljava/util/concurrent/Callable;\n-   #73 = Methodref          #44.#279      // java/lang/Integer.intValue:()I\n-   #74 = Methodref          #280.#281     // dev/langchain4j/internal/RetryUtils.withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n-   #75 = Class              #282          // dev/ai4j/openai4j/chat/ChatCompletionResponse\n-   #76 = Methodref          #2.#283       // dev/langchain4j/model/openai/InternalOpenAiHelper.aiMessageFrom:(Ldev/ai4j/openai4j/chat/ChatCompletionResponse;)Ldev/langchain4j/data/message/AiMessage;\n-   #77 = Methodref          #75.#284      // dev/ai4j/openai4j/chat/ChatCompletionResponse.usage:()Ldev/ai4j/openai4j/shared/Usage;\n-   #78 = Methodref          #2.#285       // dev/langchain4j/model/openai/InternalOpenAiHelper.tokenUsageFrom:(Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n-   #79 = Methodref          #75.#286      // dev/ai4j/openai4j/chat/ChatCompletionResponse.choices:()Ljava/util/List;\n-   #80 = InterfaceMethodref #268.#287     // java/util/List.get:(I)Ljava/lang/Object;\n-   #81 = Class              #288          // dev/ai4j/openai4j/chat/ChatCompletionChoice\n-   #82 = Methodref          #81.#289      // dev/ai4j/openai4j/chat/ChatCompletionChoice.finishReason:()Ljava/lang/String;\n-   #83 = Methodref          #2.#290       // dev/langchain4j/model/openai/InternalOpenAiHelper.finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n-   #84 = Methodref          #291.#292     // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-   #85 = InterfaceMethodref #48.#293      // dev/langchain4j/model/Tokenizer.estimateTokenCountInMessages:(Ljava/lang/Iterable;)I\n-   #86 = Methodref          #97.#294      // dev/langchain4j/model/openai/OpenAiChatModel.builder:()Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-   #87 = Methodref          #92.#295      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-   #88 = Methodref          #92.#296      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.build:()Ldev/langchain4j/model/openai/OpenAiChatModel;\n-   #89 = Class              #297          // dev/langchain4j/model/openai/spi/OpenAiChatModelBuilderFactory\n-   #90 = InvokeDynamic      #2:#300       // #2:get:()Ljava/util/function/Supplier;\n-   #91 = Methodref          #301.#302     // dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-   #92 = Class              #303          // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder\n-   #93 = Methodref          #209.#304     // dev/ai4j/openai4j/OpenAiClient.chatCompletion:(Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ldev/ai4j/openai4j/SyncOrAsyncOrStreaming;\n-   #94 = InterfaceMethodref #305.#306     // dev/ai4j/openai4j/SyncOrAsyncOrStreaming.execute:()Ljava/lang/Object;\n-   #95 = Class              #307          // dev/langchain4j/model/openai/OpenAiTokenizer\n-   #96 = Methodref          #95.#308      // dev/langchain4j/model/openai/OpenAiTokenizer.\"<init>\":(Ljava/lang/String;)V\n-   #97 = Class              #309          // dev/langchain4j/model/openai/OpenAiChatModel\n-   #98 = Class              #310          // java/lang/Object\n-   #99 = Class              #311          // dev/langchain4j/model/chat/ChatLanguageModel\n-  #100 = Class              #312          // dev/langchain4j/model/chat/TokenCountEstimator\n-  #101 = Utf8               OpenAiChatModelBuilder\n-  #102 = Utf8               InnerClasses\n-  #103 = Utf8               client\n-  #104 = Utf8               Ldev/ai4j/openai4j/OpenAiClient;\n-  #105 = Utf8               modelName\n-  #106 = Utf8               Ljava/lang/String;\n-  #107 = Utf8               temperature\n-  #108 = Utf8               Ljava/lang/Double;\n+    #1 = Class              #2            // dev/langchain4j/model/openai/OpenAiModelName\n+    #2 = Utf8               dev/langchain4j/model/openai/OpenAiModelName\n+    #3 = Class              #4            // dev/langchain4j/model/openai/InternalOpenAiHelper\n+    #4 = Utf8               dev/langchain4j/model/openai/InternalOpenAiHelper\n+    #5 = Methodref          #6.#7         // java/lang/Object.\"<init>\":()V\n+    #6 = Class              #8            // java/lang/Object\n+    #7 = NameAndType        #9:#10        // \"<init>\":()V\n+    #8 = Utf8               java/lang/Object\n+    #9 = Utf8               <init>\n+   #10 = Utf8               ()V\n+   #11 = String             #12           // https://api.openai.com/v1\n+   #12 = Utf8               https://api.openai.com/v1\n+   #13 = Methodref          #14.#15       // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #14 = Class              #16           // dev/langchain4j/internal/Utils\n+   #15 = NameAndType        #17:#18       // getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #16 = Utf8               dev/langchain4j/internal/Utils\n+   #17 = Utf8               getOrDefault\n+   #18 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #19 = Class              #20           // java/lang/String\n+   #20 = Utf8               java/lang/String\n+   #21 = String             #22           // demo\n+   #22 = Utf8               demo\n+   #23 = Methodref          #19.#24       // java/lang/String.equals:(Ljava/lang/Object;)Z\n+   #24 = NameAndType        #25:#26       // equals:(Ljava/lang/Object;)Z\n+   #25 = Utf8               equals\n+   #26 = Utf8               (Ljava/lang/Object;)Z\n+   #27 = String             #28           // http://langchain4j.dev/demo/openai/v1\n+   #28 = Utf8               http://langchain4j.dev/demo/openai/v1\n+   #29 = Long               60l\n+   #31 = Methodref          #32.#33       // java/time/Duration.ofSeconds:(J)Ljava/time/Duration;\n+   #32 = Class              #34           // java/time/Duration\n+   #33 = NameAndType        #35:#36       // ofSeconds:(J)Ljava/time/Duration;\n+   #34 = Utf8               java/time/Duration\n+   #35 = Utf8               ofSeconds\n+   #36 = Utf8               (J)Ljava/time/Duration;\n+   #37 = Methodref          #38.#39       // dev/ai4j/openai4j/OpenAiClient.builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #38 = Class              #40           // dev/ai4j/openai4j/OpenAiClient\n+   #39 = NameAndType        #41:#42       // builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #40 = Utf8               dev/ai4j/openai4j/OpenAiClient\n+   #41 = Utf8               builder\n+   #42 = Utf8               ()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #43 = Methodref          #44.#45       // dev/ai4j/openai4j/OpenAiClient$Builder.openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #44 = Class              #46           // dev/ai4j/openai4j/OpenAiClient$Builder\n+   #45 = NameAndType        #47:#48       // openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #46 = Utf8               dev/ai4j/openai4j/OpenAiClient$Builder\n+   #47 = Utf8               openAiApiKey\n+   #48 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #49 = Methodref          #44.#50       // dev/ai4j/openai4j/OpenAiClient$Builder.baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #50 = NameAndType        #51:#48       // baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #51 = Utf8               baseUrl\n+   #52 = Methodref          #44.#53       // dev/ai4j/openai4j/OpenAiClient$Builder.organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #53 = NameAndType        #54:#48       // organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #54 = Utf8               organizationId\n+   #55 = Methodref          #44.#56       // dev/ai4j/openai4j/OpenAiClient$Builder.callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #56 = NameAndType        #57:#58       // callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #57 = Utf8               callTimeout\n+   #58 = Utf8               (Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #59 = Methodref          #44.#60       // dev/ai4j/openai4j/OpenAiClient$Builder.connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #60 = NameAndType        #61:#58       // connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #61 = Utf8               connectTimeout\n+   #62 = Methodref          #44.#63       // dev/ai4j/openai4j/OpenAiClient$Builder.readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #63 = NameAndType        #64:#58       // readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #64 = Utf8               readTimeout\n+   #65 = Methodref          #44.#66       // dev/ai4j/openai4j/OpenAiClient$Builder.writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #66 = NameAndType        #67:#58       // writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #67 = Utf8               writeTimeout\n+   #68 = Methodref          #44.#69       // dev/ai4j/openai4j/OpenAiClient$Builder.proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #69 = NameAndType        #70:#71       // proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #70 = Utf8               proxy\n+   #71 = Utf8               (Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #72 = Methodref          #44.#73       // dev/ai4j/openai4j/OpenAiClient$Builder.logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #73 = NameAndType        #74:#75       // logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #74 = Utf8               logRequests\n+   #75 = Utf8               (Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #76 = Methodref          #44.#77       // dev/ai4j/openai4j/OpenAiClient$Builder.logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #77 = NameAndType        #78:#75       // logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #78 = Utf8               logResponses\n+   #79 = Methodref          #44.#80       // dev/ai4j/openai4j/OpenAiClient$Builder.build:()Ldev/ai4j/openai4j/OpenAiClient;\n+   #80 = NameAndType        #81:#82       // build:()Ldev/ai4j/openai4j/OpenAiClient;\n+   #81 = Utf8               build\n+   #82 = Utf8               ()Ldev/ai4j/openai4j/OpenAiClient;\n+   #83 = Fieldref           #84.#85       // dev/langchain4j/model/openai/OpenAiChatModel.client:Ldev/ai4j/openai4j/OpenAiClient;\n+   #84 = Class              #86           // dev/langchain4j/model/openai/OpenAiChatModel\n+   #85 = NameAndType        #87:#88       // client:Ldev/ai4j/openai4j/OpenAiClient;\n+   #86 = Utf8               dev/langchain4j/model/openai/OpenAiChatModel\n+   #87 = Utf8               client\n+   #88 = Utf8               Ldev/ai4j/openai4j/OpenAiClient;\n+   #89 = String             #90           // gpt-3.5-turbo\n+   #90 = Utf8               gpt-3.5-turbo\n+   #91 = Fieldref           #84.#92       // dev/langchain4j/model/openai/OpenAiChatModel.modelName:Ljava/lang/String;\n+   #92 = NameAndType        #93:#94       // modelName:Ljava/lang/String;\n+   #93 = Utf8               modelName\n+   #94 = Utf8               Ljava/lang/String;\n+   #95 = Double             0.7d\n+   #97 = Methodref          #98.#99       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+   #98 = Class              #100          // java/lang/Double\n+   #99 = NameAndType        #101:#102     // valueOf:(D)Ljava/lang/Double;\n+  #100 = Utf8               java/lang/Double\n+  #101 = Utf8               valueOf\n+  #102 = Utf8               (D)Ljava/lang/Double;\n+  #103 = Fieldref           #84.#104      // dev/langchain4j/model/openai/OpenAiChatModel.temperature:Ljava/lang/Double;\n+  #104 = NameAndType        #105:#106     // temperature:Ljava/lang/Double;\n+  #105 = Utf8               temperature\n+  #106 = Utf8               Ljava/lang/Double;\n+  #107 = Fieldref           #84.#108      // dev/langchain4j/model/openai/OpenAiChatModel.topP:Ljava/lang/Double;\n+  #108 = NameAndType        #109:#106     // topP:Ljava/lang/Double;\n   #109 = Utf8               topP\n-  #110 = Utf8               stop\n-  #111 = Utf8               Ljava/util/List;\n-  #112 = Utf8               Signature\n-  #113 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n-  #114 = Utf8               maxTokens\n-  #115 = Utf8               Ljava/lang/Integer;\n-  #116 = Utf8               presencePenalty\n-  #117 = Utf8               frequencyPenalty\n-  #118 = Utf8               logitBias\n-  #119 = Utf8               Ljava/util/Map;\n-  #120 = Utf8               Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;\n-  #121 = Utf8               responseFormat\n-  #122 = Utf8               seed\n-  #123 = Utf8               user\n-  #124 = Utf8               maxRetries\n-  #125 = Utf8               tokenizer\n-  #126 = Utf8               Ldev/langchain4j/model/Tokenizer;\n-  #127 = Utf8               <init>\n-  #128 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n-  #129 = Utf8               Code\n-  #130 = Utf8               LineNumberTable\n-  #131 = Utf8               LocalVariableTable\n-  #132 = Utf8               this\n-  #133 = Utf8               Ldev/langchain4j/model/openai/OpenAiChatModel;\n-  #134 = Utf8               baseUrl\n-  #135 = Utf8               apiKey\n-  #136 = Utf8               organizationId\n-  #137 = Utf8               timeout\n-  #138 = Utf8               Ljava/time/Duration;\n-  #139 = Utf8               proxy\n-  #140 = Utf8               Ljava/net/Proxy;\n-  #141 = Utf8               logRequests\n-  #142 = Utf8               Ljava/lang/Boolean;\n-  #143 = Utf8               logResponses\n-  #144 = Utf8               LocalVariableTypeTable\n-  #145 = Utf8               StackMapTable\n-  #146 = Class              #309          // dev/langchain4j/model/openai/OpenAiChatModel\n-  #147 = Class              #203          // java/lang/String\n-  #148 = Class              #227          // java/lang/Double\n-  #149 = Class              #313          // java/util/List\n-  #150 = Class              #239          // java/lang/Integer\n-  #151 = Class              #314          // java/util/Map\n-  #152 = Class              #208          // java/time/Duration\n-  #153 = Class              #315          // java/net/Proxy\n-  #154 = Class              #316          // java/lang/Boolean\n-  #155 = Class              #248          // dev/langchain4j/model/Tokenizer\n-  #156 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n-  #157 = Utf8               generate\n-  #158 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #159 = Utf8               messages\n-  #160 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-  #161 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n-  #162 = Utf8               (Ljava/util/List;Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #163 = Utf8               toolSpecifications\n-  #164 = Utf8               Ljava/util/List<Ldev/langchain4j/agent/tool/ToolSpecification;>;\n-  #165 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;Ljava/util/List<Ldev/langchain4j/agent/tool/ToolSpecification;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n-  #166 = Utf8               (Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n-  #167 = Utf8               toolSpecification\n-  #168 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecification;\n-  #169 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n-  #170 = Utf8               (Ljava/util/List;Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n-  #171 = Utf8               toolThatMustBeExecuted\n-  #172 = Utf8               requestBuilder\n-  #173 = Class              #317          // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder\n-  #174 = Utf8               Builder\n-  #175 = Utf8               Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #176 = Utf8               request\n-  #177 = Utf8               Ldev/ai4j/openai4j/chat/ChatCompletionRequest;\n-  #178 = Utf8               response\n-  #179 = Utf8               Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n-  #180 = Class              #317          // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder\n-  #181 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;Ljava/util/List<Ldev/langchain4j/agent/tool/ToolSpecification;>;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n-  #182 = Utf8               estimateTokenCount\n-  #183 = Utf8               (Ljava/util/List;)I\n-  #184 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)I\n-  #185 = Utf8               withApiKey\n-  #186 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModel;\n-  #187 = Utf8               builder\n-  #188 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-  #189 = Utf8               lambda$generate$1\n-  #190 = Utf8               (Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n-  #191 = Utf8               Exceptions\n-  #192 = Class              #318          // java/lang/Exception\n-  #193 = Utf8               lambda$new$0\n-  #194 = Utf8               ()Ldev/langchain4j/model/Tokenizer;\n-  #195 = Utf8               SourceFile\n-  #196 = Utf8               OpenAiChatModel.java\n-  #197 = Utf8               dev/langchain4j/model/openai/OpenAiModelName\n-  #198 = Utf8               dev/langchain4j/model/openai/InternalOpenAiHelper\n-  #199 = NameAndType        #127:#319     // \"<init>\":()V\n-  #200 = Utf8               https://api.openai.com/v1\n-  #201 = Class              #320          // dev/langchain4j/internal/Utils\n-  #202 = NameAndType        #321:#322     // getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #203 = Utf8               java/lang/String\n-  #204 = Utf8               demo\n-  #205 = NameAndType        #323:#324     // equals:(Ljava/lang/Object;)Z\n-  #206 = Utf8               http://langchain4j.dev/demo/openai/v1\n-  #207 = NameAndType        #325:#326     // ofSeconds:(J)Ljava/time/Duration;\n-  #208 = Utf8               java/time/Duration\n-  #209 = Class              #327          // dev/ai4j/openai4j/OpenAiClient\n-  #210 = NameAndType        #187:#328     // builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #211 = Class              #329          // dev/ai4j/openai4j/OpenAiClient$Builder\n-  #212 = NameAndType        #330:#331     // openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #213 = NameAndType        #134:#331     // baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #214 = NameAndType        #136:#331     // organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #215 = NameAndType        #332:#333     // callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #216 = NameAndType        #334:#333     // connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #217 = NameAndType        #335:#333     // readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #218 = NameAndType        #336:#333     // writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #219 = NameAndType        #139:#337     // proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #220 = NameAndType        #141:#338     // logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #221 = NameAndType        #143:#338     // logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #222 = NameAndType        #339:#340     // build:()Ldev/ai4j/openai4j/OpenAiClient;\n-  #223 = NameAndType        #103:#104     // client:Ldev/ai4j/openai4j/OpenAiClient;\n-  #224 = Utf8               gpt-3.5-turbo\n-  #225 = NameAndType        #105:#106     // modelName:Ljava/lang/String;\n-  #226 = NameAndType        #341:#342     // valueOf:(D)Ljava/lang/Double;\n-  #227 = Utf8               java/lang/Double\n-  #228 = NameAndType        #107:#108     // temperature:Ljava/lang/Double;\n-  #229 = NameAndType        #109:#108     // topP:Ljava/lang/Double;\n-  #230 = NameAndType        #110:#111     // stop:Ljava/util/List;\n-  #231 = NameAndType        #114:#115     // maxTokens:Ljava/lang/Integer;\n-  #232 = NameAndType        #116:#108     // presencePenalty:Ljava/lang/Double;\n-  #233 = NameAndType        #117:#108     // frequencyPenalty:Ljava/lang/Double;\n-  #234 = NameAndType        #118:#119     // logitBias:Ljava/util/Map;\n-  #235 = NameAndType        #121:#106     // responseFormat:Ljava/lang/String;\n-  #236 = NameAndType        #122:#115     // seed:Ljava/lang/Integer;\n-  #237 = NameAndType        #123:#106     // user:Ljava/lang/String;\n-  #238 = NameAndType        #341:#343     // valueOf:(I)Ljava/lang/Integer;\n-  #239 = Utf8               java/lang/Integer\n-  #240 = NameAndType        #124:#115     // maxRetries:Ljava/lang/Integer;\n-  #241 = Utf8               BootstrapMethods\n-  #242 = MethodHandle       6:#344        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #243 = MethodType         #345          //  ()Ljava/lang/Object;\n-  #244 = MethodHandle       7:#346        // REF_invokeSpecial dev/langchain4j/model/openai/OpenAiChatModel.lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n-  #245 = MethodType         #194          //  ()Ldev/langchain4j/model/Tokenizer;\n-  #246 = NameAndType        #347:#348     // get:(Ldev/langchain4j/model/openai/OpenAiChatModel;)Ljava/util/function/Supplier;\n-  #247 = NameAndType        #321:#349     // getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #248 = Utf8               dev/langchain4j/model/Tokenizer\n-  #249 = NameAndType        #125:#126     // tokenizer:Ldev/langchain4j/model/Tokenizer;\n-  #250 = NameAndType        #157:#170     // generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n-  #251 = Class              #350          // java/util/Collections\n-  #252 = NameAndType        #351:#352     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #253 = Class              #353          // dev/ai4j/openai4j/chat/ChatCompletionRequest\n-  #254 = NameAndType        #187:#354     // builder:()Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #255 = NameAndType        #355:#356     // model:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #256 = NameAndType        #357:#358     // toOpenAiMessages:(Ljava/util/List;)Ljava/util/List;\n-  #257 = NameAndType        #159:#359     // messages:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #258 = NameAndType        #107:#360     // temperature:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #259 = NameAndType        #109:#360     // topP:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #260 = NameAndType        #110:#359     // stop:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #261 = NameAndType        #114:#361     // maxTokens:(Ljava/lang/Integer;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #262 = NameAndType        #116:#360     // presencePenalty:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #263 = NameAndType        #117:#360     // frequencyPenalty:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #264 = NameAndType        #118:#362     // logitBias:(Ljava/util/Map;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #265 = NameAndType        #121:#356     // responseFormat:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #266 = NameAndType        #122:#361     // seed:(Ljava/lang/Integer;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #267 = NameAndType        #123:#356     // user:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #268 = Class              #313          // java/util/List\n-  #269 = NameAndType        #363:#364     // isEmpty:()Z\n-  #270 = NameAndType        #365:#366     // toTools:(Ljava/util/Collection;)Ljava/util/List;\n-  #271 = NameAndType        #367:#359     // tools:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #272 = Class              #368          // dev/langchain4j/agent/tool/ToolSpecification\n-  #273 = NameAndType        #369:#370     // name:()Ljava/lang/String;\n-  #274 = NameAndType        #371:#356     // toolChoice:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #275 = NameAndType        #339:#372     // build:()Ldev/ai4j/openai4j/chat/ChatCompletionRequest;\n-  #276 = MethodHandle       7:#373        // REF_invokeSpecial dev/langchain4j/model/openai/OpenAiChatModel.lambda$generate$1:(Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n-  #277 = MethodType         #374          //  ()Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n-  #278 = NameAndType        #375:#376     // call:(Ldev/langchain4j/model/openai/OpenAiChatModel;Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ljava/util/concurrent/Callable;\n-  #279 = NameAndType        #377:#378     // intValue:()I\n-  #280 = Class              #379          // dev/langchain4j/internal/RetryUtils\n-  #281 = NameAndType        #380:#381     // withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n-  #282 = Utf8               dev/ai4j/openai4j/chat/ChatCompletionResponse\n-  #283 = NameAndType        #382:#383     // aiMessageFrom:(Ldev/ai4j/openai4j/chat/ChatCompletionResponse;)Ldev/langchain4j/data/message/AiMessage;\n-  #284 = NameAndType        #384:#385     // usage:()Ldev/ai4j/openai4j/shared/Usage;\n-  #285 = NameAndType        #386:#387     // tokenUsageFrom:(Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n-  #286 = NameAndType        #388:#389     // choices:()Ljava/util/List;\n-  #287 = NameAndType        #347:#390     // get:(I)Ljava/lang/Object;\n-  #288 = Utf8               dev/ai4j/openai4j/chat/ChatCompletionChoice\n-  #289 = NameAndType        #391:#370     // finishReason:()Ljava/lang/String;\n-  #290 = NameAndType        #392:#393     // finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n-  #291 = Class              #394          // dev/langchain4j/model/output/Response\n-  #292 = NameAndType        #395:#396     // from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-  #293 = NameAndType        #397:#398     // estimateTokenCountInMessages:(Ljava/lang/Iterable;)I\n-  #294 = NameAndType        #187:#188     // builder:()Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-  #295 = NameAndType        #135:#399     // apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-  #296 = NameAndType        #339:#400     // build:()Ldev/langchain4j/model/openai/OpenAiChatModel;\n-  #297 = Utf8               dev/langchain4j/model/openai/spi/OpenAiChatModelBuilderFactory\n-  #298 = MethodHandle       8:#401        // REF_newInvokeSpecial dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.\"<init>\":()V\n-  #299 = MethodType         #188          //  ()Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-  #300 = NameAndType        #347:#402     // get:()Ljava/util/function/Supplier;\n-  #301 = Class              #403          // dev/langchain4j/spi/ServiceHelper\n-  #302 = NameAndType        #404:#405     // loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #303 = Utf8               dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder\n-  #304 = NameAndType        #406:#407     // chatCompletion:(Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ldev/ai4j/openai4j/SyncOrAsyncOrStreaming;\n-  #305 = Class              #408          // dev/ai4j/openai4j/SyncOrAsyncOrStreaming\n-  #306 = NameAndType        #409:#345     // execute:()Ljava/lang/Object;\n-  #307 = Utf8               dev/langchain4j/model/openai/OpenAiTokenizer\n-  #308 = NameAndType        #127:#410     // \"<init>\":(Ljava/lang/String;)V\n-  #309 = Utf8               dev/langchain4j/model/openai/OpenAiChatModel\n-  #310 = Utf8               java/lang/Object\n-  #311 = Utf8               dev/langchain4j/model/chat/ChatLanguageModel\n-  #312 = Utf8               dev/langchain4j/model/chat/TokenCountEstimator\n-  #313 = Utf8               java/util/List\n-  #314 = Utf8               java/util/Map\n-  #315 = Utf8               java/net/Proxy\n-  #316 = Utf8               java/lang/Boolean\n-  #317 = Utf8               dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder\n-  #318 = Utf8               java/lang/Exception\n-  #319 = Utf8               ()V\n-  #320 = Utf8               dev/langchain4j/internal/Utils\n-  #321 = Utf8               getOrDefault\n-  #322 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #323 = Utf8               equals\n-  #324 = Utf8               (Ljava/lang/Object;)Z\n-  #325 = Utf8               ofSeconds\n-  #326 = Utf8               (J)Ljava/time/Duration;\n-  #327 = Utf8               dev/ai4j/openai4j/OpenAiClient\n-  #328 = Utf8               ()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #329 = Utf8               dev/ai4j/openai4j/OpenAiClient$Builder\n-  #330 = Utf8               openAiApiKey\n-  #331 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #332 = Utf8               callTimeout\n-  #333 = Utf8               (Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #334 = Utf8               connectTimeout\n-  #335 = Utf8               readTimeout\n-  #336 = Utf8               writeTimeout\n-  #337 = Utf8               (Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #338 = Utf8               (Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #339 = Utf8               build\n-  #340 = Utf8               ()Ldev/ai4j/openai4j/OpenAiClient;\n-  #341 = Utf8               valueOf\n-  #342 = Utf8               (D)Ljava/lang/Double;\n-  #343 = Utf8               (I)Ljava/lang/Integer;\n-  #344 = Methodref          #411.#412     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #345 = Utf8               ()Ljava/lang/Object;\n-  #346 = Methodref          #97.#413      // dev/langchain4j/model/openai/OpenAiChatModel.lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n-  #347 = Utf8               get\n-  #348 = Utf8               (Ldev/langchain4j/model/openai/OpenAiChatModel;)Ljava/util/function/Supplier;\n-  #349 = Utf8               (Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #350 = Utf8               java/util/Collections\n-  #351 = Utf8               singletonList\n-  #352 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #353 = Utf8               dev/ai4j/openai4j/chat/ChatCompletionRequest\n-  #354 = Utf8               ()Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #355 = Utf8               model\n-  #356 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #357 = Utf8               toOpenAiMessages\n-  #358 = Utf8               (Ljava/util/List;)Ljava/util/List;\n-  #359 = Utf8               (Ljava/util/List;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #360 = Utf8               (Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #361 = Utf8               (Ljava/lang/Integer;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #362 = Utf8               (Ljava/util/Map;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n-  #363 = Utf8               isEmpty\n-  #364 = Utf8               ()Z\n-  #365 = Utf8               toTools\n-  #366 = Utf8               (Ljava/util/Collection;)Ljava/util/List;\n-  #367 = Utf8               tools\n-  #368 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n-  #369 = Utf8               name\n-  #370 = Utf8               ()Ljava/lang/String;\n-  #371 = Utf8               toolChoice\n-  #372 = Utf8               ()Ldev/ai4j/openai4j/chat/ChatCompletionRequest;\n-  #373 = Methodref          #97.#414      // dev/langchain4j/model/openai/OpenAiChatModel.lambda$generate$1:(Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n-  #374 = Utf8               ()Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n-  #375 = Utf8               call\n-  #376 = Utf8               (Ldev/langchain4j/model/openai/OpenAiChatModel;Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ljava/util/concurrent/Callable;\n-  #377 = Utf8               intValue\n-  #378 = Utf8               ()I\n-  #379 = Utf8               dev/langchain4j/internal/RetryUtils\n-  #380 = Utf8               withRetry\n-  #381 = Utf8               (Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n-  #382 = Utf8               aiMessageFrom\n-  #383 = Utf8               (Ldev/ai4j/openai4j/chat/ChatCompletionResponse;)Ldev/langchain4j/data/message/AiMessage;\n-  #384 = Utf8               usage\n-  #385 = Utf8               ()Ldev/ai4j/openai4j/shared/Usage;\n-  #386 = Utf8               tokenUsageFrom\n-  #387 = Utf8               (Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n-  #388 = Utf8               choices\n-  #389 = Utf8               ()Ljava/util/List;\n-  #390 = Utf8               (I)Ljava/lang/Object;\n-  #391 = Utf8               finishReason\n-  #392 = Utf8               finishReasonFrom\n-  #393 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n-  #394 = Utf8               dev/langchain4j/model/output/Response\n-  #395 = Utf8               from\n-  #396 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-  #397 = Utf8               estimateTokenCountInMessages\n-  #398 = Utf8               (Ljava/lang/Iterable;)I\n-  #399 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-  #400 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiChatModel;\n-  #401 = Methodref          #92.#199      // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.\"<init>\":()V\n-  #402 = Utf8               ()Ljava/util/function/Supplier;\n-  #403 = Utf8               dev/langchain4j/spi/ServiceHelper\n-  #404 = Utf8               loadFactoryService\n-  #405 = Utf8               (Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #406 = Utf8               chatCompletion\n-  #407 = Utf8               (Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ldev/ai4j/openai4j/SyncOrAsyncOrStreaming;\n-  #408 = Utf8               dev/ai4j/openai4j/SyncOrAsyncOrStreaming\n-  #409 = Utf8               execute\n-  #410 = Utf8               (Ljava/lang/String;)V\n-  #411 = Class              #415          // java/lang/invoke/LambdaMetafactory\n-  #412 = NameAndType        #416:#419     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #413 = NameAndType        #193:#194     // lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n-  #414 = NameAndType        #189:#190     // lambda$generate$1:(Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n-  #415 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #416 = Utf8               metafactory\n-  #417 = Class              #421          // java/lang/invoke/MethodHandles$Lookup\n-  #418 = Utf8               Lookup\n-  #419 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #420 = Class              #422          // java/lang/invoke/MethodHandles\n-  #421 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #422 = Utf8               java/lang/invoke/MethodHandles\n+  #110 = Fieldref           #84.#111      // dev/langchain4j/model/openai/OpenAiChatModel.stop:Ljava/util/List;\n+  #111 = NameAndType        #112:#113     // stop:Ljava/util/List;\n+  #112 = Utf8               stop\n+  #113 = Utf8               Ljava/util/List;\n+  #114 = Fieldref           #84.#115      // dev/langchain4j/model/openai/OpenAiChatModel.maxTokens:Ljava/lang/Integer;\n+  #115 = NameAndType        #116:#117     // maxTokens:Ljava/lang/Integer;\n+  #116 = Utf8               maxTokens\n+  #117 = Utf8               Ljava/lang/Integer;\n+  #118 = Fieldref           #84.#119      // dev/langchain4j/model/openai/OpenAiChatModel.presencePenalty:Ljava/lang/Double;\n+  #119 = NameAndType        #120:#106     // presencePenalty:Ljava/lang/Double;\n+  #120 = Utf8               presencePenalty\n+  #121 = Fieldref           #84.#122      // dev/langchain4j/model/openai/OpenAiChatModel.frequencyPenalty:Ljava/lang/Double;\n+  #122 = NameAndType        #123:#106     // frequencyPenalty:Ljava/lang/Double;\n+  #123 = Utf8               frequencyPenalty\n+  #124 = Fieldref           #84.#125      // dev/langchain4j/model/openai/OpenAiChatModel.logitBias:Ljava/util/Map;\n+  #125 = NameAndType        #126:#127     // logitBias:Ljava/util/Map;\n+  #126 = Utf8               logitBias\n+  #127 = Utf8               Ljava/util/Map;\n+  #128 = Fieldref           #84.#129      // dev/langchain4j/model/openai/OpenAiChatModel.responseFormat:Ljava/lang/String;\n+  #129 = NameAndType        #130:#94      // responseFormat:Ljava/lang/String;\n+  #130 = Utf8               responseFormat\n+  #131 = Fieldref           #84.#132      // dev/langchain4j/model/openai/OpenAiChatModel.seed:Ljava/lang/Integer;\n+  #132 = NameAndType        #133:#117     // seed:Ljava/lang/Integer;\n+  #133 = Utf8               seed\n+  #134 = Fieldref           #84.#135      // dev/langchain4j/model/openai/OpenAiChatModel.user:Ljava/lang/String;\n+  #135 = NameAndType        #136:#94      // user:Ljava/lang/String;\n+  #136 = Utf8               user\n+  #137 = Methodref          #138.#139     // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+  #138 = Class              #140          // java/lang/Integer\n+  #139 = NameAndType        #101:#141     // valueOf:(I)Ljava/lang/Integer;\n+  #140 = Utf8               java/lang/Integer\n+  #141 = Utf8               (I)Ljava/lang/Integer;\n+  #142 = Fieldref           #84.#143      // dev/langchain4j/model/openai/OpenAiChatModel.maxRetries:Ljava/lang/Integer;\n+  #143 = NameAndType        #144:#117     // maxRetries:Ljava/lang/Integer;\n+  #144 = Utf8               maxRetries\n+  #145 = InvokeDynamic      #0:#146       // #0:get:(Ldev/langchain4j/model/openai/OpenAiChatModel;)Ljava/util/function/Supplier;\n+  #146 = NameAndType        #147:#148     // get:(Ldev/langchain4j/model/openai/OpenAiChatModel;)Ljava/util/function/Supplier;\n+  #147 = Utf8               get\n+  #148 = Utf8               (Ldev/langchain4j/model/openai/OpenAiChatModel;)Ljava/util/function/Supplier;\n+  #149 = Methodref          #14.#150      // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #150 = NameAndType        #17:#151      // getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #151 = Utf8               (Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #152 = Class              #153          // dev/langchain4j/model/Tokenizer\n+  #153 = Utf8               dev/langchain4j/model/Tokenizer\n+  #154 = Fieldref           #84.#155      // dev/langchain4j/model/openai/OpenAiChatModel.tokenizer:Ldev/langchain4j/model/Tokenizer;\n+  #155 = NameAndType        #156:#157     // tokenizer:Ldev/langchain4j/model/Tokenizer;\n+  #156 = Utf8               tokenizer\n+  #157 = Utf8               Ldev/langchain4j/model/Tokenizer;\n+  #158 = Methodref          #84.#159      // dev/langchain4j/model/openai/OpenAiChatModel.generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n+  #159 = NameAndType        #160:#161     // generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n+  #160 = Utf8               generate\n+  #161 = Utf8               (Ljava/util/List;Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n+  #162 = Methodref          #163.#164     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #163 = Class              #165          // java/util/Collections\n+  #164 = NameAndType        #166:#167     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #165 = Utf8               java/util/Collections\n+  #166 = Utf8               singletonList\n+  #167 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+  #168 = Methodref          #169.#170     // dev/ai4j/openai4j/chat/ChatCompletionRequest.builder:()Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #169 = Class              #171          // dev/ai4j/openai4j/chat/ChatCompletionRequest\n+  #170 = NameAndType        #41:#172      // builder:()Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #171 = Utf8               dev/ai4j/openai4j/chat/ChatCompletionRequest\n+  #172 = Utf8               ()Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #173 = Methodref          #174.#175     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.model:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #174 = Class              #176          // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder\n+  #175 = NameAndType        #177:#178     // model:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #176 = Utf8               dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder\n+  #177 = Utf8               model\n+  #178 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #179 = Methodref          #3.#180       // dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiMessages:(Ljava/util/List;)Ljava/util/List;\n+  #180 = NameAndType        #181:#182     // toOpenAiMessages:(Ljava/util/List;)Ljava/util/List;\n+  #181 = Utf8               toOpenAiMessages\n+  #182 = Utf8               (Ljava/util/List;)Ljava/util/List;\n+  #183 = Methodref          #174.#184     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.messages:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #184 = NameAndType        #185:#186     // messages:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #185 = Utf8               messages\n+  #186 = Utf8               (Ljava/util/List;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #187 = Methodref          #174.#188     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.temperature:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #188 = NameAndType        #105:#189     // temperature:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #189 = Utf8               (Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #190 = Methodref          #174.#191     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.topP:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #191 = NameAndType        #109:#189     // topP:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #192 = Methodref          #174.#193     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.stop:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #193 = NameAndType        #112:#186     // stop:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #194 = Methodref          #174.#195     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.maxTokens:(Ljava/lang/Integer;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #195 = NameAndType        #116:#196     // maxTokens:(Ljava/lang/Integer;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #196 = Utf8               (Ljava/lang/Integer;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #197 = Methodref          #174.#198     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.presencePenalty:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #198 = NameAndType        #120:#189     // presencePenalty:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #199 = Methodref          #174.#200     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.frequencyPenalty:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #200 = NameAndType        #123:#189     // frequencyPenalty:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #201 = Methodref          #174.#202     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.logitBias:(Ljava/util/Map;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #202 = NameAndType        #126:#203     // logitBias:(Ljava/util/Map;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #203 = Utf8               (Ljava/util/Map;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #204 = Methodref          #174.#205     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.responseFormat:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #205 = NameAndType        #130:#178     // responseFormat:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #206 = Methodref          #174.#207     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.seed:(Ljava/lang/Integer;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #207 = NameAndType        #133:#196     // seed:(Ljava/lang/Integer;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #208 = Methodref          #174.#209     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.user:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #209 = NameAndType        #136:#178     // user:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #210 = InterfaceMethodref #211.#212     // java/util/List.isEmpty:()Z\n+  #211 = Class              #213          // java/util/List\n+  #212 = NameAndType        #214:#215     // isEmpty:()Z\n+  #213 = Utf8               java/util/List\n+  #214 = Utf8               isEmpty\n+  #215 = Utf8               ()Z\n+  #216 = Methodref          #3.#217       // dev/langchain4j/model/openai/InternalOpenAiHelper.toTools:(Ljava/util/Collection;)Ljava/util/List;\n+  #217 = NameAndType        #218:#219     // toTools:(Ljava/util/Collection;)Ljava/util/List;\n+  #218 = Utf8               toTools\n+  #219 = Utf8               (Ljava/util/Collection;)Ljava/util/List;\n+  #220 = Methodref          #174.#221     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.tools:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #221 = NameAndType        #222:#186     // tools:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #222 = Utf8               tools\n+  #223 = Methodref          #224.#225     // dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n+  #224 = Class              #226          // dev/langchain4j/agent/tool/ToolSpecification\n+  #225 = NameAndType        #227:#228     // name:()Ljava/lang/String;\n+  #226 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n+  #227 = Utf8               name\n+  #228 = Utf8               ()Ljava/lang/String;\n+  #229 = Methodref          #174.#230     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.toolChoice:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #230 = NameAndType        #231:#178     // toolChoice:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #231 = Utf8               toolChoice\n+  #232 = Methodref          #174.#233     // dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.build:()Ldev/ai4j/openai4j/chat/ChatCompletionRequest;\n+  #233 = NameAndType        #81:#234      // build:()Ldev/ai4j/openai4j/chat/ChatCompletionRequest;\n+  #234 = Utf8               ()Ldev/ai4j/openai4j/chat/ChatCompletionRequest;\n+  #235 = InvokeDynamic      #1:#236       // #1:call:(Ldev/langchain4j/model/openai/OpenAiChatModel;Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ljava/util/concurrent/Callable;\n+  #236 = NameAndType        #237:#238     // call:(Ldev/langchain4j/model/openai/OpenAiChatModel;Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ljava/util/concurrent/Callable;\n+  #237 = Utf8               call\n+  #238 = Utf8               (Ldev/langchain4j/model/openai/OpenAiChatModel;Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ljava/util/concurrent/Callable;\n+  #239 = Methodref          #138.#240     // java/lang/Integer.intValue:()I\n+  #240 = NameAndType        #241:#242     // intValue:()I\n+  #241 = Utf8               intValue\n+  #242 = Utf8               ()I\n+  #243 = Methodref          #244.#245     // dev/langchain4j/internal/RetryUtils.withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n+  #244 = Class              #246          // dev/langchain4j/internal/RetryUtils\n+  #245 = NameAndType        #247:#248     // withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n+  #246 = Utf8               dev/langchain4j/internal/RetryUtils\n+  #247 = Utf8               withRetry\n+  #248 = Utf8               (Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n+  #249 = Class              #250          // dev/ai4j/openai4j/chat/ChatCompletionResponse\n+  #250 = Utf8               dev/ai4j/openai4j/chat/ChatCompletionResponse\n+  #251 = Methodref          #3.#252       // dev/langchain4j/model/openai/InternalOpenAiHelper.aiMessageFrom:(Ldev/ai4j/openai4j/chat/ChatCompletionResponse;)Ldev/langchain4j/data/message/AiMessage;\n+  #252 = NameAndType        #253:#254     // aiMessageFrom:(Ldev/ai4j/openai4j/chat/ChatCompletionResponse;)Ldev/langchain4j/data/message/AiMessage;\n+  #253 = Utf8               aiMessageFrom\n+  #254 = Utf8               (Ldev/ai4j/openai4j/chat/ChatCompletionResponse;)Ldev/langchain4j/data/message/AiMessage;\n+  #255 = Methodref          #249.#256     // dev/ai4j/openai4j/chat/ChatCompletionResponse.usage:()Ldev/ai4j/openai4j/shared/Usage;\n+  #256 = NameAndType        #257:#258     // usage:()Ldev/ai4j/openai4j/shared/Usage;\n+  #257 = Utf8               usage\n+  #258 = Utf8               ()Ldev/ai4j/openai4j/shared/Usage;\n+  #259 = Methodref          #3.#260       // dev/langchain4j/model/openai/InternalOpenAiHelper.tokenUsageFrom:(Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n+  #260 = NameAndType        #261:#262     // tokenUsageFrom:(Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n+  #261 = Utf8               tokenUsageFrom\n+  #262 = Utf8               (Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n+  #263 = Methodref          #249.#264     // dev/ai4j/openai4j/chat/ChatCompletionResponse.choices:()Ljava/util/List;\n+  #264 = NameAndType        #265:#266     // choices:()Ljava/util/List;\n+  #265 = Utf8               choices\n+  #266 = Utf8               ()Ljava/util/List;\n+  #267 = InterfaceMethodref #211.#268     // java/util/List.get:(I)Ljava/lang/Object;\n+  #268 = NameAndType        #147:#269     // get:(I)Ljava/lang/Object;\n+  #269 = Utf8               (I)Ljava/lang/Object;\n+  #270 = Class              #271          // dev/ai4j/openai4j/chat/ChatCompletionChoice\n+  #271 = Utf8               dev/ai4j/openai4j/chat/ChatCompletionChoice\n+  #272 = Methodref          #270.#273     // dev/ai4j/openai4j/chat/ChatCompletionChoice.finishReason:()Ljava/lang/String;\n+  #273 = NameAndType        #274:#228     // finishReason:()Ljava/lang/String;\n+  #274 = Utf8               finishReason\n+  #275 = Methodref          #3.#276       // dev/langchain4j/model/openai/InternalOpenAiHelper.finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n+  #276 = NameAndType        #277:#278     // finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n+  #277 = Utf8               finishReasonFrom\n+  #278 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n+  #279 = Methodref          #280.#281     // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+  #280 = Class              #282          // dev/langchain4j/model/output/Response\n+  #281 = NameAndType        #283:#284     // from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+  #282 = Utf8               dev/langchain4j/model/output/Response\n+  #283 = Utf8               from\n+  #284 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+  #285 = InterfaceMethodref #152.#286     // dev/langchain4j/model/Tokenizer.estimateTokenCountInMessages:(Ljava/lang/Iterable;)I\n+  #286 = NameAndType        #287:#288     // estimateTokenCountInMessages:(Ljava/lang/Iterable;)I\n+  #287 = Utf8               estimateTokenCountInMessages\n+  #288 = Utf8               (Ljava/lang/Iterable;)I\n+  #289 = Methodref          #84.#290      // dev/langchain4j/model/openai/OpenAiChatModel.builder:()Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+  #290 = NameAndType        #41:#291      // builder:()Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+  #291 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+  #292 = Methodref          #293.#294     // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+  #293 = Class              #295          // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder\n+  #294 = NameAndType        #296:#297     // apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+  #295 = Utf8               dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder\n+  #296 = Utf8               apiKey\n+  #297 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+  #298 = Methodref          #293.#299     // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.build:()Ldev/langchain4j/model/openai/OpenAiChatModel;\n+  #299 = NameAndType        #81:#300      // build:()Ldev/langchain4j/model/openai/OpenAiChatModel;\n+  #300 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiChatModel;\n+  #301 = Class              #302          // dev/langchain4j/model/openai/spi/OpenAiChatModelBuilderFactory\n+  #302 = Utf8               dev/langchain4j/model/openai/spi/OpenAiChatModelBuilderFactory\n+  #303 = InvokeDynamic      #2:#304       // #2:get:()Ljava/util/function/Supplier;\n+  #304 = NameAndType        #147:#305     // get:()Ljava/util/function/Supplier;\n+  #305 = Utf8               ()Ljava/util/function/Supplier;\n+  #306 = Methodref          #307.#308     // dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #307 = Class              #309          // dev/langchain4j/spi/ServiceHelper\n+  #308 = NameAndType        #310:#311     // loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #309 = Utf8               dev/langchain4j/spi/ServiceHelper\n+  #310 = Utf8               loadFactoryService\n+  #311 = Utf8               (Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #312 = Methodref          #38.#313      // dev/ai4j/openai4j/OpenAiClient.chatCompletion:(Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ldev/ai4j/openai4j/SyncOrAsyncOrStreaming;\n+  #313 = NameAndType        #314:#315     // chatCompletion:(Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ldev/ai4j/openai4j/SyncOrAsyncOrStreaming;\n+  #314 = Utf8               chatCompletion\n+  #315 = Utf8               (Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ldev/ai4j/openai4j/SyncOrAsyncOrStreaming;\n+  #316 = InterfaceMethodref #317.#318     // dev/ai4j/openai4j/SyncOrAsyncOrStreaming.execute:()Ljava/lang/Object;\n+  #317 = Class              #319          // dev/ai4j/openai4j/SyncOrAsyncOrStreaming\n+  #318 = NameAndType        #320:#321     // execute:()Ljava/lang/Object;\n+  #319 = Utf8               dev/ai4j/openai4j/SyncOrAsyncOrStreaming\n+  #320 = Utf8               execute\n+  #321 = Utf8               ()Ljava/lang/Object;\n+  #322 = Class              #323          // dev/langchain4j/model/openai/OpenAiTokenizer\n+  #323 = Utf8               dev/langchain4j/model/openai/OpenAiTokenizer\n+  #324 = Methodref          #322.#325     // dev/langchain4j/model/openai/OpenAiTokenizer.\"<init>\":(Ljava/lang/String;)V\n+  #325 = NameAndType        #9:#326       // \"<init>\":(Ljava/lang/String;)V\n+  #326 = Utf8               (Ljava/lang/String;)V\n+  #327 = Class              #328          // dev/langchain4j/model/chat/ChatLanguageModel\n+  #328 = Utf8               dev/langchain4j/model/chat/ChatLanguageModel\n+  #329 = Class              #330          // dev/langchain4j/model/chat/TokenCountEstimator\n+  #330 = Utf8               dev/langchain4j/model/chat/TokenCountEstimator\n+  #331 = Utf8               Signature\n+  #332 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n+  #333 = Utf8               Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;\n+  #334 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+  #335 = Utf8               Code\n+  #336 = Utf8               LineNumberTable\n+  #337 = Utf8               LocalVariableTable\n+  #338 = Utf8               this\n+  #339 = Utf8               Ldev/langchain4j/model/openai/OpenAiChatModel;\n+  #340 = Utf8               timeout\n+  #341 = Utf8               Ljava/time/Duration;\n+  #342 = Utf8               Ljava/net/Proxy;\n+  #343 = Utf8               Ljava/lang/Boolean;\n+  #344 = Utf8               LocalVariableTypeTable\n+  #345 = Utf8               StackMapTable\n+  #346 = Class              #347          // java/util/Map\n+  #347 = Utf8               java/util/Map\n+  #348 = Class              #349          // java/net/Proxy\n+  #349 = Utf8               java/net/Proxy\n+  #350 = Class              #351          // java/lang/Boolean\n+  #351 = Utf8               java/lang/Boolean\n+  #352 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+  #353 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #354 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #355 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+  #356 = Utf8               (Ljava/util/List;Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #357 = Utf8               toolSpecifications\n+  #358 = Utf8               Ljava/util/List<Ldev/langchain4j/agent/tool/ToolSpecification;>;\n+  #359 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;Ljava/util/List<Ldev/langchain4j/agent/tool/ToolSpecification;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+  #360 = Utf8               (Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n+  #361 = Utf8               toolSpecification\n+  #362 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecification;\n+  #363 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+  #364 = Utf8               toolThatMustBeExecuted\n+  #365 = Utf8               requestBuilder\n+  #366 = Utf8               Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+  #367 = Utf8               request\n+  #368 = Utf8               Ldev/ai4j/openai4j/chat/ChatCompletionRequest;\n+  #369 = Utf8               response\n+  #370 = Utf8               Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n+  #371 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;Ljava/util/List<Ldev/langchain4j/agent/tool/ToolSpecification;>;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+  #372 = Utf8               estimateTokenCount\n+  #373 = Utf8               (Ljava/util/List;)I\n+  #374 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)I\n+  #375 = Utf8               withApiKey\n+  #376 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModel;\n+  #377 = Utf8               lambda$generate$1\n+  #378 = Utf8               (Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n+  #379 = Utf8               Exceptions\n+  #380 = Class              #381          // java/lang/Exception\n+  #381 = Utf8               java/lang/Exception\n+  #382 = Utf8               lambda$new$0\n+  #383 = Utf8               ()Ldev/langchain4j/model/Tokenizer;\n+  #384 = Utf8               SourceFile\n+  #385 = Utf8               OpenAiChatModel.java\n+  #386 = Utf8               BootstrapMethods\n+  #387 = MethodHandle       6:#388        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #388 = Methodref          #389.#390     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #389 = Class              #391          // java/lang/invoke/LambdaMetafactory\n+  #390 = NameAndType        #392:#393     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #391 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #392 = Utf8               metafactory\n+  #393 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #394 = MethodType         #321          //  ()Ljava/lang/Object;\n+  #395 = MethodHandle       7:#396        // REF_invokeSpecial dev/langchain4j/model/openai/OpenAiChatModel.lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n+  #396 = Methodref          #84.#397      // dev/langchain4j/model/openai/OpenAiChatModel.lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n+  #397 = NameAndType        #382:#383     // lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n+  #398 = MethodType         #383          //  ()Ldev/langchain4j/model/Tokenizer;\n+  #399 = MethodHandle       7:#400        // REF_invokeSpecial dev/langchain4j/model/openai/OpenAiChatModel.lambda$generate$1:(Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n+  #400 = Methodref          #84.#401      // dev/langchain4j/model/openai/OpenAiChatModel.lambda$generate$1:(Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n+  #401 = NameAndType        #377:#378     // lambda$generate$1:(Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n+  #402 = MethodType         #403          //  ()Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n+  #403 = Utf8               ()Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n+  #404 = MethodHandle       8:#405        // REF_newInvokeSpecial dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.\"<init>\":()V\n+  #405 = Methodref          #293.#7       // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.\"<init>\":()V\n+  #406 = MethodType         #291          //  ()Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+  #407 = Utf8               InnerClasses\n+  #408 = Utf8               Builder\n+  #409 = Utf8               OpenAiChatModelBuilder\n+  #410 = Class              #411          // java/lang/invoke/MethodHandles$Lookup\n+  #411 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #412 = Class              #413          // java/lang/invoke/MethodHandles\n+  #413 = Utf8               java/lang/invoke/MethodHandles\n+  #414 = Utf8               Lookup\n {\n   private final dev.ai4j.openai4j.OpenAiClient client;\n     descriptor: Ldev/ai4j/openai4j/OpenAiClient;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n \n   private final java.lang.String modelName;\n     descriptor: Ljava/lang/String;\n@@ -444,15 +436,15 @@\n   private final java.lang.Double topP;\n     descriptor: Ljava/lang/Double;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n \n   private final java.util.List<java.lang.String> stop;\n     descriptor: Ljava/util/List;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n-    Signature: #113                         // Ljava/util/List<Ljava/lang/String;>;\n+    Signature: #332                         // Ljava/util/List<Ljava/lang/String;>;\n \n   private final java.lang.Integer maxTokens;\n     descriptor: Ljava/lang/Integer;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n \n   private final java.lang.Double presencePenalty;\n     descriptor: Ljava/lang/Double;\n@@ -461,15 +453,15 @@\n   private final java.lang.Double frequencyPenalty;\n     descriptor: Ljava/lang/Double;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n \n   private final java.util.Map<java.lang.String, java.lang.Integer> logitBias;\n     descriptor: Ljava/util/Map;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n-    Signature: #120                         // Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;\n+    Signature: #333                         // Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;\n \n   private final java.lang.String responseFormat;\n     descriptor: Ljava/lang/String;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n \n   private final java.lang.Integer seed;\n     descriptor: Ljava/lang/Integer;\n@@ -489,110 +481,110 @@\n \n   public dev.langchain4j.model.openai.OpenAiChatModel(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Double, java.lang.Double, java.util.List<java.lang.String>, java.lang.Integer, java.lang.Double, java.lang.Double, java.util.Map<java.lang.String, java.lang.Integer>, java.lang.String, java.lang.Integer, java.lang.String, java.time.Duration, java.lang.Integer, java.net.Proxy, java.lang.Boolean, java.lang.Boolean, dev.langchain4j.model.Tokenizer);\n     descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=21, args_size=21\n          0: aload_0\n-         1: invokespecial #3                  // Method java/lang/Object.\"<init>\":()V\n+         1: invokespecial #5                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_1\n-         5: ldc           #4                  // String https://api.openai.com/v1\n-         7: invokestatic  #5                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-        10: checkcast     #6                  // class java/lang/String\n+         5: ldc           #11                 // String https://api.openai.com/v1\n+         7: invokestatic  #13                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        10: checkcast     #19                 // class java/lang/String\n         13: astore_1\n-        14: ldc           #7                  // String demo\n+        14: ldc           #21                 // String demo\n         16: aload_2\n-        17: invokevirtual #8                  // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+        17: invokevirtual #23                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n         20: ifeq          26\n-        23: ldc           #9                  // String http://langchain4j.dev/demo/openai/v1\n+        23: ldc           #27                 // String http://langchain4j.dev/demo/openai/v1\n         25: astore_1\n         26: aload         15\n-        28: ldc2_w        #10                 // long 60l\n-        31: invokestatic  #12                 // Method java/time/Duration.ofSeconds:(J)Ljava/time/Duration;\n-        34: invokestatic  #5                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-        37: checkcast     #13                 // class java/time/Duration\n+        28: ldc2_w        #29                 // long 60l\n+        31: invokestatic  #31                 // Method java/time/Duration.ofSeconds:(J)Ljava/time/Duration;\n+        34: invokestatic  #13                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        37: checkcast     #32                 // class java/time/Duration\n         40: astore        15\n         42: aload_0\n-        43: invokestatic  #14                 // Method dev/ai4j/openai4j/OpenAiClient.builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        43: invokestatic  #37                 // Method dev/ai4j/openai4j/OpenAiClient.builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         46: aload_2\n-        47: invokevirtual #15                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        47: invokevirtual #43                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         50: aload_1\n-        51: invokevirtual #16                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        51: invokevirtual #49                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         54: aload_3\n-        55: invokevirtual #17                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        55: invokevirtual #52                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         58: aload         15\n-        60: invokevirtual #18                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        60: invokevirtual #55                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         63: aload         15\n-        65: invokevirtual #19                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        65: invokevirtual #59                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         68: aload         15\n-        70: invokevirtual #20                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        70: invokevirtual #62                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         73: aload         15\n-        75: invokevirtual #21                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        75: invokevirtual #65                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         78: aload         17\n-        80: invokevirtual #22                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        80: invokevirtual #68                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         83: aload         18\n-        85: invokevirtual #23                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        85: invokevirtual #72                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         88: aload         19\n-        90: invokevirtual #24                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-        93: invokevirtual #25                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.build:()Ldev/ai4j/openai4j/OpenAiClient;\n-        96: putfield      #26                 // Field client:Ldev/ai4j/openai4j/OpenAiClient;\n+        90: invokevirtual #76                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        93: invokevirtual #79                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.build:()Ldev/ai4j/openai4j/OpenAiClient;\n+        96: putfield      #83                 // Field client:Ldev/ai4j/openai4j/OpenAiClient;\n         99: aload_0\n        100: aload         4\n-       102: ldc           #27                 // String gpt-3.5-turbo\n-       104: invokestatic  #5                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-       107: checkcast     #6                  // class java/lang/String\n-       110: putfield      #28                 // Field modelName:Ljava/lang/String;\n+       102: ldc           #89                 // String gpt-3.5-turbo\n+       104: invokestatic  #13                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       107: checkcast     #19                 // class java/lang/String\n+       110: putfield      #91                 // Field modelName:Ljava/lang/String;\n        113: aload_0\n        114: aload         5\n-       116: ldc2_w        #29                 // double 0.7d\n-       119: invokestatic  #31                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-       122: invokestatic  #5                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-       125: checkcast     #32                 // class java/lang/Double\n-       128: putfield      #33                 // Field temperature:Ljava/lang/Double;\n+       116: ldc2_w        #95                 // double 0.7d\n+       119: invokestatic  #97                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       122: invokestatic  #13                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       125: checkcast     #98                 // class java/lang/Double\n+       128: putfield      #103                // Field temperature:Ljava/lang/Double;\n        131: aload_0\n        132: aload         6\n-       134: putfield      #34                 // Field topP:Ljava/lang/Double;\n+       134: putfield      #107                // Field topP:Ljava/lang/Double;\n        137: aload_0\n        138: aload         7\n-       140: putfield      #35                 // Field stop:Ljava/util/List;\n+       140: putfield      #110                // Field stop:Ljava/util/List;\n        143: aload_0\n        144: aload         8\n-       146: putfield      #36                 // Field maxTokens:Ljava/lang/Integer;\n+       146: putfield      #114                // Field maxTokens:Ljava/lang/Integer;\n        149: aload_0\n        150: aload         9\n-       152: putfield      #37                 // Field presencePenalty:Ljava/lang/Double;\n+       152: putfield      #118                // Field presencePenalty:Ljava/lang/Double;\n        155: aload_0\n        156: aload         10\n-       158: putfield      #38                 // Field frequencyPenalty:Ljava/lang/Double;\n+       158: putfield      #121                // Field frequencyPenalty:Ljava/lang/Double;\n        161: aload_0\n        162: aload         11\n-       164: putfield      #39                 // Field logitBias:Ljava/util/Map;\n+       164: putfield      #124                // Field logitBias:Ljava/util/Map;\n        167: aload_0\n        168: aload         12\n-       170: putfield      #40                 // Field responseFormat:Ljava/lang/String;\n+       170: putfield      #128                // Field responseFormat:Ljava/lang/String;\n        173: aload_0\n        174: aload         13\n-       176: putfield      #41                 // Field seed:Ljava/lang/Integer;\n+       176: putfield      #131                // Field seed:Ljava/lang/Integer;\n        179: aload_0\n        180: aload         14\n-       182: putfield      #42                 // Field user:Ljava/lang/String;\n+       182: putfield      #134                // Field user:Ljava/lang/String;\n        185: aload_0\n        186: aload         16\n        188: iconst_3\n-       189: invokestatic  #43                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       192: invokestatic  #5                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-       195: checkcast     #44                 // class java/lang/Integer\n-       198: putfield      #45                 // Field maxRetries:Ljava/lang/Integer;\n+       189: invokestatic  #137                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       192: invokestatic  #13                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       195: checkcast     #138                // class java/lang/Integer\n+       198: putfield      #142                // Field maxRetries:Ljava/lang/Integer;\n        201: aload_0\n        202: aload         20\n        204: aload_0\n-       205: invokedynamic #46,  0             // InvokeDynamic #0:get:(Ldev/langchain4j/model/openai/OpenAiChatModel;)Ljava/util/function/Supplier;\n-       210: invokestatic  #47                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-       213: checkcast     #48                 // class dev/langchain4j/model/Tokenizer\n-       216: putfield      #49                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+       205: invokedynamic #145,  0            // InvokeDynamic #0:get:(Ldev/langchain4j/model/openai/OpenAiChatModel;)Ljava/util/function/Supplier;\n+       210: invokestatic  #149                // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+       213: checkcast     #152                // class dev/langchain4j/model/Tokenizer\n+       216: putfield      #154                // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n        219: return\n       LineNumberTable:\n         line 70: 0\n         line 72: 4\n         line 73: 14\n         line 74: 23\n         line 77: 26\n@@ -650,171 +642,171 @@\n             0     220     7  stop   Ljava/util/List<Ljava/lang/String;>;\n             0     220    11 logitBias   Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;\n       StackMapTable: number_of_entries = 1\n         frame_type = 255 /* full_frame */\n           offset_delta = 26\n           locals = [ class dev/langchain4j/model/openai/OpenAiChatModel, class java/lang/String, class java/lang/String, class java/lang/String, class java/lang/String, class java/lang/Double, class java/lang/Double, class java/util/List, class java/lang/Integer, class java/lang/Double, class java/lang/Double, class java/util/Map, class java/lang/String, class java/lang/Integer, class java/lang/String, class java/time/Duration, class java/lang/Integer, class java/net/Proxy, class java/lang/Boolean, class java/lang/Boolean, class dev/langchain4j/model/Tokenizer ]\n           stack = []\n-    Signature: #156                         // (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+    Signature: #352                         // (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List<Ljava/lang/String;>;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n \n   public dev.langchain4j.model.output.Response<dev.langchain4j.data.message.AiMessage> generate(java.util.List<dev.langchain4j.data.message.ChatMessage>);\n     descriptor: (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n          2: aconst_null\n          3: aconst_null\n-         4: invokespecial #50                 // Method generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n+         4: invokespecial #158                // Method generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n          7: areturn\n       LineNumberTable:\n         line 108: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel;\n             0       8     1 messages   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0       8     1 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-    Signature: #161                         // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+    Signature: #355                         // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n \n   public dev.langchain4j.model.output.Response<dev.langchain4j.data.message.AiMessage> generate(java.util.List<dev.langchain4j.data.message.ChatMessage>, java.util.List<dev.langchain4j.agent.tool.ToolSpecification>);\n     descriptor: (Ljava/util/List;Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=3, args_size=3\n          0: aload_0\n          1: aload_1\n          2: aload_2\n          3: aconst_null\n-         4: invokespecial #50                 // Method generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n+         4: invokespecial #158                // Method generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n          7: areturn\n       LineNumberTable:\n         line 113: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel;\n             0       8     1 messages   Ljava/util/List;\n             0       8     2 toolSpecifications   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0       8     1 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n             0       8     2 toolSpecifications   Ljava/util/List<Ldev/langchain4j/agent/tool/ToolSpecification;>;\n-    Signature: #165                         // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;Ljava/util/List<Ldev/langchain4j/agent/tool/ToolSpecification;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+    Signature: #359                         // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;Ljava/util/List<Ldev/langchain4j/agent/tool/ToolSpecification;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n \n   public dev.langchain4j.model.output.Response<dev.langchain4j.data.message.AiMessage> generate(java.util.List<dev.langchain4j.data.message.ChatMessage>, dev.langchain4j.agent.tool.ToolSpecification);\n     descriptor: (Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=3, args_size=3\n          0: aload_0\n          1: aload_1\n          2: aload_2\n-         3: invokestatic  #51                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+         3: invokestatic  #162                // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n          6: aload_2\n-         7: invokespecial #50                 // Method generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n+         7: invokespecial #158                // Method generate:(Ljava/util/List;Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n         10: areturn\n       LineNumberTable:\n         line 118: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      11     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel;\n             0      11     1 messages   Ljava/util/List;\n             0      11     2 toolSpecification   Ldev/langchain4j/agent/tool/ToolSpecification;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      11     1 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-    Signature: #169                         // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+    Signature: #363                         // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n \n   private dev.langchain4j.model.output.Response<dev.langchain4j.data.message.AiMessage> generate(java.util.List<dev.langchain4j.data.message.ChatMessage>, java.util.List<dev.langchain4j.agent.tool.ToolSpecification>, dev.langchain4j.agent.tool.ToolSpecification);\n     descriptor: (Ljava/util/List;Ljava/util/List;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=4, locals=7, args_size=4\n-         0: invokestatic  #52                 // Method dev/ai4j/openai4j/chat/ChatCompletionRequest.builder:()Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+         0: invokestatic  #168                // Method dev/ai4j/openai4j/chat/ChatCompletionRequest.builder:()Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n          3: aload_0\n-         4: getfield      #28                 // Field modelName:Ljava/lang/String;\n-         7: invokevirtual #53                 // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.model:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+         4: getfield      #91                 // Field modelName:Ljava/lang/String;\n+         7: invokevirtual #173                // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.model:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n         10: aload_1\n-        11: invokestatic  #54                 // Method dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiMessages:(Ljava/util/List;)Ljava/util/List;\n-        14: invokevirtual #55                 // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.messages:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+        11: invokestatic  #179                // Method dev/langchain4j/model/openai/InternalOpenAiHelper.toOpenAiMessages:(Ljava/util/List;)Ljava/util/List;\n+        14: invokevirtual #183                // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.messages:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n         17: aload_0\n-        18: getfield      #33                 // Field temperature:Ljava/lang/Double;\n-        21: invokevirtual #56                 // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.temperature:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+        18: getfield      #103                // Field temperature:Ljava/lang/Double;\n+        21: invokevirtual #187                // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.temperature:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n         24: aload_0\n-        25: getfield      #34                 // Field topP:Ljava/lang/Double;\n-        28: invokevirtual #57                 // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.topP:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+        25: getfield      #107                // Field topP:Ljava/lang/Double;\n+        28: invokevirtual #190                // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.topP:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n         31: aload_0\n-        32: getfield      #35                 // Field stop:Ljava/util/List;\n-        35: invokevirtual #58                 // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.stop:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+        32: getfield      #110                // Field stop:Ljava/util/List;\n+        35: invokevirtual #192                // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.stop:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n         38: aload_0\n-        39: getfield      #36                 // Field maxTokens:Ljava/lang/Integer;\n-        42: invokevirtual #59                 // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.maxTokens:(Ljava/lang/Integer;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+        39: getfield      #114                // Field maxTokens:Ljava/lang/Integer;\n+        42: invokevirtual #194                // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.maxTokens:(Ljava/lang/Integer;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n         45: aload_0\n-        46: getfield      #37                 // Field presencePenalty:Ljava/lang/Double;\n-        49: invokevirtual #60                 // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.presencePenalty:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+        46: getfield      #118                // Field presencePenalty:Ljava/lang/Double;\n+        49: invokevirtual #197                // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.presencePenalty:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n         52: aload_0\n-        53: getfield      #38                 // Field frequencyPenalty:Ljava/lang/Double;\n-        56: invokevirtual #61                 // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.frequencyPenalty:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+        53: getfield      #121                // Field frequencyPenalty:Ljava/lang/Double;\n+        56: invokevirtual #199                // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.frequencyPenalty:(Ljava/lang/Double;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n         59: aload_0\n-        60: getfield      #39                 // Field logitBias:Ljava/util/Map;\n-        63: invokevirtual #62                 // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.logitBias:(Ljava/util/Map;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+        60: getfield      #124                // Field logitBias:Ljava/util/Map;\n+        63: invokevirtual #201                // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.logitBias:(Ljava/util/Map;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n         66: aload_0\n-        67: getfield      #40                 // Field responseFormat:Ljava/lang/String;\n-        70: invokevirtual #63                 // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.responseFormat:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+        67: getfield      #128                // Field responseFormat:Ljava/lang/String;\n+        70: invokevirtual #204                // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.responseFormat:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n         73: aload_0\n-        74: getfield      #41                 // Field seed:Ljava/lang/Integer;\n-        77: invokevirtual #64                 // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.seed:(Ljava/lang/Integer;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+        74: getfield      #131                // Field seed:Ljava/lang/Integer;\n+        77: invokevirtual #206                // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.seed:(Ljava/lang/Integer;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n         80: aload_0\n-        81: getfield      #42                 // Field user:Ljava/lang/String;\n-        84: invokevirtual #65                 // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.user:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+        81: getfield      #134                // Field user:Ljava/lang/String;\n+        84: invokevirtual #208                // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.user:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n         87: astore        4\n         89: aload_2\n         90: ifnull        112\n         93: aload_2\n-        94: invokeinterface #66,  1           // InterfaceMethod java/util/List.isEmpty:()Z\n+        94: invokeinterface #210,  1          // InterfaceMethod java/util/List.isEmpty:()Z\n         99: ifne          112\n        102: aload         4\n        104: aload_2\n-       105: invokestatic  #67                 // Method dev/langchain4j/model/openai/InternalOpenAiHelper.toTools:(Ljava/util/Collection;)Ljava/util/List;\n-       108: invokevirtual #68                 // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.tools:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+       105: invokestatic  #216                // Method dev/langchain4j/model/openai/InternalOpenAiHelper.toTools:(Ljava/util/Collection;)Ljava/util/List;\n+       108: invokevirtual #220                // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.tools:(Ljava/util/List;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n        111: pop\n        112: aload_3\n        113: ifnull        126\n        116: aload         4\n        118: aload_3\n-       119: invokevirtual #69                 // Method dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n-       122: invokevirtual #70                 // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.toolChoice:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n+       119: invokevirtual #223                // Method dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n+       122: invokevirtual #229                // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.toolChoice:(Ljava/lang/String;)Ldev/ai4j/openai4j/chat/ChatCompletionRequest$Builder;\n        125: pop\n        126: aload         4\n-       128: invokevirtual #71                 // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.build:()Ldev/ai4j/openai4j/chat/ChatCompletionRequest;\n+       128: invokevirtual #232                // Method dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder.build:()Ldev/ai4j/openai4j/chat/ChatCompletionRequest;\n        131: astore        5\n        133: aload_0\n        134: aload         5\n-       136: invokedynamic #72,  0             // InvokeDynamic #1:call:(Ldev/langchain4j/model/openai/OpenAiChatModel;Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ljava/util/concurrent/Callable;\n+       136: invokedynamic #235,  0            // InvokeDynamic #1:call:(Ldev/langchain4j/model/openai/OpenAiChatModel;Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ljava/util/concurrent/Callable;\n        141: aload_0\n-       142: getfield      #45                 // Field maxRetries:Ljava/lang/Integer;\n-       145: invokevirtual #73                 // Method java/lang/Integer.intValue:()I\n-       148: invokestatic  #74                 // Method dev/langchain4j/internal/RetryUtils.withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n-       151: checkcast     #75                 // class dev/ai4j/openai4j/chat/ChatCompletionResponse\n+       142: getfield      #142                // Field maxRetries:Ljava/lang/Integer;\n+       145: invokevirtual #239                // Method java/lang/Integer.intValue:()I\n+       148: invokestatic  #243                // Method dev/langchain4j/internal/RetryUtils.withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n+       151: checkcast     #249                // class dev/ai4j/openai4j/chat/ChatCompletionResponse\n        154: astore        6\n        156: aload         6\n-       158: invokestatic  #76                 // Method dev/langchain4j/model/openai/InternalOpenAiHelper.aiMessageFrom:(Ldev/ai4j/openai4j/chat/ChatCompletionResponse;)Ldev/langchain4j/data/message/AiMessage;\n+       158: invokestatic  #251                // Method dev/langchain4j/model/openai/InternalOpenAiHelper.aiMessageFrom:(Ldev/ai4j/openai4j/chat/ChatCompletionResponse;)Ldev/langchain4j/data/message/AiMessage;\n        161: aload         6\n-       163: invokevirtual #77                 // Method dev/ai4j/openai4j/chat/ChatCompletionResponse.usage:()Ldev/ai4j/openai4j/shared/Usage;\n-       166: invokestatic  #78                 // Method dev/langchain4j/model/openai/InternalOpenAiHelper.tokenUsageFrom:(Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n+       163: invokevirtual #255                // Method dev/ai4j/openai4j/chat/ChatCompletionResponse.usage:()Ldev/ai4j/openai4j/shared/Usage;\n+       166: invokestatic  #259                // Method dev/langchain4j/model/openai/InternalOpenAiHelper.tokenUsageFrom:(Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n        169: aload         6\n-       171: invokevirtual #79                 // Method dev/ai4j/openai4j/chat/ChatCompletionResponse.choices:()Ljava/util/List;\n+       171: invokevirtual #263                // Method dev/ai4j/openai4j/chat/ChatCompletionResponse.choices:()Ljava/util/List;\n        174: iconst_0\n-       175: invokeinterface #80,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-       180: checkcast     #81                 // class dev/ai4j/openai4j/chat/ChatCompletionChoice\n-       183: invokevirtual #82                 // Method dev/ai4j/openai4j/chat/ChatCompletionChoice.finishReason:()Ljava/lang/String;\n-       186: invokestatic  #83                 // Method dev/langchain4j/model/openai/InternalOpenAiHelper.finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n-       189: invokestatic  #84                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+       175: invokeinterface #267,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+       180: checkcast     #270                // class dev/ai4j/openai4j/chat/ChatCompletionChoice\n+       183: invokevirtual #272                // Method dev/ai4j/openai4j/chat/ChatCompletionChoice.finishReason:()Ljava/lang/String;\n+       186: invokestatic  #275                // Method dev/langchain4j/model/openai/InternalOpenAiHelper.finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n+       189: invokestatic  #279                // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n        192: areturn\n       LineNumberTable:\n         line 125: 0\n         line 126: 7\n         line 127: 11\n         line 128: 21\n         line 129: 28\n@@ -851,77 +843,77 @@\n             0     193     1 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n             0     193     2 toolSpecifications   Ljava/util/List<Ldev/langchain4j/agent/tool/ToolSpecification;>;\n       StackMapTable: number_of_entries = 2\n         frame_type = 252 /* append */\n           offset_delta = 112\n           locals = [ class dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder ]\n         frame_type = 13 /* same */\n-    Signature: #181                         // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;Ljava/util/List<Ldev/langchain4j/agent/tool/ToolSpecification;>;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+    Signature: #371                         // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;Ljava/util/List<Ldev/langchain4j/agent/tool/ToolSpecification;>;Ldev/langchain4j/agent/tool/ToolSpecification;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n \n   public int estimateTokenCount(java.util.List<dev.langchain4j.data.message.ChatMessage>);\n     descriptor: (Ljava/util/List;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #49                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+         1: getfield      #154                // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n          4: aload_1\n-         5: invokeinterface #85,  2           // InterfaceMethod dev/langchain4j/model/Tokenizer.estimateTokenCountInMessages:(Ljava/lang/Iterable;)I\n+         5: invokeinterface #285,  2          // InterfaceMethod dev/langchain4j/model/Tokenizer.estimateTokenCountInMessages:(Ljava/lang/Iterable;)I\n         10: ireturn\n       LineNumberTable:\n         line 159: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      11     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel;\n             0      11     1 messages   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      11     1 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-    Signature: #184                         // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)I\n+    Signature: #374                         // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)I\n \n   public static dev.langchain4j.model.openai.OpenAiChatModel withApiKey(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModel;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: invokestatic  #86                 // Method builder:()Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+         0: invokestatic  #289                // Method builder:()Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n          3: aload_0\n-         4: invokevirtual #87                 // Method dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n-         7: invokevirtual #88                 // Method dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.build:()Ldev/langchain4j/model/openai/OpenAiChatModel;\n+         4: invokevirtual #292                // Method dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+         7: invokevirtual #298                // Method dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.build:()Ldev/langchain4j/model/openai/OpenAiChatModel;\n         10: areturn\n       LineNumberTable:\n         line 163: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      11     0 apiKey   Ljava/lang/String;\n \n   public static dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder builder();\n     descriptor: ()Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=2, locals=0, args_size=0\n-         0: ldc           #89                 // class dev/langchain4j/model/openai/spi/OpenAiChatModelBuilderFactory\n-         2: invokedynamic #90,  0             // InvokeDynamic #2:get:()Ljava/util/function/Supplier;\n-         7: invokestatic  #91                 // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        10: checkcast     #92                 // class dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder\n-        13: areturn\n+         0: ldc_w         #301                // class dev/langchain4j/model/openai/spi/OpenAiChatModelBuilderFactory\n+         3: invokedynamic #303,  0            // InvokeDynamic #2:get:()Ljava/util/function/Supplier;\n+         8: invokestatic  #306                // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        11: checkcast     #293                // class dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder\n+        14: areturn\n       LineNumberTable:\n         line 167: 0\n \n   private dev.ai4j.openai4j.chat.ChatCompletionResponse lambda$generate$1(dev.ai4j.openai4j.chat.ChatCompletionRequest) throws java.lang.Exception;\n     descriptor: (Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n     flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #26                 // Field client:Ldev/ai4j/openai4j/OpenAiClient;\n+         1: getfield      #83                 // Field client:Ldev/ai4j/openai4j/OpenAiClient;\n          4: aload_1\n-         5: invokevirtual #93                 // Method dev/ai4j/openai4j/OpenAiClient.chatCompletion:(Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ldev/ai4j/openai4j/SyncOrAsyncOrStreaming;\n-         8: invokeinterface #94,  1           // InterfaceMethod dev/ai4j/openai4j/SyncOrAsyncOrStreaming.execute:()Ljava/lang/Object;\n-        13: checkcast     #75                 // class dev/ai4j/openai4j/chat/ChatCompletionResponse\n+         5: invokevirtual #312                // Method dev/ai4j/openai4j/OpenAiClient.chatCompletion:(Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ldev/ai4j/openai4j/SyncOrAsyncOrStreaming;\n+         8: invokeinterface #316,  1          // InterfaceMethod dev/ai4j/openai4j/SyncOrAsyncOrStreaming.execute:()Ljava/lang/Object;\n+        13: checkcast     #249                // class dev/ai4j/openai4j/chat/ChatCompletionResponse\n         16: areturn\n       LineNumberTable:\n         line 148: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      17     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel;\n             0      17     1 request   Ldev/ai4j/openai4j/chat/ChatCompletionRequest;\n@@ -929,41 +921,41 @@\n       throws java.lang.Exception\n \n   private dev.langchain4j.model.Tokenizer lambda$new$0();\n     descriptor: ()Ldev/langchain4j/model/Tokenizer;\n     flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=1, args_size=1\n-         0: new           #95                 // class dev/langchain4j/model/openai/OpenAiTokenizer\n+         0: new           #322                // class dev/langchain4j/model/openai/OpenAiTokenizer\n          3: dup\n          4: aload_0\n-         5: getfield      #28                 // Field modelName:Ljava/lang/String;\n-         8: invokespecial #96                 // Method dev/langchain4j/model/openai/OpenAiTokenizer.\"<init>\":(Ljava/lang/String;)V\n+         5: getfield      #91                 // Field modelName:Ljava/lang/String;\n+         8: invokespecial #324                // Method dev/langchain4j/model/openai/OpenAiTokenizer.\"<init>\":(Ljava/lang/String;)V\n         11: areturn\n       LineNumberTable:\n         line 103: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      12     0  this   Ldev/langchain4j/model/openai/OpenAiChatModel;\n }\n SourceFile: \"OpenAiChatModel.java\"\n-InnerClasses:\n-  public static #101= #92 of #97;         // OpenAiChatModelBuilder=class dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder of class dev/langchain4j/model/openai/OpenAiChatModel\n-  public static final #174= #173 of #253; // Builder=class dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder of class dev/ai4j/openai4j/chat/ChatCompletionRequest\n-  public static abstract #174= #211 of #209; // Builder=class dev/ai4j/openai4j/OpenAiClient$Builder of class dev/ai4j/openai4j/OpenAiClient\n-  public static final #418= #417 of #420; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #242 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #387 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #243 ()Ljava/lang/Object;\n-      #244 REF_invokeSpecial dev/langchain4j/model/openai/OpenAiChatModel.lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n-      #245 ()Ldev/langchain4j/model/Tokenizer;\n-  1: #242 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #394 ()Ljava/lang/Object;\n+      #395 REF_invokeSpecial dev/langchain4j/model/openai/OpenAiChatModel.lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n+      #398 ()Ldev/langchain4j/model/Tokenizer;\n+  1: #387 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #243 ()Ljava/lang/Object;\n-      #276 REF_invokeSpecial dev/langchain4j/model/openai/OpenAiChatModel.lambda$generate$1:(Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n-      #277 ()Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n-  2: #242 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #394 ()Ljava/lang/Object;\n+      #399 REF_invokeSpecial dev/langchain4j/model/openai/OpenAiChatModel.lambda$generate$1:(Ldev/ai4j/openai4j/chat/ChatCompletionRequest;)Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n+      #402 ()Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n+  2: #387 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #243 ()Ljava/lang/Object;\n-      #298 REF_newInvokeSpecial dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.\"<init>\":()V\n-      #299 ()Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+      #394 ()Ljava/lang/Object;\n+      #404 REF_newInvokeSpecial dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder.\"<init>\":()V\n+      #406 ()Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;\n+InnerClasses:\n+  public static abstract #408= #44 of #38; // Builder=class dev/ai4j/openai4j/OpenAiClient$Builder of class dev/ai4j/openai4j/OpenAiClient\n+  public static final #408= #174 of #169; // Builder=class dev/ai4j/openai4j/chat/ChatCompletionRequest$Builder of class dev/ai4j/openai4j/chat/ChatCompletionRequest\n+  public static #409= #293 of #84;        // OpenAiChatModelBuilder=class dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder of class dev/langchain4j/model/openai/OpenAiChatModel\n+  public static final #414= #410 of #412; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiChatModelName.class", "source2": "dev/langchain4j/model/openai/OpenAiChatModelName.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,160 +1,162 @@\n-  SHA-256 checksum e0b99497e68f766242aa156b9ca0b8ffd2ef7813ed4f90f9f02f5205809fc486\n+  SHA-256 checksum 3ec97a0d765156731961ab7cacba6d7fc1b9a7cb9a794825422e8ed4ae3d33ad\n   Compiled from \"OpenAiChatModelName.java\"\n public final class dev.langchain4j.model.openai.OpenAiChatModelName extends java.lang.Enum<dev.langchain4j.model.openai.OpenAiChatModelName>\n   minor version: 0\n   major version: 52\n   flags: (0x4031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ENUM\n-  this_class: #4                          // dev/langchain4j/model/openai/OpenAiChatModelName\n-  super_class: #57                        // java/lang/Enum\n-  interfaces: 0, fields: 18, methods: 5, attributes: 2\n+  this_class: #1                          // dev/langchain4j/model/openai/OpenAiChatModelName\n+  super_class: #62                        // java/lang/Enum\n+  interfaces: 0, fields: 18, methods: 6, attributes: 2\n Constant pool:\n-    #1 = Fieldref           #4.#99        // dev/langchain4j/model/openai/OpenAiChatModelName.$VALUES:[Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-    #2 = Methodref          #100.#101     // \"[Ldev/langchain4j/model/openai/OpenAiChatModelName;\".clone:()Ljava/lang/Object;\n-    #3 = Class              #78           // \"[Ldev/langchain4j/model/openai/OpenAiChatModelName;\"\n-    #4 = Class              #102          // dev/langchain4j/model/openai/OpenAiChatModelName\n-    #5 = Methodref          #57.#103      // java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n-    #6 = Methodref          #57.#104      // java/lang/Enum.\"<init>\":(Ljava/lang/String;I)V\n-    #7 = Fieldref           #4.#105       // dev/langchain4j/model/openai/OpenAiChatModelName.stringValue:Ljava/lang/String;\n-    #8 = String             #58           // GPT_3_5_TURBO\n-    #9 = String             #106          // gpt-3.5-turbo\n-   #10 = Methodref          #4.#107       // dev/langchain4j/model/openai/OpenAiChatModelName.\"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-   #11 = Fieldref           #4.#108       // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #12 = String             #60           // GPT_3_5_TURBO_0613\n-   #13 = String             #109          // gpt-3.5-turbo-0613\n-   #14 = Fieldref           #4.#110       // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #15 = String             #61           // GPT_3_5_TURBO_1106\n-   #16 = String             #111          // gpt-3.5-turbo-1106\n-   #17 = Fieldref           #4.#112       // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_1106:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #18 = String             #62           // GPT_3_5_TURBO_0125\n-   #19 = String             #113          // gpt-3.5-turbo-0125\n-   #20 = Fieldref           #4.#114       // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_0125:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #21 = String             #63           // GPT_3_5_TURBO_16K\n-   #22 = String             #115          // gpt-3.5-turbo-16k\n-   #23 = Fieldref           #4.#116       // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_16K:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #24 = String             #64           // GPT_3_5_TURBO_16K_0613\n-   #25 = String             #117          // gpt-3.5-turbo-16k-0613\n-   #26 = Fieldref           #4.#118       // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_16K_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #27 = String             #65           // GPT_4\n-   #28 = String             #119          // gpt-4\n-   #29 = Fieldref           #4.#120       // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #30 = String             #66           // GPT_4_0314\n-   #31 = String             #121          // gpt-4-0314\n-   #32 = Fieldref           #4.#122       // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_0314:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #33 = String             #67           // GPT_4_0613\n-   #34 = String             #123          // gpt-4-0613\n-   #35 = Fieldref           #4.#124       // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #36 = String             #68           // GPT_4_TURBO_PREVIEW\n-   #37 = String             #125          // gpt-4-turbo-preview\n-   #38 = Fieldref           #4.#126       // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_TURBO_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #39 = String             #69           // GPT_4_1106_PREVIEW\n-   #40 = String             #127          // gpt-4-1106-preview\n-   #41 = Fieldref           #4.#128       // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_1106_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #42 = String             #70           // GPT_4_0125_PREVIEW\n-   #43 = String             #129          // gpt-4-0125-preview\n-   #44 = Fieldref           #4.#130       // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_0125_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #45 = String             #71           // GPT_4_32K\n-   #46 = String             #131          // gpt-4-32k\n-   #47 = Fieldref           #4.#132       // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_32K:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #48 = String             #72           // GPT_4_32K_0314\n-   #49 = String             #133          // gpt-4-32k-0314\n-   #50 = Fieldref           #4.#134       // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_32K_0314:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #51 = String             #73           // GPT_4_32K_0613\n-   #52 = String             #135          // gpt-4-32k-0613\n-   #53 = Fieldref           #4.#136       // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_32K_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #54 = String             #74           // GPT_4_VISION_PREVIEW\n-   #55 = String             #137          // gpt-4-vision-preview\n-   #56 = Fieldref           #4.#138       // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_VISION_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #57 = Class              #139          // java/lang/Enum\n-   #58 = Utf8               GPT_3_5_TURBO\n-   #59 = Utf8               Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #60 = Utf8               GPT_3_5_TURBO_0613\n-   #61 = Utf8               GPT_3_5_TURBO_1106\n-   #62 = Utf8               GPT_3_5_TURBO_0125\n-   #63 = Utf8               GPT_3_5_TURBO_16K\n-   #64 = Utf8               GPT_3_5_TURBO_16K_0613\n-   #65 = Utf8               GPT_4\n-   #66 = Utf8               GPT_4_0314\n-   #67 = Utf8               GPT_4_0613\n-   #68 = Utf8               GPT_4_TURBO_PREVIEW\n-   #69 = Utf8               GPT_4_1106_PREVIEW\n-   #70 = Utf8               GPT_4_0125_PREVIEW\n-   #71 = Utf8               GPT_4_32K\n-   #72 = Utf8               GPT_4_32K_0314\n-   #73 = Utf8               GPT_4_32K_0613\n-   #74 = Utf8               GPT_4_VISION_PREVIEW\n-   #75 = Utf8               stringValue\n-   #76 = Utf8               Ljava/lang/String;\n-   #77 = Utf8               $VALUES\n-   #78 = Utf8               [Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #79 = Utf8               values\n-   #80 = Utf8               ()[Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #81 = Utf8               Code\n-   #82 = Utf8               LineNumberTable\n-   #83 = Utf8               valueOf\n-   #84 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #85 = Utf8               LocalVariableTable\n-   #86 = Utf8               name\n-   #87 = Utf8               <init>\n-   #88 = Utf8               (Ljava/lang/String;ILjava/lang/String;)V\n-   #89 = Utf8               this\n-   #90 = Utf8               Signature\n-   #91 = Utf8               (Ljava/lang/String;)V\n-   #92 = Utf8               toString\n-   #93 = Utf8               ()Ljava/lang/String;\n-   #94 = Utf8               <clinit>\n-   #95 = Utf8               ()V\n-   #96 = Utf8               Ljava/lang/Enum<Ldev/langchain4j/model/openai/OpenAiChatModelName;>;\n-   #97 = Utf8               SourceFile\n-   #98 = Utf8               OpenAiChatModelName.java\n-   #99 = NameAndType        #77:#78       // $VALUES:[Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #100 = Class              #78           // \"[Ldev/langchain4j/model/openai/OpenAiChatModelName;\"\n-  #101 = NameAndType        #140:#141     // clone:()Ljava/lang/Object;\n-  #102 = Utf8               dev/langchain4j/model/openai/OpenAiChatModelName\n-  #103 = NameAndType        #83:#142      // valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n-  #104 = NameAndType        #87:#143      // \"<init>\":(Ljava/lang/String;I)V\n-  #105 = NameAndType        #75:#76       // stringValue:Ljava/lang/String;\n-  #106 = Utf8               gpt-3.5-turbo\n-  #107 = NameAndType        #87:#88       // \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-  #108 = NameAndType        #58:#59       // GPT_3_5_TURBO:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #109 = Utf8               gpt-3.5-turbo-0613\n-  #110 = NameAndType        #60:#59       // GPT_3_5_TURBO_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #111 = Utf8               gpt-3.5-turbo-1106\n-  #112 = NameAndType        #61:#59       // GPT_3_5_TURBO_1106:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #113 = Utf8               gpt-3.5-turbo-0125\n-  #114 = NameAndType        #62:#59       // GPT_3_5_TURBO_0125:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #115 = Utf8               gpt-3.5-turbo-16k\n-  #116 = NameAndType        #63:#59       // GPT_3_5_TURBO_16K:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #117 = Utf8               gpt-3.5-turbo-16k-0613\n-  #118 = NameAndType        #64:#59       // GPT_3_5_TURBO_16K_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #119 = Utf8               gpt-4\n-  #120 = NameAndType        #65:#59       // GPT_4:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #121 = Utf8               gpt-4-0314\n-  #122 = NameAndType        #66:#59       // GPT_4_0314:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #123 = Utf8               gpt-4-0613\n-  #124 = NameAndType        #67:#59       // GPT_4_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #125 = Utf8               gpt-4-turbo-preview\n-  #126 = NameAndType        #68:#59       // GPT_4_TURBO_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #127 = Utf8               gpt-4-1106-preview\n-  #128 = NameAndType        #69:#59       // GPT_4_1106_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #129 = Utf8               gpt-4-0125-preview\n-  #130 = NameAndType        #70:#59       // GPT_4_0125_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #131 = Utf8               gpt-4-32k\n-  #132 = NameAndType        #71:#59       // GPT_4_32K:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #133 = Utf8               gpt-4-32k-0314\n-  #134 = NameAndType        #72:#59       // GPT_4_32K_0314:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #135 = Utf8               gpt-4-32k-0613\n-  #136 = NameAndType        #73:#59       // GPT_4_32K_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #137 = Utf8               gpt-4-vision-preview\n-  #138 = NameAndType        #74:#59       // GPT_4_VISION_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #139 = Utf8               java/lang/Enum\n-  #140 = Utf8               clone\n-  #141 = Utf8               ()Ljava/lang/Object;\n-  #142 = Utf8               (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n-  #143 = Utf8               (Ljava/lang/String;I)V\n+    #1 = Class              #2            // dev/langchain4j/model/openai/OpenAiChatModelName\n+    #2 = Utf8               dev/langchain4j/model/openai/OpenAiChatModelName\n+    #3 = Fieldref           #1.#4         // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+    #4 = NameAndType        #5:#6         // GPT_3_5_TURBO:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+    #5 = Utf8               GPT_3_5_TURBO\n+    #6 = Utf8               Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+    #7 = Fieldref           #1.#8         // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+    #8 = NameAndType        #9:#6         // GPT_3_5_TURBO_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+    #9 = Utf8               GPT_3_5_TURBO_0613\n+   #10 = Fieldref           #1.#11        // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_1106:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #11 = NameAndType        #12:#6        // GPT_3_5_TURBO_1106:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #12 = Utf8               GPT_3_5_TURBO_1106\n+   #13 = Fieldref           #1.#14        // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_0125:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #14 = NameAndType        #15:#6        // GPT_3_5_TURBO_0125:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #15 = Utf8               GPT_3_5_TURBO_0125\n+   #16 = Fieldref           #1.#17        // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_16K:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #17 = NameAndType        #18:#6        // GPT_3_5_TURBO_16K:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #18 = Utf8               GPT_3_5_TURBO_16K\n+   #19 = Fieldref           #1.#20        // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_16K_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #20 = NameAndType        #21:#6        // GPT_3_5_TURBO_16K_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #21 = Utf8               GPT_3_5_TURBO_16K_0613\n+   #22 = Fieldref           #1.#23        // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #23 = NameAndType        #24:#6        // GPT_4:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #24 = Utf8               GPT_4\n+   #25 = Fieldref           #1.#26        // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_0314:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #26 = NameAndType        #27:#6        // GPT_4_0314:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #27 = Utf8               GPT_4_0314\n+   #28 = Fieldref           #1.#29        // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #29 = NameAndType        #30:#6        // GPT_4_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #30 = Utf8               GPT_4_0613\n+   #31 = Fieldref           #1.#32        // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_TURBO_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #32 = NameAndType        #33:#6        // GPT_4_TURBO_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #33 = Utf8               GPT_4_TURBO_PREVIEW\n+   #34 = Fieldref           #1.#35        // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_1106_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #35 = NameAndType        #36:#6        // GPT_4_1106_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #36 = Utf8               GPT_4_1106_PREVIEW\n+   #37 = Fieldref           #1.#38        // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_0125_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #38 = NameAndType        #39:#6        // GPT_4_0125_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #39 = Utf8               GPT_4_0125_PREVIEW\n+   #40 = Fieldref           #1.#41        // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_32K:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #41 = NameAndType        #42:#6        // GPT_4_32K:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #42 = Utf8               GPT_4_32K\n+   #43 = Fieldref           #1.#44        // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_32K_0314:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #44 = NameAndType        #45:#6        // GPT_4_32K_0314:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #45 = Utf8               GPT_4_32K_0314\n+   #46 = Fieldref           #1.#47        // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_32K_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #47 = NameAndType        #48:#6        // GPT_4_32K_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #48 = Utf8               GPT_4_32K_0613\n+   #49 = Fieldref           #1.#50        // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_VISION_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #50 = NameAndType        #51:#6        // GPT_4_VISION_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #51 = Utf8               GPT_4_VISION_PREVIEW\n+   #52 = Fieldref           #1.#53        // dev/langchain4j/model/openai/OpenAiChatModelName.$VALUES:[Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #53 = NameAndType        #54:#55       // $VALUES:[Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #54 = Utf8               $VALUES\n+   #55 = Utf8               [Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+   #56 = Methodref          #57.#58       // \"[Ldev/langchain4j/model/openai/OpenAiChatModelName;\".clone:()Ljava/lang/Object;\n+   #57 = Class              #55           // \"[Ldev/langchain4j/model/openai/OpenAiChatModelName;\"\n+   #58 = NameAndType        #59:#60       // clone:()Ljava/lang/Object;\n+   #59 = Utf8               clone\n+   #60 = Utf8               ()Ljava/lang/Object;\n+   #61 = Methodref          #62.#63       // java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n+   #62 = Class              #64           // java/lang/Enum\n+   #63 = NameAndType        #65:#66       // valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n+   #64 = Utf8               java/lang/Enum\n+   #65 = Utf8               valueOf\n+   #66 = Utf8               (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n+   #67 = Methodref          #62.#68       // java/lang/Enum.\"<init>\":(Ljava/lang/String;I)V\n+   #68 = NameAndType        #69:#70       // \"<init>\":(Ljava/lang/String;I)V\n+   #69 = Utf8               <init>\n+   #70 = Utf8               (Ljava/lang/String;I)V\n+   #71 = Fieldref           #1.#72        // dev/langchain4j/model/openai/OpenAiChatModelName.stringValue:Ljava/lang/String;\n+   #72 = NameAndType        #73:#74       // stringValue:Ljava/lang/String;\n+   #73 = Utf8               stringValue\n+   #74 = Utf8               Ljava/lang/String;\n+   #75 = String             #5            // GPT_3_5_TURBO\n+   #76 = String             #77           // gpt-3.5-turbo\n+   #77 = Utf8               gpt-3.5-turbo\n+   #78 = Methodref          #1.#79        // dev/langchain4j/model/openai/OpenAiChatModelName.\"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+   #79 = NameAndType        #69:#80       // \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+   #80 = Utf8               (Ljava/lang/String;ILjava/lang/String;)V\n+   #81 = String             #9            // GPT_3_5_TURBO_0613\n+   #82 = String             #83           // gpt-3.5-turbo-0613\n+   #83 = Utf8               gpt-3.5-turbo-0613\n+   #84 = String             #12           // GPT_3_5_TURBO_1106\n+   #85 = String             #86           // gpt-3.5-turbo-1106\n+   #86 = Utf8               gpt-3.5-turbo-1106\n+   #87 = String             #15           // GPT_3_5_TURBO_0125\n+   #88 = String             #89           // gpt-3.5-turbo-0125\n+   #89 = Utf8               gpt-3.5-turbo-0125\n+   #90 = String             #18           // GPT_3_5_TURBO_16K\n+   #91 = String             #92           // gpt-3.5-turbo-16k\n+   #92 = Utf8               gpt-3.5-turbo-16k\n+   #93 = String             #21           // GPT_3_5_TURBO_16K_0613\n+   #94 = String             #95           // gpt-3.5-turbo-16k-0613\n+   #95 = Utf8               gpt-3.5-turbo-16k-0613\n+   #96 = String             #24           // GPT_4\n+   #97 = String             #98           // gpt-4\n+   #98 = Utf8               gpt-4\n+   #99 = String             #27           // GPT_4_0314\n+  #100 = String             #101          // gpt-4-0314\n+  #101 = Utf8               gpt-4-0314\n+  #102 = String             #30           // GPT_4_0613\n+  #103 = String             #104          // gpt-4-0613\n+  #104 = Utf8               gpt-4-0613\n+  #105 = String             #33           // GPT_4_TURBO_PREVIEW\n+  #106 = String             #107          // gpt-4-turbo-preview\n+  #107 = Utf8               gpt-4-turbo-preview\n+  #108 = String             #36           // GPT_4_1106_PREVIEW\n+  #109 = String             #110          // gpt-4-1106-preview\n+  #110 = Utf8               gpt-4-1106-preview\n+  #111 = String             #39           // GPT_4_0125_PREVIEW\n+  #112 = String             #113          // gpt-4-0125-preview\n+  #113 = Utf8               gpt-4-0125-preview\n+  #114 = String             #42           // GPT_4_32K\n+  #115 = String             #116          // gpt-4-32k\n+  #116 = Utf8               gpt-4-32k\n+  #117 = String             #45           // GPT_4_32K_0314\n+  #118 = String             #119          // gpt-4-32k-0314\n+  #119 = Utf8               gpt-4-32k-0314\n+  #120 = String             #48           // GPT_4_32K_0613\n+  #121 = String             #122          // gpt-4-32k-0613\n+  #122 = Utf8               gpt-4-32k-0613\n+  #123 = String             #51           // GPT_4_VISION_PREVIEW\n+  #124 = String             #125          // gpt-4-vision-preview\n+  #125 = Utf8               gpt-4-vision-preview\n+  #126 = Methodref          #1.#127       // dev/langchain4j/model/openai/OpenAiChatModelName.$values:()[Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+  #127 = NameAndType        #128:#129     // $values:()[Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+  #128 = Utf8               $values\n+  #129 = Utf8               ()[Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+  #130 = Utf8               values\n+  #131 = Utf8               Code\n+  #132 = Utf8               LineNumberTable\n+  #133 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+  #134 = Utf8               LocalVariableTable\n+  #135 = Utf8               name\n+  #136 = Utf8               this\n+  #137 = Utf8               Signature\n+  #138 = Utf8               (Ljava/lang/String;)V\n+  #139 = Utf8               toString\n+  #140 = Utf8               ()Ljava/lang/String;\n+  #141 = Utf8               <clinit>\n+  #142 = Utf8               ()V\n+  #143 = Utf8               Ljava/lang/Enum<Ldev/langchain4j/model/openai/OpenAiChatModelName;>;\n+  #144 = Utf8               SourceFile\n+  #145 = Utf8               OpenAiChatModelName.java\n {\n   public static final dev.langchain4j.model.openai.OpenAiChatModelName GPT_3_5_TURBO;\n     descriptor: Ldev/langchain4j/model/openai/OpenAiChatModelName;\n     flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM\n \n   public static final dev.langchain4j.model.openai.OpenAiChatModelName GPT_3_5_TURBO_0613;\n     descriptor: Ldev/langchain4j/model/openai/OpenAiChatModelName;\n@@ -225,30 +227,30 @@\n     flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC\n \n   public static dev.langchain4j.model.openai.OpenAiChatModelName[] values();\n     descriptor: ()[Ldev/langchain4j/model/openai/OpenAiChatModelName;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: getstatic     #1                  // Field $VALUES:[Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-         3: invokevirtual #2                  // Method \"[Ldev/langchain4j/model/openai/OpenAiChatModelName;\".clone:()Ljava/lang/Object;\n-         6: checkcast     #3                  // class \"[Ldev/langchain4j/model/openai/OpenAiChatModelName;\"\n+         0: getstatic     #52                 // Field $VALUES:[Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+         3: invokevirtual #56                 // Method \"[Ldev/langchain4j/model/openai/OpenAiChatModelName;\".clone:()Ljava/lang/Object;\n+         6: checkcast     #57                 // class \"[Ldev/langchain4j/model/openai/OpenAiChatModelName;\"\n          9: areturn\n       LineNumberTable:\n         line 3: 0\n \n   public static dev.langchain4j.model.openai.OpenAiChatModelName valueOf(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiChatModelName;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: ldc           #4                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n+         0: ldc           #1                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n          2: aload_0\n-         3: invokestatic  #5                  // Method java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n-         6: checkcast     #4                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n+         3: invokestatic  #61                 // Method java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n+         6: checkcast     #1                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n          9: areturn\n       LineNumberTable:\n         line 3: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  name   Ljava/lang/String;\n \n@@ -256,228 +258,238 @@\n     descriptor: (Ljava/lang/String;ILjava/lang/String;)V\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=3, locals=4, args_size=4\n          0: aload_0\n          1: aload_1\n          2: iload_2\n-         3: invokespecial #6                  // Method java/lang/Enum.\"<init>\":(Ljava/lang/String;I)V\n+         3: invokespecial #67                 // Method java/lang/Enum.\"<init>\":(Ljava/lang/String;I)V\n          6: aload_0\n          7: aload_3\n-         8: putfield      #7                  // Field stringValue:Ljava/lang/String;\n+         8: putfield      #71                 // Field stringValue:Ljava/lang/String;\n         11: return\n       LineNumberTable:\n         line 29: 0\n         line 30: 6\n         line 31: 11\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      12     0  this   Ldev/langchain4j/model/openai/OpenAiChatModelName;\n             0      12     3 stringValue   Ljava/lang/String;\n-    Signature: #91                          // (Ljava/lang/String;)V\n+    Signature: #138                         // (Ljava/lang/String;)V\n \n   public java.lang.String toString();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #7                  // Field stringValue:Ljava/lang/String;\n+         1: getfield      #71                 // Field stringValue:Ljava/lang/String;\n          4: areturn\n       LineNumberTable:\n         line 35: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/model/openai/OpenAiChatModelName;\n \n+  private static dev.langchain4j.model.openai.OpenAiChatModelName[] $values();\n+    descriptor: ()[Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n+    Code:\n+      stack=4, locals=0, args_size=0\n+         0: bipush        16\n+         2: anewarray     #1                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n+         5: dup\n+         6: iconst_0\n+         7: getstatic     #3                  // Field GPT_3_5_TURBO:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        10: aastore\n+        11: dup\n+        12: iconst_1\n+        13: getstatic     #7                  // Field GPT_3_5_TURBO_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        16: aastore\n+        17: dup\n+        18: iconst_2\n+        19: getstatic     #10                 // Field GPT_3_5_TURBO_1106:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        22: aastore\n+        23: dup\n+        24: iconst_3\n+        25: getstatic     #13                 // Field GPT_3_5_TURBO_0125:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        28: aastore\n+        29: dup\n+        30: iconst_4\n+        31: getstatic     #16                 // Field GPT_3_5_TURBO_16K:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        34: aastore\n+        35: dup\n+        36: iconst_5\n+        37: getstatic     #19                 // Field GPT_3_5_TURBO_16K_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        40: aastore\n+        41: dup\n+        42: bipush        6\n+        44: getstatic     #22                 // Field GPT_4:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        47: aastore\n+        48: dup\n+        49: bipush        7\n+        51: getstatic     #25                 // Field GPT_4_0314:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        54: aastore\n+        55: dup\n+        56: bipush        8\n+        58: getstatic     #28                 // Field GPT_4_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        61: aastore\n+        62: dup\n+        63: bipush        9\n+        65: getstatic     #31                 // Field GPT_4_TURBO_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        68: aastore\n+        69: dup\n+        70: bipush        10\n+        72: getstatic     #34                 // Field GPT_4_1106_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        75: aastore\n+        76: dup\n+        77: bipush        11\n+        79: getstatic     #37                 // Field GPT_4_0125_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        82: aastore\n+        83: dup\n+        84: bipush        12\n+        86: getstatic     #40                 // Field GPT_4_32K:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        89: aastore\n+        90: dup\n+        91: bipush        13\n+        93: getstatic     #43                 // Field GPT_4_32K_0314:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        96: aastore\n+        97: dup\n+        98: bipush        14\n+       100: getstatic     #46                 // Field GPT_4_32K_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+       103: aastore\n+       104: dup\n+       105: bipush        15\n+       107: getstatic     #49                 // Field GPT_4_VISION_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+       110: aastore\n+       111: areturn\n+      LineNumberTable:\n+        line 3: 0\n+\n   static {};\n     descriptor: ()V\n     flags: (0x0008) ACC_STATIC\n     Code:\n       stack=5, locals=0, args_size=0\n-         0: new           #4                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n+         0: new           #1                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n          3: dup\n-         4: ldc           #8                  // String GPT_3_5_TURBO\n+         4: ldc           #75                 // String GPT_3_5_TURBO\n          6: iconst_0\n-         7: ldc           #9                  // String gpt-3.5-turbo\n-         9: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-        12: putstatic     #11                 // Field GPT_3_5_TURBO:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-        15: new           #4                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n+         7: ldc           #76                 // String gpt-3.5-turbo\n+         9: invokespecial #78                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+        12: putstatic     #3                  // Field GPT_3_5_TURBO:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        15: new           #1                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n         18: dup\n-        19: ldc           #12                 // String GPT_3_5_TURBO_0613\n+        19: ldc           #81                 // String GPT_3_5_TURBO_0613\n         21: iconst_1\n-        22: ldc           #13                 // String gpt-3.5-turbo-0613\n-        24: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-        27: putstatic     #14                 // Field GPT_3_5_TURBO_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-        30: new           #4                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n+        22: ldc           #82                 // String gpt-3.5-turbo-0613\n+        24: invokespecial #78                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+        27: putstatic     #7                  // Field GPT_3_5_TURBO_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        30: new           #1                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n         33: dup\n-        34: ldc           #15                 // String GPT_3_5_TURBO_1106\n+        34: ldc           #84                 // String GPT_3_5_TURBO_1106\n         36: iconst_2\n-        37: ldc           #16                 // String gpt-3.5-turbo-1106\n-        39: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-        42: putstatic     #17                 // Field GPT_3_5_TURBO_1106:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-        45: new           #4                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n+        37: ldc           #85                 // String gpt-3.5-turbo-1106\n+        39: invokespecial #78                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+        42: putstatic     #10                 // Field GPT_3_5_TURBO_1106:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        45: new           #1                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n         48: dup\n-        49: ldc           #18                 // String GPT_3_5_TURBO_0125\n+        49: ldc           #87                 // String GPT_3_5_TURBO_0125\n         51: iconst_3\n-        52: ldc           #19                 // String gpt-3.5-turbo-0125\n-        54: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-        57: putstatic     #20                 // Field GPT_3_5_TURBO_0125:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-        60: new           #4                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n+        52: ldc           #88                 // String gpt-3.5-turbo-0125\n+        54: invokespecial #78                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+        57: putstatic     #13                 // Field GPT_3_5_TURBO_0125:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        60: new           #1                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n         63: dup\n-        64: ldc           #21                 // String GPT_3_5_TURBO_16K\n+        64: ldc           #90                 // String GPT_3_5_TURBO_16K\n         66: iconst_4\n-        67: ldc           #22                 // String gpt-3.5-turbo-16k\n-        69: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-        72: putstatic     #23                 // Field GPT_3_5_TURBO_16K:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-        75: new           #4                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n+        67: ldc           #91                 // String gpt-3.5-turbo-16k\n+        69: invokespecial #78                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+        72: putstatic     #16                 // Field GPT_3_5_TURBO_16K:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        75: new           #1                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n         78: dup\n-        79: ldc           #24                 // String GPT_3_5_TURBO_16K_0613\n+        79: ldc           #93                 // String GPT_3_5_TURBO_16K_0613\n         81: iconst_5\n-        82: ldc           #25                 // String gpt-3.5-turbo-16k-0613\n-        84: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-        87: putstatic     #26                 // Field GPT_3_5_TURBO_16K_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-        90: new           #4                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n+        82: ldc           #94                 // String gpt-3.5-turbo-16k-0613\n+        84: invokespecial #78                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+        87: putstatic     #19                 // Field GPT_3_5_TURBO_16K_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        90: new           #1                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n         93: dup\n-        94: ldc           #27                 // String GPT_4\n+        94: ldc           #96                 // String GPT_4\n         96: bipush        6\n-        98: ldc           #28                 // String gpt-4\n-       100: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-       103: putstatic     #29                 // Field GPT_4:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       106: new           #4                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n+        98: ldc           #97                 // String gpt-4\n+       100: invokespecial #78                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+       103: putstatic     #22                 // Field GPT_4:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+       106: new           #1                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n        109: dup\n-       110: ldc           #30                 // String GPT_4_0314\n+       110: ldc           #99                 // String GPT_4_0314\n        112: bipush        7\n-       114: ldc           #31                 // String gpt-4-0314\n-       116: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-       119: putstatic     #32                 // Field GPT_4_0314:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       122: new           #4                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n+       114: ldc           #100                // String gpt-4-0314\n+       116: invokespecial #78                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+       119: putstatic     #25                 // Field GPT_4_0314:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+       122: new           #1                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n        125: dup\n-       126: ldc           #33                 // String GPT_4_0613\n+       126: ldc           #102                // String GPT_4_0613\n        128: bipush        8\n-       130: ldc           #34                 // String gpt-4-0613\n-       132: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-       135: putstatic     #35                 // Field GPT_4_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       138: new           #4                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n+       130: ldc           #103                // String gpt-4-0613\n+       132: invokespecial #78                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+       135: putstatic     #28                 // Field GPT_4_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+       138: new           #1                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n        141: dup\n-       142: ldc           #36                 // String GPT_4_TURBO_PREVIEW\n+       142: ldc           #105                // String GPT_4_TURBO_PREVIEW\n        144: bipush        9\n-       146: ldc           #37                 // String gpt-4-turbo-preview\n-       148: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-       151: putstatic     #38                 // Field GPT_4_TURBO_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       154: new           #4                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n+       146: ldc           #106                // String gpt-4-turbo-preview\n+       148: invokespecial #78                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+       151: putstatic     #31                 // Field GPT_4_TURBO_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+       154: new           #1                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n        157: dup\n-       158: ldc           #39                 // String GPT_4_1106_PREVIEW\n+       158: ldc           #108                // String GPT_4_1106_PREVIEW\n        160: bipush        10\n-       162: ldc           #40                 // String gpt-4-1106-preview\n-       164: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-       167: putstatic     #41                 // Field GPT_4_1106_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       170: new           #4                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n+       162: ldc           #109                // String gpt-4-1106-preview\n+       164: invokespecial #78                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+       167: putstatic     #34                 // Field GPT_4_1106_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+       170: new           #1                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n        173: dup\n-       174: ldc           #42                 // String GPT_4_0125_PREVIEW\n+       174: ldc           #111                // String GPT_4_0125_PREVIEW\n        176: bipush        11\n-       178: ldc           #43                 // String gpt-4-0125-preview\n-       180: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-       183: putstatic     #44                 // Field GPT_4_0125_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       186: new           #4                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n+       178: ldc           #112                // String gpt-4-0125-preview\n+       180: invokespecial #78                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+       183: putstatic     #37                 // Field GPT_4_0125_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+       186: new           #1                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n        189: dup\n-       190: ldc           #45                 // String GPT_4_32K\n+       190: ldc           #114                // String GPT_4_32K\n        192: bipush        12\n-       194: ldc           #46                 // String gpt-4-32k\n-       196: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-       199: putstatic     #47                 // Field GPT_4_32K:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       202: new           #4                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n+       194: ldc           #115                // String gpt-4-32k\n+       196: invokespecial #78                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+       199: putstatic     #40                 // Field GPT_4_32K:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+       202: new           #1                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n        205: dup\n-       206: ldc           #48                 // String GPT_4_32K_0314\n+       206: ldc           #117                // String GPT_4_32K_0314\n        208: bipush        13\n-       210: ldc           #49                 // String gpt-4-32k-0314\n-       212: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-       215: putstatic     #50                 // Field GPT_4_32K_0314:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       218: new           #4                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n+       210: ldc           #118                // String gpt-4-32k-0314\n+       212: invokespecial #78                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+       215: putstatic     #43                 // Field GPT_4_32K_0314:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+       218: new           #1                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n        221: dup\n-       222: ldc           #51                 // String GPT_4_32K_0613\n+       222: ldc           #120                // String GPT_4_32K_0613\n        224: bipush        14\n-       226: ldc           #52                 // String gpt-4-32k-0613\n-       228: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-       231: putstatic     #53                 // Field GPT_4_32K_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       234: new           #4                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n+       226: ldc           #121                // String gpt-4-32k-0613\n+       228: invokespecial #78                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+       231: putstatic     #46                 // Field GPT_4_32K_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+       234: new           #1                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n        237: dup\n-       238: ldc           #54                 // String GPT_4_VISION_PREVIEW\n+       238: ldc           #123                // String GPT_4_VISION_PREVIEW\n        240: bipush        15\n-       242: ldc           #55                 // String gpt-4-vision-preview\n-       244: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-       247: putstatic     #56                 // Field GPT_4_VISION_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       250: bipush        16\n-       252: anewarray     #4                  // class dev/langchain4j/model/openai/OpenAiChatModelName\n-       255: dup\n-       256: iconst_0\n-       257: getstatic     #11                 // Field GPT_3_5_TURBO:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       260: aastore\n-       261: dup\n-       262: iconst_1\n-       263: getstatic     #14                 // Field GPT_3_5_TURBO_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       266: aastore\n-       267: dup\n-       268: iconst_2\n-       269: getstatic     #17                 // Field GPT_3_5_TURBO_1106:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       272: aastore\n-       273: dup\n-       274: iconst_3\n-       275: getstatic     #20                 // Field GPT_3_5_TURBO_0125:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       278: aastore\n-       279: dup\n-       280: iconst_4\n-       281: getstatic     #23                 // Field GPT_3_5_TURBO_16K:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       284: aastore\n-       285: dup\n-       286: iconst_5\n-       287: getstatic     #26                 // Field GPT_3_5_TURBO_16K_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       290: aastore\n-       291: dup\n-       292: bipush        6\n-       294: getstatic     #29                 // Field GPT_4:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       297: aastore\n-       298: dup\n-       299: bipush        7\n-       301: getstatic     #32                 // Field GPT_4_0314:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       304: aastore\n-       305: dup\n-       306: bipush        8\n-       308: getstatic     #35                 // Field GPT_4_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       311: aastore\n-       312: dup\n-       313: bipush        9\n-       315: getstatic     #38                 // Field GPT_4_TURBO_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       318: aastore\n-       319: dup\n-       320: bipush        10\n-       322: getstatic     #41                 // Field GPT_4_1106_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       325: aastore\n-       326: dup\n-       327: bipush        11\n-       329: getstatic     #44                 // Field GPT_4_0125_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       332: aastore\n-       333: dup\n-       334: bipush        12\n-       336: getstatic     #47                 // Field GPT_4_32K:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       339: aastore\n-       340: dup\n-       341: bipush        13\n-       343: getstatic     #50                 // Field GPT_4_32K_0314:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       346: aastore\n-       347: dup\n-       348: bipush        14\n-       350: getstatic     #53                 // Field GPT_4_32K_0613:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       353: aastore\n-       354: dup\n-       355: bipush        15\n-       357: getstatic     #56                 // Field GPT_4_VISION_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       360: aastore\n-       361: putstatic     #1                  // Field $VALUES:[Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       364: return\n+       242: ldc           #124                // String gpt-4-vision-preview\n+       244: invokespecial #78                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+       247: putstatic     #49                 // Field GPT_4_VISION_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+       250: invokestatic  #126                // Method $values:()[Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+       253: putstatic     #52                 // Field $VALUES:[Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+       256: return\n       LineNumberTable:\n         line 5: 0\n         line 6: 15\n         line 7: 30\n         line 8: 45\n         line 10: 60\n         line 11: 75\n@@ -489,9 +501,9 @@\n         line 19: 170\n         line 21: 186\n         line 22: 202\n         line 23: 218\n         line 25: 234\n         line 3: 250\n }\n-Signature: #96                          // Ljava/lang/Enum<Ldev/langchain4j/model/openai/OpenAiChatModelName;>;\n+Signature: #143                         // Ljava/lang/Enum<Ldev/langchain4j/model/openai/OpenAiChatModelName;>;\n SourceFile: \"OpenAiChatModelName.java\"\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.class", "source2": "dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,134 +1,134 @@\n-  SHA-256 checksum 4d00ac41d3f198bd9e0458af0a9d59adb20cc0fe7b509932e7bbce4a62a3c1e5\n+  SHA-256 checksum eac8d38a1c83708db4e53b71d26cccd6a83f9dcf4f7739b18de300027730c608\n   Compiled from \"OpenAiEmbeddingModel.java\"\n public class dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #35                         // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder\n-  super_class: #36                        // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 12, methods: 16, attributes: 2\n Constant pool:\n-    #1 = Methodref          #36.#78       // java/lang/Object.\"<init>\":()V\n-    #2 = Fieldref           #35.#79       // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.modelName:Ljava/lang/String;\n-    #3 = Methodref          #80.#81       // dev/langchain4j/model/openai/OpenAiEmbeddingModelName.toString:()Ljava/lang/String;\n-    #4 = Fieldref           #35.#82       // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.baseUrl:Ljava/lang/String;\n-    #5 = Fieldref           #35.#83       // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.apiKey:Ljava/lang/String;\n-    #6 = Fieldref           #35.#84       // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.organizationId:Ljava/lang/String;\n-    #7 = Fieldref           #35.#85       // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.dimensions:Ljava/lang/Integer;\n-    #8 = Fieldref           #35.#86       // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.user:Ljava/lang/String;\n-    #9 = Fieldref           #35.#87       // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.timeout:Ljava/time/Duration;\n-   #10 = Fieldref           #35.#88       // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.maxRetries:Ljava/lang/Integer;\n-   #11 = Fieldref           #35.#89       // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.proxy:Ljava/net/Proxy;\n-   #12 = Fieldref           #35.#90       // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.logRequests:Ljava/lang/Boolean;\n-   #13 = Fieldref           #35.#91       // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.logResponses:Ljava/lang/Boolean;\n-   #14 = Fieldref           #35.#92       // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.tokenizer:Ldev/langchain4j/model/Tokenizer;\n-   #15 = Class              #93           // dev/langchain4j/model/openai/OpenAiEmbeddingModel\n-   #16 = Methodref          #15.#94       // dev/langchain4j/model/openai/OpenAiEmbeddingModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n-   #17 = Class              #95           // java/lang/StringBuilder\n-   #18 = Methodref          #17.#78       // java/lang/StringBuilder.\"<init>\":()V\n-   #19 = String             #96           // OpenAiEmbeddingModel.OpenAiEmbeddingModelBuilder(baseUrl=\n-   #20 = Methodref          #17.#97       // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #21 = String             #98           // , apiKey=\n-   #22 = String             #99           // , organizationId=\n-   #23 = String             #100          // , modelName=\n-   #24 = String             #101          // , dimensions=\n-   #25 = Methodref          #17.#102      // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #26 = String             #103          // , user=\n-   #27 = String             #104          // , timeout=\n-   #28 = String             #105          // , maxRetries=\n-   #29 = String             #106          // , proxy=\n-   #30 = String             #107          // , logRequests=\n-   #31 = String             #108          // , logResponses=\n-   #32 = String             #109          // , tokenizer=\n-   #33 = String             #110          // )\n-   #34 = Methodref          #17.#81       // java/lang/StringBuilder.toString:()Ljava/lang/String;\n-   #35 = Class              #111          // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder\n-   #36 = Class              #112          // java/lang/Object\n-   #37 = Utf8               baseUrl\n-   #38 = Utf8               Ljava/lang/String;\n-   #39 = Utf8               apiKey\n-   #40 = Utf8               organizationId\n-   #41 = Utf8               modelName\n-   #42 = Utf8               dimensions\n-   #43 = Utf8               Ljava/lang/Integer;\n-   #44 = Utf8               user\n-   #45 = Utf8               timeout\n-   #46 = Utf8               Ljava/time/Duration;\n-   #47 = Utf8               maxRetries\n-   #48 = Utf8               proxy\n-   #49 = Utf8               Ljava/net/Proxy;\n-   #50 = Utf8               logRequests\n-   #51 = Utf8               Ljava/lang/Boolean;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Fieldref           #8.#9         // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.modelName:Ljava/lang/String;\n+    #8 = Class              #10           // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder\n+    #9 = NameAndType        #11:#12       // modelName:Ljava/lang/String;\n+   #10 = Utf8               dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder\n+   #11 = Utf8               modelName\n+   #12 = Utf8               Ljava/lang/String;\n+   #13 = Methodref          #14.#15       // dev/langchain4j/model/openai/OpenAiEmbeddingModelName.toString:()Ljava/lang/String;\n+   #14 = Class              #16           // dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n+   #15 = NameAndType        #17:#18       // toString:()Ljava/lang/String;\n+   #16 = Utf8               dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n+   #17 = Utf8               toString\n+   #18 = Utf8               ()Ljava/lang/String;\n+   #19 = Fieldref           #8.#20        // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.baseUrl:Ljava/lang/String;\n+   #20 = NameAndType        #21:#12       // baseUrl:Ljava/lang/String;\n+   #21 = Utf8               baseUrl\n+   #22 = Fieldref           #8.#23        // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.apiKey:Ljava/lang/String;\n+   #23 = NameAndType        #24:#12       // apiKey:Ljava/lang/String;\n+   #24 = Utf8               apiKey\n+   #25 = Fieldref           #8.#26        // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.organizationId:Ljava/lang/String;\n+   #26 = NameAndType        #27:#12       // organizationId:Ljava/lang/String;\n+   #27 = Utf8               organizationId\n+   #28 = Fieldref           #8.#29        // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.dimensions:Ljava/lang/Integer;\n+   #29 = NameAndType        #30:#31       // dimensions:Ljava/lang/Integer;\n+   #30 = Utf8               dimensions\n+   #31 = Utf8               Ljava/lang/Integer;\n+   #32 = Fieldref           #8.#33        // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.user:Ljava/lang/String;\n+   #33 = NameAndType        #34:#12       // user:Ljava/lang/String;\n+   #34 = Utf8               user\n+   #35 = Fieldref           #8.#36        // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.timeout:Ljava/time/Duration;\n+   #36 = NameAndType        #37:#38       // timeout:Ljava/time/Duration;\n+   #37 = Utf8               timeout\n+   #38 = Utf8               Ljava/time/Duration;\n+   #39 = Fieldref           #8.#40        // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.maxRetries:Ljava/lang/Integer;\n+   #40 = NameAndType        #41:#31       // maxRetries:Ljava/lang/Integer;\n+   #41 = Utf8               maxRetries\n+   #42 = Fieldref           #8.#43        // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.proxy:Ljava/net/Proxy;\n+   #43 = NameAndType        #44:#45       // proxy:Ljava/net/Proxy;\n+   #44 = Utf8               proxy\n+   #45 = Utf8               Ljava/net/Proxy;\n+   #46 = Fieldref           #8.#47        // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.logRequests:Ljava/lang/Boolean;\n+   #47 = NameAndType        #48:#49       // logRequests:Ljava/lang/Boolean;\n+   #48 = Utf8               logRequests\n+   #49 = Utf8               Ljava/lang/Boolean;\n+   #50 = Fieldref           #8.#51        // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.logResponses:Ljava/lang/Boolean;\n+   #51 = NameAndType        #52:#49       // logResponses:Ljava/lang/Boolean;\n    #52 = Utf8               logResponses\n-   #53 = Utf8               tokenizer\n-   #54 = Utf8               Ldev/langchain4j/model/Tokenizer;\n-   #55 = Utf8               <init>\n-   #56 = Utf8               ()V\n-   #57 = Utf8               Code\n-   #58 = Utf8               LineNumberTable\n-   #59 = Utf8               LocalVariableTable\n-   #60 = Utf8               this\n-   #61 = Utf8               OpenAiEmbeddingModelBuilder\n-   #62 = Utf8               InnerClasses\n-   #63 = Utf8               Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n-   #64 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n-   #65 = Utf8               (Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n-   #66 = Utf8               Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-   #67 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n-   #68 = Utf8               (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n-   #69 = Utf8               (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n-   #70 = Utf8               (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n-   #71 = Utf8               (Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n-   #72 = Utf8               build\n-   #73 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;\n-   #74 = Utf8               toString\n-   #75 = Utf8               ()Ljava/lang/String;\n-   #76 = Utf8               SourceFile\n-   #77 = Utf8               OpenAiEmbeddingModel.java\n-   #78 = NameAndType        #55:#56       // \"<init>\":()V\n-   #79 = NameAndType        #41:#38       // modelName:Ljava/lang/String;\n-   #80 = Class              #113          // dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n-   #81 = NameAndType        #74:#75       // toString:()Ljava/lang/String;\n-   #82 = NameAndType        #37:#38       // baseUrl:Ljava/lang/String;\n-   #83 = NameAndType        #39:#38       // apiKey:Ljava/lang/String;\n-   #84 = NameAndType        #40:#38       // organizationId:Ljava/lang/String;\n-   #85 = NameAndType        #42:#43       // dimensions:Ljava/lang/Integer;\n-   #86 = NameAndType        #44:#38       // user:Ljava/lang/String;\n-   #87 = NameAndType        #45:#46       // timeout:Ljava/time/Duration;\n-   #88 = NameAndType        #47:#43       // maxRetries:Ljava/lang/Integer;\n-   #89 = NameAndType        #48:#49       // proxy:Ljava/net/Proxy;\n-   #90 = NameAndType        #50:#51       // logRequests:Ljava/lang/Boolean;\n-   #91 = NameAndType        #52:#51       // logResponses:Ljava/lang/Boolean;\n-   #92 = NameAndType        #53:#54       // tokenizer:Ldev/langchain4j/model/Tokenizer;\n-   #93 = Utf8               dev/langchain4j/model/openai/OpenAiEmbeddingModel\n-   #94 = NameAndType        #55:#114      // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n-   #95 = Utf8               java/lang/StringBuilder\n-   #96 = Utf8               OpenAiEmbeddingModel.OpenAiEmbeddingModelBuilder(baseUrl=\n-   #97 = NameAndType        #115:#116     // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #98 = Utf8               , apiKey=\n-   #99 = Utf8               , organizationId=\n-  #100 = Utf8               , modelName=\n-  #101 = Utf8               , dimensions=\n-  #102 = NameAndType        #115:#117     // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-  #103 = Utf8               , user=\n-  #104 = Utf8               , timeout=\n-  #105 = Utf8               , maxRetries=\n-  #106 = Utf8               , proxy=\n-  #107 = Utf8               , logRequests=\n-  #108 = Utf8               , logResponses=\n-  #109 = Utf8               , tokenizer=\n-  #110 = Utf8               )\n-  #111 = Utf8               dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder\n-  #112 = Utf8               java/lang/Object\n-  #113 = Utf8               dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n-  #114 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n-  #115 = Utf8               append\n-  #116 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #117 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #53 = Fieldref           #8.#54        // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.tokenizer:Ldev/langchain4j/model/Tokenizer;\n+   #54 = NameAndType        #55:#56       // tokenizer:Ldev/langchain4j/model/Tokenizer;\n+   #55 = Utf8               tokenizer\n+   #56 = Utf8               Ldev/langchain4j/model/Tokenizer;\n+   #57 = Class              #58           // dev/langchain4j/model/openai/OpenAiEmbeddingModel\n+   #58 = Utf8               dev/langchain4j/model/openai/OpenAiEmbeddingModel\n+   #59 = Methodref          #57.#60       // dev/langchain4j/model/openai/OpenAiEmbeddingModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+   #60 = NameAndType        #5:#61        // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+   #61 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+   #62 = Class              #63           // java/lang/StringBuilder\n+   #63 = Utf8               java/lang/StringBuilder\n+   #64 = Methodref          #62.#3        // java/lang/StringBuilder.\"<init>\":()V\n+   #65 = String             #66           // OpenAiEmbeddingModel.OpenAiEmbeddingModelBuilder(baseUrl=\n+   #66 = Utf8               OpenAiEmbeddingModel.OpenAiEmbeddingModelBuilder(baseUrl=\n+   #67 = Methodref          #62.#68       // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #68 = NameAndType        #69:#70       // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #69 = Utf8               append\n+   #70 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #71 = String             #72           // , apiKey=\n+   #72 = Utf8               , apiKey=\n+   #73 = String             #74           // , organizationId=\n+   #74 = Utf8               , organizationId=\n+   #75 = String             #76           // , modelName=\n+   #76 = Utf8               , modelName=\n+   #77 = String             #78           // , dimensions=\n+   #78 = Utf8               , dimensions=\n+   #79 = Methodref          #62.#80       // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #80 = NameAndType        #69:#81       // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #81 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #82 = String             #83           // , user=\n+   #83 = Utf8               , user=\n+   #84 = String             #85           // , timeout=\n+   #85 = Utf8               , timeout=\n+   #86 = String             #87           // , maxRetries=\n+   #87 = Utf8               , maxRetries=\n+   #88 = String             #89           // , proxy=\n+   #89 = Utf8               , proxy=\n+   #90 = String             #91           // , logRequests=\n+   #91 = Utf8               , logRequests=\n+   #92 = String             #93           // , logResponses=\n+   #93 = Utf8               , logResponses=\n+   #94 = String             #95           // , tokenizer=\n+   #95 = Utf8               , tokenizer=\n+   #96 = String             #97           // )\n+   #97 = Utf8               )\n+   #98 = Methodref          #62.#15       // java/lang/StringBuilder.toString:()Ljava/lang/String;\n+   #99 = Utf8               Code\n+  #100 = Utf8               LineNumberTable\n+  #101 = Utf8               LocalVariableTable\n+  #102 = Utf8               this\n+  #103 = Utf8               Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n+  #104 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n+  #105 = Utf8               (Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n+  #106 = Utf8               Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+  #107 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n+  #108 = Utf8               (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n+  #109 = Utf8               (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n+  #110 = Utf8               (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n+  #111 = Utf8               (Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n+  #112 = Utf8               build\n+  #113 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;\n+  #114 = Utf8               SourceFile\n+  #115 = Utf8               OpenAiEmbeddingModel.java\n+  #116 = Utf8               InnerClasses\n+  #117 = Utf8               OpenAiEmbeddingModelBuilder\n {\n   private java.lang.String baseUrl;\n     descriptor: Ljava/lang/String;\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.lang.String apiKey;\n     descriptor: Ljava/lang/String;\n@@ -192,15 +192,15 @@\n   public dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder modelName(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #2                  // Field modelName:Ljava/lang/String;\n+         2: putfield      #7                  // Field modelName:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 134: 0\n         line 135: 5\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -210,16 +210,16 @@\n   public dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder modelName(dev.langchain4j.model.openai.OpenAiEmbeddingModelName);\n     descriptor: (Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokevirtual #3                  // Method dev/langchain4j/model/openai/OpenAiEmbeddingModelName.toString:()Ljava/lang/String;\n-         5: putfield      #2                  // Field modelName:Ljava/lang/String;\n+         2: invokevirtual #13                 // Method dev/langchain4j/model/openai/OpenAiEmbeddingModelName.toString:()Ljava/lang/String;\n+         5: putfield      #7                  // Field modelName:Ljava/lang/String;\n          8: aload_0\n          9: areturn\n       LineNumberTable:\n         line 139: 0\n         line 140: 8\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -229,15 +229,15 @@\n   public dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder baseUrl(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #4                  // Field baseUrl:Ljava/lang/String;\n+         2: putfield      #19                 // Field baseUrl:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 39: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n@@ -246,15 +246,15 @@\n   public dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder apiKey(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #5                  // Field apiKey:Ljava/lang/String;\n+         2: putfield      #22                 // Field apiKey:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 39: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n@@ -263,15 +263,15 @@\n   public dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder organizationId(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #6                  // Field organizationId:Ljava/lang/String;\n+         2: putfield      #25                 // Field organizationId:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 39: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n@@ -280,15 +280,15 @@\n   public dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder dimensions(java.lang.Integer);\n     descriptor: (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #7                  // Field dimensions:Ljava/lang/Integer;\n+         2: putfield      #28                 // Field dimensions:Ljava/lang/Integer;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 39: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n@@ -297,15 +297,15 @@\n   public dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder user(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #8                  // Field user:Ljava/lang/String;\n+         2: putfield      #32                 // Field user:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 39: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n@@ -314,15 +314,15 @@\n   public dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder timeout(java.time.Duration);\n     descriptor: (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #9                  // Field timeout:Ljava/time/Duration;\n+         2: putfield      #35                 // Field timeout:Ljava/time/Duration;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 39: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n@@ -331,15 +331,15 @@\n   public dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder maxRetries(java.lang.Integer);\n     descriptor: (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #10                 // Field maxRetries:Ljava/lang/Integer;\n+         2: putfield      #39                 // Field maxRetries:Ljava/lang/Integer;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 39: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n@@ -348,15 +348,15 @@\n   public dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder proxy(java.net.Proxy);\n     descriptor: (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #11                 // Field proxy:Ljava/net/Proxy;\n+         2: putfield      #42                 // Field proxy:Ljava/net/Proxy;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 39: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n@@ -365,15 +365,15 @@\n   public dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder logRequests(java.lang.Boolean);\n     descriptor: (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #12                 // Field logRequests:Ljava/lang/Boolean;\n+         2: putfield      #46                 // Field logRequests:Ljava/lang/Boolean;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 39: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n@@ -382,15 +382,15 @@\n   public dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder logResponses(java.lang.Boolean);\n     descriptor: (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #13                 // Field logResponses:Ljava/lang/Boolean;\n+         2: putfield      #50                 // Field logResponses:Ljava/lang/Boolean;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 39: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n@@ -399,137 +399,137 @@\n   public dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder tokenizer(dev.langchain4j.model.Tokenizer);\n     descriptor: (Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #14                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+         2: putfield      #53                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 39: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n             0       7     1 tokenizer   Ldev/langchain4j/model/Tokenizer;\n \n   public dev.langchain4j.model.openai.OpenAiEmbeddingModel build();\n     descriptor: ()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=14, locals=1, args_size=1\n-         0: new           #15                 // class dev/langchain4j/model/openai/OpenAiEmbeddingModel\n+         0: new           #57                 // class dev/langchain4j/model/openai/OpenAiEmbeddingModel\n          3: dup\n          4: aload_0\n-         5: getfield      #4                  // Field baseUrl:Ljava/lang/String;\n+         5: getfield      #19                 // Field baseUrl:Ljava/lang/String;\n          8: aload_0\n-         9: getfield      #5                  // Field apiKey:Ljava/lang/String;\n+         9: getfield      #22                 // Field apiKey:Ljava/lang/String;\n         12: aload_0\n-        13: getfield      #6                  // Field organizationId:Ljava/lang/String;\n+        13: getfield      #25                 // Field organizationId:Ljava/lang/String;\n         16: aload_0\n-        17: getfield      #2                  // Field modelName:Ljava/lang/String;\n+        17: getfield      #7                  // Field modelName:Ljava/lang/String;\n         20: aload_0\n-        21: getfield      #7                  // Field dimensions:Ljava/lang/Integer;\n+        21: getfield      #28                 // Field dimensions:Ljava/lang/Integer;\n         24: aload_0\n-        25: getfield      #8                  // Field user:Ljava/lang/String;\n+        25: getfield      #32                 // Field user:Ljava/lang/String;\n         28: aload_0\n-        29: getfield      #9                  // Field timeout:Ljava/time/Duration;\n+        29: getfield      #35                 // Field timeout:Ljava/time/Duration;\n         32: aload_0\n-        33: getfield      #10                 // Field maxRetries:Ljava/lang/Integer;\n+        33: getfield      #39                 // Field maxRetries:Ljava/lang/Integer;\n         36: aload_0\n-        37: getfield      #11                 // Field proxy:Ljava/net/Proxy;\n+        37: getfield      #42                 // Field proxy:Ljava/net/Proxy;\n         40: aload_0\n-        41: getfield      #12                 // Field logRequests:Ljava/lang/Boolean;\n+        41: getfield      #46                 // Field logRequests:Ljava/lang/Boolean;\n         44: aload_0\n-        45: getfield      #13                 // Field logResponses:Ljava/lang/Boolean;\n+        45: getfield      #50                 // Field logResponses:Ljava/lang/Boolean;\n         48: aload_0\n-        49: getfield      #14                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n-        52: invokespecial #16                 // Method dev/langchain4j/model/openai/OpenAiEmbeddingModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+        49: getfield      #53                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+        52: invokespecial #59                 // Method dev/langchain4j/model/openai/OpenAiEmbeddingModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n         55: areturn\n       LineNumberTable:\n         line 39: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      56     0  this   Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n \n   public java.lang.String toString();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: new           #17                 // class java/lang/StringBuilder\n+         0: new           #62                 // class java/lang/StringBuilder\n          3: dup\n-         4: invokespecial #18                 // Method java/lang/StringBuilder.\"<init>\":()V\n-         7: ldc           #19                 // String OpenAiEmbeddingModel.OpenAiEmbeddingModelBuilder(baseUrl=\n-         9: invokevirtual #20                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+         4: invokespecial #64                 // Method java/lang/StringBuilder.\"<init>\":()V\n+         7: ldc           #65                 // String OpenAiEmbeddingModel.OpenAiEmbeddingModelBuilder(baseUrl=\n+         9: invokevirtual #67                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         12: aload_0\n-        13: getfield      #4                  // Field baseUrl:Ljava/lang/String;\n-        16: invokevirtual #20                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        19: ldc           #21                 // String , apiKey=\n-        21: invokevirtual #20                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        13: getfield      #19                 // Field baseUrl:Ljava/lang/String;\n+        16: invokevirtual #67                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        19: ldc           #71                 // String , apiKey=\n+        21: invokevirtual #67                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         24: aload_0\n-        25: getfield      #5                  // Field apiKey:Ljava/lang/String;\n-        28: invokevirtual #20                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        31: ldc           #22                 // String , organizationId=\n-        33: invokevirtual #20                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        25: getfield      #22                 // Field apiKey:Ljava/lang/String;\n+        28: invokevirtual #67                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        31: ldc           #73                 // String , organizationId=\n+        33: invokevirtual #67                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         36: aload_0\n-        37: getfield      #6                  // Field organizationId:Ljava/lang/String;\n-        40: invokevirtual #20                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        43: ldc           #23                 // String , modelName=\n-        45: invokevirtual #20                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        37: getfield      #25                 // Field organizationId:Ljava/lang/String;\n+        40: invokevirtual #67                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        43: ldc           #75                 // String , modelName=\n+        45: invokevirtual #67                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         48: aload_0\n-        49: getfield      #2                  // Field modelName:Ljava/lang/String;\n-        52: invokevirtual #20                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        55: ldc           #24                 // String , dimensions=\n-        57: invokevirtual #20                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        49: getfield      #7                  // Field modelName:Ljava/lang/String;\n+        52: invokevirtual #67                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        55: ldc           #77                 // String , dimensions=\n+        57: invokevirtual #67                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         60: aload_0\n-        61: getfield      #7                  // Field dimensions:Ljava/lang/Integer;\n-        64: invokevirtual #25                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        67: ldc           #26                 // String , user=\n-        69: invokevirtual #20                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        61: getfield      #28                 // Field dimensions:Ljava/lang/Integer;\n+        64: invokevirtual #79                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        67: ldc           #82                 // String , user=\n+        69: invokevirtual #67                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         72: aload_0\n-        73: getfield      #8                  // Field user:Ljava/lang/String;\n-        76: invokevirtual #20                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        79: ldc           #27                 // String , timeout=\n-        81: invokevirtual #20                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        73: getfield      #32                 // Field user:Ljava/lang/String;\n+        76: invokevirtual #67                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        79: ldc           #84                 // String , timeout=\n+        81: invokevirtual #67                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         84: aload_0\n-        85: getfield      #9                  // Field timeout:Ljava/time/Duration;\n-        88: invokevirtual #25                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        91: ldc           #28                 // String , maxRetries=\n-        93: invokevirtual #20                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        85: getfield      #35                 // Field timeout:Ljava/time/Duration;\n+        88: invokevirtual #79                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        91: ldc           #86                 // String , maxRetries=\n+        93: invokevirtual #67                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         96: aload_0\n-        97: getfield      #10                 // Field maxRetries:Ljava/lang/Integer;\n-       100: invokevirtual #25                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       103: ldc           #29                 // String , proxy=\n-       105: invokevirtual #20                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        97: getfield      #39                 // Field maxRetries:Ljava/lang/Integer;\n+       100: invokevirtual #79                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       103: ldc           #88                 // String , proxy=\n+       105: invokevirtual #67                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        108: aload_0\n-       109: getfield      #11                 // Field proxy:Ljava/net/Proxy;\n-       112: invokevirtual #25                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       115: ldc           #30                 // String , logRequests=\n-       117: invokevirtual #20                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       109: getfield      #42                 // Field proxy:Ljava/net/Proxy;\n+       112: invokevirtual #79                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       115: ldc           #90                 // String , logRequests=\n+       117: invokevirtual #67                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        120: aload_0\n-       121: getfield      #12                 // Field logRequests:Ljava/lang/Boolean;\n-       124: invokevirtual #25                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       127: ldc           #31                 // String , logResponses=\n-       129: invokevirtual #20                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       121: getfield      #46                 // Field logRequests:Ljava/lang/Boolean;\n+       124: invokevirtual #79                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       127: ldc           #92                 // String , logResponses=\n+       129: invokevirtual #67                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        132: aload_0\n-       133: getfield      #13                 // Field logResponses:Ljava/lang/Boolean;\n-       136: invokevirtual #25                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       139: ldc           #32                 // String , tokenizer=\n-       141: invokevirtual #20                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       133: getfield      #50                 // Field logResponses:Ljava/lang/Boolean;\n+       136: invokevirtual #79                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       139: ldc           #94                 // String , tokenizer=\n+       141: invokevirtual #67                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        144: aload_0\n-       145: getfield      #14                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n-       148: invokevirtual #25                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       151: ldc           #33                 // String )\n-       153: invokevirtual #20                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-       156: invokevirtual #34                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+       145: getfield      #53                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+       148: invokevirtual #79                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       151: ldc           #96                 // String )\n+       153: invokevirtual #67                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       156: invokevirtual #98                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n        159: areturn\n       LineNumberTable:\n         line 39: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     160     0  this   Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n }\n SourceFile: \"OpenAiEmbeddingModel.java\"\n InnerClasses:\n-  public static #61= #35 of #15;          // OpenAiEmbeddingModelBuilder=class dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder of class dev/langchain4j/model/openai/OpenAiEmbeddingModel\n+  public static #117= #8 of #57;          // OpenAiEmbeddingModelBuilder=class dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder of class dev/langchain4j/model/openai/OpenAiEmbeddingModel\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiEmbeddingModel.class", "source2": "dev/langchain4j/model/openai/OpenAiEmbeddingModel.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,378 +1,373 @@\n-  SHA-256 checksum 3cb83d1b45ae9843f9a386e87d5f76bb356cde32660c45dc8ab969b85f8dd40e\n+  SHA-256 checksum 11c2be08baf66f61d554c93f60eebfd7fd01df29b8c5777ae13248a63ed21337\n   Compiled from \"OpenAiEmbeddingModel.java\"\n public class dev.langchain4j.model.openai.OpenAiEmbeddingModel implements dev.langchain4j.model.embedding.EmbeddingModel,dev.langchain4j.model.embedding.TokenCountEstimator\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #74                         // dev/langchain4j/model/openai/OpenAiEmbeddingModel\n-  super_class: #75                        // java/lang/Object\n+  this_class: #84                         // dev/langchain4j/model/openai/OpenAiEmbeddingModel\n+  super_class: #6                         // java/lang/Object\n   interfaces: 2, fields: 6, methods: 9, attributes: 3\n Constant pool:\n-    #1 = Class              #152          // dev/langchain4j/model/openai/OpenAiModelName\n-    #2 = Class              #153          // dev/langchain4j/model/openai/InternalOpenAiHelper\n-    #3 = Methodref          #75.#154      // java/lang/Object.\"<init>\":()V\n-    #4 = String             #155          // https://api.openai.com/v1\n-    #5 = Methodref          #156.#157     // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-    #6 = Class              #158          // java/lang/String\n-    #7 = String             #159          // demo\n-    #8 = Methodref          #6.#160       // java/lang/String.equals:(Ljava/lang/Object;)Z\n-    #9 = String             #161          // http://langchain4j.dev/demo/openai/v1\n-   #10 = Long               60l\n-   #12 = Methodref          #13.#162      // java/time/Duration.ofSeconds:(J)Ljava/time/Duration;\n-   #13 = Class              #163          // java/time/Duration\n-   #14 = Methodref          #164.#165     // dev/ai4j/openai4j/OpenAiClient.builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #15 = Methodref          #166.#167     // dev/ai4j/openai4j/OpenAiClient$Builder.openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #16 = Methodref          #166.#168     // dev/ai4j/openai4j/OpenAiClient$Builder.baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #17 = Methodref          #166.#169     // dev/ai4j/openai4j/OpenAiClient$Builder.organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #18 = Methodref          #166.#170     // dev/ai4j/openai4j/OpenAiClient$Builder.callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #19 = Methodref          #166.#171     // dev/ai4j/openai4j/OpenAiClient$Builder.connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #20 = Methodref          #166.#172     // dev/ai4j/openai4j/OpenAiClient$Builder.readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #21 = Methodref          #166.#173     // dev/ai4j/openai4j/OpenAiClient$Builder.writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #22 = Methodref          #166.#174     // dev/ai4j/openai4j/OpenAiClient$Builder.proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #23 = Methodref          #166.#175     // dev/ai4j/openai4j/OpenAiClient$Builder.logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #24 = Methodref          #166.#176     // dev/ai4j/openai4j/OpenAiClient$Builder.logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #25 = Methodref          #166.#177     // dev/ai4j/openai4j/OpenAiClient$Builder.build:()Ldev/ai4j/openai4j/OpenAiClient;\n-   #26 = Fieldref           #74.#178      // dev/langchain4j/model/openai/OpenAiEmbeddingModel.client:Ldev/ai4j/openai4j/OpenAiClient;\n-   #27 = String             #179          // text-embedding-ada-002\n-   #28 = Fieldref           #74.#180      // dev/langchain4j/model/openai/OpenAiEmbeddingModel.modelName:Ljava/lang/String;\n-   #29 = Fieldref           #74.#181      // dev/langchain4j/model/openai/OpenAiEmbeddingModel.dimensions:Ljava/lang/Integer;\n-   #30 = Fieldref           #74.#182      // dev/langchain4j/model/openai/OpenAiEmbeddingModel.user:Ljava/lang/String;\n-   #31 = Methodref          #32.#183      // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #32 = Class              #184          // java/lang/Integer\n-   #33 = Fieldref           #74.#185      // dev/langchain4j/model/openai/OpenAiEmbeddingModel.maxRetries:Ljava/lang/Integer;\n-   #34 = InvokeDynamic      #0:#191       // #0:get:(Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;)Ljava/util/function/Supplier;\n-   #35 = Methodref          #156.#192     // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-   #36 = Class              #193          // dev/langchain4j/model/Tokenizer\n-   #37 = Fieldref           #74.#194      // dev/langchain4j/model/openai/OpenAiEmbeddingModel.tokenizer:Ldev/langchain4j/model/Tokenizer;\n-   #38 = InterfaceMethodref #43.#195      // java/util/List.stream:()Ljava/util/stream/Stream;\n-   #39 = InvokeDynamic      #1:#199       // #1:apply:()Ljava/util/function/Function;\n-   #40 = InterfaceMethodref #200.#201     // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-   #41 = Methodref          #202.#203     // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-   #42 = InterfaceMethodref #200.#204     // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-   #43 = Class              #205          // java/util/List\n-   #44 = Methodref          #74.#206      // dev/langchain4j/model/openai/OpenAiEmbeddingModel.embedTexts:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-   #45 = Methodref          #207.#208     // dev/ai4j/openai4j/embedding/EmbeddingRequest.builder:()Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n-   #46 = Methodref          #209.#210     // dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder.input:(Ljava/util/List;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n-   #47 = Methodref          #209.#211     // dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder.model:(Ljava/lang/String;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n-   #48 = Methodref          #209.#212     // dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder.dimensions:(Ljava/lang/Integer;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n-   #49 = Methodref          #209.#213     // dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder.user:(Ljava/lang/String;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n-   #50 = Methodref          #209.#214     // dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder.build:()Ldev/ai4j/openai4j/embedding/EmbeddingRequest;\n-   #51 = InvokeDynamic      #2:#217       // #2:call:(Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ljava/util/concurrent/Callable;\n-   #52 = Methodref          #32.#218      // java/lang/Integer.intValue:()I\n-   #53 = Methodref          #219.#220     // dev/langchain4j/internal/RetryUtils.withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n-   #54 = Class              #221          // dev/ai4j/openai4j/embedding/EmbeddingResponse\n-   #55 = Methodref          #54.#222      // dev/ai4j/openai4j/embedding/EmbeddingResponse.data:()Ljava/util/List;\n-   #56 = InvokeDynamic      #3:#199       // #3:apply:()Ljava/util/function/Function;\n-   #57 = Methodref          #54.#225      // dev/ai4j/openai4j/embedding/EmbeddingResponse.usage:()Ldev/ai4j/openai4j/shared/Usage;\n-   #58 = Methodref          #2.#226       // dev/langchain4j/model/openai/InternalOpenAiHelper.tokenUsageFrom:(Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n-   #59 = Methodref          #227.#228     // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n-   #60 = InterfaceMethodref #36.#229      // dev/langchain4j/model/Tokenizer.estimateTokenCountInText:(Ljava/lang/String;)I\n-   #61 = Methodref          #74.#230      // dev/langchain4j/model/openai/OpenAiEmbeddingModel.builder:()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n-   #62 = Methodref          #67.#231      // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n-   #63 = Methodref          #67.#232      // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.build:()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;\n-   #64 = Class              #233          // dev/langchain4j/model/openai/spi/OpenAiEmbeddingModelBuilderFactory\n-   #65 = InvokeDynamic      #4:#236       // #4:get:()Ljava/util/function/Supplier;\n-   #66 = Methodref          #237.#238     // dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-   #67 = Class              #239          // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder\n-   #68 = Methodref          #240.#241     // dev/ai4j/openai4j/embedding/Embedding.embedding:()Ljava/util/List;\n-   #69 = Methodref          #242.#243     // dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n-   #70 = Methodref          #164.#244     // dev/ai4j/openai4j/OpenAiClient.embedding:(Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ldev/ai4j/openai4j/SyncOrAsync;\n-   #71 = InterfaceMethodref #245.#246     // dev/ai4j/openai4j/SyncOrAsync.execute:()Ljava/lang/Object;\n-   #72 = Class              #247          // dev/langchain4j/model/openai/OpenAiTokenizer\n-   #73 = Methodref          #72.#248      // dev/langchain4j/model/openai/OpenAiTokenizer.\"<init>\":(Ljava/lang/String;)V\n-   #74 = Class              #249          // dev/langchain4j/model/openai/OpenAiEmbeddingModel\n-   #75 = Class              #250          // java/lang/Object\n-   #76 = Class              #251          // dev/langchain4j/model/embedding/EmbeddingModel\n-   #77 = Class              #252          // dev/langchain4j/model/embedding/TokenCountEstimator\n-   #78 = Utf8               OpenAiEmbeddingModelBuilder\n-   #79 = Utf8               InnerClasses\n-   #80 = Utf8               client\n-   #81 = Utf8               Ldev/ai4j/openai4j/OpenAiClient;\n-   #82 = Utf8               modelName\n-   #83 = Utf8               Ljava/lang/String;\n-   #84 = Utf8               dimensions\n-   #85 = Utf8               Ljava/lang/Integer;\n-   #86 = Utf8               user\n-   #87 = Utf8               maxRetries\n-   #88 = Utf8               tokenizer\n-   #89 = Utf8               Ldev/langchain4j/model/Tokenizer;\n-   #90 = Utf8               <init>\n-   #91 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n-   #92 = Utf8               Code\n-   #93 = Utf8               LineNumberTable\n-   #94 = Utf8               LocalVariableTable\n-   #95 = Utf8               this\n-   #96 = Utf8               Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;\n-   #97 = Utf8               baseUrl\n-   #98 = Utf8               apiKey\n-   #99 = Utf8               organizationId\n-  #100 = Utf8               timeout\n-  #101 = Utf8               Ljava/time/Duration;\n-  #102 = Utf8               proxy\n-  #103 = Utf8               Ljava/net/Proxy;\n-  #104 = Utf8               logRequests\n-  #105 = Utf8               Ljava/lang/Boolean;\n-  #106 = Utf8               logResponses\n-  #107 = Utf8               StackMapTable\n-  #108 = Class              #249          // dev/langchain4j/model/openai/OpenAiEmbeddingModel\n-  #109 = Class              #158          // java/lang/String\n-  #110 = Class              #184          // java/lang/Integer\n-  #111 = Class              #163          // java/time/Duration\n-  #112 = Class              #253          // java/net/Proxy\n-  #113 = Class              #254          // java/lang/Boolean\n-  #114 = Class              #193          // dev/langchain4j/model/Tokenizer\n-  #115 = Utf8               embedAll\n-  #116 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #117 = Utf8               textSegments\n-  #118 = Utf8               Ljava/util/List;\n-  #119 = Utf8               texts\n-  #120 = Utf8               LocalVariableTypeTable\n-  #121 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n-  #122 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n-  #123 = Utf8               Signature\n-  #124 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n-  #125 = Utf8               embedTexts\n-  #126 = Utf8               request\n-  #127 = Utf8               Ldev/ai4j/openai4j/embedding/EmbeddingRequest;\n-  #128 = Utf8               response\n-  #129 = Utf8               Ldev/ai4j/openai4j/embedding/EmbeddingResponse;\n-  #130 = Utf8               embeddings\n-  #131 = Utf8               Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;\n-  #132 = Utf8               (Ljava/util/List<Ljava/lang/String;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n-  #133 = Utf8               estimateTokenCount\n-  #134 = Utf8               (Ljava/lang/String;)I\n-  #135 = Utf8               text\n-  #136 = Utf8               withApiKey\n-  #137 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;\n-  #138 = Utf8               builder\n-  #139 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n-  #140 = Utf8               lambda$embedTexts$2\n-  #141 = Utf8               (Ldev/ai4j/openai4j/embedding/Embedding;)Ldev/langchain4j/data/embedding/Embedding;\n-  #142 = Utf8               openAiEmbedding\n-  #143 = Utf8               Ldev/ai4j/openai4j/embedding/Embedding;\n-  #144 = Utf8               lambda$embedTexts$1\n-  #145 = Utf8               (Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ldev/ai4j/openai4j/embedding/EmbeddingResponse;\n-  #146 = Utf8               Exceptions\n-  #147 = Class              #255          // java/lang/Exception\n-  #148 = Utf8               lambda$new$0\n-  #149 = Utf8               ()Ldev/langchain4j/model/Tokenizer;\n-  #150 = Utf8               SourceFile\n-  #151 = Utf8               OpenAiEmbeddingModel.java\n-  #152 = Utf8               dev/langchain4j/model/openai/OpenAiModelName\n-  #153 = Utf8               dev/langchain4j/model/openai/InternalOpenAiHelper\n-  #154 = NameAndType        #90:#256      // \"<init>\":()V\n-  #155 = Utf8               https://api.openai.com/v1\n-  #156 = Class              #257          // dev/langchain4j/internal/Utils\n-  #157 = NameAndType        #258:#259     // getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #158 = Utf8               java/lang/String\n-  #159 = Utf8               demo\n-  #160 = NameAndType        #260:#261     // equals:(Ljava/lang/Object;)Z\n-  #161 = Utf8               http://langchain4j.dev/demo/openai/v1\n-  #162 = NameAndType        #262:#263     // ofSeconds:(J)Ljava/time/Duration;\n-  #163 = Utf8               java/time/Duration\n-  #164 = Class              #264          // dev/ai4j/openai4j/OpenAiClient\n-  #165 = NameAndType        #138:#266     // builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #166 = Class              #267          // dev/ai4j/openai4j/OpenAiClient$Builder\n-  #167 = NameAndType        #268:#269     // openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #168 = NameAndType        #97:#269      // baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #169 = NameAndType        #99:#269      // organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #170 = NameAndType        #270:#271     // callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #171 = NameAndType        #272:#271     // connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #172 = NameAndType        #273:#271     // readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #173 = NameAndType        #274:#271     // writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #174 = NameAndType        #102:#275     // proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #175 = NameAndType        #104:#276     // logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #176 = NameAndType        #106:#276     // logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #177 = NameAndType        #277:#278     // build:()Ldev/ai4j/openai4j/OpenAiClient;\n-  #178 = NameAndType        #80:#81       // client:Ldev/ai4j/openai4j/OpenAiClient;\n-  #179 = Utf8               text-embedding-ada-002\n-  #180 = NameAndType        #82:#83       // modelName:Ljava/lang/String;\n-  #181 = NameAndType        #84:#85       // dimensions:Ljava/lang/Integer;\n-  #182 = NameAndType        #86:#83       // user:Ljava/lang/String;\n-  #183 = NameAndType        #279:#280     // valueOf:(I)Ljava/lang/Integer;\n-  #184 = Utf8               java/lang/Integer\n-  #185 = NameAndType        #87:#85       // maxRetries:Ljava/lang/Integer;\n-  #186 = Utf8               BootstrapMethods\n-  #187 = MethodHandle       6:#281        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #188 = MethodType         #282          //  ()Ljava/lang/Object;\n-  #189 = MethodHandle       7:#283        // REF_invokeSpecial dev/langchain4j/model/openai/OpenAiEmbeddingModel.lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n-  #190 = MethodType         #149          //  ()Ldev/langchain4j/model/Tokenizer;\n-  #191 = NameAndType        #284:#285     // get:(Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;)Ljava/util/function/Supplier;\n-  #192 = NameAndType        #258:#286     // getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #193 = Utf8               dev/langchain4j/model/Tokenizer\n-  #194 = NameAndType        #88:#89       // tokenizer:Ldev/langchain4j/model/Tokenizer;\n-  #195 = NameAndType        #287:#288     // stream:()Ljava/util/stream/Stream;\n-  #196 = MethodType         #289          //  (Ljava/lang/Object;)Ljava/lang/Object;\n-  #197 = MethodHandle       5:#290        // REF_invokeVirtual dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-  #198 = MethodType         #291          //  (Ldev/langchain4j/data/segment/TextSegment;)Ljava/lang/String;\n-  #199 = NameAndType        #292:#293     // apply:()Ljava/util/function/Function;\n-  #200 = Class              #294          // java/util/stream/Stream\n-  #201 = NameAndType        #295:#296     // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-  #202 = Class              #297          // java/util/stream/Collectors\n-  #203 = NameAndType        #298:#299     // toList:()Ljava/util/stream/Collector;\n-  #204 = NameAndType        #300:#301     // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-  #205 = Utf8               java/util/List\n-  #206 = NameAndType        #125:#116     // embedTexts:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #207 = Class              #302          // dev/ai4j/openai4j/embedding/EmbeddingRequest\n-  #208 = NameAndType        #138:#303     // builder:()Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n-  #209 = Class              #304          // dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder\n-  #210 = NameAndType        #305:#306     // input:(Ljava/util/List;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n-  #211 = NameAndType        #307:#308     // model:(Ljava/lang/String;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n-  #212 = NameAndType        #84:#309      // dimensions:(Ljava/lang/Integer;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n-  #213 = NameAndType        #86:#308      // user:(Ljava/lang/String;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n-  #214 = NameAndType        #277:#310     // build:()Ldev/ai4j/openai4j/embedding/EmbeddingRequest;\n-  #215 = MethodHandle       7:#311        // REF_invokeSpecial dev/langchain4j/model/openai/OpenAiEmbeddingModel.lambda$embedTexts$1:(Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ldev/ai4j/openai4j/embedding/EmbeddingResponse;\n-  #216 = MethodType         #312          //  ()Ldev/ai4j/openai4j/embedding/EmbeddingResponse;\n-  #217 = NameAndType        #313:#314     // call:(Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ljava/util/concurrent/Callable;\n-  #218 = NameAndType        #315:#316     // intValue:()I\n-  #219 = Class              #317          // dev/langchain4j/internal/RetryUtils\n-  #220 = NameAndType        #318:#319     // withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n-  #221 = Utf8               dev/ai4j/openai4j/embedding/EmbeddingResponse\n-  #222 = NameAndType        #320:#321     // data:()Ljava/util/List;\n-  #223 = MethodHandle       6:#322        // REF_invokeStatic dev/langchain4j/model/openai/OpenAiEmbeddingModel.lambda$embedTexts$2:(Ldev/ai4j/openai4j/embedding/Embedding;)Ldev/langchain4j/data/embedding/Embedding;\n-  #224 = MethodType         #141          //  (Ldev/ai4j/openai4j/embedding/Embedding;)Ldev/langchain4j/data/embedding/Embedding;\n-  #225 = NameAndType        #323:#324     // usage:()Ldev/ai4j/openai4j/shared/Usage;\n-  #226 = NameAndType        #325:#326     // tokenUsageFrom:(Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n-  #227 = Class              #327          // dev/langchain4j/model/output/Response\n-  #228 = NameAndType        #328:#329     // from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n-  #229 = NameAndType        #330:#134     // estimateTokenCountInText:(Ljava/lang/String;)I\n-  #230 = NameAndType        #138:#139     // builder:()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n-  #231 = NameAndType        #98:#331      // apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n-  #232 = NameAndType        #277:#332     // build:()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;\n-  #233 = Utf8               dev/langchain4j/model/openai/spi/OpenAiEmbeddingModelBuilderFactory\n-  #234 = MethodHandle       8:#333        // REF_newInvokeSpecial dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.\"<init>\":()V\n-  #235 = MethodType         #139          //  ()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n-  #236 = NameAndType        #284:#334     // get:()Ljava/util/function/Supplier;\n-  #237 = Class              #335          // dev/langchain4j/spi/ServiceHelper\n-  #238 = NameAndType        #336:#337     // loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #239 = Utf8               dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder\n-  #240 = Class              #338          // dev/ai4j/openai4j/embedding/Embedding\n-  #241 = NameAndType        #339:#321     // embedding:()Ljava/util/List;\n-  #242 = Class              #340          // dev/langchain4j/data/embedding/Embedding\n-  #243 = NameAndType        #328:#341     // from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n-  #244 = NameAndType        #339:#342     // embedding:(Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ldev/ai4j/openai4j/SyncOrAsync;\n-  #245 = Class              #343          // dev/ai4j/openai4j/SyncOrAsync\n-  #246 = NameAndType        #344:#282     // execute:()Ljava/lang/Object;\n-  #247 = Utf8               dev/langchain4j/model/openai/OpenAiTokenizer\n-  #248 = NameAndType        #90:#345      // \"<init>\":(Ljava/lang/String;)V\n-  #249 = Utf8               dev/langchain4j/model/openai/OpenAiEmbeddingModel\n-  #250 = Utf8               java/lang/Object\n-  #251 = Utf8               dev/langchain4j/model/embedding/EmbeddingModel\n-  #252 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimator\n-  #253 = Utf8               java/net/Proxy\n-  #254 = Utf8               java/lang/Boolean\n-  #255 = Utf8               java/lang/Exception\n-  #256 = Utf8               ()V\n-  #257 = Utf8               dev/langchain4j/internal/Utils\n-  #258 = Utf8               getOrDefault\n-  #259 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #260 = Utf8               equals\n-  #261 = Utf8               (Ljava/lang/Object;)Z\n-  #262 = Utf8               ofSeconds\n-  #263 = Utf8               (J)Ljava/time/Duration;\n-  #264 = Utf8               dev/ai4j/openai4j/OpenAiClient\n-  #265 = Utf8               Builder\n-  #266 = Utf8               ()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #267 = Utf8               dev/ai4j/openai4j/OpenAiClient$Builder\n-  #268 = Utf8               openAiApiKey\n-  #269 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #270 = Utf8               callTimeout\n-  #271 = Utf8               (Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #272 = Utf8               connectTimeout\n-  #273 = Utf8               readTimeout\n-  #274 = Utf8               writeTimeout\n-  #275 = Utf8               (Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #276 = Utf8               (Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #277 = Utf8               build\n-  #278 = Utf8               ()Ldev/ai4j/openai4j/OpenAiClient;\n-  #279 = Utf8               valueOf\n-  #280 = Utf8               (I)Ljava/lang/Integer;\n-  #281 = Methodref          #346.#347     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #282 = Utf8               ()Ljava/lang/Object;\n-  #283 = Methodref          #74.#348      // dev/langchain4j/model/openai/OpenAiEmbeddingModel.lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n-  #284 = Utf8               get\n-  #285 = Utf8               (Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;)Ljava/util/function/Supplier;\n-  #286 = Utf8               (Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #287 = Utf8               stream\n-  #288 = Utf8               ()Ljava/util/stream/Stream;\n-  #289 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #290 = Methodref          #349.#350     // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-  #291 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ljava/lang/String;\n-  #292 = Utf8               apply\n-  #293 = Utf8               ()Ljava/util/function/Function;\n-  #294 = Utf8               java/util/stream/Stream\n-  #295 = Utf8               map\n-  #296 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-  #297 = Utf8               java/util/stream/Collectors\n-  #298 = Utf8               toList\n-  #299 = Utf8               ()Ljava/util/stream/Collector;\n-  #300 = Utf8               collect\n-  #301 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n-  #302 = Utf8               dev/ai4j/openai4j/embedding/EmbeddingRequest\n-  #303 = Utf8               ()Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n-  #304 = Utf8               dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder\n-  #305 = Utf8               input\n-  #306 = Utf8               (Ljava/util/List;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n-  #307 = Utf8               model\n-  #308 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n-  #309 = Utf8               (Ljava/lang/Integer;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n-  #310 = Utf8               ()Ldev/ai4j/openai4j/embedding/EmbeddingRequest;\n-  #311 = Methodref          #74.#351      // dev/langchain4j/model/openai/OpenAiEmbeddingModel.lambda$embedTexts$1:(Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ldev/ai4j/openai4j/embedding/EmbeddingResponse;\n-  #312 = Utf8               ()Ldev/ai4j/openai4j/embedding/EmbeddingResponse;\n-  #313 = Utf8               call\n-  #314 = Utf8               (Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ljava/util/concurrent/Callable;\n-  #315 = Utf8               intValue\n-  #316 = Utf8               ()I\n-  #317 = Utf8               dev/langchain4j/internal/RetryUtils\n-  #318 = Utf8               withRetry\n-  #319 = Utf8               (Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n-  #320 = Utf8               data\n-  #321 = Utf8               ()Ljava/util/List;\n-  #322 = Methodref          #74.#352      // dev/langchain4j/model/openai/OpenAiEmbeddingModel.lambda$embedTexts$2:(Ldev/ai4j/openai4j/embedding/Embedding;)Ldev/langchain4j/data/embedding/Embedding;\n-  #323 = Utf8               usage\n-  #324 = Utf8               ()Ldev/ai4j/openai4j/shared/Usage;\n-  #325 = Utf8               tokenUsageFrom\n-  #326 = Utf8               (Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n-  #327 = Utf8               dev/langchain4j/model/output/Response\n-  #328 = Utf8               from\n-  #329 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n-  #330 = Utf8               estimateTokenCountInText\n-  #331 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n-  #332 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;\n-  #333 = Methodref          #67.#154      // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.\"<init>\":()V\n-  #334 = Utf8               ()Ljava/util/function/Supplier;\n-  #335 = Utf8               dev/langchain4j/spi/ServiceHelper\n-  #336 = Utf8               loadFactoryService\n-  #337 = Utf8               (Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #338 = Utf8               dev/ai4j/openai4j/embedding/Embedding\n-  #339 = Utf8               embedding\n-  #340 = Utf8               dev/langchain4j/data/embedding/Embedding\n-  #341 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n-  #342 = Utf8               (Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ldev/ai4j/openai4j/SyncOrAsync;\n-  #343 = Utf8               dev/ai4j/openai4j/SyncOrAsync\n-  #344 = Utf8               execute\n-  #345 = Utf8               (Ljava/lang/String;)V\n-  #346 = Class              #353          // java/lang/invoke/LambdaMetafactory\n-  #347 = NameAndType        #354:#357     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #348 = NameAndType        #148:#149     // lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n-  #349 = Class              #358          // dev/langchain4j/data/segment/TextSegment\n-  #350 = NameAndType        #135:#359     // text:()Ljava/lang/String;\n-  #351 = NameAndType        #144:#145     // lambda$embedTexts$1:(Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ldev/ai4j/openai4j/embedding/EmbeddingResponse;\n-  #352 = NameAndType        #140:#141     // lambda$embedTexts$2:(Ldev/ai4j/openai4j/embedding/Embedding;)Ldev/langchain4j/data/embedding/Embedding;\n-  #353 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #354 = Utf8               metafactory\n-  #355 = Class              #361          // java/lang/invoke/MethodHandles$Lookup\n-  #356 = Utf8               Lookup\n-  #357 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #358 = Utf8               dev/langchain4j/data/segment/TextSegment\n-  #359 = Utf8               ()Ljava/lang/String;\n-  #360 = Class              #362          // java/lang/invoke/MethodHandles\n-  #361 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #362 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Class              #2            // dev/langchain4j/model/openai/OpenAiModelName\n+    #2 = Utf8               dev/langchain4j/model/openai/OpenAiModelName\n+    #3 = Class              #4            // dev/langchain4j/model/openai/InternalOpenAiHelper\n+    #4 = Utf8               dev/langchain4j/model/openai/InternalOpenAiHelper\n+    #5 = Methodref          #6.#7         // java/lang/Object.\"<init>\":()V\n+    #6 = Class              #8            // java/lang/Object\n+    #7 = NameAndType        #9:#10        // \"<init>\":()V\n+    #8 = Utf8               java/lang/Object\n+    #9 = Utf8               <init>\n+   #10 = Utf8               ()V\n+   #11 = String             #12           // https://api.openai.com/v1\n+   #12 = Utf8               https://api.openai.com/v1\n+   #13 = Methodref          #14.#15       // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #14 = Class              #16           // dev/langchain4j/internal/Utils\n+   #15 = NameAndType        #17:#18       // getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #16 = Utf8               dev/langchain4j/internal/Utils\n+   #17 = Utf8               getOrDefault\n+   #18 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #19 = Class              #20           // java/lang/String\n+   #20 = Utf8               java/lang/String\n+   #21 = String             #22           // demo\n+   #22 = Utf8               demo\n+   #23 = Methodref          #19.#24       // java/lang/String.equals:(Ljava/lang/Object;)Z\n+   #24 = NameAndType        #25:#26       // equals:(Ljava/lang/Object;)Z\n+   #25 = Utf8               equals\n+   #26 = Utf8               (Ljava/lang/Object;)Z\n+   #27 = String             #28           // http://langchain4j.dev/demo/openai/v1\n+   #28 = Utf8               http://langchain4j.dev/demo/openai/v1\n+   #29 = Long               60l\n+   #31 = Methodref          #32.#33       // java/time/Duration.ofSeconds:(J)Ljava/time/Duration;\n+   #32 = Class              #34           // java/time/Duration\n+   #33 = NameAndType        #35:#36       // ofSeconds:(J)Ljava/time/Duration;\n+   #34 = Utf8               java/time/Duration\n+   #35 = Utf8               ofSeconds\n+   #36 = Utf8               (J)Ljava/time/Duration;\n+   #37 = Methodref          #38.#39       // dev/ai4j/openai4j/OpenAiClient.builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #38 = Class              #40           // dev/ai4j/openai4j/OpenAiClient\n+   #39 = NameAndType        #41:#42       // builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #40 = Utf8               dev/ai4j/openai4j/OpenAiClient\n+   #41 = Utf8               builder\n+   #42 = Utf8               ()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #43 = Methodref          #44.#45       // dev/ai4j/openai4j/OpenAiClient$Builder.openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #44 = Class              #46           // dev/ai4j/openai4j/OpenAiClient$Builder\n+   #45 = NameAndType        #47:#48       // openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #46 = Utf8               dev/ai4j/openai4j/OpenAiClient$Builder\n+   #47 = Utf8               openAiApiKey\n+   #48 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #49 = Methodref          #44.#50       // dev/ai4j/openai4j/OpenAiClient$Builder.baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #50 = NameAndType        #51:#48       // baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #51 = Utf8               baseUrl\n+   #52 = Methodref          #44.#53       // dev/ai4j/openai4j/OpenAiClient$Builder.organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #53 = NameAndType        #54:#48       // organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #54 = Utf8               organizationId\n+   #55 = Methodref          #44.#56       // dev/ai4j/openai4j/OpenAiClient$Builder.callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #56 = NameAndType        #57:#58       // callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #57 = Utf8               callTimeout\n+   #58 = Utf8               (Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #59 = Methodref          #44.#60       // dev/ai4j/openai4j/OpenAiClient$Builder.connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #60 = NameAndType        #61:#58       // connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #61 = Utf8               connectTimeout\n+   #62 = Methodref          #44.#63       // dev/ai4j/openai4j/OpenAiClient$Builder.readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #63 = NameAndType        #64:#58       // readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #64 = Utf8               readTimeout\n+   #65 = Methodref          #44.#66       // dev/ai4j/openai4j/OpenAiClient$Builder.writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #66 = NameAndType        #67:#58       // writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #67 = Utf8               writeTimeout\n+   #68 = Methodref          #44.#69       // dev/ai4j/openai4j/OpenAiClient$Builder.proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #69 = NameAndType        #70:#71       // proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #70 = Utf8               proxy\n+   #71 = Utf8               (Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #72 = Methodref          #44.#73       // dev/ai4j/openai4j/OpenAiClient$Builder.logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #73 = NameAndType        #74:#75       // logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #74 = Utf8               logRequests\n+   #75 = Utf8               (Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #76 = Methodref          #44.#77       // dev/ai4j/openai4j/OpenAiClient$Builder.logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #77 = NameAndType        #78:#75       // logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #78 = Utf8               logResponses\n+   #79 = Methodref          #44.#80       // dev/ai4j/openai4j/OpenAiClient$Builder.build:()Ldev/ai4j/openai4j/OpenAiClient;\n+   #80 = NameAndType        #81:#82       // build:()Ldev/ai4j/openai4j/OpenAiClient;\n+   #81 = Utf8               build\n+   #82 = Utf8               ()Ldev/ai4j/openai4j/OpenAiClient;\n+   #83 = Fieldref           #84.#85       // dev/langchain4j/model/openai/OpenAiEmbeddingModel.client:Ldev/ai4j/openai4j/OpenAiClient;\n+   #84 = Class              #86           // dev/langchain4j/model/openai/OpenAiEmbeddingModel\n+   #85 = NameAndType        #87:#88       // client:Ldev/ai4j/openai4j/OpenAiClient;\n+   #86 = Utf8               dev/langchain4j/model/openai/OpenAiEmbeddingModel\n+   #87 = Utf8               client\n+   #88 = Utf8               Ldev/ai4j/openai4j/OpenAiClient;\n+   #89 = String             #90           // text-embedding-ada-002\n+   #90 = Utf8               text-embedding-ada-002\n+   #91 = Fieldref           #84.#92       // dev/langchain4j/model/openai/OpenAiEmbeddingModel.modelName:Ljava/lang/String;\n+   #92 = NameAndType        #93:#94       // modelName:Ljava/lang/String;\n+   #93 = Utf8               modelName\n+   #94 = Utf8               Ljava/lang/String;\n+   #95 = Fieldref           #84.#96       // dev/langchain4j/model/openai/OpenAiEmbeddingModel.dimensions:Ljava/lang/Integer;\n+   #96 = NameAndType        #97:#98       // dimensions:Ljava/lang/Integer;\n+   #97 = Utf8               dimensions\n+   #98 = Utf8               Ljava/lang/Integer;\n+   #99 = Fieldref           #84.#100      // dev/langchain4j/model/openai/OpenAiEmbeddingModel.user:Ljava/lang/String;\n+  #100 = NameAndType        #101:#94      // user:Ljava/lang/String;\n+  #101 = Utf8               user\n+  #102 = Methodref          #103.#104     // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+  #103 = Class              #105          // java/lang/Integer\n+  #104 = NameAndType        #106:#107     // valueOf:(I)Ljava/lang/Integer;\n+  #105 = Utf8               java/lang/Integer\n+  #106 = Utf8               valueOf\n+  #107 = Utf8               (I)Ljava/lang/Integer;\n+  #108 = Fieldref           #84.#109      // dev/langchain4j/model/openai/OpenAiEmbeddingModel.maxRetries:Ljava/lang/Integer;\n+  #109 = NameAndType        #110:#98      // maxRetries:Ljava/lang/Integer;\n+  #110 = Utf8               maxRetries\n+  #111 = InvokeDynamic      #0:#112       // #0:get:(Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;)Ljava/util/function/Supplier;\n+  #112 = NameAndType        #113:#114     // get:(Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;)Ljava/util/function/Supplier;\n+  #113 = Utf8               get\n+  #114 = Utf8               (Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;)Ljava/util/function/Supplier;\n+  #115 = Methodref          #14.#116      // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #116 = NameAndType        #17:#117      // getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #117 = Utf8               (Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #118 = Class              #119          // dev/langchain4j/model/Tokenizer\n+  #119 = Utf8               dev/langchain4j/model/Tokenizer\n+  #120 = Fieldref           #84.#121      // dev/langchain4j/model/openai/OpenAiEmbeddingModel.tokenizer:Ldev/langchain4j/model/Tokenizer;\n+  #121 = NameAndType        #122:#123     // tokenizer:Ldev/langchain4j/model/Tokenizer;\n+  #122 = Utf8               tokenizer\n+  #123 = Utf8               Ldev/langchain4j/model/Tokenizer;\n+  #124 = InterfaceMethodref #125.#126     // java/util/List.stream:()Ljava/util/stream/Stream;\n+  #125 = Class              #127          // java/util/List\n+  #126 = NameAndType        #128:#129     // stream:()Ljava/util/stream/Stream;\n+  #127 = Utf8               java/util/List\n+  #128 = Utf8               stream\n+  #129 = Utf8               ()Ljava/util/stream/Stream;\n+  #130 = InvokeDynamic      #1:#131       // #1:apply:()Ljava/util/function/Function;\n+  #131 = NameAndType        #132:#133     // apply:()Ljava/util/function/Function;\n+  #132 = Utf8               apply\n+  #133 = Utf8               ()Ljava/util/function/Function;\n+  #134 = InterfaceMethodref #135.#136     // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+  #135 = Class              #137          // java/util/stream/Stream\n+  #136 = NameAndType        #138:#139     // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+  #137 = Utf8               java/util/stream/Stream\n+  #138 = Utf8               map\n+  #139 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+  #140 = Methodref          #141.#142     // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+  #141 = Class              #143          // java/util/stream/Collectors\n+  #142 = NameAndType        #144:#145     // toList:()Ljava/util/stream/Collector;\n+  #143 = Utf8               java/util/stream/Collectors\n+  #144 = Utf8               toList\n+  #145 = Utf8               ()Ljava/util/stream/Collector;\n+  #146 = InterfaceMethodref #135.#147     // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #147 = NameAndType        #148:#149     // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #148 = Utf8               collect\n+  #149 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #150 = Methodref          #84.#151      // dev/langchain4j/model/openai/OpenAiEmbeddingModel.embedTexts:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #151 = NameAndType        #152:#153     // embedTexts:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #152 = Utf8               embedTexts\n+  #153 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #154 = Methodref          #155.#156     // dev/ai4j/openai4j/embedding/EmbeddingRequest.builder:()Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n+  #155 = Class              #157          // dev/ai4j/openai4j/embedding/EmbeddingRequest\n+  #156 = NameAndType        #41:#158      // builder:()Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n+  #157 = Utf8               dev/ai4j/openai4j/embedding/EmbeddingRequest\n+  #158 = Utf8               ()Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n+  #159 = Methodref          #160.#161     // dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder.input:(Ljava/util/List;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n+  #160 = Class              #162          // dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder\n+  #161 = NameAndType        #163:#164     // input:(Ljava/util/List;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n+  #162 = Utf8               dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder\n+  #163 = Utf8               input\n+  #164 = Utf8               (Ljava/util/List;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n+  #165 = Methodref          #160.#166     // dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder.model:(Ljava/lang/String;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n+  #166 = NameAndType        #167:#168     // model:(Ljava/lang/String;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n+  #167 = Utf8               model\n+  #168 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n+  #169 = Methodref          #160.#170     // dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder.dimensions:(Ljava/lang/Integer;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n+  #170 = NameAndType        #97:#171      // dimensions:(Ljava/lang/Integer;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n+  #171 = Utf8               (Ljava/lang/Integer;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n+  #172 = Methodref          #160.#173     // dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder.user:(Ljava/lang/String;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n+  #173 = NameAndType        #101:#168     // user:(Ljava/lang/String;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n+  #174 = Methodref          #160.#175     // dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder.build:()Ldev/ai4j/openai4j/embedding/EmbeddingRequest;\n+  #175 = NameAndType        #81:#176      // build:()Ldev/ai4j/openai4j/embedding/EmbeddingRequest;\n+  #176 = Utf8               ()Ldev/ai4j/openai4j/embedding/EmbeddingRequest;\n+  #177 = InvokeDynamic      #2:#178       // #2:call:(Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ljava/util/concurrent/Callable;\n+  #178 = NameAndType        #179:#180     // call:(Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ljava/util/concurrent/Callable;\n+  #179 = Utf8               call\n+  #180 = Utf8               (Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ljava/util/concurrent/Callable;\n+  #181 = Methodref          #103.#182     // java/lang/Integer.intValue:()I\n+  #182 = NameAndType        #183:#184     // intValue:()I\n+  #183 = Utf8               intValue\n+  #184 = Utf8               ()I\n+  #185 = Methodref          #186.#187     // dev/langchain4j/internal/RetryUtils.withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n+  #186 = Class              #188          // dev/langchain4j/internal/RetryUtils\n+  #187 = NameAndType        #189:#190     // withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n+  #188 = Utf8               dev/langchain4j/internal/RetryUtils\n+  #189 = Utf8               withRetry\n+  #190 = Utf8               (Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n+  #191 = Class              #192          // dev/ai4j/openai4j/embedding/EmbeddingResponse\n+  #192 = Utf8               dev/ai4j/openai4j/embedding/EmbeddingResponse\n+  #193 = Methodref          #191.#194     // dev/ai4j/openai4j/embedding/EmbeddingResponse.data:()Ljava/util/List;\n+  #194 = NameAndType        #195:#196     // data:()Ljava/util/List;\n+  #195 = Utf8               data\n+  #196 = Utf8               ()Ljava/util/List;\n+  #197 = InvokeDynamic      #3:#131       // #3:apply:()Ljava/util/function/Function;\n+  #198 = Methodref          #191.#199     // dev/ai4j/openai4j/embedding/EmbeddingResponse.usage:()Ldev/ai4j/openai4j/shared/Usage;\n+  #199 = NameAndType        #200:#201     // usage:()Ldev/ai4j/openai4j/shared/Usage;\n+  #200 = Utf8               usage\n+  #201 = Utf8               ()Ldev/ai4j/openai4j/shared/Usage;\n+  #202 = Methodref          #3.#203       // dev/langchain4j/model/openai/InternalOpenAiHelper.tokenUsageFrom:(Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n+  #203 = NameAndType        #204:#205     // tokenUsageFrom:(Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n+  #204 = Utf8               tokenUsageFrom\n+  #205 = Utf8               (Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n+  #206 = Methodref          #207.#208     // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n+  #207 = Class              #209          // dev/langchain4j/model/output/Response\n+  #208 = NameAndType        #210:#211     // from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n+  #209 = Utf8               dev/langchain4j/model/output/Response\n+  #210 = Utf8               from\n+  #211 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n+  #212 = InterfaceMethodref #118.#213     // dev/langchain4j/model/Tokenizer.estimateTokenCountInText:(Ljava/lang/String;)I\n+  #213 = NameAndType        #214:#215     // estimateTokenCountInText:(Ljava/lang/String;)I\n+  #214 = Utf8               estimateTokenCountInText\n+  #215 = Utf8               (Ljava/lang/String;)I\n+  #216 = Methodref          #84.#217      // dev/langchain4j/model/openai/OpenAiEmbeddingModel.builder:()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n+  #217 = NameAndType        #41:#218      // builder:()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n+  #218 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n+  #219 = Methodref          #220.#221     // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n+  #220 = Class              #222          // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder\n+  #221 = NameAndType        #223:#224     // apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n+  #222 = Utf8               dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder\n+  #223 = Utf8               apiKey\n+  #224 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n+  #225 = Methodref          #220.#226     // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.build:()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;\n+  #226 = NameAndType        #81:#227      // build:()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;\n+  #227 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;\n+  #228 = Class              #229          // dev/langchain4j/model/openai/spi/OpenAiEmbeddingModelBuilderFactory\n+  #229 = Utf8               dev/langchain4j/model/openai/spi/OpenAiEmbeddingModelBuilderFactory\n+  #230 = InvokeDynamic      #4:#231       // #4:get:()Ljava/util/function/Supplier;\n+  #231 = NameAndType        #113:#232     // get:()Ljava/util/function/Supplier;\n+  #232 = Utf8               ()Ljava/util/function/Supplier;\n+  #233 = Methodref          #234.#235     // dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #234 = Class              #236          // dev/langchain4j/spi/ServiceHelper\n+  #235 = NameAndType        #237:#238     // loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #236 = Utf8               dev/langchain4j/spi/ServiceHelper\n+  #237 = Utf8               loadFactoryService\n+  #238 = Utf8               (Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #239 = Methodref          #240.#241     // dev/ai4j/openai4j/embedding/Embedding.embedding:()Ljava/util/List;\n+  #240 = Class              #242          // dev/ai4j/openai4j/embedding/Embedding\n+  #241 = NameAndType        #243:#196     // embedding:()Ljava/util/List;\n+  #242 = Utf8               dev/ai4j/openai4j/embedding/Embedding\n+  #243 = Utf8               embedding\n+  #244 = Methodref          #245.#246     // dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+  #245 = Class              #247          // dev/langchain4j/data/embedding/Embedding\n+  #246 = NameAndType        #210:#248     // from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+  #247 = Utf8               dev/langchain4j/data/embedding/Embedding\n+  #248 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+  #249 = Methodref          #38.#250      // dev/ai4j/openai4j/OpenAiClient.embedding:(Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ldev/ai4j/openai4j/SyncOrAsync;\n+  #250 = NameAndType        #243:#251     // embedding:(Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ldev/ai4j/openai4j/SyncOrAsync;\n+  #251 = Utf8               (Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ldev/ai4j/openai4j/SyncOrAsync;\n+  #252 = InterfaceMethodref #253.#254     // dev/ai4j/openai4j/SyncOrAsync.execute:()Ljava/lang/Object;\n+  #253 = Class              #255          // dev/ai4j/openai4j/SyncOrAsync\n+  #254 = NameAndType        #256:#257     // execute:()Ljava/lang/Object;\n+  #255 = Utf8               dev/ai4j/openai4j/SyncOrAsync\n+  #256 = Utf8               execute\n+  #257 = Utf8               ()Ljava/lang/Object;\n+  #258 = Class              #259          // dev/langchain4j/model/openai/OpenAiTokenizer\n+  #259 = Utf8               dev/langchain4j/model/openai/OpenAiTokenizer\n+  #260 = Methodref          #258.#261     // dev/langchain4j/model/openai/OpenAiTokenizer.\"<init>\":(Ljava/lang/String;)V\n+  #261 = NameAndType        #9:#262       // \"<init>\":(Ljava/lang/String;)V\n+  #262 = Utf8               (Ljava/lang/String;)V\n+  #263 = Class              #264          // dev/langchain4j/model/embedding/EmbeddingModel\n+  #264 = Utf8               dev/langchain4j/model/embedding/EmbeddingModel\n+  #265 = Class              #266          // dev/langchain4j/model/embedding/TokenCountEstimator\n+  #266 = Utf8               dev/langchain4j/model/embedding/TokenCountEstimator\n+  #267 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+  #268 = Utf8               Code\n+  #269 = Utf8               LineNumberTable\n+  #270 = Utf8               LocalVariableTable\n+  #271 = Utf8               this\n+  #272 = Utf8               Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;\n+  #273 = Utf8               timeout\n+  #274 = Utf8               Ljava/time/Duration;\n+  #275 = Utf8               Ljava/net/Proxy;\n+  #276 = Utf8               Ljava/lang/Boolean;\n+  #277 = Utf8               StackMapTable\n+  #278 = Class              #279          // java/net/Proxy\n+  #279 = Utf8               java/net/Proxy\n+  #280 = Class              #281          // java/lang/Boolean\n+  #281 = Utf8               java/lang/Boolean\n+  #282 = Utf8               embedAll\n+  #283 = Utf8               textSegments\n+  #284 = Utf8               Ljava/util/List;\n+  #285 = Utf8               texts\n+  #286 = Utf8               LocalVariableTypeTable\n+  #287 = Utf8               Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n+  #288 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n+  #289 = Utf8               Signature\n+  #290 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n+  #291 = Utf8               request\n+  #292 = Utf8               Ldev/ai4j/openai4j/embedding/EmbeddingRequest;\n+  #293 = Utf8               response\n+  #294 = Utf8               Ldev/ai4j/openai4j/embedding/EmbeddingResponse;\n+  #295 = Utf8               embeddings\n+  #296 = Utf8               Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;\n+  #297 = Utf8               (Ljava/util/List<Ljava/lang/String;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n+  #298 = Utf8               estimateTokenCount\n+  #299 = Utf8               text\n+  #300 = Utf8               withApiKey\n+  #301 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;\n+  #302 = Utf8               lambda$embedTexts$2\n+  #303 = Utf8               (Ldev/ai4j/openai4j/embedding/Embedding;)Ldev/langchain4j/data/embedding/Embedding;\n+  #304 = Utf8               openAiEmbedding\n+  #305 = Utf8               Ldev/ai4j/openai4j/embedding/Embedding;\n+  #306 = Utf8               lambda$embedTexts$1\n+  #307 = Utf8               (Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ldev/ai4j/openai4j/embedding/EmbeddingResponse;\n+  #308 = Utf8               Exceptions\n+  #309 = Class              #310          // java/lang/Exception\n+  #310 = Utf8               java/lang/Exception\n+  #311 = Utf8               lambda$new$0\n+  #312 = Utf8               ()Ldev/langchain4j/model/Tokenizer;\n+  #313 = Utf8               SourceFile\n+  #314 = Utf8               OpenAiEmbeddingModel.java\n+  #315 = Utf8               BootstrapMethods\n+  #316 = MethodHandle       6:#317        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #317 = Methodref          #318.#319     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #318 = Class              #320          // java/lang/invoke/LambdaMetafactory\n+  #319 = NameAndType        #321:#322     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #320 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #321 = Utf8               metafactory\n+  #322 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #323 = MethodType         #257          //  ()Ljava/lang/Object;\n+  #324 = MethodHandle       7:#325        // REF_invokeSpecial dev/langchain4j/model/openai/OpenAiEmbeddingModel.lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n+  #325 = Methodref          #84.#326      // dev/langchain4j/model/openai/OpenAiEmbeddingModel.lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n+  #326 = NameAndType        #311:#312     // lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n+  #327 = MethodType         #312          //  ()Ldev/langchain4j/model/Tokenizer;\n+  #328 = MethodType         #329          //  (Ljava/lang/Object;)Ljava/lang/Object;\n+  #329 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #330 = MethodHandle       5:#331        // REF_invokeVirtual dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+  #331 = Methodref          #332.#333     // dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+  #332 = Class              #334          // dev/langchain4j/data/segment/TextSegment\n+  #333 = NameAndType        #299:#335     // text:()Ljava/lang/String;\n+  #334 = Utf8               dev/langchain4j/data/segment/TextSegment\n+  #335 = Utf8               ()Ljava/lang/String;\n+  #336 = MethodType         #337          //  (Ldev/langchain4j/data/segment/TextSegment;)Ljava/lang/String;\n+  #337 = Utf8               (Ldev/langchain4j/data/segment/TextSegment;)Ljava/lang/String;\n+  #338 = MethodHandle       7:#339        // REF_invokeSpecial dev/langchain4j/model/openai/OpenAiEmbeddingModel.lambda$embedTexts$1:(Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ldev/ai4j/openai4j/embedding/EmbeddingResponse;\n+  #339 = Methodref          #84.#340      // dev/langchain4j/model/openai/OpenAiEmbeddingModel.lambda$embedTexts$1:(Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ldev/ai4j/openai4j/embedding/EmbeddingResponse;\n+  #340 = NameAndType        #306:#307     // lambda$embedTexts$1:(Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ldev/ai4j/openai4j/embedding/EmbeddingResponse;\n+  #341 = MethodType         #342          //  ()Ldev/ai4j/openai4j/embedding/EmbeddingResponse;\n+  #342 = Utf8               ()Ldev/ai4j/openai4j/embedding/EmbeddingResponse;\n+  #343 = MethodHandle       6:#344        // REF_invokeStatic dev/langchain4j/model/openai/OpenAiEmbeddingModel.lambda$embedTexts$2:(Ldev/ai4j/openai4j/embedding/Embedding;)Ldev/langchain4j/data/embedding/Embedding;\n+  #344 = Methodref          #84.#345      // dev/langchain4j/model/openai/OpenAiEmbeddingModel.lambda$embedTexts$2:(Ldev/ai4j/openai4j/embedding/Embedding;)Ldev/langchain4j/data/embedding/Embedding;\n+  #345 = NameAndType        #302:#303     // lambda$embedTexts$2:(Ldev/ai4j/openai4j/embedding/Embedding;)Ldev/langchain4j/data/embedding/Embedding;\n+  #346 = MethodType         #303          //  (Ldev/ai4j/openai4j/embedding/Embedding;)Ldev/langchain4j/data/embedding/Embedding;\n+  #347 = MethodHandle       8:#348        // REF_newInvokeSpecial dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.\"<init>\":()V\n+  #348 = Methodref          #220.#7       // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.\"<init>\":()V\n+  #349 = MethodType         #218          //  ()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n+  #350 = Utf8               InnerClasses\n+  #351 = Utf8               Builder\n+  #352 = Utf8               OpenAiEmbeddingModelBuilder\n+  #353 = Class              #354          // java/lang/invoke/MethodHandles$Lookup\n+  #354 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #355 = Class              #356          // java/lang/invoke/MethodHandles\n+  #356 = Utf8               java/lang/invoke/MethodHandles\n+  #357 = Utf8               Lookup\n {\n   private final dev.ai4j.openai4j.OpenAiClient client;\n     descriptor: Ldev/ai4j/openai4j/OpenAiClient;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n \n   private final java.lang.String modelName;\n     descriptor: Ljava/lang/String;\n@@ -396,82 +391,82 @@\n \n   public dev.langchain4j.model.openai.OpenAiEmbeddingModel(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Integer, java.lang.String, java.time.Duration, java.lang.Integer, java.net.Proxy, java.lang.Boolean, java.lang.Boolean, dev.langchain4j.model.Tokenizer);\n     descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=13, args_size=13\n          0: aload_0\n-         1: invokespecial #3                  // Method java/lang/Object.\"<init>\":()V\n+         1: invokespecial #5                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_1\n-         5: ldc           #4                  // String https://api.openai.com/v1\n-         7: invokestatic  #5                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-        10: checkcast     #6                  // class java/lang/String\n+         5: ldc           #11                 // String https://api.openai.com/v1\n+         7: invokestatic  #13                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        10: checkcast     #19                 // class java/lang/String\n         13: astore_1\n-        14: ldc           #7                  // String demo\n+        14: ldc           #21                 // String demo\n         16: aload_2\n-        17: invokevirtual #8                  // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+        17: invokevirtual #23                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n         20: ifeq          26\n-        23: ldc           #9                  // String http://langchain4j.dev/demo/openai/v1\n+        23: ldc           #27                 // String http://langchain4j.dev/demo/openai/v1\n         25: astore_1\n         26: aload         7\n-        28: ldc2_w        #10                 // long 60l\n-        31: invokestatic  #12                 // Method java/time/Duration.ofSeconds:(J)Ljava/time/Duration;\n-        34: invokestatic  #5                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-        37: checkcast     #13                 // class java/time/Duration\n+        28: ldc2_w        #29                 // long 60l\n+        31: invokestatic  #31                 // Method java/time/Duration.ofSeconds:(J)Ljava/time/Duration;\n+        34: invokestatic  #13                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        37: checkcast     #32                 // class java/time/Duration\n         40: astore        7\n         42: aload_0\n-        43: invokestatic  #14                 // Method dev/ai4j/openai4j/OpenAiClient.builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        43: invokestatic  #37                 // Method dev/ai4j/openai4j/OpenAiClient.builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         46: aload_2\n-        47: invokevirtual #15                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        47: invokevirtual #43                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         50: aload_1\n-        51: invokevirtual #16                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        51: invokevirtual #49                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         54: aload_3\n-        55: invokevirtual #17                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        55: invokevirtual #52                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         58: aload         7\n-        60: invokevirtual #18                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        60: invokevirtual #55                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         63: aload         7\n-        65: invokevirtual #19                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        65: invokevirtual #59                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         68: aload         7\n-        70: invokevirtual #20                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        70: invokevirtual #62                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         73: aload         7\n-        75: invokevirtual #21                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        75: invokevirtual #65                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         78: aload         9\n-        80: invokevirtual #22                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        80: invokevirtual #68                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         83: aload         10\n-        85: invokevirtual #23                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        85: invokevirtual #72                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         88: aload         11\n-        90: invokevirtual #24                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-        93: invokevirtual #25                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.build:()Ldev/ai4j/openai4j/OpenAiClient;\n-        96: putfield      #26                 // Field client:Ldev/ai4j/openai4j/OpenAiClient;\n+        90: invokevirtual #76                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        93: invokevirtual #79                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.build:()Ldev/ai4j/openai4j/OpenAiClient;\n+        96: putfield      #83                 // Field client:Ldev/ai4j/openai4j/OpenAiClient;\n         99: aload_0\n        100: aload         4\n-       102: ldc           #27                 // String text-embedding-ada-002\n-       104: invokestatic  #5                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-       107: checkcast     #6                  // class java/lang/String\n-       110: putfield      #28                 // Field modelName:Ljava/lang/String;\n+       102: ldc           #89                 // String text-embedding-ada-002\n+       104: invokestatic  #13                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       107: checkcast     #19                 // class java/lang/String\n+       110: putfield      #91                 // Field modelName:Ljava/lang/String;\n        113: aload_0\n        114: aload         5\n-       116: putfield      #29                 // Field dimensions:Ljava/lang/Integer;\n+       116: putfield      #95                 // Field dimensions:Ljava/lang/Integer;\n        119: aload_0\n        120: aload         6\n-       122: putfield      #30                 // Field user:Ljava/lang/String;\n+       122: putfield      #99                 // Field user:Ljava/lang/String;\n        125: aload_0\n        126: aload         8\n        128: iconst_3\n-       129: invokestatic  #31                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       132: invokestatic  #5                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-       135: checkcast     #32                 // class java/lang/Integer\n-       138: putfield      #33                 // Field maxRetries:Ljava/lang/Integer;\n+       129: invokestatic  #102                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       132: invokestatic  #13                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       135: checkcast     #103                // class java/lang/Integer\n+       138: putfield      #108                // Field maxRetries:Ljava/lang/Integer;\n        141: aload_0\n        142: aload         12\n        144: aload_0\n-       145: invokedynamic #34,  0             // InvokeDynamic #0:get:(Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;)Ljava/util/function/Supplier;\n-       150: invokestatic  #35                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-       153: checkcast     #36                 // class dev/langchain4j/model/Tokenizer\n-       156: putfield      #37                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+       145: invokedynamic #111,  0            // InvokeDynamic #0:get:(Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;)Ljava/util/function/Supplier;\n+       150: invokestatic  #115                // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+       153: checkcast     #118                // class dev/langchain4j/model/Tokenizer\n+       156: putfield      #120                // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n        159: return\n       LineNumberTable:\n         line 51: 0\n         line 53: 4\n         line 54: 14\n         line 55: 23\n         line 58: 26\n@@ -516,24 +511,24 @@\n \n   public dev.langchain4j.model.output.Response<java.util.List<dev.langchain4j.data.embedding.Embedding>> embedAll(java.util.List<dev.langchain4j.data.segment.TextSegment>);\n     descriptor: (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=2\n          0: aload_1\n-         1: invokeinterface #38,  1           // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n-         6: invokedynamic #39,  0             // InvokeDynamic #1:apply:()Ljava/util/function/Function;\n-        11: invokeinterface #40,  2           // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-        16: invokestatic  #41                 // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-        19: invokeinterface #42,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-        24: checkcast     #43                 // class java/util/List\n+         1: invokeinterface #124,  1          // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n+         6: invokedynamic #130,  0            // InvokeDynamic #1:apply:()Ljava/util/function/Function;\n+        11: invokeinterface #134,  2          // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+        16: invokestatic  #140                // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+        19: invokeinterface #146,  2          // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+        24: checkcast     #125                // class java/util/List\n         27: astore_2\n         28: aload_0\n         29: aload_2\n-        30: invokespecial #44                 // Method embedTexts:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+        30: invokespecial #150                // Method embedTexts:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n         33: areturn\n       LineNumberTable:\n         line 82: 0\n         line 83: 11\n         line 84: 16\n         line 86: 28\n       LocalVariableTable:\n@@ -541,58 +536,58 @@\n             0      34     0  this   Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;\n             0      34     1 textSegments   Ljava/util/List;\n            28       6     2 texts   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      34     1 textSegments   Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;\n            28       6     2 texts   Ljava/util/List<Ljava/lang/String;>;\n-    Signature: #124                         // (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n+    Signature: #290                         // (Ljava/util/List<Ldev/langchain4j/data/segment/TextSegment;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n \n   private dev.langchain4j.model.output.Response<java.util.List<dev.langchain4j.data.embedding.Embedding>> embedTexts(java.util.List<java.lang.String>);\n     descriptor: (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=2, locals=5, args_size=2\n-         0: invokestatic  #45                 // Method dev/ai4j/openai4j/embedding/EmbeddingRequest.builder:()Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n+         0: invokestatic  #154                // Method dev/ai4j/openai4j/embedding/EmbeddingRequest.builder:()Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n          3: aload_1\n-         4: invokevirtual #46                 // Method dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder.input:(Ljava/util/List;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n+         4: invokevirtual #159                // Method dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder.input:(Ljava/util/List;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n          7: aload_0\n-         8: getfield      #28                 // Field modelName:Ljava/lang/String;\n-        11: invokevirtual #47                 // Method dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder.model:(Ljava/lang/String;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n+         8: getfield      #91                 // Field modelName:Ljava/lang/String;\n+        11: invokevirtual #165                // Method dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder.model:(Ljava/lang/String;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n         14: aload_0\n-        15: getfield      #29                 // Field dimensions:Ljava/lang/Integer;\n-        18: invokevirtual #48                 // Method dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder.dimensions:(Ljava/lang/Integer;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n+        15: getfield      #95                 // Field dimensions:Ljava/lang/Integer;\n+        18: invokevirtual #169                // Method dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder.dimensions:(Ljava/lang/Integer;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n         21: aload_0\n-        22: getfield      #30                 // Field user:Ljava/lang/String;\n-        25: invokevirtual #49                 // Method dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder.user:(Ljava/lang/String;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n-        28: invokevirtual #50                 // Method dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder.build:()Ldev/ai4j/openai4j/embedding/EmbeddingRequest;\n+        22: getfield      #99                 // Field user:Ljava/lang/String;\n+        25: invokevirtual #172                // Method dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder.user:(Ljava/lang/String;)Ldev/ai4j/openai4j/embedding/EmbeddingRequest$Builder;\n+        28: invokevirtual #174                // Method dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder.build:()Ldev/ai4j/openai4j/embedding/EmbeddingRequest;\n         31: astore_2\n         32: aload_0\n         33: aload_2\n-        34: invokedynamic #51,  0             // InvokeDynamic #2:call:(Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ljava/util/concurrent/Callable;\n+        34: invokedynamic #177,  0            // InvokeDynamic #2:call:(Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ljava/util/concurrent/Callable;\n         39: aload_0\n-        40: getfield      #33                 // Field maxRetries:Ljava/lang/Integer;\n-        43: invokevirtual #52                 // Method java/lang/Integer.intValue:()I\n-        46: invokestatic  #53                 // Method dev/langchain4j/internal/RetryUtils.withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n-        49: checkcast     #54                 // class dev/ai4j/openai4j/embedding/EmbeddingResponse\n+        40: getfield      #108                // Field maxRetries:Ljava/lang/Integer;\n+        43: invokevirtual #181                // Method java/lang/Integer.intValue:()I\n+        46: invokestatic  #185                // Method dev/langchain4j/internal/RetryUtils.withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n+        49: checkcast     #191                // class dev/ai4j/openai4j/embedding/EmbeddingResponse\n         52: astore_3\n         53: aload_3\n-        54: invokevirtual #55                 // Method dev/ai4j/openai4j/embedding/EmbeddingResponse.data:()Ljava/util/List;\n-        57: invokeinterface #38,  1           // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n-        62: invokedynamic #56,  0             // InvokeDynamic #3:apply:()Ljava/util/function/Function;\n-        67: invokeinterface #40,  2           // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-        72: invokestatic  #41                 // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-        75: invokeinterface #42,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-        80: checkcast     #43                 // class java/util/List\n+        54: invokevirtual #193                // Method dev/ai4j/openai4j/embedding/EmbeddingResponse.data:()Ljava/util/List;\n+        57: invokeinterface #124,  1          // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n+        62: invokedynamic #197,  0            // InvokeDynamic #3:apply:()Ljava/util/function/Function;\n+        67: invokeinterface #134,  2          // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+        72: invokestatic  #140                // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+        75: invokeinterface #146,  2          // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+        80: checkcast     #125                // class java/util/List\n         83: astore        4\n         85: aload         4\n         87: aload_3\n-        88: invokevirtual #57                 // Method dev/ai4j/openai4j/embedding/EmbeddingResponse.usage:()Ldev/ai4j/openai4j/shared/Usage;\n-        91: invokestatic  #58                 // Method dev/langchain4j/model/openai/InternalOpenAiHelper.tokenUsageFrom:(Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n-        94: invokestatic  #59                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n+        88: invokevirtual #198                // Method dev/ai4j/openai4j/embedding/EmbeddingResponse.usage:()Ldev/ai4j/openai4j/shared/Usage;\n+        91: invokestatic  #202                // Method dev/langchain4j/model/openai/InternalOpenAiHelper.tokenUsageFrom:(Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n+        94: invokestatic  #206                // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;)Ldev/langchain4j/model/output/Response;\n         97: areturn\n       LineNumberTable:\n         line 91: 0\n         line 92: 4\n         line 93: 11\n         line 94: 18\n         line 95: 25\n@@ -611,88 +606,88 @@\n            32      66     2 request   Ldev/ai4j/openai4j/embedding/EmbeddingRequest;\n            53      45     3 response   Ldev/ai4j/openai4j/embedding/EmbeddingResponse;\n            85      13     4 embeddings   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      98     1 texts   Ljava/util/List<Ljava/lang/String;>;\n            85      13     4 embeddings   Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;\n-    Signature: #132                         // (Ljava/util/List<Ljava/lang/String;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n+    Signature: #297                         // (Ljava/util/List<Ljava/lang/String;>;)Ldev/langchain4j/model/output/Response<Ljava/util/List<Ldev/langchain4j/data/embedding/Embedding;>;>;\n \n   public int estimateTokenCount(java.lang.String);\n     descriptor: (Ljava/lang/String;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #37                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+         1: getfield      #120                // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n          4: aload_1\n-         5: invokeinterface #60,  2           // InterfaceMethod dev/langchain4j/model/Tokenizer.estimateTokenCountInText:(Ljava/lang/String;)I\n+         5: invokeinterface #212,  2          // InterfaceMethod dev/langchain4j/model/Tokenizer.estimateTokenCountInText:(Ljava/lang/String;)I\n         10: ireturn\n       LineNumberTable:\n         line 112: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      11     0  this   Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;\n             0      11     1  text   Ljava/lang/String;\n \n   public static dev.langchain4j.model.openai.OpenAiEmbeddingModel withApiKey(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: invokestatic  #61                 // Method builder:()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n+         0: invokestatic  #216                // Method builder:()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n          3: aload_0\n-         4: invokevirtual #62                 // Method dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n-         7: invokevirtual #63                 // Method dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.build:()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;\n+         4: invokevirtual #219                // Method dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n+         7: invokevirtual #225                // Method dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.build:()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;\n         10: areturn\n       LineNumberTable:\n         line 116: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      11     0 apiKey   Ljava/lang/String;\n \n   public static dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder builder();\n     descriptor: ()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=2, locals=0, args_size=0\n-         0: ldc           #64                 // class dev/langchain4j/model/openai/spi/OpenAiEmbeddingModelBuilderFactory\n-         2: invokedynamic #65,  0             // InvokeDynamic #4:get:()Ljava/util/function/Supplier;\n-         7: invokestatic  #66                 // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        10: checkcast     #67                 // class dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder\n+         0: ldc           #228                // class dev/langchain4j/model/openai/spi/OpenAiEmbeddingModelBuilderFactory\n+         2: invokedynamic #230,  0            // InvokeDynamic #4:get:()Ljava/util/function/Supplier;\n+         7: invokestatic  #233                // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        10: checkcast     #220                // class dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder\n         13: areturn\n       LineNumberTable:\n         line 120: 0\n \n   private static dev.langchain4j.data.embedding.Embedding lambda$embedTexts$2(dev.ai4j.openai4j.embedding.Embedding);\n     descriptor: (Ldev/ai4j/openai4j/embedding/Embedding;)Ldev/langchain4j/data/embedding/Embedding;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokevirtual #68                 // Method dev/ai4j/openai4j/embedding/Embedding.embedding:()Ljava/util/List;\n-         4: invokestatic  #69                 // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n+         1: invokevirtual #239                // Method dev/ai4j/openai4j/embedding/Embedding.embedding:()Ljava/util/List;\n+         4: invokestatic  #244                // Method dev/langchain4j/data/embedding/Embedding.from:(Ljava/util/List;)Ldev/langchain4j/data/embedding/Embedding;\n          7: areturn\n       LineNumberTable:\n         line 101: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       8     0 openAiEmbedding   Ldev/ai4j/openai4j/embedding/Embedding;\n \n   private dev.ai4j.openai4j.embedding.EmbeddingResponse lambda$embedTexts$1(dev.ai4j.openai4j.embedding.EmbeddingRequest) throws java.lang.Exception;\n     descriptor: (Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ldev/ai4j/openai4j/embedding/EmbeddingResponse;\n     flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #26                 // Field client:Ldev/ai4j/openai4j/OpenAiClient;\n+         1: getfield      #83                 // Field client:Ldev/ai4j/openai4j/OpenAiClient;\n          4: aload_1\n-         5: invokevirtual #70                 // Method dev/ai4j/openai4j/OpenAiClient.embedding:(Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ldev/ai4j/openai4j/SyncOrAsync;\n-         8: invokeinterface #71,  1           // InterfaceMethod dev/ai4j/openai4j/SyncOrAsync.execute:()Ljava/lang/Object;\n-        13: checkcast     #54                 // class dev/ai4j/openai4j/embedding/EmbeddingResponse\n+         5: invokevirtual #249                // Method dev/ai4j/openai4j/OpenAiClient.embedding:(Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ldev/ai4j/openai4j/SyncOrAsync;\n+         8: invokeinterface #252,  1          // InterfaceMethod dev/ai4j/openai4j/SyncOrAsync.execute:()Ljava/lang/Object;\n+        13: checkcast     #191                // class dev/ai4j/openai4j/embedding/EmbeddingResponse\n         16: areturn\n       LineNumberTable:\n         line 98: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      17     0  this   Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;\n             0      17     1 request   Ldev/ai4j/openai4j/embedding/EmbeddingRequest;\n@@ -700,51 +695,51 @@\n       throws java.lang.Exception\n \n   private dev.langchain4j.model.Tokenizer lambda$new$0();\n     descriptor: ()Ldev/langchain4j/model/Tokenizer;\n     flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=1, args_size=1\n-         0: new           #72                 // class dev/langchain4j/model/openai/OpenAiTokenizer\n+         0: new           #258                // class dev/langchain4j/model/openai/OpenAiTokenizer\n          3: dup\n          4: aload_0\n-         5: getfield      #28                 // Field modelName:Ljava/lang/String;\n-         8: invokespecial #73                 // Method dev/langchain4j/model/openai/OpenAiTokenizer.\"<init>\":(Ljava/lang/String;)V\n+         5: getfield      #91                 // Field modelName:Ljava/lang/String;\n+         8: invokespecial #260                // Method dev/langchain4j/model/openai/OpenAiTokenizer.\"<init>\":(Ljava/lang/String;)V\n         11: areturn\n       LineNumberTable:\n         line 76: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      12     0  this   Ldev/langchain4j/model/openai/OpenAiEmbeddingModel;\n }\n SourceFile: \"OpenAiEmbeddingModel.java\"\n-InnerClasses:\n-  public static #78= #67 of #74;          // OpenAiEmbeddingModelBuilder=class dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder of class dev/langchain4j/model/openai/OpenAiEmbeddingModel\n-  public static abstract #265= #166 of #164; // Builder=class dev/ai4j/openai4j/OpenAiClient$Builder of class dev/ai4j/openai4j/OpenAiClient\n-  public static final #265= #209 of #207; // Builder=class dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder of class dev/ai4j/openai4j/embedding/EmbeddingRequest\n-  public static final #356= #355 of #360; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #187 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #316 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #188 ()Ljava/lang/Object;\n-      #189 REF_invokeSpecial dev/langchain4j/model/openai/OpenAiEmbeddingModel.lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n-      #190 ()Ldev/langchain4j/model/Tokenizer;\n-  1: #187 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #323 ()Ljava/lang/Object;\n+      #324 REF_invokeSpecial dev/langchain4j/model/openai/OpenAiEmbeddingModel.lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n+      #327 ()Ldev/langchain4j/model/Tokenizer;\n+  1: #316 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #196 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #197 REF_invokeVirtual dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n-      #198 (Ldev/langchain4j/data/segment/TextSegment;)Ljava/lang/String;\n-  2: #187 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #328 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #330 REF_invokeVirtual dev/langchain4j/data/segment/TextSegment.text:()Ljava/lang/String;\n+      #336 (Ldev/langchain4j/data/segment/TextSegment;)Ljava/lang/String;\n+  2: #316 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #188 ()Ljava/lang/Object;\n-      #215 REF_invokeSpecial dev/langchain4j/model/openai/OpenAiEmbeddingModel.lambda$embedTexts$1:(Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ldev/ai4j/openai4j/embedding/EmbeddingResponse;\n-      #216 ()Ldev/ai4j/openai4j/embedding/EmbeddingResponse;\n-  3: #187 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #323 ()Ljava/lang/Object;\n+      #338 REF_invokeSpecial dev/langchain4j/model/openai/OpenAiEmbeddingModel.lambda$embedTexts$1:(Ldev/ai4j/openai4j/embedding/EmbeddingRequest;)Ldev/ai4j/openai4j/embedding/EmbeddingResponse;\n+      #341 ()Ldev/ai4j/openai4j/embedding/EmbeddingResponse;\n+  3: #316 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #196 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #223 REF_invokeStatic dev/langchain4j/model/openai/OpenAiEmbeddingModel.lambda$embedTexts$2:(Ldev/ai4j/openai4j/embedding/Embedding;)Ldev/langchain4j/data/embedding/Embedding;\n-      #224 (Ldev/ai4j/openai4j/embedding/Embedding;)Ldev/langchain4j/data/embedding/Embedding;\n-  4: #187 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #328 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #343 REF_invokeStatic dev/langchain4j/model/openai/OpenAiEmbeddingModel.lambda$embedTexts$2:(Ldev/ai4j/openai4j/embedding/Embedding;)Ldev/langchain4j/data/embedding/Embedding;\n+      #346 (Ldev/ai4j/openai4j/embedding/Embedding;)Ldev/langchain4j/data/embedding/Embedding;\n+  4: #316 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #188 ()Ljava/lang/Object;\n-      #234 REF_newInvokeSpecial dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.\"<init>\":()V\n-      #235 ()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n+      #323 ()Ljava/lang/Object;\n+      #347 REF_newInvokeSpecial dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder.\"<init>\":()V\n+      #349 ()Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;\n+InnerClasses:\n+  public static abstract #351= #44 of #38; // Builder=class dev/ai4j/openai4j/OpenAiClient$Builder of class dev/ai4j/openai4j/OpenAiClient\n+  public static final #351= #160 of #155; // Builder=class dev/ai4j/openai4j/embedding/EmbeddingRequest$Builder of class dev/ai4j/openai4j/embedding/EmbeddingRequest\n+  public static #352= #220 of #84;        // OpenAiEmbeddingModelBuilder=class dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder of class dev/langchain4j/model/openai/OpenAiEmbeddingModel\n+  public static final #357= #353 of #355; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiEmbeddingModelName.class", "source2": "dev/langchain4j/model/openai/OpenAiEmbeddingModelName.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,82 +1,84 @@\n-  SHA-256 checksum 3fbd0ef59905520d36d1e65d50bb347c1790295d68ca6d184ed72238270bb144\n+  SHA-256 checksum 53e46b1cb33fa2cb28613851101129a272e8ba313b8dfce2c24fb464b1f89de3\n   Compiled from \"OpenAiEmbeddingModelName.java\"\n public final class dev.langchain4j.model.openai.OpenAiEmbeddingModelName extends java.lang.Enum<dev.langchain4j.model.openai.OpenAiEmbeddingModelName>\n   minor version: 0\n   major version: 52\n   flags: (0x4031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ENUM\n-  this_class: #4                          // dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n-  super_class: #18                        // java/lang/Enum\n-  interfaces: 0, fields: 5, methods: 5, attributes: 2\n+  this_class: #1                          // dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n+  super_class: #23                        // java/lang/Enum\n+  interfaces: 0, fields: 5, methods: 6, attributes: 2\n Constant pool:\n-   #1 = Fieldref           #4.#47         // dev/langchain4j/model/openai/OpenAiEmbeddingModelName.$VALUES:[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-   #2 = Methodref          #48.#49        // \"[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\".clone:()Ljava/lang/Object;\n-   #3 = Class              #26            // \"[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\"\n-   #4 = Class              #50            // dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n-   #5 = Methodref          #18.#51        // java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n-   #6 = Methodref          #18.#52        // java/lang/Enum.\"<init>\":(Ljava/lang/String;I)V\n-   #7 = Fieldref           #4.#53         // dev/langchain4j/model/openai/OpenAiEmbeddingModelName.stringValue:Ljava/lang/String;\n-   #8 = String             #19            // TEXT_EMBEDDING_3_SMALL\n-   #9 = String             #54            // text-embedding-3-small\n-  #10 = Methodref          #4.#55         // dev/langchain4j/model/openai/OpenAiEmbeddingModelName.\"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-  #11 = Fieldref           #4.#56         // dev/langchain4j/model/openai/OpenAiEmbeddingModelName.TEXT_EMBEDDING_3_SMALL:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-  #12 = String             #21            // TEXT_EMBEDDING_3_LARGE\n-  #13 = String             #57            // text-embedding-3-large\n-  #14 = Fieldref           #4.#58         // dev/langchain4j/model/openai/OpenAiEmbeddingModelName.TEXT_EMBEDDING_3_LARGE:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-  #15 = String             #22            // TEXT_EMBEDDING_ADA_002\n-  #16 = String             #59            // text-embedding-ada-002\n-  #17 = Fieldref           #4.#60         // dev/langchain4j/model/openai/OpenAiEmbeddingModelName.TEXT_EMBEDDING_ADA_002:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-  #18 = Class              #61            // java/lang/Enum\n-  #19 = Utf8               TEXT_EMBEDDING_3_SMALL\n-  #20 = Utf8               Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-  #21 = Utf8               TEXT_EMBEDDING_3_LARGE\n-  #22 = Utf8               TEXT_EMBEDDING_ADA_002\n-  #23 = Utf8               stringValue\n-  #24 = Utf8               Ljava/lang/String;\n-  #25 = Utf8               $VALUES\n-  #26 = Utf8               [Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-  #27 = Utf8               values\n-  #28 = Utf8               ()[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-  #29 = Utf8               Code\n-  #30 = Utf8               LineNumberTable\n-  #31 = Utf8               valueOf\n-  #32 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-  #33 = Utf8               LocalVariableTable\n-  #34 = Utf8               name\n-  #35 = Utf8               <init>\n-  #36 = Utf8               (Ljava/lang/String;ILjava/lang/String;)V\n-  #37 = Utf8               this\n-  #38 = Utf8               Signature\n-  #39 = Utf8               (Ljava/lang/String;)V\n-  #40 = Utf8               toString\n-  #41 = Utf8               ()Ljava/lang/String;\n-  #42 = Utf8               <clinit>\n-  #43 = Utf8               ()V\n-  #44 = Utf8               Ljava/lang/Enum<Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;>;\n-  #45 = Utf8               SourceFile\n-  #46 = Utf8               OpenAiEmbeddingModelName.java\n-  #47 = NameAndType        #25:#26        // $VALUES:[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-  #48 = Class              #26            // \"[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\"\n-  #49 = NameAndType        #62:#63        // clone:()Ljava/lang/Object;\n-  #50 = Utf8               dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n-  #51 = NameAndType        #31:#64        // valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n-  #52 = NameAndType        #35:#65        // \"<init>\":(Ljava/lang/String;I)V\n-  #53 = NameAndType        #23:#24        // stringValue:Ljava/lang/String;\n-  #54 = Utf8               text-embedding-3-small\n-  #55 = NameAndType        #35:#36        // \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-  #56 = NameAndType        #19:#20        // TEXT_EMBEDDING_3_SMALL:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-  #57 = Utf8               text-embedding-3-large\n-  #58 = NameAndType        #21:#20        // TEXT_EMBEDDING_3_LARGE:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-  #59 = Utf8               text-embedding-ada-002\n-  #60 = NameAndType        #22:#20        // TEXT_EMBEDDING_ADA_002:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-  #61 = Utf8               java/lang/Enum\n-  #62 = Utf8               clone\n-  #63 = Utf8               ()Ljava/lang/Object;\n-  #64 = Utf8               (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n-  #65 = Utf8               (Ljava/lang/String;I)V\n+   #1 = Class              #2             // dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n+   #2 = Utf8               dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n+   #3 = Fieldref           #1.#4          // dev/langchain4j/model/openai/OpenAiEmbeddingModelName.TEXT_EMBEDDING_3_SMALL:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+   #4 = NameAndType        #5:#6          // TEXT_EMBEDDING_3_SMALL:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+   #5 = Utf8               TEXT_EMBEDDING_3_SMALL\n+   #6 = Utf8               Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+   #7 = Fieldref           #1.#8          // dev/langchain4j/model/openai/OpenAiEmbeddingModelName.TEXT_EMBEDDING_3_LARGE:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+   #8 = NameAndType        #9:#6          // TEXT_EMBEDDING_3_LARGE:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+   #9 = Utf8               TEXT_EMBEDDING_3_LARGE\n+  #10 = Fieldref           #1.#11         // dev/langchain4j/model/openai/OpenAiEmbeddingModelName.TEXT_EMBEDDING_ADA_002:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+  #11 = NameAndType        #12:#6         // TEXT_EMBEDDING_ADA_002:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+  #12 = Utf8               TEXT_EMBEDDING_ADA_002\n+  #13 = Fieldref           #1.#14         // dev/langchain4j/model/openai/OpenAiEmbeddingModelName.$VALUES:[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+  #14 = NameAndType        #15:#16        // $VALUES:[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+  #15 = Utf8               $VALUES\n+  #16 = Utf8               [Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+  #17 = Methodref          #18.#19        // \"[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\".clone:()Ljava/lang/Object;\n+  #18 = Class              #16            // \"[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\"\n+  #19 = NameAndType        #20:#21        // clone:()Ljava/lang/Object;\n+  #20 = Utf8               clone\n+  #21 = Utf8               ()Ljava/lang/Object;\n+  #22 = Methodref          #23.#24        // java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n+  #23 = Class              #25            // java/lang/Enum\n+  #24 = NameAndType        #26:#27        // valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n+  #25 = Utf8               java/lang/Enum\n+  #26 = Utf8               valueOf\n+  #27 = Utf8               (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n+  #28 = Methodref          #23.#29        // java/lang/Enum.\"<init>\":(Ljava/lang/String;I)V\n+  #29 = NameAndType        #30:#31        // \"<init>\":(Ljava/lang/String;I)V\n+  #30 = Utf8               <init>\n+  #31 = Utf8               (Ljava/lang/String;I)V\n+  #32 = Fieldref           #1.#33         // dev/langchain4j/model/openai/OpenAiEmbeddingModelName.stringValue:Ljava/lang/String;\n+  #33 = NameAndType        #34:#35        // stringValue:Ljava/lang/String;\n+  #34 = Utf8               stringValue\n+  #35 = Utf8               Ljava/lang/String;\n+  #36 = String             #5             // TEXT_EMBEDDING_3_SMALL\n+  #37 = String             #38            // text-embedding-3-small\n+  #38 = Utf8               text-embedding-3-small\n+  #39 = Methodref          #1.#40         // dev/langchain4j/model/openai/OpenAiEmbeddingModelName.\"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+  #40 = NameAndType        #30:#41        // \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+  #41 = Utf8               (Ljava/lang/String;ILjava/lang/String;)V\n+  #42 = String             #9             // TEXT_EMBEDDING_3_LARGE\n+  #43 = String             #44            // text-embedding-3-large\n+  #44 = Utf8               text-embedding-3-large\n+  #45 = String             #12            // TEXT_EMBEDDING_ADA_002\n+  #46 = String             #47            // text-embedding-ada-002\n+  #47 = Utf8               text-embedding-ada-002\n+  #48 = Methodref          #1.#49         // dev/langchain4j/model/openai/OpenAiEmbeddingModelName.$values:()[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+  #49 = NameAndType        #50:#51        // $values:()[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+  #50 = Utf8               $values\n+  #51 = Utf8               ()[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+  #52 = Utf8               values\n+  #53 = Utf8               Code\n+  #54 = Utf8               LineNumberTable\n+  #55 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+  #56 = Utf8               LocalVariableTable\n+  #57 = Utf8               name\n+  #58 = Utf8               this\n+  #59 = Utf8               Signature\n+  #60 = Utf8               (Ljava/lang/String;)V\n+  #61 = Utf8               toString\n+  #62 = Utf8               ()Ljava/lang/String;\n+  #63 = Utf8               <clinit>\n+  #64 = Utf8               ()V\n+  #65 = Utf8               Ljava/lang/Enum<Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;>;\n+  #66 = Utf8               SourceFile\n+  #67 = Utf8               OpenAiEmbeddingModelName.java\n {\n   public static final dev.langchain4j.model.openai.OpenAiEmbeddingModelName TEXT_EMBEDDING_3_SMALL;\n     descriptor: Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n     flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM\n \n   public static final dev.langchain4j.model.openai.OpenAiEmbeddingModelName TEXT_EMBEDDING_3_LARGE;\n     descriptor: Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n@@ -95,30 +97,30 @@\n     flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC\n \n   public static dev.langchain4j.model.openai.OpenAiEmbeddingModelName[] values();\n     descriptor: ()[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: getstatic     #1                  // Field $VALUES:[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-         3: invokevirtual #2                  // Method \"[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\".clone:()Ljava/lang/Object;\n-         6: checkcast     #3                  // class \"[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\"\n+         0: getstatic     #13                 // Field $VALUES:[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+         3: invokevirtual #17                 // Method \"[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\".clone:()Ljava/lang/Object;\n+         6: checkcast     #18                 // class \"[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\"\n          9: areturn\n       LineNumberTable:\n         line 3: 0\n \n   public static dev.langchain4j.model.openai.OpenAiEmbeddingModelName valueOf(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: ldc           #4                  // class dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n+         0: ldc           #1                  // class dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n          2: aload_0\n-         3: invokestatic  #5                  // Method java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n-         6: checkcast     #4                  // class dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n+         3: invokestatic  #22                 // Method java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n+         6: checkcast     #1                  // class dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n          9: areturn\n       LineNumberTable:\n         line 3: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  name   Ljava/lang/String;\n \n@@ -126,86 +128,96 @@\n     descriptor: (Ljava/lang/String;ILjava/lang/String;)V\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=3, locals=4, args_size=4\n          0: aload_0\n          1: aload_1\n          2: iload_2\n-         3: invokespecial #6                  // Method java/lang/Enum.\"<init>\":(Ljava/lang/String;I)V\n+         3: invokespecial #28                 // Method java/lang/Enum.\"<init>\":(Ljava/lang/String;I)V\n          6: aload_0\n          7: aload_3\n-         8: putfield      #7                  // Field stringValue:Ljava/lang/String;\n+         8: putfield      #32                 // Field stringValue:Ljava/lang/String;\n         11: return\n       LineNumberTable:\n         line 12: 0\n         line 13: 6\n         line 14: 11\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      12     0  this   Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n             0      12     3 stringValue   Ljava/lang/String;\n-    Signature: #39                          // (Ljava/lang/String;)V\n+    Signature: #60                          // (Ljava/lang/String;)V\n \n   public java.lang.String toString();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #7                  // Field stringValue:Ljava/lang/String;\n+         1: getfield      #32                 // Field stringValue:Ljava/lang/String;\n          4: areturn\n       LineNumberTable:\n         line 18: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n \n+  private static dev.langchain4j.model.openai.OpenAiEmbeddingModelName[] $values();\n+    descriptor: ()[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n+    Code:\n+      stack=4, locals=0, args_size=0\n+         0: iconst_3\n+         1: anewarray     #1                  // class dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n+         4: dup\n+         5: iconst_0\n+         6: getstatic     #3                  // Field TEXT_EMBEDDING_3_SMALL:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+         9: aastore\n+        10: dup\n+        11: iconst_1\n+        12: getstatic     #7                  // Field TEXT_EMBEDDING_3_LARGE:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+        15: aastore\n+        16: dup\n+        17: iconst_2\n+        18: getstatic     #10                 // Field TEXT_EMBEDDING_ADA_002:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+        21: aastore\n+        22: areturn\n+      LineNumberTable:\n+        line 3: 0\n+\n   static {};\n     descriptor: ()V\n     flags: (0x0008) ACC_STATIC\n     Code:\n       stack=5, locals=0, args_size=0\n-         0: new           #4                  // class dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n+         0: new           #1                  // class dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n          3: dup\n-         4: ldc           #8                  // String TEXT_EMBEDDING_3_SMALL\n+         4: ldc           #36                 // String TEXT_EMBEDDING_3_SMALL\n          6: iconst_0\n-         7: ldc           #9                  // String text-embedding-3-small\n-         9: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-        12: putstatic     #11                 // Field TEXT_EMBEDDING_3_SMALL:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-        15: new           #4                  // class dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n+         7: ldc           #37                 // String text-embedding-3-small\n+         9: invokespecial #39                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+        12: putstatic     #3                  // Field TEXT_EMBEDDING_3_SMALL:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+        15: new           #1                  // class dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n         18: dup\n-        19: ldc           #12                 // String TEXT_EMBEDDING_3_LARGE\n+        19: ldc           #42                 // String TEXT_EMBEDDING_3_LARGE\n         21: iconst_1\n-        22: ldc           #13                 // String text-embedding-3-large\n-        24: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-        27: putstatic     #14                 // Field TEXT_EMBEDDING_3_LARGE:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-        30: new           #4                  // class dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n+        22: ldc           #43                 // String text-embedding-3-large\n+        24: invokespecial #39                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+        27: putstatic     #7                  // Field TEXT_EMBEDDING_3_LARGE:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+        30: new           #1                  // class dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n         33: dup\n-        34: ldc           #15                 // String TEXT_EMBEDDING_ADA_002\n+        34: ldc           #45                 // String TEXT_EMBEDDING_ADA_002\n         36: iconst_2\n-        37: ldc           #16                 // String text-embedding-ada-002\n-        39: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-        42: putstatic     #17                 // Field TEXT_EMBEDDING_ADA_002:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-        45: iconst_3\n-        46: anewarray     #4                  // class dev/langchain4j/model/openai/OpenAiEmbeddingModelName\n-        49: dup\n-        50: iconst_0\n-        51: getstatic     #11                 // Field TEXT_EMBEDDING_3_SMALL:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-        54: aastore\n-        55: dup\n-        56: iconst_1\n-        57: getstatic     #14                 // Field TEXT_EMBEDDING_3_LARGE:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-        60: aastore\n-        61: dup\n-        62: iconst_2\n-        63: getstatic     #17                 // Field TEXT_EMBEDDING_ADA_002:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-        66: aastore\n-        67: putstatic     #1                  // Field $VALUES:[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n-        70: return\n+        37: ldc           #46                 // String text-embedding-ada-002\n+        39: invokespecial #39                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+        42: putstatic     #10                 // Field TEXT_EMBEDDING_ADA_002:Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+        45: invokestatic  #48                 // Method $values:()[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+        48: putstatic     #13                 // Field $VALUES:[Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;\n+        51: return\n       LineNumberTable:\n         line 5: 0\n         line 6: 15\n         line 8: 30\n         line 3: 45\n }\n-Signature: #44                          // Ljava/lang/Enum<Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;>;\n+Signature: #65                          // Ljava/lang/Enum<Ldev/langchain4j/model/openai/OpenAiEmbeddingModelName;>;\n SourceFile: \"OpenAiEmbeddingModelName.java\"\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.class", "source2": "dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,174 +1,174 @@\n-  SHA-256 checksum b96552ed2a52ce30f0231dd8106171111060c6ffaa030dd33c2e3acc6ff45584\n+  SHA-256 checksum 12df39ce8b418bf029a085b29bb3e06c59dbed18fd666fa66812247d2aa99787\n   Compiled from \"OpenAiImageModel.java\"\n public class dev.langchain4j.model.openai.OpenAiImageModel$OpenAiImageModelBuilder\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #48                         // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder\n-  super_class: #49                        // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 16, methods: 21, attributes: 2\n Constant pool:\n-    #1 = Methodref          #49.#100      // java/lang/Object.\"<init>\":()V\n-    #2 = Fieldref           #48.#101      // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.modelName:Ljava/lang/String;\n-    #3 = Methodref          #102.#103     // dev/langchain4j/model/openai/OpenAiImageModelName.toString:()Ljava/lang/String;\n-    #4 = Methodref          #104.#105     // java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;\n-    #5 = Methodref          #48.#106      // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.withPersisting:(Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n-    #6 = Fieldref           #48.#107      // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.withPersisting:Ljava/lang/Boolean;\n-    #7 = Fieldref           #48.#108      // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.baseUrl:Ljava/lang/String;\n-    #8 = Class              #109          // java/lang/NullPointerException\n-    #9 = String             #110          // apiKey is marked non-null but is null\n-   #10 = Methodref          #8.#111       // java/lang/NullPointerException.\"<init>\":(Ljava/lang/String;)V\n-   #11 = Fieldref           #48.#112      // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.apiKey:Ljava/lang/String;\n-   #12 = Fieldref           #48.#113      // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.organizationId:Ljava/lang/String;\n-   #13 = Fieldref           #48.#114      // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.size:Ljava/lang/String;\n-   #14 = Fieldref           #48.#115      // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.quality:Ljava/lang/String;\n-   #15 = Fieldref           #48.#116      // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.style:Ljava/lang/String;\n-   #16 = Fieldref           #48.#117      // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.user:Ljava/lang/String;\n-   #17 = Fieldref           #48.#118      // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.responseFormat:Ljava/lang/String;\n-   #18 = Fieldref           #48.#119      // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.timeout:Ljava/time/Duration;\n-   #19 = Fieldref           #48.#120      // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.maxRetries:Ljava/lang/Integer;\n-   #20 = Fieldref           #48.#121      // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.proxy:Ljava/net/Proxy;\n-   #21 = Fieldref           #48.#122      // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.logRequests:Ljava/lang/Boolean;\n-   #22 = Fieldref           #48.#123      // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.logResponses:Ljava/lang/Boolean;\n-   #23 = Fieldref           #48.#124      // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.persistTo:Ljava/nio/file/Path;\n-   #24 = Class              #125          // dev/langchain4j/model/openai/OpenAiImageModel\n-   #25 = Methodref          #24.#126      // dev/langchain4j/model/openai/OpenAiImageModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/nio/file/Path;)V\n-   #26 = Class              #127          // java/lang/StringBuilder\n-   #27 = Methodref          #26.#100      // java/lang/StringBuilder.\"<init>\":()V\n-   #28 = String             #128          // OpenAiImageModel.OpenAiImageModelBuilder(baseUrl=\n-   #29 = Methodref          #26.#129      // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #30 = String             #130          // , apiKey=\n-   #31 = String             #131          // , organizationId=\n-   #32 = String             #132          // , modelName=\n-   #33 = String             #133          // , size=\n-   #34 = String             #134          // , quality=\n-   #35 = String             #135          // , style=\n-   #36 = String             #136          // , user=\n-   #37 = String             #137          // , responseFormat=\n-   #38 = String             #138          // , timeout=\n-   #39 = Methodref          #26.#139      // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #40 = String             #140          // , maxRetries=\n-   #41 = String             #141          // , proxy=\n-   #42 = String             #142          // , logRequests=\n-   #43 = String             #143          // , logResponses=\n-   #44 = String             #144          // , withPersisting=\n-   #45 = String             #145          // , persistTo=\n-   #46 = String             #146          // )\n-   #47 = Methodref          #26.#103      // java/lang/StringBuilder.toString:()Ljava/lang/String;\n-   #48 = Class              #147          // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder\n-   #49 = Class              #148          // java/lang/Object\n-   #50 = Utf8               baseUrl\n-   #51 = Utf8               Ljava/lang/String;\n-   #52 = Utf8               apiKey\n-   #53 = Utf8               organizationId\n-   #54 = Utf8               modelName\n-   #55 = Utf8               size\n-   #56 = Utf8               quality\n-   #57 = Utf8               style\n-   #58 = Utf8               user\n-   #59 = Utf8               responseFormat\n-   #60 = Utf8               timeout\n-   #61 = Utf8               Ljava/time/Duration;\n-   #62 = Utf8               maxRetries\n-   #63 = Utf8               Ljava/lang/Integer;\n-   #64 = Utf8               proxy\n-   #65 = Utf8               Ljava/net/Proxy;\n-   #66 = Utf8               logRequests\n-   #67 = Utf8               Ljava/lang/Boolean;\n-   #68 = Utf8               logResponses\n-   #69 = Utf8               withPersisting\n-   #70 = Utf8               persistTo\n-   #71 = Utf8               Ljava/nio/file/Path;\n-   #72 = Utf8               <init>\n-   #73 = Utf8               ()V\n-   #74 = Utf8               Code\n-   #75 = Utf8               LineNumberTable\n-   #76 = Utf8               LocalVariableTable\n-   #77 = Utf8               this\n-   #78 = Utf8               OpenAiImageModelBuilder\n-   #79 = Utf8               InnerClasses\n-   #80 = Utf8               Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n-   #81 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n-   #82 = Utf8               (Ldev/langchain4j/model/openai/OpenAiImageModelName;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n-   #83 = Utf8               Ldev/langchain4j/model/openai/OpenAiImageModelName;\n-   #84 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n-   #85 = Utf8               (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n-   #86 = Utf8               StackMapTable\n-   #87 = Utf8               RuntimeInvisibleTypeAnnotations\n-   #88 = Utf8               Llombok/NonNull;\n-   #89 = Utf8               RuntimeInvisibleParameterAnnotations\n-   #90 = Utf8               (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n-   #91 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n-   #92 = Utf8               (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n-   #93 = Utf8               (Ljava/nio/file/Path;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n-   #94 = Utf8               build\n-   #95 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiImageModel;\n-   #96 = Utf8               toString\n-   #97 = Utf8               ()Ljava/lang/String;\n-   #98 = Utf8               SourceFile\n-   #99 = Utf8               OpenAiImageModel.java\n-  #100 = NameAndType        #72:#73       // \"<init>\":()V\n-  #101 = NameAndType        #54:#51       // modelName:Ljava/lang/String;\n-  #102 = Class              #149          // dev/langchain4j/model/openai/OpenAiImageModelName\n-  #103 = NameAndType        #96:#97       // toString:()Ljava/lang/String;\n-  #104 = Class              #150          // java/lang/Boolean\n-  #105 = NameAndType        #151:#152     // valueOf:(Z)Ljava/lang/Boolean;\n-  #106 = NameAndType        #69:#85       // withPersisting:(Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n-  #107 = NameAndType        #69:#67       // withPersisting:Ljava/lang/Boolean;\n-  #108 = NameAndType        #50:#51       // baseUrl:Ljava/lang/String;\n-  #109 = Utf8               java/lang/NullPointerException\n-  #110 = Utf8               apiKey is marked non-null but is null\n-  #111 = NameAndType        #72:#153      // \"<init>\":(Ljava/lang/String;)V\n-  #112 = NameAndType        #52:#51       // apiKey:Ljava/lang/String;\n-  #113 = NameAndType        #53:#51       // organizationId:Ljava/lang/String;\n-  #114 = NameAndType        #55:#51       // size:Ljava/lang/String;\n-  #115 = NameAndType        #56:#51       // quality:Ljava/lang/String;\n-  #116 = NameAndType        #57:#51       // style:Ljava/lang/String;\n-  #117 = NameAndType        #58:#51       // user:Ljava/lang/String;\n-  #118 = NameAndType        #59:#51       // responseFormat:Ljava/lang/String;\n-  #119 = NameAndType        #60:#61       // timeout:Ljava/time/Duration;\n-  #120 = NameAndType        #62:#63       // maxRetries:Ljava/lang/Integer;\n-  #121 = NameAndType        #64:#65       // proxy:Ljava/net/Proxy;\n-  #122 = NameAndType        #66:#67       // logRequests:Ljava/lang/Boolean;\n-  #123 = NameAndType        #68:#67       // logResponses:Ljava/lang/Boolean;\n-  #124 = NameAndType        #70:#71       // persistTo:Ljava/nio/file/Path;\n-  #125 = Utf8               dev/langchain4j/model/openai/OpenAiImageModel\n-  #126 = NameAndType        #72:#154      // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/nio/file/Path;)V\n-  #127 = Utf8               java/lang/StringBuilder\n-  #128 = Utf8               OpenAiImageModel.OpenAiImageModelBuilder(baseUrl=\n-  #129 = NameAndType        #155:#156     // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #130 = Utf8               , apiKey=\n-  #131 = Utf8               , organizationId=\n-  #132 = Utf8               , modelName=\n-  #133 = Utf8               , size=\n-  #134 = Utf8               , quality=\n-  #135 = Utf8               , style=\n-  #136 = Utf8               , user=\n-  #137 = Utf8               , responseFormat=\n-  #138 = Utf8               , timeout=\n-  #139 = NameAndType        #155:#157     // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-  #140 = Utf8               , maxRetries=\n-  #141 = Utf8               , proxy=\n-  #142 = Utf8               , logRequests=\n-  #143 = Utf8               , logResponses=\n-  #144 = Utf8               , withPersisting=\n-  #145 = Utf8               , persistTo=\n-  #146 = Utf8               )\n-  #147 = Utf8               dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder\n-  #148 = Utf8               java/lang/Object\n-  #149 = Utf8               dev/langchain4j/model/openai/OpenAiImageModelName\n-  #150 = Utf8               java/lang/Boolean\n-  #151 = Utf8               valueOf\n-  #152 = Utf8               (Z)Ljava/lang/Boolean;\n-  #153 = Utf8               (Ljava/lang/String;)V\n-  #154 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/nio/file/Path;)V\n-  #155 = Utf8               append\n-  #156 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #157 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Fieldref           #8.#9         // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.modelName:Ljava/lang/String;\n+    #8 = Class              #10           // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder\n+    #9 = NameAndType        #11:#12       // modelName:Ljava/lang/String;\n+   #10 = Utf8               dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder\n+   #11 = Utf8               modelName\n+   #12 = Utf8               Ljava/lang/String;\n+   #13 = Methodref          #14.#15       // dev/langchain4j/model/openai/OpenAiImageModelName.toString:()Ljava/lang/String;\n+   #14 = Class              #16           // dev/langchain4j/model/openai/OpenAiImageModelName\n+   #15 = NameAndType        #17:#18       // toString:()Ljava/lang/String;\n+   #16 = Utf8               dev/langchain4j/model/openai/OpenAiImageModelName\n+   #17 = Utf8               toString\n+   #18 = Utf8               ()Ljava/lang/String;\n+   #19 = Methodref          #20.#21       // java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;\n+   #20 = Class              #22           // java/lang/Boolean\n+   #21 = NameAndType        #23:#24       // valueOf:(Z)Ljava/lang/Boolean;\n+   #22 = Utf8               java/lang/Boolean\n+   #23 = Utf8               valueOf\n+   #24 = Utf8               (Z)Ljava/lang/Boolean;\n+   #25 = Methodref          #8.#26        // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.withPersisting:(Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n+   #26 = NameAndType        #27:#28       // withPersisting:(Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n+   #27 = Utf8               withPersisting\n+   #28 = Utf8               (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n+   #29 = Fieldref           #8.#30        // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.withPersisting:Ljava/lang/Boolean;\n+   #30 = NameAndType        #27:#31       // withPersisting:Ljava/lang/Boolean;\n+   #31 = Utf8               Ljava/lang/Boolean;\n+   #32 = Fieldref           #8.#33        // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.baseUrl:Ljava/lang/String;\n+   #33 = NameAndType        #34:#12       // baseUrl:Ljava/lang/String;\n+   #34 = Utf8               baseUrl\n+   #35 = Class              #36           // java/lang/NullPointerException\n+   #36 = Utf8               java/lang/NullPointerException\n+   #37 = String             #38           // apiKey is marked non-null but is null\n+   #38 = Utf8               apiKey is marked non-null but is null\n+   #39 = Methodref          #35.#40       // java/lang/NullPointerException.\"<init>\":(Ljava/lang/String;)V\n+   #40 = NameAndType        #5:#41        // \"<init>\":(Ljava/lang/String;)V\n+   #41 = Utf8               (Ljava/lang/String;)V\n+   #42 = Fieldref           #8.#43        // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.apiKey:Ljava/lang/String;\n+   #43 = NameAndType        #44:#12       // apiKey:Ljava/lang/String;\n+   #44 = Utf8               apiKey\n+   #45 = Fieldref           #8.#46        // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.organizationId:Ljava/lang/String;\n+   #46 = NameAndType        #47:#12       // organizationId:Ljava/lang/String;\n+   #47 = Utf8               organizationId\n+   #48 = Fieldref           #8.#49        // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.size:Ljava/lang/String;\n+   #49 = NameAndType        #50:#12       // size:Ljava/lang/String;\n+   #50 = Utf8               size\n+   #51 = Fieldref           #8.#52        // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.quality:Ljava/lang/String;\n+   #52 = NameAndType        #53:#12       // quality:Ljava/lang/String;\n+   #53 = Utf8               quality\n+   #54 = Fieldref           #8.#55        // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.style:Ljava/lang/String;\n+   #55 = NameAndType        #56:#12       // style:Ljava/lang/String;\n+   #56 = Utf8               style\n+   #57 = Fieldref           #8.#58        // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.user:Ljava/lang/String;\n+   #58 = NameAndType        #59:#12       // user:Ljava/lang/String;\n+   #59 = Utf8               user\n+   #60 = Fieldref           #8.#61        // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.responseFormat:Ljava/lang/String;\n+   #61 = NameAndType        #62:#12       // responseFormat:Ljava/lang/String;\n+   #62 = Utf8               responseFormat\n+   #63 = Fieldref           #8.#64        // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.timeout:Ljava/time/Duration;\n+   #64 = NameAndType        #65:#66       // timeout:Ljava/time/Duration;\n+   #65 = Utf8               timeout\n+   #66 = Utf8               Ljava/time/Duration;\n+   #67 = Fieldref           #8.#68        // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.maxRetries:Ljava/lang/Integer;\n+   #68 = NameAndType        #69:#70       // maxRetries:Ljava/lang/Integer;\n+   #69 = Utf8               maxRetries\n+   #70 = Utf8               Ljava/lang/Integer;\n+   #71 = Fieldref           #8.#72        // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.proxy:Ljava/net/Proxy;\n+   #72 = NameAndType        #73:#74       // proxy:Ljava/net/Proxy;\n+   #73 = Utf8               proxy\n+   #74 = Utf8               Ljava/net/Proxy;\n+   #75 = Fieldref           #8.#76        // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.logRequests:Ljava/lang/Boolean;\n+   #76 = NameAndType        #77:#31       // logRequests:Ljava/lang/Boolean;\n+   #77 = Utf8               logRequests\n+   #78 = Fieldref           #8.#79        // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.logResponses:Ljava/lang/Boolean;\n+   #79 = NameAndType        #80:#31       // logResponses:Ljava/lang/Boolean;\n+   #80 = Utf8               logResponses\n+   #81 = Fieldref           #8.#82        // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder.persistTo:Ljava/nio/file/Path;\n+   #82 = NameAndType        #83:#84       // persistTo:Ljava/nio/file/Path;\n+   #83 = Utf8               persistTo\n+   #84 = Utf8               Ljava/nio/file/Path;\n+   #85 = Class              #86           // dev/langchain4j/model/openai/OpenAiImageModel\n+   #86 = Utf8               dev/langchain4j/model/openai/OpenAiImageModel\n+   #87 = Methodref          #85.#88       // dev/langchain4j/model/openai/OpenAiImageModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/nio/file/Path;)V\n+   #88 = NameAndType        #5:#89        // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/nio/file/Path;)V\n+   #89 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/nio/file/Path;)V\n+   #90 = Class              #91           // java/lang/StringBuilder\n+   #91 = Utf8               java/lang/StringBuilder\n+   #92 = Methodref          #90.#3        // java/lang/StringBuilder.\"<init>\":()V\n+   #93 = String             #94           // OpenAiImageModel.OpenAiImageModelBuilder(baseUrl=\n+   #94 = Utf8               OpenAiImageModel.OpenAiImageModelBuilder(baseUrl=\n+   #95 = Methodref          #90.#96       // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #96 = NameAndType        #97:#98       // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #97 = Utf8               append\n+   #98 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #99 = String             #100          // , apiKey=\n+  #100 = Utf8               , apiKey=\n+  #101 = String             #102          // , organizationId=\n+  #102 = Utf8               , organizationId=\n+  #103 = String             #104          // , modelName=\n+  #104 = Utf8               , modelName=\n+  #105 = String             #106          // , size=\n+  #106 = Utf8               , size=\n+  #107 = String             #108          // , quality=\n+  #108 = Utf8               , quality=\n+  #109 = String             #110          // , style=\n+  #110 = Utf8               , style=\n+  #111 = String             #112          // , user=\n+  #112 = Utf8               , user=\n+  #113 = String             #114          // , responseFormat=\n+  #114 = Utf8               , responseFormat=\n+  #115 = String             #116          // , timeout=\n+  #116 = Utf8               , timeout=\n+  #117 = Methodref          #90.#118      // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+  #118 = NameAndType        #97:#119      // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+  #119 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+  #120 = String             #121          // , maxRetries=\n+  #121 = Utf8               , maxRetries=\n+  #122 = String             #123          // , proxy=\n+  #123 = Utf8               , proxy=\n+  #124 = String             #125          // , logRequests=\n+  #125 = Utf8               , logRequests=\n+  #126 = String             #127          // , logResponses=\n+  #127 = Utf8               , logResponses=\n+  #128 = String             #129          // , withPersisting=\n+  #129 = Utf8               , withPersisting=\n+  #130 = String             #131          // , persistTo=\n+  #131 = Utf8               , persistTo=\n+  #132 = String             #133          // )\n+  #133 = Utf8               )\n+  #134 = Methodref          #90.#15       // java/lang/StringBuilder.toString:()Ljava/lang/String;\n+  #135 = Utf8               Code\n+  #136 = Utf8               LineNumberTable\n+  #137 = Utf8               LocalVariableTable\n+  #138 = Utf8               this\n+  #139 = Utf8               Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n+  #140 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n+  #141 = Utf8               (Ldev/langchain4j/model/openai/OpenAiImageModelName;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n+  #142 = Utf8               Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+  #143 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n+  #144 = Utf8               StackMapTable\n+  #145 = Utf8               RuntimeInvisibleTypeAnnotations\n+  #146 = Utf8               Llombok/NonNull;\n+  #147 = Utf8               RuntimeInvisibleParameterAnnotations\n+  #148 = Utf8               (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n+  #149 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n+  #150 = Utf8               (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n+  #151 = Utf8               (Ljava/nio/file/Path;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n+  #152 = Utf8               build\n+  #153 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiImageModel;\n+  #154 = Utf8               SourceFile\n+  #155 = Utf8               OpenAiImageModel.java\n+  #156 = Utf8               InnerClasses\n+  #157 = Utf8               OpenAiImageModelBuilder\n {\n   private java.lang.String baseUrl;\n     descriptor: Ljava/lang/String;\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.lang.String apiKey;\n     descriptor: Ljava/lang/String;\n@@ -248,15 +248,15 @@\n   public dev.langchain4j.model.openai.OpenAiImageModel$OpenAiImageModelBuilder modelName(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #2                  // Field modelName:Ljava/lang/String;\n+         2: putfield      #7                  // Field modelName:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 139: 0\n         line 140: 5\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -266,16 +266,16 @@\n   public dev.langchain4j.model.openai.OpenAiImageModel$OpenAiImageModelBuilder modelName(dev.langchain4j.model.openai.OpenAiImageModelName);\n     descriptor: (Ldev/langchain4j/model/openai/OpenAiImageModelName;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokevirtual #3                  // Method dev/langchain4j/model/openai/OpenAiImageModelName.toString:()Ljava/lang/String;\n-         5: putfield      #2                  // Field modelName:Ljava/lang/String;\n+         2: invokevirtual #13                 // Method dev/langchain4j/model/openai/OpenAiImageModelName.toString:()Ljava/lang/String;\n+         5: putfield      #7                  // Field modelName:Ljava/lang/String;\n          8: aload_0\n          9: areturn\n       LineNumberTable:\n         line 144: 0\n         line 145: 8\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -285,31 +285,31 @@\n   public dev.langchain4j.model.openai.OpenAiImageModel$OpenAiImageModelBuilder withPersisting();\n     descriptor: ()Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n          1: iconst_1\n-         2: invokestatic  #4                  // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;\n-         5: invokevirtual #5                  // Method withPersisting:(Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n+         2: invokestatic  #19                 // Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;\n+         5: invokevirtual #25                 // Method withPersisting:(Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n          8: areturn\n       LineNumberTable:\n         line 149: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       9     0  this   Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n \n   public dev.langchain4j.model.openai.OpenAiImageModel$OpenAiImageModelBuilder withPersisting(java.lang.Boolean);\n     descriptor: (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #6                  // Field withPersisting:Ljava/lang/Boolean;\n+         2: putfield      #29                 // Field withPersisting:Ljava/lang/Boolean;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 153: 0\n         line 154: 5\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -319,15 +319,15 @@\n   public dev.langchain4j.model.openai.OpenAiImageModel$OpenAiImageModelBuilder baseUrl(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #7                  // Field baseUrl:Ljava/lang/String;\n+         2: putfield      #32                 // Field baseUrl:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 54: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n@@ -336,48 +336,48 @@\n   public dev.langchain4j.model.openai.OpenAiImageModel$OpenAiImageModelBuilder apiKey(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=2\n          0: aload_1\n          1: ifnonnull     14\n-         4: new           #8                  // class java/lang/NullPointerException\n+         4: new           #35                 // class java/lang/NullPointerException\n          7: dup\n-         8: ldc           #9                  // String apiKey is marked non-null but is null\n-        10: invokespecial #10                 // Method java/lang/NullPointerException.\"<init>\":(Ljava/lang/String;)V\n+         8: ldc           #37                 // String apiKey is marked non-null but is null\n+        10: invokespecial #39                 // Method java/lang/NullPointerException.\"<init>\":(Ljava/lang/String;)V\n         13: athrow\n         14: aload_0\n         15: aload_1\n-        16: putfield      #11                 // Field apiKey:Ljava/lang/String;\n+        16: putfield      #42                 // Field apiKey:Ljava/lang/String;\n         19: aload_0\n         20: areturn\n       LineNumberTable:\n         line 54: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      21     0  this   Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n             0      21     1 apiKey   Ljava/lang/String;\n       StackMapTable: number_of_entries = 1\n         frame_type = 14 /* same */\n     RuntimeInvisibleTypeAnnotations:\n-      0: #88(): METHOD_FORMAL_PARAMETER, param_index=0\n+      0: #146(): METHOD_FORMAL_PARAMETER, param_index=0\n         lombok.NonNull\n     RuntimeInvisibleParameterAnnotations:\n       parameter 0:\n-        0: #88()\n+        0: #146()\n           lombok.NonNull\n \n   public dev.langchain4j.model.openai.OpenAiImageModel$OpenAiImageModelBuilder organizationId(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #12                 // Field organizationId:Ljava/lang/String;\n+         2: putfield      #45                 // Field organizationId:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 54: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n@@ -386,15 +386,15 @@\n   public dev.langchain4j.model.openai.OpenAiImageModel$OpenAiImageModelBuilder size(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #13                 // Field size:Ljava/lang/String;\n+         2: putfield      #48                 // Field size:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 54: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n@@ -403,15 +403,15 @@\n   public dev.langchain4j.model.openai.OpenAiImageModel$OpenAiImageModelBuilder quality(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #14                 // Field quality:Ljava/lang/String;\n+         2: putfield      #51                 // Field quality:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 54: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n@@ -420,15 +420,15 @@\n   public dev.langchain4j.model.openai.OpenAiImageModel$OpenAiImageModelBuilder style(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #15                 // Field style:Ljava/lang/String;\n+         2: putfield      #54                 // Field style:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 54: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n@@ -437,15 +437,15 @@\n   public dev.langchain4j.model.openai.OpenAiImageModel$OpenAiImageModelBuilder user(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #16                 // Field user:Ljava/lang/String;\n+         2: putfield      #57                 // Field user:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 54: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n@@ -454,15 +454,15 @@\n   public dev.langchain4j.model.openai.OpenAiImageModel$OpenAiImageModelBuilder responseFormat(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #17                 // Field responseFormat:Ljava/lang/String;\n+         2: putfield      #60                 // Field responseFormat:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 54: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n@@ -471,15 +471,15 @@\n   public dev.langchain4j.model.openai.OpenAiImageModel$OpenAiImageModelBuilder timeout(java.time.Duration);\n     descriptor: (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #18                 // Field timeout:Ljava/time/Duration;\n+         2: putfield      #63                 // Field timeout:Ljava/time/Duration;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 54: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n@@ -488,15 +488,15 @@\n   public dev.langchain4j.model.openai.OpenAiImageModel$OpenAiImageModelBuilder maxRetries(java.lang.Integer);\n     descriptor: (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #19                 // Field maxRetries:Ljava/lang/Integer;\n+         2: putfield      #67                 // Field maxRetries:Ljava/lang/Integer;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 54: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n@@ -505,15 +505,15 @@\n   public dev.langchain4j.model.openai.OpenAiImageModel$OpenAiImageModelBuilder proxy(java.net.Proxy);\n     descriptor: (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #20                 // Field proxy:Ljava/net/Proxy;\n+         2: putfield      #71                 // Field proxy:Ljava/net/Proxy;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 54: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n@@ -522,15 +522,15 @@\n   public dev.langchain4j.model.openai.OpenAiImageModel$OpenAiImageModelBuilder logRequests(java.lang.Boolean);\n     descriptor: (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #21                 // Field logRequests:Ljava/lang/Boolean;\n+         2: putfield      #75                 // Field logRequests:Ljava/lang/Boolean;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 54: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n@@ -539,15 +539,15 @@\n   public dev.langchain4j.model.openai.OpenAiImageModel$OpenAiImageModelBuilder logResponses(java.lang.Boolean);\n     descriptor: (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #22                 // Field logResponses:Ljava/lang/Boolean;\n+         2: putfield      #78                 // Field logResponses:Ljava/lang/Boolean;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 54: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n@@ -556,165 +556,165 @@\n   public dev.langchain4j.model.openai.OpenAiImageModel$OpenAiImageModelBuilder persistTo(java.nio.file.Path);\n     descriptor: (Ljava/nio/file/Path;)Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #23                 // Field persistTo:Ljava/nio/file/Path;\n+         2: putfield      #81                 // Field persistTo:Ljava/nio/file/Path;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 54: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n             0       7     1 persistTo   Ljava/nio/file/Path;\n \n   public dev.langchain4j.model.openai.OpenAiImageModel build();\n     descriptor: ()Ldev/langchain4j/model/openai/OpenAiImageModel;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=18, locals=1, args_size=1\n-         0: new           #24                 // class dev/langchain4j/model/openai/OpenAiImageModel\n+         0: new           #85                 // class dev/langchain4j/model/openai/OpenAiImageModel\n          3: dup\n          4: aload_0\n-         5: getfield      #7                  // Field baseUrl:Ljava/lang/String;\n+         5: getfield      #32                 // Field baseUrl:Ljava/lang/String;\n          8: aload_0\n-         9: getfield      #11                 // Field apiKey:Ljava/lang/String;\n+         9: getfield      #42                 // Field apiKey:Ljava/lang/String;\n         12: aload_0\n-        13: getfield      #12                 // Field organizationId:Ljava/lang/String;\n+        13: getfield      #45                 // Field organizationId:Ljava/lang/String;\n         16: aload_0\n-        17: getfield      #2                  // Field modelName:Ljava/lang/String;\n+        17: getfield      #7                  // Field modelName:Ljava/lang/String;\n         20: aload_0\n-        21: getfield      #13                 // Field size:Ljava/lang/String;\n+        21: getfield      #48                 // Field size:Ljava/lang/String;\n         24: aload_0\n-        25: getfield      #14                 // Field quality:Ljava/lang/String;\n+        25: getfield      #51                 // Field quality:Ljava/lang/String;\n         28: aload_0\n-        29: getfield      #15                 // Field style:Ljava/lang/String;\n+        29: getfield      #54                 // Field style:Ljava/lang/String;\n         32: aload_0\n-        33: getfield      #16                 // Field user:Ljava/lang/String;\n+        33: getfield      #57                 // Field user:Ljava/lang/String;\n         36: aload_0\n-        37: getfield      #17                 // Field responseFormat:Ljava/lang/String;\n+        37: getfield      #60                 // Field responseFormat:Ljava/lang/String;\n         40: aload_0\n-        41: getfield      #18                 // Field timeout:Ljava/time/Duration;\n+        41: getfield      #63                 // Field timeout:Ljava/time/Duration;\n         44: aload_0\n-        45: getfield      #19                 // Field maxRetries:Ljava/lang/Integer;\n+        45: getfield      #67                 // Field maxRetries:Ljava/lang/Integer;\n         48: aload_0\n-        49: getfield      #20                 // Field proxy:Ljava/net/Proxy;\n+        49: getfield      #71                 // Field proxy:Ljava/net/Proxy;\n         52: aload_0\n-        53: getfield      #21                 // Field logRequests:Ljava/lang/Boolean;\n+        53: getfield      #75                 // Field logRequests:Ljava/lang/Boolean;\n         56: aload_0\n-        57: getfield      #22                 // Field logResponses:Ljava/lang/Boolean;\n+        57: getfield      #78                 // Field logResponses:Ljava/lang/Boolean;\n         60: aload_0\n-        61: getfield      #6                  // Field withPersisting:Ljava/lang/Boolean;\n+        61: getfield      #29                 // Field withPersisting:Ljava/lang/Boolean;\n         64: aload_0\n-        65: getfield      #23                 // Field persistTo:Ljava/nio/file/Path;\n-        68: invokespecial #25                 // Method dev/langchain4j/model/openai/OpenAiImageModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/nio/file/Path;)V\n+        65: getfield      #81                 // Field persistTo:Ljava/nio/file/Path;\n+        68: invokespecial #87                 // Method dev/langchain4j/model/openai/OpenAiImageModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/lang/Boolean;Ljava/nio/file/Path;)V\n         71: areturn\n       LineNumberTable:\n         line 54: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      72     0  this   Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n \n   public java.lang.String toString();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: new           #26                 // class java/lang/StringBuilder\n+         0: new           #90                 // class java/lang/StringBuilder\n          3: dup\n-         4: invokespecial #27                 // Method java/lang/StringBuilder.\"<init>\":()V\n-         7: ldc           #28                 // String OpenAiImageModel.OpenAiImageModelBuilder(baseUrl=\n-         9: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+         4: invokespecial #92                 // Method java/lang/StringBuilder.\"<init>\":()V\n+         7: ldc           #93                 // String OpenAiImageModel.OpenAiImageModelBuilder(baseUrl=\n+         9: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         12: aload_0\n-        13: getfield      #7                  // Field baseUrl:Ljava/lang/String;\n-        16: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        19: ldc           #30                 // String , apiKey=\n-        21: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        13: getfield      #32                 // Field baseUrl:Ljava/lang/String;\n+        16: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        19: ldc           #99                 // String , apiKey=\n+        21: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         24: aload_0\n-        25: getfield      #11                 // Field apiKey:Ljava/lang/String;\n-        28: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        31: ldc           #31                 // String , organizationId=\n-        33: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        25: getfield      #42                 // Field apiKey:Ljava/lang/String;\n+        28: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        31: ldc           #101                // String , organizationId=\n+        33: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         36: aload_0\n-        37: getfield      #12                 // Field organizationId:Ljava/lang/String;\n-        40: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        43: ldc           #32                 // String , modelName=\n-        45: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        37: getfield      #45                 // Field organizationId:Ljava/lang/String;\n+        40: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        43: ldc           #103                // String , modelName=\n+        45: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         48: aload_0\n-        49: getfield      #2                  // Field modelName:Ljava/lang/String;\n-        52: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        55: ldc           #33                 // String , size=\n-        57: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        49: getfield      #7                  // Field modelName:Ljava/lang/String;\n+        52: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        55: ldc           #105                // String , size=\n+        57: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         60: aload_0\n-        61: getfield      #13                 // Field size:Ljava/lang/String;\n-        64: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        67: ldc           #34                 // String , quality=\n-        69: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        61: getfield      #48                 // Field size:Ljava/lang/String;\n+        64: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        67: ldc           #107                // String , quality=\n+        69: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         72: aload_0\n-        73: getfield      #14                 // Field quality:Ljava/lang/String;\n-        76: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        79: ldc           #35                 // String , style=\n-        81: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        73: getfield      #51                 // Field quality:Ljava/lang/String;\n+        76: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        79: ldc           #109                // String , style=\n+        81: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         84: aload_0\n-        85: getfield      #15                 // Field style:Ljava/lang/String;\n-        88: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        91: ldc           #36                 // String , user=\n-        93: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        85: getfield      #54                 // Field style:Ljava/lang/String;\n+        88: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        91: ldc           #111                // String , user=\n+        93: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         96: aload_0\n-        97: getfield      #16                 // Field user:Ljava/lang/String;\n-       100: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-       103: ldc           #37                 // String , responseFormat=\n-       105: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        97: getfield      #57                 // Field user:Ljava/lang/String;\n+       100: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       103: ldc           #113                // String , responseFormat=\n+       105: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        108: aload_0\n-       109: getfield      #17                 // Field responseFormat:Ljava/lang/String;\n-       112: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-       115: ldc           #38                 // String , timeout=\n-       117: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       109: getfield      #60                 // Field responseFormat:Ljava/lang/String;\n+       112: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       115: ldc           #115                // String , timeout=\n+       117: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        120: aload_0\n-       121: getfield      #18                 // Field timeout:Ljava/time/Duration;\n-       124: invokevirtual #39                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       127: ldc           #40                 // String , maxRetries=\n-       129: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       121: getfield      #63                 // Field timeout:Ljava/time/Duration;\n+       124: invokevirtual #117                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       127: ldc           #120                // String , maxRetries=\n+       129: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        132: aload_0\n-       133: getfield      #19                 // Field maxRetries:Ljava/lang/Integer;\n-       136: invokevirtual #39                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       139: ldc           #41                 // String , proxy=\n-       141: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       133: getfield      #67                 // Field maxRetries:Ljava/lang/Integer;\n+       136: invokevirtual #117                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       139: ldc           #122                // String , proxy=\n+       141: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        144: aload_0\n-       145: getfield      #20                 // Field proxy:Ljava/net/Proxy;\n-       148: invokevirtual #39                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       151: ldc           #42                 // String , logRequests=\n-       153: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       145: getfield      #71                 // Field proxy:Ljava/net/Proxy;\n+       148: invokevirtual #117                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       151: ldc           #124                // String , logRequests=\n+       153: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        156: aload_0\n-       157: getfield      #21                 // Field logRequests:Ljava/lang/Boolean;\n-       160: invokevirtual #39                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       163: ldc           #43                 // String , logResponses=\n-       165: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       157: getfield      #75                 // Field logRequests:Ljava/lang/Boolean;\n+       160: invokevirtual #117                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       163: ldc           #126                // String , logResponses=\n+       165: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        168: aload_0\n-       169: getfield      #22                 // Field logResponses:Ljava/lang/Boolean;\n-       172: invokevirtual #39                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       175: ldc           #44                 // String , withPersisting=\n-       177: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       169: getfield      #78                 // Field logResponses:Ljava/lang/Boolean;\n+       172: invokevirtual #117                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       175: ldc           #128                // String , withPersisting=\n+       177: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        180: aload_0\n-       181: getfield      #6                  // Field withPersisting:Ljava/lang/Boolean;\n-       184: invokevirtual #39                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       187: ldc           #45                 // String , persistTo=\n-       189: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       181: getfield      #29                 // Field withPersisting:Ljava/lang/Boolean;\n+       184: invokevirtual #117                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       187: ldc           #130                // String , persistTo=\n+       189: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        192: aload_0\n-       193: getfield      #23                 // Field persistTo:Ljava/nio/file/Path;\n-       196: invokevirtual #39                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       199: ldc           #46                 // String )\n-       201: invokevirtual #29                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-       204: invokevirtual #47                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+       193: getfield      #81                 // Field persistTo:Ljava/nio/file/Path;\n+       196: invokevirtual #117                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       199: ldc           #132                // String )\n+       201: invokevirtual #95                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       204: invokevirtual #134                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n        207: areturn\n       LineNumberTable:\n         line 54: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     208     0  this   Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;\n }\n SourceFile: \"OpenAiImageModel.java\"\n InnerClasses:\n-  public static #78= #48 of #24;          // OpenAiImageModelBuilder=class dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder of class dev/langchain4j/model/openai/OpenAiImageModel\n+  public static #157= #8 of #85;          // OpenAiImageModelBuilder=class dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder of class dev/langchain4j/model/openai/OpenAiImageModel\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiImageModel.class", "source2": "dev/langchain4j/model/openai/OpenAiImageModel.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -57,15 +57,15 @@\n         final GenerateImagesResponse response = (GenerateImagesResponse)((SyncOrAsync)RetryUtils.withRetry(() -> this.client.imagesGeneration(request), (int)this.maxRetries)).execute();\n         return (Response<Image>)Response.from((Object)fromImageData(response.data().get(0)));\n     }\n     \n     public Response<List<Image>> generate(final String prompt, final int n) {\n         final GenerateImagesRequest request = this.requestBuilder(prompt).n(n).build();\n         final GenerateImagesResponse response = (GenerateImagesResponse)((SyncOrAsync)RetryUtils.withRetry(() -> this.client.imagesGeneration(request), (int)this.maxRetries)).execute();\n-        return (Response<List<Image>>)Response.from(response.data().stream().map(OpenAiImageModel::fromImageData).collect((Collector)Collectors.toList()));\n+        return (Response<List<Image>>)Response.from((Object)response.data().stream().map(OpenAiImageModel::fromImageData).collect(Collectors.toList()));\n     }\n     \n     public static OpenAiImageModel.OpenAiImageModelBuilder builder() {\n         return (OpenAiImageModel.OpenAiImageModelBuilder)ServiceHelper.loadFactoryService((Class)OpenAiImageModelBuilderFactory.class, (Supplier)OpenAiImageModel.OpenAiImageModelBuilder::new);\n     }\n     \n     public static OpenAiImageModel withApiKey(final String apiKey) {\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiImageModelName.class", "source2": "dev/langchain4j/model/openai/OpenAiImageModelName.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,76 +1,78 @@\n-  SHA-256 checksum d033c2d906da3f12e831708281cd8a4915a7557e592c51f5aaae42a2897c17ba\n+  SHA-256 checksum da85f740912ae84f620c2f4892190a5ad9d3cff81a7cf0d71d5d044af515d4db\n   Compiled from \"OpenAiImageModelName.java\"\n public final class dev.langchain4j.model.openai.OpenAiImageModelName extends java.lang.Enum<dev.langchain4j.model.openai.OpenAiImageModelName>\n   minor version: 0\n   major version: 52\n   flags: (0x4031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ENUM\n-  this_class: #4                          // dev/langchain4j/model/openai/OpenAiImageModelName\n-  super_class: #15                        // java/lang/Enum\n-  interfaces: 0, fields: 4, methods: 5, attributes: 2\n+  this_class: #1                          // dev/langchain4j/model/openai/OpenAiImageModelName\n+  super_class: #20                        // java/lang/Enum\n+  interfaces: 0, fields: 4, methods: 6, attributes: 2\n Constant pool:\n-   #1 = Fieldref           #4.#43         // dev/langchain4j/model/openai/OpenAiImageModelName.$VALUES:[Ldev/langchain4j/model/openai/OpenAiImageModelName;\n-   #2 = Methodref          #44.#45        // \"[Ldev/langchain4j/model/openai/OpenAiImageModelName;\".clone:()Ljava/lang/Object;\n-   #3 = Class              #22            // \"[Ldev/langchain4j/model/openai/OpenAiImageModelName;\"\n-   #4 = Class              #46            // dev/langchain4j/model/openai/OpenAiImageModelName\n-   #5 = Methodref          #15.#47        // java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n-   #6 = Methodref          #15.#48        // java/lang/Enum.\"<init>\":(Ljava/lang/String;I)V\n-   #7 = Fieldref           #4.#49         // dev/langchain4j/model/openai/OpenAiImageModelName.stringValue:Ljava/lang/String;\n-   #8 = String             #16            // DALL_E_2\n-   #9 = String             #50            // dall-e-2\n-  #10 = Methodref          #4.#51         // dev/langchain4j/model/openai/OpenAiImageModelName.\"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-  #11 = Fieldref           #4.#52         // dev/langchain4j/model/openai/OpenAiImageModelName.DALL_E_2:Ldev/langchain4j/model/openai/OpenAiImageModelName;\n-  #12 = String             #18            // DALL_E_3\n-  #13 = String             #53            // dall-e-3\n-  #14 = Fieldref           #4.#54         // dev/langchain4j/model/openai/OpenAiImageModelName.DALL_E_3:Ldev/langchain4j/model/openai/OpenAiImageModelName;\n-  #15 = Class              #55            // java/lang/Enum\n-  #16 = Utf8               DALL_E_2\n-  #17 = Utf8               Ldev/langchain4j/model/openai/OpenAiImageModelName;\n-  #18 = Utf8               DALL_E_3\n-  #19 = Utf8               stringValue\n-  #20 = Utf8               Ljava/lang/String;\n-  #21 = Utf8               $VALUES\n-  #22 = Utf8               [Ldev/langchain4j/model/openai/OpenAiImageModelName;\n-  #23 = Utf8               values\n-  #24 = Utf8               ()[Ldev/langchain4j/model/openai/OpenAiImageModelName;\n-  #25 = Utf8               Code\n-  #26 = Utf8               LineNumberTable\n-  #27 = Utf8               valueOf\n-  #28 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiImageModelName;\n-  #29 = Utf8               LocalVariableTable\n-  #30 = Utf8               name\n-  #31 = Utf8               <init>\n-  #32 = Utf8               (Ljava/lang/String;ILjava/lang/String;)V\n-  #33 = Utf8               this\n-  #34 = Utf8               Signature\n-  #35 = Utf8               (Ljava/lang/String;)V\n-  #36 = Utf8               toString\n-  #37 = Utf8               ()Ljava/lang/String;\n-  #38 = Utf8               <clinit>\n-  #39 = Utf8               ()V\n-  #40 = Utf8               Ljava/lang/Enum<Ldev/langchain4j/model/openai/OpenAiImageModelName;>;\n-  #41 = Utf8               SourceFile\n-  #42 = Utf8               OpenAiImageModelName.java\n-  #43 = NameAndType        #21:#22        // $VALUES:[Ldev/langchain4j/model/openai/OpenAiImageModelName;\n-  #44 = Class              #22            // \"[Ldev/langchain4j/model/openai/OpenAiImageModelName;\"\n-  #45 = NameAndType        #56:#57        // clone:()Ljava/lang/Object;\n-  #46 = Utf8               dev/langchain4j/model/openai/OpenAiImageModelName\n-  #47 = NameAndType        #27:#58        // valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n-  #48 = NameAndType        #31:#59        // \"<init>\":(Ljava/lang/String;I)V\n-  #49 = NameAndType        #19:#20        // stringValue:Ljava/lang/String;\n-  #50 = Utf8               dall-e-2\n-  #51 = NameAndType        #31:#32        // \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-  #52 = NameAndType        #16:#17        // DALL_E_2:Ldev/langchain4j/model/openai/OpenAiImageModelName;\n-  #53 = Utf8               dall-e-3\n-  #54 = NameAndType        #18:#17        // DALL_E_3:Ldev/langchain4j/model/openai/OpenAiImageModelName;\n-  #55 = Utf8               java/lang/Enum\n-  #56 = Utf8               clone\n-  #57 = Utf8               ()Ljava/lang/Object;\n-  #58 = Utf8               (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n-  #59 = Utf8               (Ljava/lang/String;I)V\n+   #1 = Class              #2             // dev/langchain4j/model/openai/OpenAiImageModelName\n+   #2 = Utf8               dev/langchain4j/model/openai/OpenAiImageModelName\n+   #3 = Fieldref           #1.#4          // dev/langchain4j/model/openai/OpenAiImageModelName.DALL_E_2:Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+   #4 = NameAndType        #5:#6          // DALL_E_2:Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+   #5 = Utf8               DALL_E_2\n+   #6 = Utf8               Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+   #7 = Fieldref           #1.#8          // dev/langchain4j/model/openai/OpenAiImageModelName.DALL_E_3:Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+   #8 = NameAndType        #9:#6          // DALL_E_3:Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+   #9 = Utf8               DALL_E_3\n+  #10 = Fieldref           #1.#11         // dev/langchain4j/model/openai/OpenAiImageModelName.$VALUES:[Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+  #11 = NameAndType        #12:#13        // $VALUES:[Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+  #12 = Utf8               $VALUES\n+  #13 = Utf8               [Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+  #14 = Methodref          #15.#16        // \"[Ldev/langchain4j/model/openai/OpenAiImageModelName;\".clone:()Ljava/lang/Object;\n+  #15 = Class              #13            // \"[Ldev/langchain4j/model/openai/OpenAiImageModelName;\"\n+  #16 = NameAndType        #17:#18        // clone:()Ljava/lang/Object;\n+  #17 = Utf8               clone\n+  #18 = Utf8               ()Ljava/lang/Object;\n+  #19 = Methodref          #20.#21        // java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n+  #20 = Class              #22            // java/lang/Enum\n+  #21 = NameAndType        #23:#24        // valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n+  #22 = Utf8               java/lang/Enum\n+  #23 = Utf8               valueOf\n+  #24 = Utf8               (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n+  #25 = Methodref          #20.#26        // java/lang/Enum.\"<init>\":(Ljava/lang/String;I)V\n+  #26 = NameAndType        #27:#28        // \"<init>\":(Ljava/lang/String;I)V\n+  #27 = Utf8               <init>\n+  #28 = Utf8               (Ljava/lang/String;I)V\n+  #29 = Fieldref           #1.#30         // dev/langchain4j/model/openai/OpenAiImageModelName.stringValue:Ljava/lang/String;\n+  #30 = NameAndType        #31:#32        // stringValue:Ljava/lang/String;\n+  #31 = Utf8               stringValue\n+  #32 = Utf8               Ljava/lang/String;\n+  #33 = String             #5             // DALL_E_2\n+  #34 = String             #35            // dall-e-2\n+  #35 = Utf8               dall-e-2\n+  #36 = Methodref          #1.#37         // dev/langchain4j/model/openai/OpenAiImageModelName.\"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+  #37 = NameAndType        #27:#38        // \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+  #38 = Utf8               (Ljava/lang/String;ILjava/lang/String;)V\n+  #39 = String             #9             // DALL_E_3\n+  #40 = String             #41            // dall-e-3\n+  #41 = Utf8               dall-e-3\n+  #42 = Methodref          #1.#43         // dev/langchain4j/model/openai/OpenAiImageModelName.$values:()[Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+  #43 = NameAndType        #44:#45        // $values:()[Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+  #44 = Utf8               $values\n+  #45 = Utf8               ()[Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+  #46 = Utf8               values\n+  #47 = Utf8               Code\n+  #48 = Utf8               LineNumberTable\n+  #49 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+  #50 = Utf8               LocalVariableTable\n+  #51 = Utf8               name\n+  #52 = Utf8               this\n+  #53 = Utf8               Signature\n+  #54 = Utf8               (Ljava/lang/String;)V\n+  #55 = Utf8               toString\n+  #56 = Utf8               ()Ljava/lang/String;\n+  #57 = Utf8               <clinit>\n+  #58 = Utf8               ()V\n+  #59 = Utf8               Ljava/lang/Enum<Ldev/langchain4j/model/openai/OpenAiImageModelName;>;\n+  #60 = Utf8               SourceFile\n+  #61 = Utf8               OpenAiImageModelName.java\n {\n   public static final dev.langchain4j.model.openai.OpenAiImageModelName DALL_E_2;\n     descriptor: Ldev/langchain4j/model/openai/OpenAiImageModelName;\n     flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM\n \n   public static final dev.langchain4j.model.openai.OpenAiImageModelName DALL_E_3;\n     descriptor: Ldev/langchain4j/model/openai/OpenAiImageModelName;\n@@ -85,30 +87,30 @@\n     flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC\n \n   public static dev.langchain4j.model.openai.OpenAiImageModelName[] values();\n     descriptor: ()[Ldev/langchain4j/model/openai/OpenAiImageModelName;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: getstatic     #1                  // Field $VALUES:[Ldev/langchain4j/model/openai/OpenAiImageModelName;\n-         3: invokevirtual #2                  // Method \"[Ldev/langchain4j/model/openai/OpenAiImageModelName;\".clone:()Ljava/lang/Object;\n-         6: checkcast     #3                  // class \"[Ldev/langchain4j/model/openai/OpenAiImageModelName;\"\n+         0: getstatic     #10                 // Field $VALUES:[Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+         3: invokevirtual #14                 // Method \"[Ldev/langchain4j/model/openai/OpenAiImageModelName;\".clone:()Ljava/lang/Object;\n+         6: checkcast     #15                 // class \"[Ldev/langchain4j/model/openai/OpenAiImageModelName;\"\n          9: areturn\n       LineNumberTable:\n         line 3: 0\n \n   public static dev.langchain4j.model.openai.OpenAiImageModelName valueOf(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiImageModelName;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: ldc           #4                  // class dev/langchain4j/model/openai/OpenAiImageModelName\n+         0: ldc           #1                  // class dev/langchain4j/model/openai/OpenAiImageModelName\n          2: aload_0\n-         3: invokestatic  #5                  // Method java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n-         6: checkcast     #4                  // class dev/langchain4j/model/openai/OpenAiImageModelName\n+         3: invokestatic  #19                 // Method java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n+         6: checkcast     #1                  // class dev/langchain4j/model/openai/OpenAiImageModelName\n          9: areturn\n       LineNumberTable:\n         line 3: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  name   Ljava/lang/String;\n \n@@ -116,74 +118,84 @@\n     descriptor: (Ljava/lang/String;ILjava/lang/String;)V\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=3, locals=4, args_size=4\n          0: aload_0\n          1: aload_1\n          2: iload_2\n-         3: invokespecial #6                  // Method java/lang/Enum.\"<init>\":(Ljava/lang/String;I)V\n+         3: invokespecial #25                 // Method java/lang/Enum.\"<init>\":(Ljava/lang/String;I)V\n          6: aload_0\n          7: aload_3\n-         8: putfield      #7                  // Field stringValue:Ljava/lang/String;\n+         8: putfield      #29                 // Field stringValue:Ljava/lang/String;\n         11: return\n       LineNumberTable:\n         line 10: 0\n         line 11: 6\n         line 12: 11\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      12     0  this   Ldev/langchain4j/model/openai/OpenAiImageModelName;\n             0      12     3 stringValue   Ljava/lang/String;\n-    Signature: #35                          // (Ljava/lang/String;)V\n+    Signature: #54                          // (Ljava/lang/String;)V\n \n   public java.lang.String toString();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #7                  // Field stringValue:Ljava/lang/String;\n+         1: getfield      #29                 // Field stringValue:Ljava/lang/String;\n          4: areturn\n       LineNumberTable:\n         line 16: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/model/openai/OpenAiImageModelName;\n \n+  private static dev.langchain4j.model.openai.OpenAiImageModelName[] $values();\n+    descriptor: ()[Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n+    Code:\n+      stack=4, locals=0, args_size=0\n+         0: iconst_2\n+         1: anewarray     #1                  // class dev/langchain4j/model/openai/OpenAiImageModelName\n+         4: dup\n+         5: iconst_0\n+         6: getstatic     #3                  // Field DALL_E_2:Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+         9: aastore\n+        10: dup\n+        11: iconst_1\n+        12: getstatic     #7                  // Field DALL_E_3:Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+        15: aastore\n+        16: areturn\n+      LineNumberTable:\n+        line 3: 0\n+\n   static {};\n     descriptor: ()V\n     flags: (0x0008) ACC_STATIC\n     Code:\n       stack=5, locals=0, args_size=0\n-         0: new           #4                  // class dev/langchain4j/model/openai/OpenAiImageModelName\n+         0: new           #1                  // class dev/langchain4j/model/openai/OpenAiImageModelName\n          3: dup\n-         4: ldc           #8                  // String DALL_E_2\n+         4: ldc           #33                 // String DALL_E_2\n          6: iconst_0\n-         7: ldc           #9                  // String dall-e-2\n-         9: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-        12: putstatic     #11                 // Field DALL_E_2:Ldev/langchain4j/model/openai/OpenAiImageModelName;\n-        15: new           #4                  // class dev/langchain4j/model/openai/OpenAiImageModelName\n+         7: ldc           #34                 // String dall-e-2\n+         9: invokespecial #36                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+        12: putstatic     #3                  // Field DALL_E_2:Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+        15: new           #1                  // class dev/langchain4j/model/openai/OpenAiImageModelName\n         18: dup\n-        19: ldc           #12                 // String DALL_E_3\n+        19: ldc           #39                 // String DALL_E_3\n         21: iconst_1\n-        22: ldc           #13                 // String dall-e-3\n-        24: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-        27: putstatic     #14                 // Field DALL_E_3:Ldev/langchain4j/model/openai/OpenAiImageModelName;\n-        30: iconst_2\n-        31: anewarray     #4                  // class dev/langchain4j/model/openai/OpenAiImageModelName\n-        34: dup\n-        35: iconst_0\n-        36: getstatic     #11                 // Field DALL_E_2:Ldev/langchain4j/model/openai/OpenAiImageModelName;\n-        39: aastore\n-        40: dup\n-        41: iconst_1\n-        42: getstatic     #14                 // Field DALL_E_3:Ldev/langchain4j/model/openai/OpenAiImageModelName;\n-        45: aastore\n-        46: putstatic     #1                  // Field $VALUES:[Ldev/langchain4j/model/openai/OpenAiImageModelName;\n-        49: return\n+        22: ldc           #40                 // String dall-e-3\n+        24: invokespecial #36                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+        27: putstatic     #7                  // Field DALL_E_3:Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+        30: invokestatic  #42                 // Method $values:()[Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+        33: putstatic     #10                 // Field $VALUES:[Ldev/langchain4j/model/openai/OpenAiImageModelName;\n+        36: return\n       LineNumberTable:\n         line 5: 0\n         line 6: 15\n         line 3: 30\n }\n-Signature: #40                          // Ljava/lang/Enum<Ldev/langchain4j/model/openai/OpenAiImageModelName;>;\n+Signature: #59                          // Ljava/lang/Enum<Ldev/langchain4j/model/openai/OpenAiImageModelName;>;\n SourceFile: \"OpenAiImageModelName.java\"\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.class", "source2": "dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,131 +1,131 @@\n-  SHA-256 checksum e5278a799bf6728ef59c7c697ebfa99ea1ee409e88baeec36c57876d41e94891\n+  SHA-256 checksum 8efb799e16dc7d50bf5d5664613514d4e26e90be6b383b08e4524a61601a5786\n   Compiled from \"OpenAiLanguageModel.java\"\n public class dev.langchain4j.model.openai.OpenAiLanguageModel$OpenAiLanguageModelBuilder\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #33                         // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder\n-  super_class: #34                        // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 11, methods: 15, attributes: 2\n Constant pool:\n-    #1 = Methodref          #34.#77       // java/lang/Object.\"<init>\":()V\n-    #2 = Fieldref           #33.#78       // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.modelName:Ljava/lang/String;\n-    #3 = Methodref          #79.#80       // dev/langchain4j/model/openai/OpenAiLanguageModelName.toString:()Ljava/lang/String;\n-    #4 = Fieldref           #33.#81       // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.baseUrl:Ljava/lang/String;\n-    #5 = Fieldref           #33.#82       // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.apiKey:Ljava/lang/String;\n-    #6 = Fieldref           #33.#83       // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.organizationId:Ljava/lang/String;\n-    #7 = Fieldref           #33.#84       // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.temperature:Ljava/lang/Double;\n-    #8 = Fieldref           #33.#85       // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.timeout:Ljava/time/Duration;\n-    #9 = Fieldref           #33.#86       // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.maxRetries:Ljava/lang/Integer;\n-   #10 = Fieldref           #33.#87       // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.proxy:Ljava/net/Proxy;\n-   #11 = Fieldref           #33.#88       // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.logRequests:Ljava/lang/Boolean;\n-   #12 = Fieldref           #33.#89       // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.logResponses:Ljava/lang/Boolean;\n-   #13 = Fieldref           #33.#90       // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.tokenizer:Ldev/langchain4j/model/Tokenizer;\n-   #14 = Class              #91           // dev/langchain4j/model/openai/OpenAiLanguageModel\n-   #15 = Methodref          #14.#92       // dev/langchain4j/model/openai/OpenAiLanguageModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n-   #16 = Class              #93           // java/lang/StringBuilder\n-   #17 = Methodref          #16.#77       // java/lang/StringBuilder.\"<init>\":()V\n-   #18 = String             #94           // OpenAiLanguageModel.OpenAiLanguageModelBuilder(baseUrl=\n-   #19 = Methodref          #16.#95       // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #20 = String             #96           // , apiKey=\n-   #21 = String             #97           // , organizationId=\n-   #22 = String             #98           // , modelName=\n-   #23 = String             #99           // , temperature=\n-   #24 = Methodref          #16.#100      // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #25 = String             #101          // , timeout=\n-   #26 = String             #102          // , maxRetries=\n-   #27 = String             #103          // , proxy=\n-   #28 = String             #104          // , logRequests=\n-   #29 = String             #105          // , logResponses=\n-   #30 = String             #106          // , tokenizer=\n-   #31 = String             #107          // )\n-   #32 = Methodref          #16.#80       // java/lang/StringBuilder.toString:()Ljava/lang/String;\n-   #33 = Class              #108          // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder\n-   #34 = Class              #109          // java/lang/Object\n-   #35 = Utf8               baseUrl\n-   #36 = Utf8               Ljava/lang/String;\n-   #37 = Utf8               apiKey\n-   #38 = Utf8               organizationId\n-   #39 = Utf8               modelName\n-   #40 = Utf8               temperature\n-   #41 = Utf8               Ljava/lang/Double;\n-   #42 = Utf8               timeout\n-   #43 = Utf8               Ljava/time/Duration;\n-   #44 = Utf8               maxRetries\n-   #45 = Utf8               Ljava/lang/Integer;\n-   #46 = Utf8               proxy\n-   #47 = Utf8               Ljava/net/Proxy;\n-   #48 = Utf8               logRequests\n-   #49 = Utf8               Ljava/lang/Boolean;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Fieldref           #8.#9         // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.modelName:Ljava/lang/String;\n+    #8 = Class              #10           // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder\n+    #9 = NameAndType        #11:#12       // modelName:Ljava/lang/String;\n+   #10 = Utf8               dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder\n+   #11 = Utf8               modelName\n+   #12 = Utf8               Ljava/lang/String;\n+   #13 = Methodref          #14.#15       // dev/langchain4j/model/openai/OpenAiLanguageModelName.toString:()Ljava/lang/String;\n+   #14 = Class              #16           // dev/langchain4j/model/openai/OpenAiLanguageModelName\n+   #15 = NameAndType        #17:#18       // toString:()Ljava/lang/String;\n+   #16 = Utf8               dev/langchain4j/model/openai/OpenAiLanguageModelName\n+   #17 = Utf8               toString\n+   #18 = Utf8               ()Ljava/lang/String;\n+   #19 = Fieldref           #8.#20        // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.baseUrl:Ljava/lang/String;\n+   #20 = NameAndType        #21:#12       // baseUrl:Ljava/lang/String;\n+   #21 = Utf8               baseUrl\n+   #22 = Fieldref           #8.#23        // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.apiKey:Ljava/lang/String;\n+   #23 = NameAndType        #24:#12       // apiKey:Ljava/lang/String;\n+   #24 = Utf8               apiKey\n+   #25 = Fieldref           #8.#26        // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.organizationId:Ljava/lang/String;\n+   #26 = NameAndType        #27:#12       // organizationId:Ljava/lang/String;\n+   #27 = Utf8               organizationId\n+   #28 = Fieldref           #8.#29        // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.temperature:Ljava/lang/Double;\n+   #29 = NameAndType        #30:#31       // temperature:Ljava/lang/Double;\n+   #30 = Utf8               temperature\n+   #31 = Utf8               Ljava/lang/Double;\n+   #32 = Fieldref           #8.#33        // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.timeout:Ljava/time/Duration;\n+   #33 = NameAndType        #34:#35       // timeout:Ljava/time/Duration;\n+   #34 = Utf8               timeout\n+   #35 = Utf8               Ljava/time/Duration;\n+   #36 = Fieldref           #8.#37        // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.maxRetries:Ljava/lang/Integer;\n+   #37 = NameAndType        #38:#39       // maxRetries:Ljava/lang/Integer;\n+   #38 = Utf8               maxRetries\n+   #39 = Utf8               Ljava/lang/Integer;\n+   #40 = Fieldref           #8.#41        // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.proxy:Ljava/net/Proxy;\n+   #41 = NameAndType        #42:#43       // proxy:Ljava/net/Proxy;\n+   #42 = Utf8               proxy\n+   #43 = Utf8               Ljava/net/Proxy;\n+   #44 = Fieldref           #8.#45        // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.logRequests:Ljava/lang/Boolean;\n+   #45 = NameAndType        #46:#47       // logRequests:Ljava/lang/Boolean;\n+   #46 = Utf8               logRequests\n+   #47 = Utf8               Ljava/lang/Boolean;\n+   #48 = Fieldref           #8.#49        // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.logResponses:Ljava/lang/Boolean;\n+   #49 = NameAndType        #50:#47       // logResponses:Ljava/lang/Boolean;\n    #50 = Utf8               logResponses\n-   #51 = Utf8               tokenizer\n-   #52 = Utf8               Ldev/langchain4j/model/Tokenizer;\n-   #53 = Utf8               <init>\n-   #54 = Utf8               ()V\n-   #55 = Utf8               Code\n-   #56 = Utf8               LineNumberTable\n-   #57 = Utf8               LocalVariableTable\n-   #58 = Utf8               this\n-   #59 = Utf8               OpenAiLanguageModelBuilder\n-   #60 = Utf8               InnerClasses\n-   #61 = Utf8               Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n-   #62 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n-   #63 = Utf8               (Ldev/langchain4j/model/openai/OpenAiLanguageModelName;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n-   #64 = Utf8               Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n-   #65 = Utf8               (Ljava/lang/Double;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n-   #66 = Utf8               (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n-   #67 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n-   #68 = Utf8               (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n-   #69 = Utf8               (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n-   #70 = Utf8               (Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n-   #71 = Utf8               build\n-   #72 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiLanguageModel;\n-   #73 = Utf8               toString\n-   #74 = Utf8               ()Ljava/lang/String;\n-   #75 = Utf8               SourceFile\n-   #76 = Utf8               OpenAiLanguageModel.java\n-   #77 = NameAndType        #53:#54       // \"<init>\":()V\n-   #78 = NameAndType        #39:#36       // modelName:Ljava/lang/String;\n-   #79 = Class              #110          // dev/langchain4j/model/openai/OpenAiLanguageModelName\n-   #80 = NameAndType        #73:#74       // toString:()Ljava/lang/String;\n-   #81 = NameAndType        #35:#36       // baseUrl:Ljava/lang/String;\n-   #82 = NameAndType        #37:#36       // apiKey:Ljava/lang/String;\n-   #83 = NameAndType        #38:#36       // organizationId:Ljava/lang/String;\n-   #84 = NameAndType        #40:#41       // temperature:Ljava/lang/Double;\n-   #85 = NameAndType        #42:#43       // timeout:Ljava/time/Duration;\n-   #86 = NameAndType        #44:#45       // maxRetries:Ljava/lang/Integer;\n-   #87 = NameAndType        #46:#47       // proxy:Ljava/net/Proxy;\n-   #88 = NameAndType        #48:#49       // logRequests:Ljava/lang/Boolean;\n-   #89 = NameAndType        #50:#49       // logResponses:Ljava/lang/Boolean;\n-   #90 = NameAndType        #51:#52       // tokenizer:Ldev/langchain4j/model/Tokenizer;\n-   #91 = Utf8               dev/langchain4j/model/openai/OpenAiLanguageModel\n-   #92 = NameAndType        #53:#111      // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n-   #93 = Utf8               java/lang/StringBuilder\n-   #94 = Utf8               OpenAiLanguageModel.OpenAiLanguageModelBuilder(baseUrl=\n-   #95 = NameAndType        #112:#113     // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #96 = Utf8               , apiKey=\n-   #97 = Utf8               , organizationId=\n-   #98 = Utf8               , modelName=\n-   #99 = Utf8               , temperature=\n-  #100 = NameAndType        #112:#114     // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-  #101 = Utf8               , timeout=\n-  #102 = Utf8               , maxRetries=\n-  #103 = Utf8               , proxy=\n-  #104 = Utf8               , logRequests=\n-  #105 = Utf8               , logResponses=\n-  #106 = Utf8               , tokenizer=\n-  #107 = Utf8               )\n-  #108 = Utf8               dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder\n-  #109 = Utf8               java/lang/Object\n-  #110 = Utf8               dev/langchain4j/model/openai/OpenAiLanguageModelName\n-  #111 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n-  #112 = Utf8               append\n-  #113 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #114 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #51 = Fieldref           #8.#52        // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.tokenizer:Ldev/langchain4j/model/Tokenizer;\n+   #52 = NameAndType        #53:#54       // tokenizer:Ldev/langchain4j/model/Tokenizer;\n+   #53 = Utf8               tokenizer\n+   #54 = Utf8               Ldev/langchain4j/model/Tokenizer;\n+   #55 = Class              #56           // dev/langchain4j/model/openai/OpenAiLanguageModel\n+   #56 = Utf8               dev/langchain4j/model/openai/OpenAiLanguageModel\n+   #57 = Methodref          #55.#58       // dev/langchain4j/model/openai/OpenAiLanguageModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+   #58 = NameAndType        #5:#59        // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+   #59 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+   #60 = Class              #61           // java/lang/StringBuilder\n+   #61 = Utf8               java/lang/StringBuilder\n+   #62 = Methodref          #60.#3        // java/lang/StringBuilder.\"<init>\":()V\n+   #63 = String             #64           // OpenAiLanguageModel.OpenAiLanguageModelBuilder(baseUrl=\n+   #64 = Utf8               OpenAiLanguageModel.OpenAiLanguageModelBuilder(baseUrl=\n+   #65 = Methodref          #60.#66       // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #66 = NameAndType        #67:#68       // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #67 = Utf8               append\n+   #68 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #69 = String             #70           // , apiKey=\n+   #70 = Utf8               , apiKey=\n+   #71 = String             #72           // , organizationId=\n+   #72 = Utf8               , organizationId=\n+   #73 = String             #74           // , modelName=\n+   #74 = Utf8               , modelName=\n+   #75 = String             #76           // , temperature=\n+   #76 = Utf8               , temperature=\n+   #77 = Methodref          #60.#78       // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #78 = NameAndType        #67:#79       // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #79 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #80 = String             #81           // , timeout=\n+   #81 = Utf8               , timeout=\n+   #82 = String             #83           // , maxRetries=\n+   #83 = Utf8               , maxRetries=\n+   #84 = String             #85           // , proxy=\n+   #85 = Utf8               , proxy=\n+   #86 = String             #87           // , logRequests=\n+   #87 = Utf8               , logRequests=\n+   #88 = String             #89           // , logResponses=\n+   #89 = Utf8               , logResponses=\n+   #90 = String             #91           // , tokenizer=\n+   #91 = Utf8               , tokenizer=\n+   #92 = String             #93           // )\n+   #93 = Utf8               )\n+   #94 = Methodref          #60.#15       // java/lang/StringBuilder.toString:()Ljava/lang/String;\n+   #95 = Utf8               Code\n+   #96 = Utf8               LineNumberTable\n+   #97 = Utf8               LocalVariableTable\n+   #98 = Utf8               this\n+   #99 = Utf8               Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n+  #100 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n+  #101 = Utf8               (Ldev/langchain4j/model/openai/OpenAiLanguageModelName;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n+  #102 = Utf8               Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n+  #103 = Utf8               (Ljava/lang/Double;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n+  #104 = Utf8               (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n+  #105 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n+  #106 = Utf8               (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n+  #107 = Utf8               (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n+  #108 = Utf8               (Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n+  #109 = Utf8               build\n+  #110 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiLanguageModel;\n+  #111 = Utf8               SourceFile\n+  #112 = Utf8               OpenAiLanguageModel.java\n+  #113 = Utf8               InnerClasses\n+  #114 = Utf8               OpenAiLanguageModelBuilder\n {\n   private java.lang.String baseUrl;\n     descriptor: Ljava/lang/String;\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.lang.String apiKey;\n     descriptor: Ljava/lang/String;\n@@ -185,15 +185,15 @@\n   public dev.langchain4j.model.openai.OpenAiLanguageModel$OpenAiLanguageModelBuilder modelName(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #2                  // Field modelName:Ljava/lang/String;\n+         2: putfield      #7                  // Field modelName:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 113: 0\n         line 114: 5\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -203,16 +203,16 @@\n   public dev.langchain4j.model.openai.OpenAiLanguageModel$OpenAiLanguageModelBuilder modelName(dev.langchain4j.model.openai.OpenAiLanguageModelName);\n     descriptor: (Ldev/langchain4j/model/openai/OpenAiLanguageModelName;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokevirtual #3                  // Method dev/langchain4j/model/openai/OpenAiLanguageModelName.toString:()Ljava/lang/String;\n-         5: putfield      #2                  // Field modelName:Ljava/lang/String;\n+         2: invokevirtual #13                 // Method dev/langchain4j/model/openai/OpenAiLanguageModelName.toString:()Ljava/lang/String;\n+         5: putfield      #7                  // Field modelName:Ljava/lang/String;\n          8: aload_0\n          9: areturn\n       LineNumberTable:\n         line 118: 0\n         line 119: 8\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -222,15 +222,15 @@\n   public dev.langchain4j.model.openai.OpenAiLanguageModel$OpenAiLanguageModelBuilder baseUrl(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #4                  // Field baseUrl:Ljava/lang/String;\n+         2: putfield      #19                 // Field baseUrl:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 37: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n@@ -239,15 +239,15 @@\n   public dev.langchain4j.model.openai.OpenAiLanguageModel$OpenAiLanguageModelBuilder apiKey(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #5                  // Field apiKey:Ljava/lang/String;\n+         2: putfield      #22                 // Field apiKey:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 37: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n@@ -256,15 +256,15 @@\n   public dev.langchain4j.model.openai.OpenAiLanguageModel$OpenAiLanguageModelBuilder organizationId(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #6                  // Field organizationId:Ljava/lang/String;\n+         2: putfield      #25                 // Field organizationId:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 37: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n@@ -273,15 +273,15 @@\n   public dev.langchain4j.model.openai.OpenAiLanguageModel$OpenAiLanguageModelBuilder temperature(java.lang.Double);\n     descriptor: (Ljava/lang/Double;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #7                  // Field temperature:Ljava/lang/Double;\n+         2: putfield      #28                 // Field temperature:Ljava/lang/Double;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 37: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n@@ -290,15 +290,15 @@\n   public dev.langchain4j.model.openai.OpenAiLanguageModel$OpenAiLanguageModelBuilder timeout(java.time.Duration);\n     descriptor: (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #8                  // Field timeout:Ljava/time/Duration;\n+         2: putfield      #32                 // Field timeout:Ljava/time/Duration;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 37: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n@@ -307,15 +307,15 @@\n   public dev.langchain4j.model.openai.OpenAiLanguageModel$OpenAiLanguageModelBuilder maxRetries(java.lang.Integer);\n     descriptor: (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #9                  // Field maxRetries:Ljava/lang/Integer;\n+         2: putfield      #36                 // Field maxRetries:Ljava/lang/Integer;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 37: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n@@ -324,15 +324,15 @@\n   public dev.langchain4j.model.openai.OpenAiLanguageModel$OpenAiLanguageModelBuilder proxy(java.net.Proxy);\n     descriptor: (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #10                 // Field proxy:Ljava/net/Proxy;\n+         2: putfield      #40                 // Field proxy:Ljava/net/Proxy;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 37: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n@@ -341,15 +341,15 @@\n   public dev.langchain4j.model.openai.OpenAiLanguageModel$OpenAiLanguageModelBuilder logRequests(java.lang.Boolean);\n     descriptor: (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #11                 // Field logRequests:Ljava/lang/Boolean;\n+         2: putfield      #44                 // Field logRequests:Ljava/lang/Boolean;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 37: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n@@ -358,15 +358,15 @@\n   public dev.langchain4j.model.openai.OpenAiLanguageModel$OpenAiLanguageModelBuilder logResponses(java.lang.Boolean);\n     descriptor: (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #12                 // Field logResponses:Ljava/lang/Boolean;\n+         2: putfield      #48                 // Field logResponses:Ljava/lang/Boolean;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 37: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n@@ -375,130 +375,130 @@\n   public dev.langchain4j.model.openai.OpenAiLanguageModel$OpenAiLanguageModelBuilder tokenizer(dev.langchain4j.model.Tokenizer);\n     descriptor: (Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #13                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+         2: putfield      #51                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 37: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n             0       7     1 tokenizer   Ldev/langchain4j/model/Tokenizer;\n \n   public dev.langchain4j.model.openai.OpenAiLanguageModel build();\n     descriptor: ()Ldev/langchain4j/model/openai/OpenAiLanguageModel;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=13, locals=1, args_size=1\n-         0: new           #14                 // class dev/langchain4j/model/openai/OpenAiLanguageModel\n+         0: new           #55                 // class dev/langchain4j/model/openai/OpenAiLanguageModel\n          3: dup\n          4: aload_0\n-         5: getfield      #4                  // Field baseUrl:Ljava/lang/String;\n+         5: getfield      #19                 // Field baseUrl:Ljava/lang/String;\n          8: aload_0\n-         9: getfield      #5                  // Field apiKey:Ljava/lang/String;\n+         9: getfield      #22                 // Field apiKey:Ljava/lang/String;\n         12: aload_0\n-        13: getfield      #6                  // Field organizationId:Ljava/lang/String;\n+        13: getfield      #25                 // Field organizationId:Ljava/lang/String;\n         16: aload_0\n-        17: getfield      #2                  // Field modelName:Ljava/lang/String;\n+        17: getfield      #7                  // Field modelName:Ljava/lang/String;\n         20: aload_0\n-        21: getfield      #7                  // Field temperature:Ljava/lang/Double;\n+        21: getfield      #28                 // Field temperature:Ljava/lang/Double;\n         24: aload_0\n-        25: getfield      #8                  // Field timeout:Ljava/time/Duration;\n+        25: getfield      #32                 // Field timeout:Ljava/time/Duration;\n         28: aload_0\n-        29: getfield      #9                  // Field maxRetries:Ljava/lang/Integer;\n+        29: getfield      #36                 // Field maxRetries:Ljava/lang/Integer;\n         32: aload_0\n-        33: getfield      #10                 // Field proxy:Ljava/net/Proxy;\n+        33: getfield      #40                 // Field proxy:Ljava/net/Proxy;\n         36: aload_0\n-        37: getfield      #11                 // Field logRequests:Ljava/lang/Boolean;\n+        37: getfield      #44                 // Field logRequests:Ljava/lang/Boolean;\n         40: aload_0\n-        41: getfield      #12                 // Field logResponses:Ljava/lang/Boolean;\n+        41: getfield      #48                 // Field logResponses:Ljava/lang/Boolean;\n         44: aload_0\n-        45: getfield      #13                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n-        48: invokespecial #15                 // Method dev/langchain4j/model/openai/OpenAiLanguageModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+        45: getfield      #51                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+        48: invokespecial #57                 // Method dev/langchain4j/model/openai/OpenAiLanguageModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n         51: areturn\n       LineNumberTable:\n         line 37: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      52     0  this   Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n \n   public java.lang.String toString();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: new           #16                 // class java/lang/StringBuilder\n+         0: new           #60                 // class java/lang/StringBuilder\n          3: dup\n-         4: invokespecial #17                 // Method java/lang/StringBuilder.\"<init>\":()V\n-         7: ldc           #18                 // String OpenAiLanguageModel.OpenAiLanguageModelBuilder(baseUrl=\n-         9: invokevirtual #19                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+         4: invokespecial #62                 // Method java/lang/StringBuilder.\"<init>\":()V\n+         7: ldc           #63                 // String OpenAiLanguageModel.OpenAiLanguageModelBuilder(baseUrl=\n+         9: invokevirtual #65                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         12: aload_0\n-        13: getfield      #4                  // Field baseUrl:Ljava/lang/String;\n-        16: invokevirtual #19                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        19: ldc           #20                 // String , apiKey=\n-        21: invokevirtual #19                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        13: getfield      #19                 // Field baseUrl:Ljava/lang/String;\n+        16: invokevirtual #65                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        19: ldc           #69                 // String , apiKey=\n+        21: invokevirtual #65                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         24: aload_0\n-        25: getfield      #5                  // Field apiKey:Ljava/lang/String;\n-        28: invokevirtual #19                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        31: ldc           #21                 // String , organizationId=\n-        33: invokevirtual #19                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        25: getfield      #22                 // Field apiKey:Ljava/lang/String;\n+        28: invokevirtual #65                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        31: ldc           #71                 // String , organizationId=\n+        33: invokevirtual #65                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         36: aload_0\n-        37: getfield      #6                  // Field organizationId:Ljava/lang/String;\n-        40: invokevirtual #19                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        43: ldc           #22                 // String , modelName=\n-        45: invokevirtual #19                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        37: getfield      #25                 // Field organizationId:Ljava/lang/String;\n+        40: invokevirtual #65                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        43: ldc           #73                 // String , modelName=\n+        45: invokevirtual #65                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         48: aload_0\n-        49: getfield      #2                  // Field modelName:Ljava/lang/String;\n-        52: invokevirtual #19                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        55: ldc           #23                 // String , temperature=\n-        57: invokevirtual #19                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        49: getfield      #7                  // Field modelName:Ljava/lang/String;\n+        52: invokevirtual #65                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        55: ldc           #75                 // String , temperature=\n+        57: invokevirtual #65                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         60: aload_0\n-        61: getfield      #7                  // Field temperature:Ljava/lang/Double;\n-        64: invokevirtual #24                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        67: ldc           #25                 // String , timeout=\n-        69: invokevirtual #19                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        61: getfield      #28                 // Field temperature:Ljava/lang/Double;\n+        64: invokevirtual #77                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        67: ldc           #80                 // String , timeout=\n+        69: invokevirtual #65                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         72: aload_0\n-        73: getfield      #8                  // Field timeout:Ljava/time/Duration;\n-        76: invokevirtual #24                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        79: ldc           #26                 // String , maxRetries=\n-        81: invokevirtual #19                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        73: getfield      #32                 // Field timeout:Ljava/time/Duration;\n+        76: invokevirtual #77                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        79: ldc           #82                 // String , maxRetries=\n+        81: invokevirtual #65                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         84: aload_0\n-        85: getfield      #9                  // Field maxRetries:Ljava/lang/Integer;\n-        88: invokevirtual #24                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        91: ldc           #27                 // String , proxy=\n-        93: invokevirtual #19                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        85: getfield      #36                 // Field maxRetries:Ljava/lang/Integer;\n+        88: invokevirtual #77                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        91: ldc           #84                 // String , proxy=\n+        93: invokevirtual #65                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         96: aload_0\n-        97: getfield      #10                 // Field proxy:Ljava/net/Proxy;\n-       100: invokevirtual #24                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       103: ldc           #28                 // String , logRequests=\n-       105: invokevirtual #19                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        97: getfield      #40                 // Field proxy:Ljava/net/Proxy;\n+       100: invokevirtual #77                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       103: ldc           #86                 // String , logRequests=\n+       105: invokevirtual #65                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        108: aload_0\n-       109: getfield      #11                 // Field logRequests:Ljava/lang/Boolean;\n-       112: invokevirtual #24                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       115: ldc           #29                 // String , logResponses=\n-       117: invokevirtual #19                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       109: getfield      #44                 // Field logRequests:Ljava/lang/Boolean;\n+       112: invokevirtual #77                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       115: ldc           #88                 // String , logResponses=\n+       117: invokevirtual #65                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        120: aload_0\n-       121: getfield      #12                 // Field logResponses:Ljava/lang/Boolean;\n-       124: invokevirtual #24                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       127: ldc           #30                 // String , tokenizer=\n-       129: invokevirtual #19                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       121: getfield      #48                 // Field logResponses:Ljava/lang/Boolean;\n+       124: invokevirtual #77                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       127: ldc           #90                 // String , tokenizer=\n+       129: invokevirtual #65                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        132: aload_0\n-       133: getfield      #13                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n-       136: invokevirtual #24                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       139: ldc           #31                 // String )\n-       141: invokevirtual #19                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-       144: invokevirtual #32                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+       133: getfield      #51                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+       136: invokevirtual #77                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       139: ldc           #92                 // String )\n+       141: invokevirtual #65                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       144: invokevirtual #94                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n        147: areturn\n       LineNumberTable:\n         line 37: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     148     0  this   Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n }\n SourceFile: \"OpenAiLanguageModel.java\"\n InnerClasses:\n-  public static #59= #33 of #14;          // OpenAiLanguageModelBuilder=class dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder of class dev/langchain4j/model/openai/OpenAiLanguageModel\n+  public static #114= #8 of #55;          // OpenAiLanguageModelBuilder=class dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder of class dev/langchain4j/model/openai/OpenAiLanguageModel\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiLanguageModel.class", "source2": "dev/langchain4j/model/openai/OpenAiLanguageModel.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,314 +1,314 @@\n-  SHA-256 checksum daa5ae9fcc1205da8a290882513734bf0f03126c0bdd73f89f76984e13cba2f0\n+  SHA-256 checksum 888050e7b258cd6fb9c0c9aeb08a77915a7484363803bb550488bac5f5970d88\n   Compiled from \"OpenAiLanguageModel.java\"\n public class dev.langchain4j.model.openai.OpenAiLanguageModel implements dev.langchain4j.model.language.LanguageModel,dev.langchain4j.model.language.TokenCountEstimator\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #68                         // dev/langchain4j/model/openai/OpenAiLanguageModel\n-  super_class: #69                        // java/lang/Object\n+  this_class: #76                         // dev/langchain4j/model/openai/OpenAiLanguageModel\n+  super_class: #6                         // java/lang/Object\n   interfaces: 2, fields: 5, methods: 7, attributes: 3\n Constant pool:\n-    #1 = Class              #126          // dev/langchain4j/model/openai/OpenAiModelName\n-    #2 = Class              #127          // dev/langchain4j/model/openai/InternalOpenAiHelper\n-    #3 = Methodref          #69.#128      // java/lang/Object.\"<init>\":()V\n-    #4 = Long               60l\n-    #6 = Methodref          #8.#129       // java/time/Duration.ofSeconds:(J)Ljava/time/Duration;\n-    #7 = Methodref          #130.#131     // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-    #8 = Class              #132          // java/time/Duration\n-    #9 = Methodref          #133.#134     // dev/ai4j/openai4j/OpenAiClient.builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #10 = String             #135          // https://api.openai.com/v1\n-   #11 = Class              #136          // java/lang/String\n-   #12 = Methodref          #137.#138     // dev/ai4j/openai4j/OpenAiClient$Builder.baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #13 = Methodref          #137.#139     // dev/ai4j/openai4j/OpenAiClient$Builder.openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #14 = Methodref          #137.#140     // dev/ai4j/openai4j/OpenAiClient$Builder.organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #15 = Methodref          #137.#141     // dev/ai4j/openai4j/OpenAiClient$Builder.callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #16 = Methodref          #137.#142     // dev/ai4j/openai4j/OpenAiClient$Builder.connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #17 = Methodref          #137.#143     // dev/ai4j/openai4j/OpenAiClient$Builder.readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #18 = Methodref          #137.#144     // dev/ai4j/openai4j/OpenAiClient$Builder.writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #19 = Methodref          #137.#145     // dev/ai4j/openai4j/OpenAiClient$Builder.proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #20 = Methodref          #137.#146     // dev/ai4j/openai4j/OpenAiClient$Builder.logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #21 = Methodref          #137.#147     // dev/ai4j/openai4j/OpenAiClient$Builder.logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #22 = Methodref          #137.#148     // dev/ai4j/openai4j/OpenAiClient$Builder.build:()Ldev/ai4j/openai4j/OpenAiClient;\n-   #23 = Fieldref           #68.#149      // dev/langchain4j/model/openai/OpenAiLanguageModel.client:Ldev/ai4j/openai4j/OpenAiClient;\n-   #24 = String             #150          // gpt-3.5-turbo-instruct\n-   #25 = Fieldref           #68.#151      // dev/langchain4j/model/openai/OpenAiLanguageModel.modelName:Ljava/lang/String;\n-   #26 = Double             0.7d\n-   #28 = Methodref          #29.#152      // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-   #29 = Class              #153          // java/lang/Double\n-   #30 = Fieldref           #68.#154      // dev/langchain4j/model/openai/OpenAiLanguageModel.temperature:Ljava/lang/Double;\n-   #31 = Methodref          #32.#155      // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #32 = Class              #156          // java/lang/Integer\n-   #33 = Fieldref           #68.#157      // dev/langchain4j/model/openai/OpenAiLanguageModel.maxRetries:Ljava/lang/Integer;\n-   #34 = InvokeDynamic      #0:#163       // #0:get:(Ldev/langchain4j/model/openai/OpenAiLanguageModel;)Ljava/util/function/Supplier;\n-   #35 = Methodref          #130.#164     // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-   #36 = Class              #165          // dev/langchain4j/model/Tokenizer\n-   #37 = Fieldref           #68.#166      // dev/langchain4j/model/openai/OpenAiLanguageModel.tokenizer:Ldev/langchain4j/model/Tokenizer;\n-   #38 = Methodref          #167.#168     // dev/ai4j/openai4j/completion/CompletionRequest.builder:()Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n-   #39 = Methodref          #169.#170     // dev/ai4j/openai4j/completion/CompletionRequest$Builder.model:(Ljava/lang/String;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n-   #40 = Methodref          #169.#171     // dev/ai4j/openai4j/completion/CompletionRequest$Builder.prompt:(Ljava/lang/String;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n-   #41 = Methodref          #169.#172     // dev/ai4j/openai4j/completion/CompletionRequest$Builder.temperature:(Ljava/lang/Double;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n-   #42 = Methodref          #169.#173     // dev/ai4j/openai4j/completion/CompletionRequest$Builder.build:()Ldev/ai4j/openai4j/completion/CompletionRequest;\n-   #43 = InvokeDynamic      #1:#176       // #1:call:(Ldev/langchain4j/model/openai/OpenAiLanguageModel;Ldev/ai4j/openai4j/completion/CompletionRequest;)Ljava/util/concurrent/Callable;\n-   #44 = Methodref          #32.#177      // java/lang/Integer.intValue:()I\n-   #45 = Methodref          #178.#179     // dev/langchain4j/internal/RetryUtils.withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n-   #46 = Class              #180          // dev/ai4j/openai4j/completion/CompletionResponse\n-   #47 = Methodref          #46.#181      // dev/ai4j/openai4j/completion/CompletionResponse.choices:()Ljava/util/List;\n-   #48 = InterfaceMethodref #182.#183     // java/util/List.get:(I)Ljava/lang/Object;\n-   #49 = Class              #184          // dev/ai4j/openai4j/completion/CompletionChoice\n-   #50 = Methodref          #49.#185      // dev/ai4j/openai4j/completion/CompletionChoice.text:()Ljava/lang/String;\n-   #51 = Methodref          #46.#186      // dev/ai4j/openai4j/completion/CompletionResponse.usage:()Ldev/ai4j/openai4j/shared/Usage;\n-   #52 = Methodref          #2.#187       // dev/langchain4j/model/openai/InternalOpenAiHelper.tokenUsageFrom:(Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n-   #53 = Methodref          #49.#188      // dev/ai4j/openai4j/completion/CompletionChoice.finishReason:()Ljava/lang/String;\n-   #54 = Methodref          #2.#189       // dev/langchain4j/model/openai/InternalOpenAiHelper.finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n-   #55 = Methodref          #190.#191     // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-   #56 = InterfaceMethodref #36.#192      // dev/langchain4j/model/Tokenizer.estimateTokenCountInText:(Ljava/lang/String;)I\n-   #57 = Methodref          #68.#193      // dev/langchain4j/model/openai/OpenAiLanguageModel.builder:()Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n-   #58 = Methodref          #63.#194      // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n-   #59 = Methodref          #63.#195      // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.build:()Ldev/langchain4j/model/openai/OpenAiLanguageModel;\n-   #60 = Class              #196          // dev/langchain4j/model/openai/spi/OpenAiLanguageModelBuilderFactory\n-   #61 = InvokeDynamic      #2:#199       // #2:get:()Ljava/util/function/Supplier;\n-   #62 = Methodref          #200.#201     // dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-   #63 = Class              #202          // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder\n-   #64 = Methodref          #133.#203     // dev/ai4j/openai4j/OpenAiClient.completion:(Ldev/ai4j/openai4j/completion/CompletionRequest;)Ldev/ai4j/openai4j/SyncOrAsyncOrStreaming;\n-   #65 = InterfaceMethodref #204.#205     // dev/ai4j/openai4j/SyncOrAsyncOrStreaming.execute:()Ljava/lang/Object;\n-   #66 = Class              #206          // dev/langchain4j/model/openai/OpenAiTokenizer\n-   #67 = Methodref          #66.#207      // dev/langchain4j/model/openai/OpenAiTokenizer.\"<init>\":(Ljava/lang/String;)V\n-   #68 = Class              #208          // dev/langchain4j/model/openai/OpenAiLanguageModel\n-   #69 = Class              #209          // java/lang/Object\n-   #70 = Class              #210          // dev/langchain4j/model/language/LanguageModel\n-   #71 = Class              #211          // dev/langchain4j/model/language/TokenCountEstimator\n-   #72 = Utf8               OpenAiLanguageModelBuilder\n-   #73 = Utf8               InnerClasses\n-   #74 = Utf8               client\n-   #75 = Utf8               Ldev/ai4j/openai4j/OpenAiClient;\n-   #76 = Utf8               modelName\n-   #77 = Utf8               Ljava/lang/String;\n-   #78 = Utf8               temperature\n-   #79 = Utf8               Ljava/lang/Double;\n-   #80 = Utf8               maxRetries\n-   #81 = Utf8               Ljava/lang/Integer;\n-   #82 = Utf8               tokenizer\n-   #83 = Utf8               Ldev/langchain4j/model/Tokenizer;\n-   #84 = Utf8               <init>\n-   #85 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n-   #86 = Utf8               Code\n-   #87 = Utf8               LineNumberTable\n-   #88 = Utf8               LocalVariableTable\n-   #89 = Utf8               this\n-   #90 = Utf8               Ldev/langchain4j/model/openai/OpenAiLanguageModel;\n-   #91 = Utf8               baseUrl\n-   #92 = Utf8               apiKey\n-   #93 = Utf8               organizationId\n-   #94 = Utf8               timeout\n-   #95 = Utf8               Ljava/time/Duration;\n-   #96 = Utf8               proxy\n-   #97 = Utf8               Ljava/net/Proxy;\n-   #98 = Utf8               logRequests\n-   #99 = Utf8               Ljava/lang/Boolean;\n-  #100 = Utf8               logResponses\n-  #101 = Utf8               generate\n-  #102 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #103 = Utf8               prompt\n-  #104 = Utf8               request\n-  #105 = Utf8               Ldev/ai4j/openai4j/completion/CompletionRequest;\n-  #106 = Utf8               response\n-  #107 = Utf8               Ldev/ai4j/openai4j/completion/CompletionResponse;\n-  #108 = Utf8               completionChoice\n-  #109 = Utf8               Ldev/ai4j/openai4j/completion/CompletionChoice;\n-  #110 = Utf8               Signature\n-  #111 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n-  #112 = Utf8               estimateTokenCount\n-  #113 = Utf8               (Ljava/lang/String;)I\n-  #114 = Utf8               withApiKey\n-  #115 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiLanguageModel;\n-  #116 = Utf8               builder\n-  #117 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n-  #118 = Utf8               lambda$generate$1\n-  #119 = Utf8               (Ldev/ai4j/openai4j/completion/CompletionRequest;)Ldev/ai4j/openai4j/completion/CompletionResponse;\n-  #120 = Utf8               Exceptions\n-  #121 = Class              #212          // java/lang/Exception\n-  #122 = Utf8               lambda$new$0\n-  #123 = Utf8               ()Ldev/langchain4j/model/Tokenizer;\n-  #124 = Utf8               SourceFile\n-  #125 = Utf8               OpenAiLanguageModel.java\n-  #126 = Utf8               dev/langchain4j/model/openai/OpenAiModelName\n-  #127 = Utf8               dev/langchain4j/model/openai/InternalOpenAiHelper\n-  #128 = NameAndType        #84:#213      // \"<init>\":()V\n-  #129 = NameAndType        #214:#215     // ofSeconds:(J)Ljava/time/Duration;\n-  #130 = Class              #216          // dev/langchain4j/internal/Utils\n-  #131 = NameAndType        #217:#218     // getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #132 = Utf8               java/time/Duration\n-  #133 = Class              #219          // dev/ai4j/openai4j/OpenAiClient\n-  #134 = NameAndType        #116:#221     // builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #135 = Utf8               https://api.openai.com/v1\n-  #136 = Utf8               java/lang/String\n-  #137 = Class              #222          // dev/ai4j/openai4j/OpenAiClient$Builder\n-  #138 = NameAndType        #91:#223      // baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #139 = NameAndType        #224:#223     // openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #140 = NameAndType        #93:#223      // organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #141 = NameAndType        #225:#226     // callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #142 = NameAndType        #227:#226     // connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #143 = NameAndType        #228:#226     // readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #144 = NameAndType        #229:#226     // writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #145 = NameAndType        #96:#230      // proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #146 = NameAndType        #98:#231      // logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #147 = NameAndType        #100:#231     // logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #148 = NameAndType        #232:#233     // build:()Ldev/ai4j/openai4j/OpenAiClient;\n-  #149 = NameAndType        #74:#75       // client:Ldev/ai4j/openai4j/OpenAiClient;\n-  #150 = Utf8               gpt-3.5-turbo-instruct\n-  #151 = NameAndType        #76:#77       // modelName:Ljava/lang/String;\n-  #152 = NameAndType        #234:#235     // valueOf:(D)Ljava/lang/Double;\n-  #153 = Utf8               java/lang/Double\n-  #154 = NameAndType        #78:#79       // temperature:Ljava/lang/Double;\n-  #155 = NameAndType        #234:#236     // valueOf:(I)Ljava/lang/Integer;\n-  #156 = Utf8               java/lang/Integer\n-  #157 = NameAndType        #80:#81       // maxRetries:Ljava/lang/Integer;\n-  #158 = Utf8               BootstrapMethods\n-  #159 = MethodHandle       6:#237        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #160 = MethodType         #238          //  ()Ljava/lang/Object;\n-  #161 = MethodHandle       7:#239        // REF_invokeSpecial dev/langchain4j/model/openai/OpenAiLanguageModel.lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n-  #162 = MethodType         #123          //  ()Ldev/langchain4j/model/Tokenizer;\n-  #163 = NameAndType        #240:#241     // get:(Ldev/langchain4j/model/openai/OpenAiLanguageModel;)Ljava/util/function/Supplier;\n-  #164 = NameAndType        #217:#242     // getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #165 = Utf8               dev/langchain4j/model/Tokenizer\n-  #166 = NameAndType        #82:#83       // tokenizer:Ldev/langchain4j/model/Tokenizer;\n-  #167 = Class              #243          // dev/ai4j/openai4j/completion/CompletionRequest\n-  #168 = NameAndType        #116:#244     // builder:()Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n-  #169 = Class              #245          // dev/ai4j/openai4j/completion/CompletionRequest$Builder\n-  #170 = NameAndType        #246:#247     // model:(Ljava/lang/String;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n-  #171 = NameAndType        #103:#247     // prompt:(Ljava/lang/String;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n-  #172 = NameAndType        #78:#248      // temperature:(Ljava/lang/Double;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n-  #173 = NameAndType        #232:#249     // build:()Ldev/ai4j/openai4j/completion/CompletionRequest;\n-  #174 = MethodHandle       7:#250        // REF_invokeSpecial dev/langchain4j/model/openai/OpenAiLanguageModel.lambda$generate$1:(Ldev/ai4j/openai4j/completion/CompletionRequest;)Ldev/ai4j/openai4j/completion/CompletionResponse;\n-  #175 = MethodType         #251          //  ()Ldev/ai4j/openai4j/completion/CompletionResponse;\n-  #176 = NameAndType        #252:#253     // call:(Ldev/langchain4j/model/openai/OpenAiLanguageModel;Ldev/ai4j/openai4j/completion/CompletionRequest;)Ljava/util/concurrent/Callable;\n-  #177 = NameAndType        #254:#255     // intValue:()I\n-  #178 = Class              #256          // dev/langchain4j/internal/RetryUtils\n-  #179 = NameAndType        #257:#258     // withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n-  #180 = Utf8               dev/ai4j/openai4j/completion/CompletionResponse\n-  #181 = NameAndType        #259:#260     // choices:()Ljava/util/List;\n-  #182 = Class              #261          // java/util/List\n-  #183 = NameAndType        #240:#262     // get:(I)Ljava/lang/Object;\n-  #184 = Utf8               dev/ai4j/openai4j/completion/CompletionChoice\n-  #185 = NameAndType        #263:#264     // text:()Ljava/lang/String;\n-  #186 = NameAndType        #265:#266     // usage:()Ldev/ai4j/openai4j/shared/Usage;\n-  #187 = NameAndType        #267:#268     // tokenUsageFrom:(Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n-  #188 = NameAndType        #269:#264     // finishReason:()Ljava/lang/String;\n-  #189 = NameAndType        #270:#271     // finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n-  #190 = Class              #272          // dev/langchain4j/model/output/Response\n-  #191 = NameAndType        #273:#274     // from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-  #192 = NameAndType        #275:#113     // estimateTokenCountInText:(Ljava/lang/String;)I\n-  #193 = NameAndType        #116:#117     // builder:()Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n-  #194 = NameAndType        #92:#276      // apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n-  #195 = NameAndType        #232:#277     // build:()Ldev/langchain4j/model/openai/OpenAiLanguageModel;\n-  #196 = Utf8               dev/langchain4j/model/openai/spi/OpenAiLanguageModelBuilderFactory\n-  #197 = MethodHandle       8:#278        // REF_newInvokeSpecial dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.\"<init>\":()V\n-  #198 = MethodType         #117          //  ()Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n-  #199 = NameAndType        #240:#279     // get:()Ljava/util/function/Supplier;\n-  #200 = Class              #280          // dev/langchain4j/spi/ServiceHelper\n-  #201 = NameAndType        #281:#282     // loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #202 = Utf8               dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder\n-  #203 = NameAndType        #283:#284     // completion:(Ldev/ai4j/openai4j/completion/CompletionRequest;)Ldev/ai4j/openai4j/SyncOrAsyncOrStreaming;\n-  #204 = Class              #285          // dev/ai4j/openai4j/SyncOrAsyncOrStreaming\n-  #205 = NameAndType        #286:#238     // execute:()Ljava/lang/Object;\n-  #206 = Utf8               dev/langchain4j/model/openai/OpenAiTokenizer\n-  #207 = NameAndType        #84:#287      // \"<init>\":(Ljava/lang/String;)V\n-  #208 = Utf8               dev/langchain4j/model/openai/OpenAiLanguageModel\n-  #209 = Utf8               java/lang/Object\n-  #210 = Utf8               dev/langchain4j/model/language/LanguageModel\n-  #211 = Utf8               dev/langchain4j/model/language/TokenCountEstimator\n-  #212 = Utf8               java/lang/Exception\n-  #213 = Utf8               ()V\n-  #214 = Utf8               ofSeconds\n-  #215 = Utf8               (J)Ljava/time/Duration;\n-  #216 = Utf8               dev/langchain4j/internal/Utils\n-  #217 = Utf8               getOrDefault\n-  #218 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #219 = Utf8               dev/ai4j/openai4j/OpenAiClient\n-  #220 = Utf8               Builder\n-  #221 = Utf8               ()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #222 = Utf8               dev/ai4j/openai4j/OpenAiClient$Builder\n-  #223 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #224 = Utf8               openAiApiKey\n-  #225 = Utf8               callTimeout\n-  #226 = Utf8               (Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #227 = Utf8               connectTimeout\n-  #228 = Utf8               readTimeout\n-  #229 = Utf8               writeTimeout\n-  #230 = Utf8               (Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #231 = Utf8               (Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #232 = Utf8               build\n-  #233 = Utf8               ()Ldev/ai4j/openai4j/OpenAiClient;\n-  #234 = Utf8               valueOf\n-  #235 = Utf8               (D)Ljava/lang/Double;\n-  #236 = Utf8               (I)Ljava/lang/Integer;\n-  #237 = Methodref          #288.#289     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #238 = Utf8               ()Ljava/lang/Object;\n-  #239 = Methodref          #68.#290      // dev/langchain4j/model/openai/OpenAiLanguageModel.lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n-  #240 = Utf8               get\n-  #241 = Utf8               (Ldev/langchain4j/model/openai/OpenAiLanguageModel;)Ljava/util/function/Supplier;\n-  #242 = Utf8               (Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #243 = Utf8               dev/ai4j/openai4j/completion/CompletionRequest\n-  #244 = Utf8               ()Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n-  #245 = Utf8               dev/ai4j/openai4j/completion/CompletionRequest$Builder\n-  #246 = Utf8               model\n-  #247 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n-  #248 = Utf8               (Ljava/lang/Double;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n-  #249 = Utf8               ()Ldev/ai4j/openai4j/completion/CompletionRequest;\n-  #250 = Methodref          #68.#291      // dev/langchain4j/model/openai/OpenAiLanguageModel.lambda$generate$1:(Ldev/ai4j/openai4j/completion/CompletionRequest;)Ldev/ai4j/openai4j/completion/CompletionResponse;\n-  #251 = Utf8               ()Ldev/ai4j/openai4j/completion/CompletionResponse;\n-  #252 = Utf8               call\n-  #253 = Utf8               (Ldev/langchain4j/model/openai/OpenAiLanguageModel;Ldev/ai4j/openai4j/completion/CompletionRequest;)Ljava/util/concurrent/Callable;\n-  #254 = Utf8               intValue\n-  #255 = Utf8               ()I\n-  #256 = Utf8               dev/langchain4j/internal/RetryUtils\n-  #257 = Utf8               withRetry\n-  #258 = Utf8               (Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n-  #259 = Utf8               choices\n-  #260 = Utf8               ()Ljava/util/List;\n-  #261 = Utf8               java/util/List\n-  #262 = Utf8               (I)Ljava/lang/Object;\n-  #263 = Utf8               text\n-  #264 = Utf8               ()Ljava/lang/String;\n-  #265 = Utf8               usage\n-  #266 = Utf8               ()Ldev/ai4j/openai4j/shared/Usage;\n-  #267 = Utf8               tokenUsageFrom\n-  #268 = Utf8               (Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n-  #269 = Utf8               finishReason\n-  #270 = Utf8               finishReasonFrom\n-  #271 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n-  #272 = Utf8               dev/langchain4j/model/output/Response\n-  #273 = Utf8               from\n-  #274 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-  #275 = Utf8               estimateTokenCountInText\n-  #276 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n-  #277 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiLanguageModel;\n-  #278 = Methodref          #63.#128      // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.\"<init>\":()V\n-  #279 = Utf8               ()Ljava/util/function/Supplier;\n-  #280 = Utf8               dev/langchain4j/spi/ServiceHelper\n-  #281 = Utf8               loadFactoryService\n-  #282 = Utf8               (Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #283 = Utf8               completion\n-  #284 = Utf8               (Ldev/ai4j/openai4j/completion/CompletionRequest;)Ldev/ai4j/openai4j/SyncOrAsyncOrStreaming;\n-  #285 = Utf8               dev/ai4j/openai4j/SyncOrAsyncOrStreaming\n-  #286 = Utf8               execute\n-  #287 = Utf8               (Ljava/lang/String;)V\n-  #288 = Class              #292          // java/lang/invoke/LambdaMetafactory\n-  #289 = NameAndType        #293:#296     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #290 = NameAndType        #122:#123     // lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n-  #291 = NameAndType        #118:#119     // lambda$generate$1:(Ldev/ai4j/openai4j/completion/CompletionRequest;)Ldev/ai4j/openai4j/completion/CompletionResponse;\n-  #292 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #293 = Utf8               metafactory\n-  #294 = Class              #298          // java/lang/invoke/MethodHandles$Lookup\n-  #295 = Utf8               Lookup\n-  #296 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #297 = Class              #299          // java/lang/invoke/MethodHandles\n-  #298 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #299 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Class              #2            // dev/langchain4j/model/openai/OpenAiModelName\n+    #2 = Utf8               dev/langchain4j/model/openai/OpenAiModelName\n+    #3 = Class              #4            // dev/langchain4j/model/openai/InternalOpenAiHelper\n+    #4 = Utf8               dev/langchain4j/model/openai/InternalOpenAiHelper\n+    #5 = Methodref          #6.#7         // java/lang/Object.\"<init>\":()V\n+    #6 = Class              #8            // java/lang/Object\n+    #7 = NameAndType        #9:#10        // \"<init>\":()V\n+    #8 = Utf8               java/lang/Object\n+    #9 = Utf8               <init>\n+   #10 = Utf8               ()V\n+   #11 = Long               60l\n+   #13 = Methodref          #14.#15       // java/time/Duration.ofSeconds:(J)Ljava/time/Duration;\n+   #14 = Class              #16           // java/time/Duration\n+   #15 = NameAndType        #17:#18       // ofSeconds:(J)Ljava/time/Duration;\n+   #16 = Utf8               java/time/Duration\n+   #17 = Utf8               ofSeconds\n+   #18 = Utf8               (J)Ljava/time/Duration;\n+   #19 = Methodref          #20.#21       // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #20 = Class              #22           // dev/langchain4j/internal/Utils\n+   #21 = NameAndType        #23:#24       // getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #22 = Utf8               dev/langchain4j/internal/Utils\n+   #23 = Utf8               getOrDefault\n+   #24 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #25 = Methodref          #26.#27       // dev/ai4j/openai4j/OpenAiClient.builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #26 = Class              #28           // dev/ai4j/openai4j/OpenAiClient\n+   #27 = NameAndType        #29:#30       // builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #28 = Utf8               dev/ai4j/openai4j/OpenAiClient\n+   #29 = Utf8               builder\n+   #30 = Utf8               ()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #31 = String             #32           // https://api.openai.com/v1\n+   #32 = Utf8               https://api.openai.com/v1\n+   #33 = Class              #34           // java/lang/String\n+   #34 = Utf8               java/lang/String\n+   #35 = Methodref          #36.#37       // dev/ai4j/openai4j/OpenAiClient$Builder.baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #36 = Class              #38           // dev/ai4j/openai4j/OpenAiClient$Builder\n+   #37 = NameAndType        #39:#40       // baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #38 = Utf8               dev/ai4j/openai4j/OpenAiClient$Builder\n+   #39 = Utf8               baseUrl\n+   #40 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #41 = Methodref          #36.#42       // dev/ai4j/openai4j/OpenAiClient$Builder.openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #42 = NameAndType        #43:#40       // openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #43 = Utf8               openAiApiKey\n+   #44 = Methodref          #36.#45       // dev/ai4j/openai4j/OpenAiClient$Builder.organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #45 = NameAndType        #46:#40       // organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #46 = Utf8               organizationId\n+   #47 = Methodref          #36.#48       // dev/ai4j/openai4j/OpenAiClient$Builder.callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #48 = NameAndType        #49:#50       // callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #49 = Utf8               callTimeout\n+   #50 = Utf8               (Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #51 = Methodref          #36.#52       // dev/ai4j/openai4j/OpenAiClient$Builder.connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #52 = NameAndType        #53:#50       // connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #53 = Utf8               connectTimeout\n+   #54 = Methodref          #36.#55       // dev/ai4j/openai4j/OpenAiClient$Builder.readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #55 = NameAndType        #56:#50       // readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #56 = Utf8               readTimeout\n+   #57 = Methodref          #36.#58       // dev/ai4j/openai4j/OpenAiClient$Builder.writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #58 = NameAndType        #59:#50       // writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #59 = Utf8               writeTimeout\n+   #60 = Methodref          #36.#61       // dev/ai4j/openai4j/OpenAiClient$Builder.proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #61 = NameAndType        #62:#63       // proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #62 = Utf8               proxy\n+   #63 = Utf8               (Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #64 = Methodref          #36.#65       // dev/ai4j/openai4j/OpenAiClient$Builder.logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #65 = NameAndType        #66:#67       // logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #66 = Utf8               logRequests\n+   #67 = Utf8               (Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #68 = Methodref          #36.#69       // dev/ai4j/openai4j/OpenAiClient$Builder.logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #69 = NameAndType        #70:#67       // logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #70 = Utf8               logResponses\n+   #71 = Methodref          #36.#72       // dev/ai4j/openai4j/OpenAiClient$Builder.build:()Ldev/ai4j/openai4j/OpenAiClient;\n+   #72 = NameAndType        #73:#74       // build:()Ldev/ai4j/openai4j/OpenAiClient;\n+   #73 = Utf8               build\n+   #74 = Utf8               ()Ldev/ai4j/openai4j/OpenAiClient;\n+   #75 = Fieldref           #76.#77       // dev/langchain4j/model/openai/OpenAiLanguageModel.client:Ldev/ai4j/openai4j/OpenAiClient;\n+   #76 = Class              #78           // dev/langchain4j/model/openai/OpenAiLanguageModel\n+   #77 = NameAndType        #79:#80       // client:Ldev/ai4j/openai4j/OpenAiClient;\n+   #78 = Utf8               dev/langchain4j/model/openai/OpenAiLanguageModel\n+   #79 = Utf8               client\n+   #80 = Utf8               Ldev/ai4j/openai4j/OpenAiClient;\n+   #81 = String             #82           // gpt-3.5-turbo-instruct\n+   #82 = Utf8               gpt-3.5-turbo-instruct\n+   #83 = Fieldref           #76.#84       // dev/langchain4j/model/openai/OpenAiLanguageModel.modelName:Ljava/lang/String;\n+   #84 = NameAndType        #85:#86       // modelName:Ljava/lang/String;\n+   #85 = Utf8               modelName\n+   #86 = Utf8               Ljava/lang/String;\n+   #87 = Double             0.7d\n+   #89 = Methodref          #90.#91       // java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+   #90 = Class              #92           // java/lang/Double\n+   #91 = NameAndType        #93:#94       // valueOf:(D)Ljava/lang/Double;\n+   #92 = Utf8               java/lang/Double\n+   #93 = Utf8               valueOf\n+   #94 = Utf8               (D)Ljava/lang/Double;\n+   #95 = Fieldref           #76.#96       // dev/langchain4j/model/openai/OpenAiLanguageModel.temperature:Ljava/lang/Double;\n+   #96 = NameAndType        #97:#98       // temperature:Ljava/lang/Double;\n+   #97 = Utf8               temperature\n+   #98 = Utf8               Ljava/lang/Double;\n+   #99 = Methodref          #100.#101     // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+  #100 = Class              #102          // java/lang/Integer\n+  #101 = NameAndType        #93:#103      // valueOf:(I)Ljava/lang/Integer;\n+  #102 = Utf8               java/lang/Integer\n+  #103 = Utf8               (I)Ljava/lang/Integer;\n+  #104 = Fieldref           #76.#105      // dev/langchain4j/model/openai/OpenAiLanguageModel.maxRetries:Ljava/lang/Integer;\n+  #105 = NameAndType        #106:#107     // maxRetries:Ljava/lang/Integer;\n+  #106 = Utf8               maxRetries\n+  #107 = Utf8               Ljava/lang/Integer;\n+  #108 = InvokeDynamic      #0:#109       // #0:get:(Ldev/langchain4j/model/openai/OpenAiLanguageModel;)Ljava/util/function/Supplier;\n+  #109 = NameAndType        #110:#111     // get:(Ldev/langchain4j/model/openai/OpenAiLanguageModel;)Ljava/util/function/Supplier;\n+  #110 = Utf8               get\n+  #111 = Utf8               (Ldev/langchain4j/model/openai/OpenAiLanguageModel;)Ljava/util/function/Supplier;\n+  #112 = Methodref          #20.#113      // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #113 = NameAndType        #23:#114      // getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #114 = Utf8               (Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #115 = Class              #116          // dev/langchain4j/model/Tokenizer\n+  #116 = Utf8               dev/langchain4j/model/Tokenizer\n+  #117 = Fieldref           #76.#118      // dev/langchain4j/model/openai/OpenAiLanguageModel.tokenizer:Ldev/langchain4j/model/Tokenizer;\n+  #118 = NameAndType        #119:#120     // tokenizer:Ldev/langchain4j/model/Tokenizer;\n+  #119 = Utf8               tokenizer\n+  #120 = Utf8               Ldev/langchain4j/model/Tokenizer;\n+  #121 = Methodref          #122.#123     // dev/ai4j/openai4j/completion/CompletionRequest.builder:()Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n+  #122 = Class              #124          // dev/ai4j/openai4j/completion/CompletionRequest\n+  #123 = NameAndType        #29:#125      // builder:()Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n+  #124 = Utf8               dev/ai4j/openai4j/completion/CompletionRequest\n+  #125 = Utf8               ()Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n+  #126 = Methodref          #127.#128     // dev/ai4j/openai4j/completion/CompletionRequest$Builder.model:(Ljava/lang/String;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n+  #127 = Class              #129          // dev/ai4j/openai4j/completion/CompletionRequest$Builder\n+  #128 = NameAndType        #130:#131     // model:(Ljava/lang/String;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n+  #129 = Utf8               dev/ai4j/openai4j/completion/CompletionRequest$Builder\n+  #130 = Utf8               model\n+  #131 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n+  #132 = Methodref          #127.#133     // dev/ai4j/openai4j/completion/CompletionRequest$Builder.prompt:(Ljava/lang/String;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n+  #133 = NameAndType        #134:#131     // prompt:(Ljava/lang/String;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n+  #134 = Utf8               prompt\n+  #135 = Methodref          #127.#136     // dev/ai4j/openai4j/completion/CompletionRequest$Builder.temperature:(Ljava/lang/Double;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n+  #136 = NameAndType        #97:#137      // temperature:(Ljava/lang/Double;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n+  #137 = Utf8               (Ljava/lang/Double;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n+  #138 = Methodref          #127.#139     // dev/ai4j/openai4j/completion/CompletionRequest$Builder.build:()Ldev/ai4j/openai4j/completion/CompletionRequest;\n+  #139 = NameAndType        #73:#140      // build:()Ldev/ai4j/openai4j/completion/CompletionRequest;\n+  #140 = Utf8               ()Ldev/ai4j/openai4j/completion/CompletionRequest;\n+  #141 = InvokeDynamic      #1:#142       // #1:call:(Ldev/langchain4j/model/openai/OpenAiLanguageModel;Ldev/ai4j/openai4j/completion/CompletionRequest;)Ljava/util/concurrent/Callable;\n+  #142 = NameAndType        #143:#144     // call:(Ldev/langchain4j/model/openai/OpenAiLanguageModel;Ldev/ai4j/openai4j/completion/CompletionRequest;)Ljava/util/concurrent/Callable;\n+  #143 = Utf8               call\n+  #144 = Utf8               (Ldev/langchain4j/model/openai/OpenAiLanguageModel;Ldev/ai4j/openai4j/completion/CompletionRequest;)Ljava/util/concurrent/Callable;\n+  #145 = Methodref          #100.#146     // java/lang/Integer.intValue:()I\n+  #146 = NameAndType        #147:#148     // intValue:()I\n+  #147 = Utf8               intValue\n+  #148 = Utf8               ()I\n+  #149 = Methodref          #150.#151     // dev/langchain4j/internal/RetryUtils.withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n+  #150 = Class              #152          // dev/langchain4j/internal/RetryUtils\n+  #151 = NameAndType        #153:#154     // withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n+  #152 = Utf8               dev/langchain4j/internal/RetryUtils\n+  #153 = Utf8               withRetry\n+  #154 = Utf8               (Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n+  #155 = Class              #156          // dev/ai4j/openai4j/completion/CompletionResponse\n+  #156 = Utf8               dev/ai4j/openai4j/completion/CompletionResponse\n+  #157 = Methodref          #155.#158     // dev/ai4j/openai4j/completion/CompletionResponse.choices:()Ljava/util/List;\n+  #158 = NameAndType        #159:#160     // choices:()Ljava/util/List;\n+  #159 = Utf8               choices\n+  #160 = Utf8               ()Ljava/util/List;\n+  #161 = InterfaceMethodref #162.#163     // java/util/List.get:(I)Ljava/lang/Object;\n+  #162 = Class              #164          // java/util/List\n+  #163 = NameAndType        #110:#165     // get:(I)Ljava/lang/Object;\n+  #164 = Utf8               java/util/List\n+  #165 = Utf8               (I)Ljava/lang/Object;\n+  #166 = Class              #167          // dev/ai4j/openai4j/completion/CompletionChoice\n+  #167 = Utf8               dev/ai4j/openai4j/completion/CompletionChoice\n+  #168 = Methodref          #166.#169     // dev/ai4j/openai4j/completion/CompletionChoice.text:()Ljava/lang/String;\n+  #169 = NameAndType        #170:#171     // text:()Ljava/lang/String;\n+  #170 = Utf8               text\n+  #171 = Utf8               ()Ljava/lang/String;\n+  #172 = Methodref          #155.#173     // dev/ai4j/openai4j/completion/CompletionResponse.usage:()Ldev/ai4j/openai4j/shared/Usage;\n+  #173 = NameAndType        #174:#175     // usage:()Ldev/ai4j/openai4j/shared/Usage;\n+  #174 = Utf8               usage\n+  #175 = Utf8               ()Ldev/ai4j/openai4j/shared/Usage;\n+  #176 = Methodref          #3.#177       // dev/langchain4j/model/openai/InternalOpenAiHelper.tokenUsageFrom:(Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n+  #177 = NameAndType        #178:#179     // tokenUsageFrom:(Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n+  #178 = Utf8               tokenUsageFrom\n+  #179 = Utf8               (Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n+  #180 = Methodref          #166.#181     // dev/ai4j/openai4j/completion/CompletionChoice.finishReason:()Ljava/lang/String;\n+  #181 = NameAndType        #182:#171     // finishReason:()Ljava/lang/String;\n+  #182 = Utf8               finishReason\n+  #183 = Methodref          #3.#184       // dev/langchain4j/model/openai/InternalOpenAiHelper.finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n+  #184 = NameAndType        #185:#186     // finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n+  #185 = Utf8               finishReasonFrom\n+  #186 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n+  #187 = Methodref          #188.#189     // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+  #188 = Class              #190          // dev/langchain4j/model/output/Response\n+  #189 = NameAndType        #191:#192     // from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+  #190 = Utf8               dev/langchain4j/model/output/Response\n+  #191 = Utf8               from\n+  #192 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+  #193 = InterfaceMethodref #115.#194     // dev/langchain4j/model/Tokenizer.estimateTokenCountInText:(Ljava/lang/String;)I\n+  #194 = NameAndType        #195:#196     // estimateTokenCountInText:(Ljava/lang/String;)I\n+  #195 = Utf8               estimateTokenCountInText\n+  #196 = Utf8               (Ljava/lang/String;)I\n+  #197 = Methodref          #76.#198      // dev/langchain4j/model/openai/OpenAiLanguageModel.builder:()Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n+  #198 = NameAndType        #29:#199      // builder:()Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n+  #199 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n+  #200 = Methodref          #201.#202     // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n+  #201 = Class              #203          // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder\n+  #202 = NameAndType        #204:#205     // apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n+  #203 = Utf8               dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder\n+  #204 = Utf8               apiKey\n+  #205 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n+  #206 = Methodref          #201.#207     // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.build:()Ldev/langchain4j/model/openai/OpenAiLanguageModel;\n+  #207 = NameAndType        #73:#208      // build:()Ldev/langchain4j/model/openai/OpenAiLanguageModel;\n+  #208 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiLanguageModel;\n+  #209 = Class              #210          // dev/langchain4j/model/openai/spi/OpenAiLanguageModelBuilderFactory\n+  #210 = Utf8               dev/langchain4j/model/openai/spi/OpenAiLanguageModelBuilderFactory\n+  #211 = InvokeDynamic      #2:#212       // #2:get:()Ljava/util/function/Supplier;\n+  #212 = NameAndType        #110:#213     // get:()Ljava/util/function/Supplier;\n+  #213 = Utf8               ()Ljava/util/function/Supplier;\n+  #214 = Methodref          #215.#216     // dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #215 = Class              #217          // dev/langchain4j/spi/ServiceHelper\n+  #216 = NameAndType        #218:#219     // loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #217 = Utf8               dev/langchain4j/spi/ServiceHelper\n+  #218 = Utf8               loadFactoryService\n+  #219 = Utf8               (Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #220 = Methodref          #26.#221      // dev/ai4j/openai4j/OpenAiClient.completion:(Ldev/ai4j/openai4j/completion/CompletionRequest;)Ldev/ai4j/openai4j/SyncOrAsyncOrStreaming;\n+  #221 = NameAndType        #222:#223     // completion:(Ldev/ai4j/openai4j/completion/CompletionRequest;)Ldev/ai4j/openai4j/SyncOrAsyncOrStreaming;\n+  #222 = Utf8               completion\n+  #223 = Utf8               (Ldev/ai4j/openai4j/completion/CompletionRequest;)Ldev/ai4j/openai4j/SyncOrAsyncOrStreaming;\n+  #224 = InterfaceMethodref #225.#226     // dev/ai4j/openai4j/SyncOrAsyncOrStreaming.execute:()Ljava/lang/Object;\n+  #225 = Class              #227          // dev/ai4j/openai4j/SyncOrAsyncOrStreaming\n+  #226 = NameAndType        #228:#229     // execute:()Ljava/lang/Object;\n+  #227 = Utf8               dev/ai4j/openai4j/SyncOrAsyncOrStreaming\n+  #228 = Utf8               execute\n+  #229 = Utf8               ()Ljava/lang/Object;\n+  #230 = Class              #231          // dev/langchain4j/model/openai/OpenAiTokenizer\n+  #231 = Utf8               dev/langchain4j/model/openai/OpenAiTokenizer\n+  #232 = Methodref          #230.#233     // dev/langchain4j/model/openai/OpenAiTokenizer.\"<init>\":(Ljava/lang/String;)V\n+  #233 = NameAndType        #9:#234       // \"<init>\":(Ljava/lang/String;)V\n+  #234 = Utf8               (Ljava/lang/String;)V\n+  #235 = Class              #236          // dev/langchain4j/model/language/LanguageModel\n+  #236 = Utf8               dev/langchain4j/model/language/LanguageModel\n+  #237 = Class              #238          // dev/langchain4j/model/language/TokenCountEstimator\n+  #238 = Utf8               dev/langchain4j/model/language/TokenCountEstimator\n+  #239 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+  #240 = Utf8               Code\n+  #241 = Utf8               LineNumberTable\n+  #242 = Utf8               LocalVariableTable\n+  #243 = Utf8               this\n+  #244 = Utf8               Ldev/langchain4j/model/openai/OpenAiLanguageModel;\n+  #245 = Utf8               timeout\n+  #246 = Utf8               Ljava/time/Duration;\n+  #247 = Utf8               Ljava/net/Proxy;\n+  #248 = Utf8               Ljava/lang/Boolean;\n+  #249 = Utf8               generate\n+  #250 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #251 = Utf8               request\n+  #252 = Utf8               Ldev/ai4j/openai4j/completion/CompletionRequest;\n+  #253 = Utf8               response\n+  #254 = Utf8               Ldev/ai4j/openai4j/completion/CompletionResponse;\n+  #255 = Utf8               completionChoice\n+  #256 = Utf8               Ldev/ai4j/openai4j/completion/CompletionChoice;\n+  #257 = Utf8               Signature\n+  #258 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n+  #259 = Utf8               estimateTokenCount\n+  #260 = Utf8               withApiKey\n+  #261 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiLanguageModel;\n+  #262 = Utf8               lambda$generate$1\n+  #263 = Utf8               (Ldev/ai4j/openai4j/completion/CompletionRequest;)Ldev/ai4j/openai4j/completion/CompletionResponse;\n+  #264 = Utf8               Exceptions\n+  #265 = Class              #266          // java/lang/Exception\n+  #266 = Utf8               java/lang/Exception\n+  #267 = Utf8               lambda$new$0\n+  #268 = Utf8               ()Ldev/langchain4j/model/Tokenizer;\n+  #269 = Utf8               SourceFile\n+  #270 = Utf8               OpenAiLanguageModel.java\n+  #271 = Utf8               BootstrapMethods\n+  #272 = MethodHandle       6:#273        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #273 = Methodref          #274.#275     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #274 = Class              #276          // java/lang/invoke/LambdaMetafactory\n+  #275 = NameAndType        #277:#278     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #276 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #277 = Utf8               metafactory\n+  #278 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #279 = MethodType         #229          //  ()Ljava/lang/Object;\n+  #280 = MethodHandle       7:#281        // REF_invokeSpecial dev/langchain4j/model/openai/OpenAiLanguageModel.lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n+  #281 = Methodref          #76.#282      // dev/langchain4j/model/openai/OpenAiLanguageModel.lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n+  #282 = NameAndType        #267:#268     // lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n+  #283 = MethodType         #268          //  ()Ldev/langchain4j/model/Tokenizer;\n+  #284 = MethodHandle       7:#285        // REF_invokeSpecial dev/langchain4j/model/openai/OpenAiLanguageModel.lambda$generate$1:(Ldev/ai4j/openai4j/completion/CompletionRequest;)Ldev/ai4j/openai4j/completion/CompletionResponse;\n+  #285 = Methodref          #76.#286      // dev/langchain4j/model/openai/OpenAiLanguageModel.lambda$generate$1:(Ldev/ai4j/openai4j/completion/CompletionRequest;)Ldev/ai4j/openai4j/completion/CompletionResponse;\n+  #286 = NameAndType        #262:#263     // lambda$generate$1:(Ldev/ai4j/openai4j/completion/CompletionRequest;)Ldev/ai4j/openai4j/completion/CompletionResponse;\n+  #287 = MethodType         #288          //  ()Ldev/ai4j/openai4j/completion/CompletionResponse;\n+  #288 = Utf8               ()Ldev/ai4j/openai4j/completion/CompletionResponse;\n+  #289 = MethodHandle       8:#290        // REF_newInvokeSpecial dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.\"<init>\":()V\n+  #290 = Methodref          #201.#7       // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.\"<init>\":()V\n+  #291 = MethodType         #199          //  ()Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n+  #292 = Utf8               InnerClasses\n+  #293 = Utf8               Builder\n+  #294 = Utf8               OpenAiLanguageModelBuilder\n+  #295 = Class              #296          // java/lang/invoke/MethodHandles$Lookup\n+  #296 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #297 = Class              #298          // java/lang/invoke/MethodHandles\n+  #298 = Utf8               java/lang/invoke/MethodHandles\n+  #299 = Utf8               Lookup\n {\n   private final dev.ai4j.openai4j.OpenAiClient client;\n     descriptor: Ldev/ai4j/openai4j/OpenAiClient;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n \n   private final java.lang.String modelName;\n     descriptor: Ljava/lang/String;\n@@ -328,75 +328,75 @@\n \n   public dev.langchain4j.model.openai.OpenAiLanguageModel(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Double, java.time.Duration, java.lang.Integer, java.net.Proxy, java.lang.Boolean, java.lang.Boolean, dev.langchain4j.model.Tokenizer);\n     descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=12, args_size=12\n          0: aload_0\n-         1: invokespecial #3                  // Method java/lang/Object.\"<init>\":()V\n+         1: invokespecial #5                  // Method java/lang/Object.\"<init>\":()V\n          4: aload         6\n-         6: ldc2_w        #4                  // long 60l\n-         9: invokestatic  #6                  // Method java/time/Duration.ofSeconds:(J)Ljava/time/Duration;\n-        12: invokestatic  #7                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-        15: checkcast     #8                  // class java/time/Duration\n+         6: ldc2_w        #11                 // long 60l\n+         9: invokestatic  #13                 // Method java/time/Duration.ofSeconds:(J)Ljava/time/Duration;\n+        12: invokestatic  #19                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        15: checkcast     #14                 // class java/time/Duration\n         18: astore        6\n         20: aload_0\n-        21: invokestatic  #9                  // Method dev/ai4j/openai4j/OpenAiClient.builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        21: invokestatic  #25                 // Method dev/ai4j/openai4j/OpenAiClient.builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         24: aload_1\n-        25: ldc           #10                 // String https://api.openai.com/v1\n-        27: invokestatic  #7                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-        30: checkcast     #11                 // class java/lang/String\n-        33: invokevirtual #12                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        25: ldc           #31                 // String https://api.openai.com/v1\n+        27: invokestatic  #19                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        30: checkcast     #33                 // class java/lang/String\n+        33: invokevirtual #35                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         36: aload_2\n-        37: invokevirtual #13                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        37: invokevirtual #41                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         40: aload_3\n-        41: invokevirtual #14                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        41: invokevirtual #44                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         44: aload         6\n-        46: invokevirtual #15                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        46: invokevirtual #47                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         49: aload         6\n-        51: invokevirtual #16                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        51: invokevirtual #51                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         54: aload         6\n-        56: invokevirtual #17                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        56: invokevirtual #54                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         59: aload         6\n-        61: invokevirtual #18                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        61: invokevirtual #57                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         64: aload         8\n-        66: invokevirtual #19                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        66: invokevirtual #60                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         69: aload         9\n-        71: invokevirtual #20                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        71: invokevirtual #64                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         74: aload         10\n-        76: invokevirtual #21                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-        79: invokevirtual #22                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.build:()Ldev/ai4j/openai4j/OpenAiClient;\n-        82: putfield      #23                 // Field client:Ldev/ai4j/openai4j/OpenAiClient;\n+        76: invokevirtual #68                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        79: invokevirtual #71                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.build:()Ldev/ai4j/openai4j/OpenAiClient;\n+        82: putfield      #75                 // Field client:Ldev/ai4j/openai4j/OpenAiClient;\n         85: aload_0\n         86: aload         4\n-        88: ldc           #24                 // String gpt-3.5-turbo-instruct\n-        90: invokestatic  #7                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-        93: checkcast     #11                 // class java/lang/String\n-        96: putfield      #25                 // Field modelName:Ljava/lang/String;\n+        88: ldc           #81                 // String gpt-3.5-turbo-instruct\n+        90: invokestatic  #19                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        93: checkcast     #33                 // class java/lang/String\n+        96: putfield      #83                 // Field modelName:Ljava/lang/String;\n         99: aload_0\n        100: aload         5\n-       102: ldc2_w        #26                 // double 0.7d\n-       105: invokestatic  #28                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n-       108: invokestatic  #7                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-       111: checkcast     #29                 // class java/lang/Double\n-       114: putfield      #30                 // Field temperature:Ljava/lang/Double;\n+       102: ldc2_w        #87                 // double 0.7d\n+       105: invokestatic  #89                 // Method java/lang/Double.valueOf:(D)Ljava/lang/Double;\n+       108: invokestatic  #19                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       111: checkcast     #90                 // class java/lang/Double\n+       114: putfield      #95                 // Field temperature:Ljava/lang/Double;\n        117: aload_0\n        118: aload         7\n        120: iconst_3\n-       121: invokestatic  #31                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       124: invokestatic  #7                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-       127: checkcast     #32                 // class java/lang/Integer\n-       130: putfield      #33                 // Field maxRetries:Ljava/lang/Integer;\n+       121: invokestatic  #99                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       124: invokestatic  #19                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       127: checkcast     #100                // class java/lang/Integer\n+       130: putfield      #104                // Field maxRetries:Ljava/lang/Integer;\n        133: aload_0\n        134: aload         11\n        136: aload_0\n-       137: invokedynamic #34,  0             // InvokeDynamic #0:get:(Ldev/langchain4j/model/openai/OpenAiLanguageModel;)Ljava/util/function/Supplier;\n-       142: invokestatic  #35                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-       145: checkcast     #36                 // class dev/langchain4j/model/Tokenizer\n-       148: putfield      #37                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+       137: invokedynamic #108,  0            // InvokeDynamic #0:get:(Ldev/langchain4j/model/openai/OpenAiLanguageModel;)Ljava/util/function/Supplier;\n+       142: invokestatic  #112                // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+       145: checkcast     #115                // class dev/langchain4j/model/Tokenizer\n+       148: putfield      #117                // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n        151: return\n       LineNumberTable:\n         line 48: 0\n         line 50: 4\n         line 52: 20\n         line 53: 27\n         line 54: 37\n@@ -430,49 +430,49 @@\n             0     152    11 tokenizer   Ldev/langchain4j/model/Tokenizer;\n \n   public dev.langchain4j.model.output.Response<java.lang.String> generate(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=5, args_size=2\n-         0: invokestatic  #38                 // Method dev/ai4j/openai4j/completion/CompletionRequest.builder:()Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n+         0: invokestatic  #121                // Method dev/ai4j/openai4j/completion/CompletionRequest.builder:()Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n          3: aload_0\n-         4: getfield      #25                 // Field modelName:Ljava/lang/String;\n-         7: invokevirtual #39                 // Method dev/ai4j/openai4j/completion/CompletionRequest$Builder.model:(Ljava/lang/String;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n+         4: getfield      #83                 // Field modelName:Ljava/lang/String;\n+         7: invokevirtual #126                // Method dev/ai4j/openai4j/completion/CompletionRequest$Builder.model:(Ljava/lang/String;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n         10: aload_1\n-        11: invokevirtual #40                 // Method dev/ai4j/openai4j/completion/CompletionRequest$Builder.prompt:(Ljava/lang/String;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n+        11: invokevirtual #132                // Method dev/ai4j/openai4j/completion/CompletionRequest$Builder.prompt:(Ljava/lang/String;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n         14: aload_0\n-        15: getfield      #30                 // Field temperature:Ljava/lang/Double;\n-        18: invokevirtual #41                 // Method dev/ai4j/openai4j/completion/CompletionRequest$Builder.temperature:(Ljava/lang/Double;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n-        21: invokevirtual #42                 // Method dev/ai4j/openai4j/completion/CompletionRequest$Builder.build:()Ldev/ai4j/openai4j/completion/CompletionRequest;\n+        15: getfield      #95                 // Field temperature:Ljava/lang/Double;\n+        18: invokevirtual #135                // Method dev/ai4j/openai4j/completion/CompletionRequest$Builder.temperature:(Ljava/lang/Double;)Ldev/ai4j/openai4j/completion/CompletionRequest$Builder;\n+        21: invokevirtual #138                // Method dev/ai4j/openai4j/completion/CompletionRequest$Builder.build:()Ldev/ai4j/openai4j/completion/CompletionRequest;\n         24: astore_2\n         25: aload_0\n         26: aload_2\n-        27: invokedynamic #43,  0             // InvokeDynamic #1:call:(Ldev/langchain4j/model/openai/OpenAiLanguageModel;Ldev/ai4j/openai4j/completion/CompletionRequest;)Ljava/util/concurrent/Callable;\n+        27: invokedynamic #141,  0            // InvokeDynamic #1:call:(Ldev/langchain4j/model/openai/OpenAiLanguageModel;Ldev/ai4j/openai4j/completion/CompletionRequest;)Ljava/util/concurrent/Callable;\n         32: aload_0\n-        33: getfield      #33                 // Field maxRetries:Ljava/lang/Integer;\n-        36: invokevirtual #44                 // Method java/lang/Integer.intValue:()I\n-        39: invokestatic  #45                 // Method dev/langchain4j/internal/RetryUtils.withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n-        42: checkcast     #46                 // class dev/ai4j/openai4j/completion/CompletionResponse\n+        33: getfield      #104                // Field maxRetries:Ljava/lang/Integer;\n+        36: invokevirtual #145                // Method java/lang/Integer.intValue:()I\n+        39: invokestatic  #149                // Method dev/langchain4j/internal/RetryUtils.withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n+        42: checkcast     #155                // class dev/ai4j/openai4j/completion/CompletionResponse\n         45: astore_3\n         46: aload_3\n-        47: invokevirtual #47                 // Method dev/ai4j/openai4j/completion/CompletionResponse.choices:()Ljava/util/List;\n+        47: invokevirtual #157                // Method dev/ai4j/openai4j/completion/CompletionResponse.choices:()Ljava/util/List;\n         50: iconst_0\n-        51: invokeinterface #48,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-        56: checkcast     #49                 // class dev/ai4j/openai4j/completion/CompletionChoice\n+        51: invokeinterface #161,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+        56: checkcast     #166                // class dev/ai4j/openai4j/completion/CompletionChoice\n         59: astore        4\n         61: aload         4\n-        63: invokevirtual #50                 // Method dev/ai4j/openai4j/completion/CompletionChoice.text:()Ljava/lang/String;\n+        63: invokevirtual #168                // Method dev/ai4j/openai4j/completion/CompletionChoice.text:()Ljava/lang/String;\n         66: aload_3\n-        67: invokevirtual #51                 // Method dev/ai4j/openai4j/completion/CompletionResponse.usage:()Ldev/ai4j/openai4j/shared/Usage;\n-        70: invokestatic  #52                 // Method dev/langchain4j/model/openai/InternalOpenAiHelper.tokenUsageFrom:(Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n+        67: invokevirtual #172                // Method dev/ai4j/openai4j/completion/CompletionResponse.usage:()Ldev/ai4j/openai4j/shared/Usage;\n+        70: invokestatic  #176                // Method dev/langchain4j/model/openai/InternalOpenAiHelper.tokenUsageFrom:(Ldev/ai4j/openai4j/shared/Usage;)Ldev/langchain4j/model/output/TokenUsage;\n         73: aload         4\n-        75: invokevirtual #53                 // Method dev/ai4j/openai4j/completion/CompletionChoice.finishReason:()Ljava/lang/String;\n-        78: invokestatic  #54                 // Method dev/langchain4j/model/openai/InternalOpenAiHelper.finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n-        81: invokestatic  #55                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+        75: invokevirtual #180                // Method dev/ai4j/openai4j/completion/CompletionChoice.finishReason:()Ljava/lang/String;\n+        78: invokestatic  #183                // Method dev/langchain4j/model/openai/InternalOpenAiHelper.finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n+        81: invokestatic  #187                // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n         84: areturn\n       LineNumberTable:\n         line 73: 0\n         line 74: 7\n         line 75: 11\n         line 76: 18\n         line 77: 21\n@@ -486,73 +486,73 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      85     0  this   Ldev/langchain4j/model/openai/OpenAiLanguageModel;\n             0      85     1 prompt   Ljava/lang/String;\n            25      60     2 request   Ldev/ai4j/openai4j/completion/CompletionRequest;\n            46      39     3 response   Ldev/ai4j/openai4j/completion/CompletionResponse;\n            61      24     4 completionChoice   Ldev/ai4j/openai4j/completion/CompletionChoice;\n-    Signature: #111                         // (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n+    Signature: #258                         // (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ljava/lang/String;>;\n \n   public int estimateTokenCount(java.lang.String);\n     descriptor: (Ljava/lang/String;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #37                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+         1: getfield      #117                // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n          4: aload_1\n-         5: invokeinterface #56,  2           // InterfaceMethod dev/langchain4j/model/Tokenizer.estimateTokenCountInText:(Ljava/lang/String;)I\n+         5: invokeinterface #193,  2          // InterfaceMethod dev/langchain4j/model/Tokenizer.estimateTokenCountInText:(Ljava/lang/String;)I\n         10: ireturn\n       LineNumberTable:\n         line 91: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      11     0  this   Ldev/langchain4j/model/openai/OpenAiLanguageModel;\n             0      11     1 prompt   Ljava/lang/String;\n \n   public static dev.langchain4j.model.openai.OpenAiLanguageModel withApiKey(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiLanguageModel;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: invokestatic  #57                 // Method builder:()Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n+         0: invokestatic  #197                // Method builder:()Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n          3: aload_0\n-         4: invokevirtual #58                 // Method dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n-         7: invokevirtual #59                 // Method dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.build:()Ldev/langchain4j/model/openai/OpenAiLanguageModel;\n+         4: invokevirtual #200                // Method dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n+         7: invokevirtual #206                // Method dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.build:()Ldev/langchain4j/model/openai/OpenAiLanguageModel;\n         10: areturn\n       LineNumberTable:\n         line 95: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      11     0 apiKey   Ljava/lang/String;\n \n   public static dev.langchain4j.model.openai.OpenAiLanguageModel$OpenAiLanguageModelBuilder builder();\n     descriptor: ()Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=2, locals=0, args_size=0\n-         0: ldc           #60                 // class dev/langchain4j/model/openai/spi/OpenAiLanguageModelBuilderFactory\n-         2: invokedynamic #61,  0             // InvokeDynamic #2:get:()Ljava/util/function/Supplier;\n-         7: invokestatic  #62                 // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        10: checkcast     #63                 // class dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder\n+         0: ldc           #209                // class dev/langchain4j/model/openai/spi/OpenAiLanguageModelBuilderFactory\n+         2: invokedynamic #211,  0            // InvokeDynamic #2:get:()Ljava/util/function/Supplier;\n+         7: invokestatic  #214                // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        10: checkcast     #201                // class dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder\n         13: areturn\n       LineNumberTable:\n         line 99: 0\n \n   private dev.ai4j.openai4j.completion.CompletionResponse lambda$generate$1(dev.ai4j.openai4j.completion.CompletionRequest) throws java.lang.Exception;\n     descriptor: (Ldev/ai4j/openai4j/completion/CompletionRequest;)Ldev/ai4j/openai4j/completion/CompletionResponse;\n     flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #23                 // Field client:Ldev/ai4j/openai4j/OpenAiClient;\n+         1: getfield      #75                 // Field client:Ldev/ai4j/openai4j/OpenAiClient;\n          4: aload_1\n-         5: invokevirtual #64                 // Method dev/ai4j/openai4j/OpenAiClient.completion:(Ldev/ai4j/openai4j/completion/CompletionRequest;)Ldev/ai4j/openai4j/SyncOrAsyncOrStreaming;\n-         8: invokeinterface #65,  1           // InterfaceMethod dev/ai4j/openai4j/SyncOrAsyncOrStreaming.execute:()Ljava/lang/Object;\n-        13: checkcast     #46                 // class dev/ai4j/openai4j/completion/CompletionResponse\n+         5: invokevirtual #220                // Method dev/ai4j/openai4j/OpenAiClient.completion:(Ldev/ai4j/openai4j/completion/CompletionRequest;)Ldev/ai4j/openai4j/SyncOrAsyncOrStreaming;\n+         8: invokeinterface #224,  1          // InterfaceMethod dev/ai4j/openai4j/SyncOrAsyncOrStreaming.execute:()Ljava/lang/Object;\n+        13: checkcast     #155                // class dev/ai4j/openai4j/completion/CompletionResponse\n         16: areturn\n       LineNumberTable:\n         line 79: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      17     0  this   Ldev/langchain4j/model/openai/OpenAiLanguageModel;\n             0      17     1 request   Ldev/ai4j/openai4j/completion/CompletionRequest;\n@@ -560,41 +560,41 @@\n       throws java.lang.Exception\n \n   private dev.langchain4j.model.Tokenizer lambda$new$0();\n     descriptor: ()Ldev/langchain4j/model/Tokenizer;\n     flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=1, args_size=1\n-         0: new           #66                 // class dev/langchain4j/model/openai/OpenAiTokenizer\n+         0: new           #230                // class dev/langchain4j/model/openai/OpenAiTokenizer\n          3: dup\n          4: aload_0\n-         5: getfield      #25                 // Field modelName:Ljava/lang/String;\n-         8: invokespecial #67                 // Method dev/langchain4j/model/openai/OpenAiTokenizer.\"<init>\":(Ljava/lang/String;)V\n+         5: getfield      #83                 // Field modelName:Ljava/lang/String;\n+         8: invokespecial #232                // Method dev/langchain4j/model/openai/OpenAiTokenizer.\"<init>\":(Ljava/lang/String;)V\n         11: areturn\n       LineNumberTable:\n         line 67: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      12     0  this   Ldev/langchain4j/model/openai/OpenAiLanguageModel;\n }\n SourceFile: \"OpenAiLanguageModel.java\"\n-InnerClasses:\n-  public static #72= #63 of #68;          // OpenAiLanguageModelBuilder=class dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder of class dev/langchain4j/model/openai/OpenAiLanguageModel\n-  public static abstract #220= #137 of #133; // Builder=class dev/ai4j/openai4j/OpenAiClient$Builder of class dev/ai4j/openai4j/OpenAiClient\n-  public static final #220= #169 of #167; // Builder=class dev/ai4j/openai4j/completion/CompletionRequest$Builder of class dev/ai4j/openai4j/completion/CompletionRequest\n-  public static final #295= #294 of #297; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #159 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #272 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #160 ()Ljava/lang/Object;\n-      #161 REF_invokeSpecial dev/langchain4j/model/openai/OpenAiLanguageModel.lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n-      #162 ()Ldev/langchain4j/model/Tokenizer;\n-  1: #159 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #279 ()Ljava/lang/Object;\n+      #280 REF_invokeSpecial dev/langchain4j/model/openai/OpenAiLanguageModel.lambda$new$0:()Ldev/langchain4j/model/Tokenizer;\n+      #283 ()Ldev/langchain4j/model/Tokenizer;\n+  1: #272 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #160 ()Ljava/lang/Object;\n-      #174 REF_invokeSpecial dev/langchain4j/model/openai/OpenAiLanguageModel.lambda$generate$1:(Ldev/ai4j/openai4j/completion/CompletionRequest;)Ldev/ai4j/openai4j/completion/CompletionResponse;\n-      #175 ()Ldev/ai4j/openai4j/completion/CompletionResponse;\n-  2: #159 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #279 ()Ljava/lang/Object;\n+      #284 REF_invokeSpecial dev/langchain4j/model/openai/OpenAiLanguageModel.lambda$generate$1:(Ldev/ai4j/openai4j/completion/CompletionRequest;)Ldev/ai4j/openai4j/completion/CompletionResponse;\n+      #287 ()Ldev/ai4j/openai4j/completion/CompletionResponse;\n+  2: #272 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #160 ()Ljava/lang/Object;\n-      #197 REF_newInvokeSpecial dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.\"<init>\":()V\n-      #198 ()Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n+      #279 ()Ljava/lang/Object;\n+      #289 REF_newInvokeSpecial dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder.\"<init>\":()V\n+      #291 ()Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;\n+InnerClasses:\n+  public static abstract #293= #36 of #26; // Builder=class dev/ai4j/openai4j/OpenAiClient$Builder of class dev/ai4j/openai4j/OpenAiClient\n+  public static final #293= #127 of #122; // Builder=class dev/ai4j/openai4j/completion/CompletionRequest$Builder of class dev/ai4j/openai4j/completion/CompletionRequest\n+  public static #294= #201 of #76;        // OpenAiLanguageModelBuilder=class dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder of class dev/langchain4j/model/openai/OpenAiLanguageModel\n+  public static final #299= #295 of #297; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiLanguageModelName.class", "source2": "dev/langchain4j/model/openai/OpenAiLanguageModelName.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,70 +1,72 @@\n-  SHA-256 checksum b5195e0cc665c27161c0ca194d855ce365c7b642d6f0dbd233e96116e7827bc1\n+  SHA-256 checksum d35034ec19944ade9b3dd229b815f6d35a7362dff3c6446885982f89ee869bc3\n   Compiled from \"OpenAiLanguageModelName.java\"\n public final class dev.langchain4j.model.openai.OpenAiLanguageModelName extends java.lang.Enum<dev.langchain4j.model.openai.OpenAiLanguageModelName>\n   minor version: 0\n   major version: 52\n   flags: (0x4031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ENUM\n-  this_class: #4                          // dev/langchain4j/model/openai/OpenAiLanguageModelName\n-  super_class: #12                        // java/lang/Enum\n-  interfaces: 0, fields: 3, methods: 5, attributes: 2\n+  this_class: #1                          // dev/langchain4j/model/openai/OpenAiLanguageModelName\n+  super_class: #17                        // java/lang/Enum\n+  interfaces: 0, fields: 3, methods: 6, attributes: 2\n Constant pool:\n-   #1 = Fieldref           #4.#39         // dev/langchain4j/model/openai/OpenAiLanguageModelName.$VALUES:[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n-   #2 = Methodref          #40.#41        // \"[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\".clone:()Ljava/lang/Object;\n-   #3 = Class              #18            // \"[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\"\n-   #4 = Class              #42            // dev/langchain4j/model/openai/OpenAiLanguageModelName\n-   #5 = Methodref          #12.#43        // java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n-   #6 = Methodref          #12.#44        // java/lang/Enum.\"<init>\":(Ljava/lang/String;I)V\n-   #7 = Fieldref           #4.#45         // dev/langchain4j/model/openai/OpenAiLanguageModelName.stringValue:Ljava/lang/String;\n-   #8 = String             #13            // GPT_3_5_TURBO_INSTRUCT\n-   #9 = String             #46            // gpt-3.5-turbo-instruct\n-  #10 = Methodref          #4.#47         // dev/langchain4j/model/openai/OpenAiLanguageModelName.\"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-  #11 = Fieldref           #4.#48         // dev/langchain4j/model/openai/OpenAiLanguageModelName.GPT_3_5_TURBO_INSTRUCT:Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n-  #12 = Class              #49            // java/lang/Enum\n-  #13 = Utf8               GPT_3_5_TURBO_INSTRUCT\n-  #14 = Utf8               Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n-  #15 = Utf8               stringValue\n-  #16 = Utf8               Ljava/lang/String;\n-  #17 = Utf8               $VALUES\n-  #18 = Utf8               [Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n-  #19 = Utf8               values\n-  #20 = Utf8               ()[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n-  #21 = Utf8               Code\n-  #22 = Utf8               LineNumberTable\n-  #23 = Utf8               valueOf\n-  #24 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n-  #25 = Utf8               LocalVariableTable\n-  #26 = Utf8               name\n-  #27 = Utf8               <init>\n-  #28 = Utf8               (Ljava/lang/String;ILjava/lang/String;)V\n-  #29 = Utf8               this\n-  #30 = Utf8               Signature\n-  #31 = Utf8               (Ljava/lang/String;)V\n-  #32 = Utf8               toString\n-  #33 = Utf8               ()Ljava/lang/String;\n-  #34 = Utf8               <clinit>\n-  #35 = Utf8               ()V\n-  #36 = Utf8               Ljava/lang/Enum<Ldev/langchain4j/model/openai/OpenAiLanguageModelName;>;\n-  #37 = Utf8               SourceFile\n-  #38 = Utf8               OpenAiLanguageModelName.java\n-  #39 = NameAndType        #17:#18        // $VALUES:[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n-  #40 = Class              #18            // \"[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\"\n-  #41 = NameAndType        #50:#51        // clone:()Ljava/lang/Object;\n-  #42 = Utf8               dev/langchain4j/model/openai/OpenAiLanguageModelName\n-  #43 = NameAndType        #23:#52        // valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n-  #44 = NameAndType        #27:#53        // \"<init>\":(Ljava/lang/String;I)V\n-  #45 = NameAndType        #15:#16        // stringValue:Ljava/lang/String;\n-  #46 = Utf8               gpt-3.5-turbo-instruct\n-  #47 = NameAndType        #27:#28        // \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-  #48 = NameAndType        #13:#14        // GPT_3_5_TURBO_INSTRUCT:Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n-  #49 = Utf8               java/lang/Enum\n-  #50 = Utf8               clone\n-  #51 = Utf8               ()Ljava/lang/Object;\n-  #52 = Utf8               (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n-  #53 = Utf8               (Ljava/lang/String;I)V\n+   #1 = Class              #2             // dev/langchain4j/model/openai/OpenAiLanguageModelName\n+   #2 = Utf8               dev/langchain4j/model/openai/OpenAiLanguageModelName\n+   #3 = Fieldref           #1.#4          // dev/langchain4j/model/openai/OpenAiLanguageModelName.GPT_3_5_TURBO_INSTRUCT:Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n+   #4 = NameAndType        #5:#6          // GPT_3_5_TURBO_INSTRUCT:Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n+   #5 = Utf8               GPT_3_5_TURBO_INSTRUCT\n+   #6 = Utf8               Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n+   #7 = Fieldref           #1.#8          // dev/langchain4j/model/openai/OpenAiLanguageModelName.$VALUES:[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n+   #8 = NameAndType        #9:#10         // $VALUES:[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n+   #9 = Utf8               $VALUES\n+  #10 = Utf8               [Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n+  #11 = Methodref          #12.#13        // \"[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\".clone:()Ljava/lang/Object;\n+  #12 = Class              #10            // \"[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\"\n+  #13 = NameAndType        #14:#15        // clone:()Ljava/lang/Object;\n+  #14 = Utf8               clone\n+  #15 = Utf8               ()Ljava/lang/Object;\n+  #16 = Methodref          #17.#18        // java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n+  #17 = Class              #19            // java/lang/Enum\n+  #18 = NameAndType        #20:#21        // valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n+  #19 = Utf8               java/lang/Enum\n+  #20 = Utf8               valueOf\n+  #21 = Utf8               (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n+  #22 = Methodref          #17.#23        // java/lang/Enum.\"<init>\":(Ljava/lang/String;I)V\n+  #23 = NameAndType        #24:#25        // \"<init>\":(Ljava/lang/String;I)V\n+  #24 = Utf8               <init>\n+  #25 = Utf8               (Ljava/lang/String;I)V\n+  #26 = Fieldref           #1.#27         // dev/langchain4j/model/openai/OpenAiLanguageModelName.stringValue:Ljava/lang/String;\n+  #27 = NameAndType        #28:#29        // stringValue:Ljava/lang/String;\n+  #28 = Utf8               stringValue\n+  #29 = Utf8               Ljava/lang/String;\n+  #30 = String             #5             // GPT_3_5_TURBO_INSTRUCT\n+  #31 = String             #32            // gpt-3.5-turbo-instruct\n+  #32 = Utf8               gpt-3.5-turbo-instruct\n+  #33 = Methodref          #1.#34         // dev/langchain4j/model/openai/OpenAiLanguageModelName.\"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+  #34 = NameAndType        #24:#35        // \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+  #35 = Utf8               (Ljava/lang/String;ILjava/lang/String;)V\n+  #36 = Methodref          #1.#37         // dev/langchain4j/model/openai/OpenAiLanguageModelName.$values:()[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n+  #37 = NameAndType        #38:#39        // $values:()[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n+  #38 = Utf8               $values\n+  #39 = Utf8               ()[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n+  #40 = Utf8               values\n+  #41 = Utf8               Code\n+  #42 = Utf8               LineNumberTable\n+  #43 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n+  #44 = Utf8               LocalVariableTable\n+  #45 = Utf8               name\n+  #46 = Utf8               this\n+  #47 = Utf8               Signature\n+  #48 = Utf8               (Ljava/lang/String;)V\n+  #49 = Utf8               toString\n+  #50 = Utf8               ()Ljava/lang/String;\n+  #51 = Utf8               <clinit>\n+  #52 = Utf8               ()V\n+  #53 = Utf8               Ljava/lang/Enum<Ldev/langchain4j/model/openai/OpenAiLanguageModelName;>;\n+  #54 = Utf8               SourceFile\n+  #55 = Utf8               OpenAiLanguageModelName.java\n {\n   public static final dev.langchain4j.model.openai.OpenAiLanguageModelName GPT_3_5_TURBO_INSTRUCT;\n     descriptor: Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n     flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM\n \n   private final java.lang.String stringValue;\n     descriptor: Ljava/lang/String;\n@@ -75,30 +77,30 @@\n     flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC\n \n   public static dev.langchain4j.model.openai.OpenAiLanguageModelName[] values();\n     descriptor: ()[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: getstatic     #1                  // Field $VALUES:[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n-         3: invokevirtual #2                  // Method \"[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\".clone:()Ljava/lang/Object;\n-         6: checkcast     #3                  // class \"[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\"\n+         0: getstatic     #7                  // Field $VALUES:[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n+         3: invokevirtual #11                 // Method \"[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\".clone:()Ljava/lang/Object;\n+         6: checkcast     #12                 // class \"[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\"\n          9: areturn\n       LineNumberTable:\n         line 3: 0\n \n   public static dev.langchain4j.model.openai.OpenAiLanguageModelName valueOf(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: ldc           #4                  // class dev/langchain4j/model/openai/OpenAiLanguageModelName\n+         0: ldc           #1                  // class dev/langchain4j/model/openai/OpenAiLanguageModelName\n          2: aload_0\n-         3: invokestatic  #5                  // Method java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n-         6: checkcast     #4                  // class dev/langchain4j/model/openai/OpenAiLanguageModelName\n+         3: invokestatic  #16                 // Method java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n+         6: checkcast     #1                  // class dev/langchain4j/model/openai/OpenAiLanguageModelName\n          9: areturn\n       LineNumberTable:\n         line 3: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  name   Ljava/lang/String;\n \n@@ -106,62 +108,72 @@\n     descriptor: (Ljava/lang/String;ILjava/lang/String;)V\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=3, locals=4, args_size=4\n          0: aload_0\n          1: aload_1\n          2: iload_2\n-         3: invokespecial #6                  // Method java/lang/Enum.\"<init>\":(Ljava/lang/String;I)V\n+         3: invokespecial #22                 // Method java/lang/Enum.\"<init>\":(Ljava/lang/String;I)V\n          6: aload_0\n          7: aload_3\n-         8: putfield      #7                  // Field stringValue:Ljava/lang/String;\n+         8: putfield      #26                 // Field stringValue:Ljava/lang/String;\n         11: return\n       LineNumberTable:\n         line 9: 0\n         line 10: 6\n         line 11: 11\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      12     0  this   Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n             0      12     3 stringValue   Ljava/lang/String;\n-    Signature: #31                          // (Ljava/lang/String;)V\n+    Signature: #48                          // (Ljava/lang/String;)V\n \n   public java.lang.String toString();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #7                  // Field stringValue:Ljava/lang/String;\n+         1: getfield      #26                 // Field stringValue:Ljava/lang/String;\n          4: areturn\n       LineNumberTable:\n         line 15: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n \n+  private static dev.langchain4j.model.openai.OpenAiLanguageModelName[] $values();\n+    descriptor: ()[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n+    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n+    Code:\n+      stack=4, locals=0, args_size=0\n+         0: iconst_1\n+         1: anewarray     #1                  // class dev/langchain4j/model/openai/OpenAiLanguageModelName\n+         4: dup\n+         5: iconst_0\n+         6: getstatic     #3                  // Field GPT_3_5_TURBO_INSTRUCT:Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n+         9: aastore\n+        10: areturn\n+      LineNumberTable:\n+        line 3: 0\n+\n   static {};\n     descriptor: ()V\n     flags: (0x0008) ACC_STATIC\n     Code:\n       stack=5, locals=0, args_size=0\n-         0: new           #4                  // class dev/langchain4j/model/openai/OpenAiLanguageModelName\n+         0: new           #1                  // class dev/langchain4j/model/openai/OpenAiLanguageModelName\n          3: dup\n-         4: ldc           #8                  // String GPT_3_5_TURBO_INSTRUCT\n+         4: ldc           #30                 // String GPT_3_5_TURBO_INSTRUCT\n          6: iconst_0\n-         7: ldc           #9                  // String gpt-3.5-turbo-instruct\n-         9: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-        12: putstatic     #11                 // Field GPT_3_5_TURBO_INSTRUCT:Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n-        15: iconst_1\n-        16: anewarray     #4                  // class dev/langchain4j/model/openai/OpenAiLanguageModelName\n-        19: dup\n-        20: iconst_0\n-        21: getstatic     #11                 // Field GPT_3_5_TURBO_INSTRUCT:Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n-        24: aastore\n-        25: putstatic     #1                  // Field $VALUES:[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n-        28: return\n+         7: ldc           #31                 // String gpt-3.5-turbo-instruct\n+         9: invokespecial #33                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+        12: putstatic     #3                  // Field GPT_3_5_TURBO_INSTRUCT:Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n+        15: invokestatic  #36                 // Method $values:()[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n+        18: putstatic     #7                  // Field $VALUES:[Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n+        21: return\n       LineNumberTable:\n         line 5: 0\n         line 3: 15\n }\n-Signature: #36                          // Ljava/lang/Enum<Ldev/langchain4j/model/openai/OpenAiLanguageModelName;>;\n+Signature: #53                          // Ljava/lang/Enum<Ldev/langchain4j/model/openai/OpenAiLanguageModelName;>;\n SourceFile: \"OpenAiLanguageModelName.java\"\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiModelName.class", "source2": "dev/langchain4j/model/openai/OpenAiModelName.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,97 +1,97 @@\n-  SHA-256 checksum 8a0ff36b0b7c7dfb9ea46d4c5af9cbf87b2ba5809c1cbb57e87cd1184d9c9a3b\n+  SHA-256 checksum 3c89a3b95cc5889a4bcf0906ecd2708f87713753d0a2eb54615248c880501d54\n   Compiled from \"OpenAiModelName.java\"\n public class dev.langchain4j.model.openai.OpenAiModelName\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #2                          // dev/langchain4j/model/openai/OpenAiModelName\n-  super_class: #3                         // java/lang/Object\n+  this_class: #7                          // dev/langchain4j/model/openai/OpenAiModelName\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 20, methods: 1, attributes: 3\n Constant pool:\n-   #1 = Methodref          #3.#58         // java/lang/Object.\"<init>\":()V\n-   #2 = Class              #59            // dev/langchain4j/model/openai/OpenAiModelName\n-   #3 = Class              #60            // java/lang/Object\n-   #4 = Utf8               GPT_3_5_TURBO\n-   #5 = Utf8               Ljava/lang/String;\n-   #6 = Utf8               ConstantValue\n-   #7 = String             #61            // gpt-3.5-turbo\n-   #8 = Utf8               GPT_3_5_TURBO_0301\n-   #9 = String             #62            // gpt-3.5-turbo-0301\n-  #10 = Utf8               GPT_3_5_TURBO_0613\n-  #11 = String             #63            // gpt-3.5-turbo-0613\n-  #12 = Utf8               GPT_3_5_TURBO_1106\n-  #13 = String             #64            // gpt-3.5-turbo-1106\n-  #14 = Utf8               GPT_3_5_TURBO_16K\n-  #15 = String             #65            // gpt-3.5-turbo-16k\n-  #16 = Utf8               GPT_3_5_TURBO_16K_0613\n-  #17 = String             #66            // gpt-3.5-turbo-16k-0613\n-  #18 = Utf8               GPT_4\n-  #19 = String             #67            // gpt-4\n-  #20 = Utf8               GPT_4_0314\n-  #21 = String             #68            // gpt-4-0314\n-  #22 = Utf8               GPT_4_0613\n-  #23 = String             #69            // gpt-4-0613\n-  #24 = Utf8               GPT_4_32K\n-  #25 = String             #70            // gpt-4-32k\n-  #26 = Utf8               GPT_4_32K_0314\n-  #27 = String             #71            // gpt-4-32k-0314\n-  #28 = Utf8               GPT_4_32K_0613\n-  #29 = String             #72            // gpt-4-32k-0613\n-  #30 = Utf8               GPT_4_1106_PREVIEW\n-  #31 = String             #73            // gpt-4-1106-preview\n-  #32 = Utf8               GPT_4_VISION_PREVIEW\n-  #33 = String             #74            // gpt-4-vision-preview\n-  #34 = Utf8               GPT_3_5_TURBO_INSTRUCT\n-  #35 = String             #75            // gpt-3.5-turbo-instruct\n-  #36 = Utf8               TEXT_EMBEDDING_ADA_002\n-  #37 = String             #76            // text-embedding-ada-002\n-  #38 = Utf8               TEXT_MODERATION_STABLE\n-  #39 = String             #77            // text-moderation-stable\n-  #40 = Utf8               TEXT_MODERATION_LATEST\n-  #41 = String             #78            // text-moderation-latest\n-  #42 = Utf8               DALL_E_2\n-  #43 = String             #79            // dall-e-2\n-  #44 = Utf8               DALL_E_3\n-  #45 = String             #80            // dall-e-3\n-  #46 = Utf8               <init>\n-  #47 = Utf8               ()V\n-  #48 = Utf8               Code\n-  #49 = Utf8               LineNumberTable\n-  #50 = Utf8               LocalVariableTable\n-  #51 = Utf8               this\n-  #52 = Utf8               Ldev/langchain4j/model/openai/OpenAiModelName;\n-  #53 = Utf8               SourceFile\n-  #54 = Utf8               OpenAiModelName.java\n-  #55 = Utf8               Deprecated\n-  #56 = Utf8               RuntimeVisibleAnnotations\n-  #57 = Utf8               Ljava/lang/Deprecated;\n-  #58 = NameAndType        #46:#47        // \"<init>\":()V\n-  #59 = Utf8               dev/langchain4j/model/openai/OpenAiModelName\n-  #60 = Utf8               java/lang/Object\n-  #61 = Utf8               gpt-3.5-turbo\n-  #62 = Utf8               gpt-3.5-turbo-0301\n-  #63 = Utf8               gpt-3.5-turbo-0613\n-  #64 = Utf8               gpt-3.5-turbo-1106\n-  #65 = Utf8               gpt-3.5-turbo-16k\n-  #66 = Utf8               gpt-3.5-turbo-16k-0613\n-  #67 = Utf8               gpt-4\n-  #68 = Utf8               gpt-4-0314\n-  #69 = Utf8               gpt-4-0613\n-  #70 = Utf8               gpt-4-32k\n-  #71 = Utf8               gpt-4-32k-0314\n-  #72 = Utf8               gpt-4-32k-0613\n-  #73 = Utf8               gpt-4-1106-preview\n-  #74 = Utf8               gpt-4-vision-preview\n-  #75 = Utf8               gpt-3.5-turbo-instruct\n-  #76 = Utf8               text-embedding-ada-002\n-  #77 = Utf8               text-moderation-stable\n-  #78 = Utf8               text-moderation-latest\n-  #79 = Utf8               dall-e-2\n-  #80 = Utf8               dall-e-3\n+   #1 = Methodref          #2.#3          // java/lang/Object.\"<init>\":()V\n+   #2 = Class              #4             // java/lang/Object\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Class              #8             // dev/langchain4j/model/openai/OpenAiModelName\n+   #8 = Utf8               dev/langchain4j/model/openai/OpenAiModelName\n+   #9 = Utf8               GPT_3_5_TURBO\n+  #10 = Utf8               Ljava/lang/String;\n+  #11 = Utf8               ConstantValue\n+  #12 = String             #13            // gpt-3.5-turbo\n+  #13 = Utf8               gpt-3.5-turbo\n+  #14 = Utf8               GPT_3_5_TURBO_0301\n+  #15 = String             #16            // gpt-3.5-turbo-0301\n+  #16 = Utf8               gpt-3.5-turbo-0301\n+  #17 = Utf8               GPT_3_5_TURBO_0613\n+  #18 = String             #19            // gpt-3.5-turbo-0613\n+  #19 = Utf8               gpt-3.5-turbo-0613\n+  #20 = Utf8               GPT_3_5_TURBO_1106\n+  #21 = String             #22            // gpt-3.5-turbo-1106\n+  #22 = Utf8               gpt-3.5-turbo-1106\n+  #23 = Utf8               GPT_3_5_TURBO_16K\n+  #24 = String             #25            // gpt-3.5-turbo-16k\n+  #25 = Utf8               gpt-3.5-turbo-16k\n+  #26 = Utf8               GPT_3_5_TURBO_16K_0613\n+  #27 = String             #28            // gpt-3.5-turbo-16k-0613\n+  #28 = Utf8               gpt-3.5-turbo-16k-0613\n+  #29 = Utf8               GPT_4\n+  #30 = String             #31            // gpt-4\n+  #31 = Utf8               gpt-4\n+  #32 = Utf8               GPT_4_0314\n+  #33 = String             #34            // gpt-4-0314\n+  #34 = Utf8               gpt-4-0314\n+  #35 = Utf8               GPT_4_0613\n+  #36 = String             #37            // gpt-4-0613\n+  #37 = Utf8               gpt-4-0613\n+  #38 = Utf8               GPT_4_32K\n+  #39 = String             #40            // gpt-4-32k\n+  #40 = Utf8               gpt-4-32k\n+  #41 = Utf8               GPT_4_32K_0314\n+  #42 = String             #43            // gpt-4-32k-0314\n+  #43 = Utf8               gpt-4-32k-0314\n+  #44 = Utf8               GPT_4_32K_0613\n+  #45 = String             #46            // gpt-4-32k-0613\n+  #46 = Utf8               gpt-4-32k-0613\n+  #47 = Utf8               GPT_4_1106_PREVIEW\n+  #48 = String             #49            // gpt-4-1106-preview\n+  #49 = Utf8               gpt-4-1106-preview\n+  #50 = Utf8               GPT_4_VISION_PREVIEW\n+  #51 = String             #52            // gpt-4-vision-preview\n+  #52 = Utf8               gpt-4-vision-preview\n+  #53 = Utf8               GPT_3_5_TURBO_INSTRUCT\n+  #54 = String             #55            // gpt-3.5-turbo-instruct\n+  #55 = Utf8               gpt-3.5-turbo-instruct\n+  #56 = Utf8               TEXT_EMBEDDING_ADA_002\n+  #57 = String             #58            // text-embedding-ada-002\n+  #58 = Utf8               text-embedding-ada-002\n+  #59 = Utf8               TEXT_MODERATION_STABLE\n+  #60 = String             #61            // text-moderation-stable\n+  #61 = Utf8               text-moderation-stable\n+  #62 = Utf8               TEXT_MODERATION_LATEST\n+  #63 = String             #64            // text-moderation-latest\n+  #64 = Utf8               text-moderation-latest\n+  #65 = Utf8               DALL_E_2\n+  #66 = String             #67            // dall-e-2\n+  #67 = Utf8               dall-e-2\n+  #68 = Utf8               DALL_E_3\n+  #69 = String             #70            // dall-e-3\n+  #70 = Utf8               dall-e-3\n+  #71 = Utf8               Code\n+  #72 = Utf8               LineNumberTable\n+  #73 = Utf8               LocalVariableTable\n+  #74 = Utf8               this\n+  #75 = Utf8               Ldev/langchain4j/model/openai/OpenAiModelName;\n+  #76 = Utf8               SourceFile\n+  #77 = Utf8               OpenAiModelName.java\n+  #78 = Utf8               Deprecated\n+  #79 = Utf8               RuntimeVisibleAnnotations\n+  #80 = Utf8               Ljava/lang/Deprecated;\n {\n   public static final java.lang.String GPT_3_5_TURBO = \"gpt-3.5-turbo\";\n     descriptor: Ljava/lang/String;\n     flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL\n     ConstantValue: String gpt-3.5-turbo\n \n   public static final java.lang.String GPT_3_5_TURBO_0301 = \"gpt-3.5-turbo-0301\";\n@@ -202,9 +202,9 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/model/openai/OpenAiModelName;\n }\n SourceFile: \"OpenAiModelName.java\"\n Deprecated: true\n RuntimeVisibleAnnotations:\n-  0: #57()\n+  0: #80()\n     java.lang.Deprecated\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.class", "source2": "dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,117 +1,117 @@\n-  SHA-256 checksum 77f0d4276a1d052cc229fbabf4693656e5e06630eb1c20bb64dfd2dd69a232a4\n+  SHA-256 checksum 296534a7bda18de6359cf0b2b1faec41747e53693b6a1e38823928edb490f2e9\n   Compiled from \"OpenAiModerationModel.java\"\n public class dev.langchain4j.model.openai.OpenAiModerationModel$OpenAiModerationModelBuilder\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #29                         // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder\n-  super_class: #30                        // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 9, methods: 13, attributes: 2\n Constant pool:\n-    #1 = Methodref          #30.#67       // java/lang/Object.\"<init>\":()V\n-    #2 = Fieldref           #29.#68       // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.modelName:Ljava/lang/String;\n-    #3 = Methodref          #69.#70       // dev/langchain4j/model/openai/OpenAiModerationModelName.toString:()Ljava/lang/String;\n-    #4 = Fieldref           #29.#71       // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.baseUrl:Ljava/lang/String;\n-    #5 = Fieldref           #29.#72       // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.apiKey:Ljava/lang/String;\n-    #6 = Fieldref           #29.#73       // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.organizationId:Ljava/lang/String;\n-    #7 = Fieldref           #29.#74       // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.timeout:Ljava/time/Duration;\n-    #8 = Fieldref           #29.#75       // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.maxRetries:Ljava/lang/Integer;\n-    #9 = Fieldref           #29.#76       // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.proxy:Ljava/net/Proxy;\n-   #10 = Fieldref           #29.#77       // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.logRequests:Ljava/lang/Boolean;\n-   #11 = Fieldref           #29.#78       // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.logResponses:Ljava/lang/Boolean;\n-   #12 = Class              #79           // dev/langchain4j/model/openai/OpenAiModerationModel\n-   #13 = Methodref          #12.#80       // dev/langchain4j/model/openai/OpenAiModerationModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;)V\n-   #14 = Class              #81           // java/lang/StringBuilder\n-   #15 = Methodref          #14.#67       // java/lang/StringBuilder.\"<init>\":()V\n-   #16 = String             #82           // OpenAiModerationModel.OpenAiModerationModelBuilder(baseUrl=\n-   #17 = Methodref          #14.#83       // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #18 = String             #84           // , apiKey=\n-   #19 = String             #85           // , organizationId=\n-   #20 = String             #86           // , modelName=\n-   #21 = String             #87           // , timeout=\n-   #22 = Methodref          #14.#88       // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #23 = String             #89           // , maxRetries=\n-   #24 = String             #90           // , proxy=\n-   #25 = String             #91           // , logRequests=\n-   #26 = String             #92           // , logResponses=\n-   #27 = String             #93           // )\n-   #28 = Methodref          #14.#70       // java/lang/StringBuilder.toString:()Ljava/lang/String;\n-   #29 = Class              #94           // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder\n-   #30 = Class              #95           // java/lang/Object\n-   #31 = Utf8               baseUrl\n-   #32 = Utf8               Ljava/lang/String;\n-   #33 = Utf8               apiKey\n-   #34 = Utf8               organizationId\n-   #35 = Utf8               modelName\n-   #36 = Utf8               timeout\n-   #37 = Utf8               Ljava/time/Duration;\n-   #38 = Utf8               maxRetries\n-   #39 = Utf8               Ljava/lang/Integer;\n-   #40 = Utf8               proxy\n-   #41 = Utf8               Ljava/net/Proxy;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Fieldref           #8.#9         // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.modelName:Ljava/lang/String;\n+    #8 = Class              #10           // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder\n+    #9 = NameAndType        #11:#12       // modelName:Ljava/lang/String;\n+   #10 = Utf8               dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder\n+   #11 = Utf8               modelName\n+   #12 = Utf8               Ljava/lang/String;\n+   #13 = Methodref          #14.#15       // dev/langchain4j/model/openai/OpenAiModerationModelName.toString:()Ljava/lang/String;\n+   #14 = Class              #16           // dev/langchain4j/model/openai/OpenAiModerationModelName\n+   #15 = NameAndType        #17:#18       // toString:()Ljava/lang/String;\n+   #16 = Utf8               dev/langchain4j/model/openai/OpenAiModerationModelName\n+   #17 = Utf8               toString\n+   #18 = Utf8               ()Ljava/lang/String;\n+   #19 = Fieldref           #8.#20        // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.baseUrl:Ljava/lang/String;\n+   #20 = NameAndType        #21:#12       // baseUrl:Ljava/lang/String;\n+   #21 = Utf8               baseUrl\n+   #22 = Fieldref           #8.#23        // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.apiKey:Ljava/lang/String;\n+   #23 = NameAndType        #24:#12       // apiKey:Ljava/lang/String;\n+   #24 = Utf8               apiKey\n+   #25 = Fieldref           #8.#26        // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.organizationId:Ljava/lang/String;\n+   #26 = NameAndType        #27:#12       // organizationId:Ljava/lang/String;\n+   #27 = Utf8               organizationId\n+   #28 = Fieldref           #8.#29        // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.timeout:Ljava/time/Duration;\n+   #29 = NameAndType        #30:#31       // timeout:Ljava/time/Duration;\n+   #30 = Utf8               timeout\n+   #31 = Utf8               Ljava/time/Duration;\n+   #32 = Fieldref           #8.#33        // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.maxRetries:Ljava/lang/Integer;\n+   #33 = NameAndType        #34:#35       // maxRetries:Ljava/lang/Integer;\n+   #34 = Utf8               maxRetries\n+   #35 = Utf8               Ljava/lang/Integer;\n+   #36 = Fieldref           #8.#37        // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.proxy:Ljava/net/Proxy;\n+   #37 = NameAndType        #38:#39       // proxy:Ljava/net/Proxy;\n+   #38 = Utf8               proxy\n+   #39 = Utf8               Ljava/net/Proxy;\n+   #40 = Fieldref           #8.#41        // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.logRequests:Ljava/lang/Boolean;\n+   #41 = NameAndType        #42:#43       // logRequests:Ljava/lang/Boolean;\n    #42 = Utf8               logRequests\n    #43 = Utf8               Ljava/lang/Boolean;\n-   #44 = Utf8               logResponses\n-   #45 = Utf8               <init>\n-   #46 = Utf8               ()V\n-   #47 = Utf8               Code\n-   #48 = Utf8               LineNumberTable\n-   #49 = Utf8               LocalVariableTable\n-   #50 = Utf8               this\n-   #51 = Utf8               OpenAiModerationModelBuilder\n-   #52 = Utf8               InnerClasses\n-   #53 = Utf8               Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n-   #54 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n-   #55 = Utf8               (Ldev/langchain4j/model/openai/OpenAiModerationModelName;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n-   #56 = Utf8               Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n-   #57 = Utf8               (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n-   #58 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n-   #59 = Utf8               (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n-   #60 = Utf8               (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n-   #61 = Utf8               build\n-   #62 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiModerationModel;\n-   #63 = Utf8               toString\n-   #64 = Utf8               ()Ljava/lang/String;\n-   #65 = Utf8               SourceFile\n-   #66 = Utf8               OpenAiModerationModel.java\n-   #67 = NameAndType        #45:#46       // \"<init>\":()V\n-   #68 = NameAndType        #35:#32       // modelName:Ljava/lang/String;\n-   #69 = Class              #96           // dev/langchain4j/model/openai/OpenAiModerationModelName\n-   #70 = NameAndType        #63:#64       // toString:()Ljava/lang/String;\n-   #71 = NameAndType        #31:#32       // baseUrl:Ljava/lang/String;\n-   #72 = NameAndType        #33:#32       // apiKey:Ljava/lang/String;\n-   #73 = NameAndType        #34:#32       // organizationId:Ljava/lang/String;\n-   #74 = NameAndType        #36:#37       // timeout:Ljava/time/Duration;\n-   #75 = NameAndType        #38:#39       // maxRetries:Ljava/lang/Integer;\n-   #76 = NameAndType        #40:#41       // proxy:Ljava/net/Proxy;\n-   #77 = NameAndType        #42:#43       // logRequests:Ljava/lang/Boolean;\n-   #78 = NameAndType        #44:#43       // logResponses:Ljava/lang/Boolean;\n-   #79 = Utf8               dev/langchain4j/model/openai/OpenAiModerationModel\n-   #80 = NameAndType        #45:#97       // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;)V\n-   #81 = Utf8               java/lang/StringBuilder\n-   #82 = Utf8               OpenAiModerationModel.OpenAiModerationModelBuilder(baseUrl=\n-   #83 = NameAndType        #98:#99       // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #84 = Utf8               , apiKey=\n-   #85 = Utf8               , organizationId=\n-   #86 = Utf8               , modelName=\n-   #87 = Utf8               , timeout=\n-   #88 = NameAndType        #98:#100      // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #89 = Utf8               , maxRetries=\n-   #90 = Utf8               , proxy=\n-   #91 = Utf8               , logRequests=\n-   #92 = Utf8               , logResponses=\n-   #93 = Utf8               )\n-   #94 = Utf8               dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder\n-   #95 = Utf8               java/lang/Object\n-   #96 = Utf8               dev/langchain4j/model/openai/OpenAiModerationModelName\n-   #97 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;)V\n-   #98 = Utf8               append\n-   #99 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #100 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #44 = Fieldref           #8.#45        // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.logResponses:Ljava/lang/Boolean;\n+   #45 = NameAndType        #46:#43       // logResponses:Ljava/lang/Boolean;\n+   #46 = Utf8               logResponses\n+   #47 = Class              #48           // dev/langchain4j/model/openai/OpenAiModerationModel\n+   #48 = Utf8               dev/langchain4j/model/openai/OpenAiModerationModel\n+   #49 = Methodref          #47.#50       // dev/langchain4j/model/openai/OpenAiModerationModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;)V\n+   #50 = NameAndType        #5:#51        // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;)V\n+   #51 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;)V\n+   #52 = Class              #53           // java/lang/StringBuilder\n+   #53 = Utf8               java/lang/StringBuilder\n+   #54 = Methodref          #52.#3        // java/lang/StringBuilder.\"<init>\":()V\n+   #55 = String             #56           // OpenAiModerationModel.OpenAiModerationModelBuilder(baseUrl=\n+   #56 = Utf8               OpenAiModerationModel.OpenAiModerationModelBuilder(baseUrl=\n+   #57 = Methodref          #52.#58       // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #58 = NameAndType        #59:#60       // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #59 = Utf8               append\n+   #60 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #61 = String             #62           // , apiKey=\n+   #62 = Utf8               , apiKey=\n+   #63 = String             #64           // , organizationId=\n+   #64 = Utf8               , organizationId=\n+   #65 = String             #66           // , modelName=\n+   #66 = Utf8               , modelName=\n+   #67 = String             #68           // , timeout=\n+   #68 = Utf8               , timeout=\n+   #69 = Methodref          #52.#70       // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #70 = NameAndType        #59:#71       // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #71 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #72 = String             #73           // , maxRetries=\n+   #73 = Utf8               , maxRetries=\n+   #74 = String             #75           // , proxy=\n+   #75 = Utf8               , proxy=\n+   #76 = String             #77           // , logRequests=\n+   #77 = Utf8               , logRequests=\n+   #78 = String             #79           // , logResponses=\n+   #79 = Utf8               , logResponses=\n+   #80 = String             #81           // )\n+   #81 = Utf8               )\n+   #82 = Methodref          #52.#15       // java/lang/StringBuilder.toString:()Ljava/lang/String;\n+   #83 = Utf8               Code\n+   #84 = Utf8               LineNumberTable\n+   #85 = Utf8               LocalVariableTable\n+   #86 = Utf8               this\n+   #87 = Utf8               Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n+   #88 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n+   #89 = Utf8               (Ldev/langchain4j/model/openai/OpenAiModerationModelName;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n+   #90 = Utf8               Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+   #91 = Utf8               (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n+   #92 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n+   #93 = Utf8               (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n+   #94 = Utf8               (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n+   #95 = Utf8               build\n+   #96 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiModerationModel;\n+   #97 = Utf8               SourceFile\n+   #98 = Utf8               OpenAiModerationModel.java\n+   #99 = Utf8               InnerClasses\n+  #100 = Utf8               OpenAiModerationModelBuilder\n {\n   private java.lang.String baseUrl;\n     descriptor: Ljava/lang/String;\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.lang.String apiKey;\n     descriptor: Ljava/lang/String;\n@@ -163,15 +163,15 @@\n   public dev.langchain4j.model.openai.OpenAiModerationModel$OpenAiModerationModelBuilder modelName(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #2                  // Field modelName:Ljava/lang/String;\n+         2: putfield      #7                  // Field modelName:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 124: 0\n         line 125: 5\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -181,16 +181,16 @@\n   public dev.langchain4j.model.openai.OpenAiModerationModel$OpenAiModerationModelBuilder modelName(dev.langchain4j.model.openai.OpenAiModerationModelName);\n     descriptor: (Ldev/langchain4j/model/openai/OpenAiModerationModelName;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokevirtual #3                  // Method dev/langchain4j/model/openai/OpenAiModerationModelName.toString:()Ljava/lang/String;\n-         5: putfield      #2                  // Field modelName:Ljava/lang/String;\n+         2: invokevirtual #13                 // Method dev/langchain4j/model/openai/OpenAiModerationModelName.toString:()Ljava/lang/String;\n+         5: putfield      #7                  // Field modelName:Ljava/lang/String;\n          8: aload_0\n          9: areturn\n       LineNumberTable:\n         line 129: 0\n         line 130: 8\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -200,15 +200,15 @@\n   public dev.langchain4j.model.openai.OpenAiModerationModel$OpenAiModerationModelBuilder baseUrl(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #4                  // Field baseUrl:Ljava/lang/String;\n+         2: putfield      #19                 // Field baseUrl:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n@@ -217,15 +217,15 @@\n   public dev.langchain4j.model.openai.OpenAiModerationModel$OpenAiModerationModelBuilder apiKey(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #5                  // Field apiKey:Ljava/lang/String;\n+         2: putfield      #22                 // Field apiKey:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n@@ -234,15 +234,15 @@\n   public dev.langchain4j.model.openai.OpenAiModerationModel$OpenAiModerationModelBuilder organizationId(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #6                  // Field organizationId:Ljava/lang/String;\n+         2: putfield      #25                 // Field organizationId:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n@@ -251,15 +251,15 @@\n   public dev.langchain4j.model.openai.OpenAiModerationModel$OpenAiModerationModelBuilder timeout(java.time.Duration);\n     descriptor: (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #7                  // Field timeout:Ljava/time/Duration;\n+         2: putfield      #28                 // Field timeout:Ljava/time/Duration;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n@@ -268,15 +268,15 @@\n   public dev.langchain4j.model.openai.OpenAiModerationModel$OpenAiModerationModelBuilder maxRetries(java.lang.Integer);\n     descriptor: (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #8                  // Field maxRetries:Ljava/lang/Integer;\n+         2: putfield      #32                 // Field maxRetries:Ljava/lang/Integer;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n@@ -285,15 +285,15 @@\n   public dev.langchain4j.model.openai.OpenAiModerationModel$OpenAiModerationModelBuilder proxy(java.net.Proxy);\n     descriptor: (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #9                  // Field proxy:Ljava/net/Proxy;\n+         2: putfield      #36                 // Field proxy:Ljava/net/Proxy;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n@@ -302,15 +302,15 @@\n   public dev.langchain4j.model.openai.OpenAiModerationModel$OpenAiModerationModelBuilder logRequests(java.lang.Boolean);\n     descriptor: (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #10                 // Field logRequests:Ljava/lang/Boolean;\n+         2: putfield      #40                 // Field logRequests:Ljava/lang/Boolean;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n@@ -319,116 +319,116 @@\n   public dev.langchain4j.model.openai.OpenAiModerationModel$OpenAiModerationModelBuilder logResponses(java.lang.Boolean);\n     descriptor: (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #11                 // Field logResponses:Ljava/lang/Boolean;\n+         2: putfield      #44                 // Field logResponses:Ljava/lang/Boolean;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n             0       7     1 logResponses   Ljava/lang/Boolean;\n \n   public dev.langchain4j.model.openai.OpenAiModerationModel build();\n     descriptor: ()Ldev/langchain4j/model/openai/OpenAiModerationModel;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=11, locals=1, args_size=1\n-         0: new           #12                 // class dev/langchain4j/model/openai/OpenAiModerationModel\n+         0: new           #47                 // class dev/langchain4j/model/openai/OpenAiModerationModel\n          3: dup\n          4: aload_0\n-         5: getfield      #4                  // Field baseUrl:Ljava/lang/String;\n+         5: getfield      #19                 // Field baseUrl:Ljava/lang/String;\n          8: aload_0\n-         9: getfield      #5                  // Field apiKey:Ljava/lang/String;\n+         9: getfield      #22                 // Field apiKey:Ljava/lang/String;\n         12: aload_0\n-        13: getfield      #6                  // Field organizationId:Ljava/lang/String;\n+        13: getfield      #25                 // Field organizationId:Ljava/lang/String;\n         16: aload_0\n-        17: getfield      #2                  // Field modelName:Ljava/lang/String;\n+        17: getfield      #7                  // Field modelName:Ljava/lang/String;\n         20: aload_0\n-        21: getfield      #7                  // Field timeout:Ljava/time/Duration;\n+        21: getfield      #28                 // Field timeout:Ljava/time/Duration;\n         24: aload_0\n-        25: getfield      #8                  // Field maxRetries:Ljava/lang/Integer;\n+        25: getfield      #32                 // Field maxRetries:Ljava/lang/Integer;\n         28: aload_0\n-        29: getfield      #9                  // Field proxy:Ljava/net/Proxy;\n+        29: getfield      #36                 // Field proxy:Ljava/net/Proxy;\n         32: aload_0\n-        33: getfield      #10                 // Field logRequests:Ljava/lang/Boolean;\n+        33: getfield      #40                 // Field logRequests:Ljava/lang/Boolean;\n         36: aload_0\n-        37: getfield      #11                 // Field logResponses:Ljava/lang/Boolean;\n-        40: invokespecial #13                 // Method dev/langchain4j/model/openai/OpenAiModerationModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;)V\n+        37: getfield      #44                 // Field logResponses:Ljava/lang/Boolean;\n+        40: invokespecial #49                 // Method dev/langchain4j/model/openai/OpenAiModerationModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;)V\n         43: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      44     0  this   Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n \n   public java.lang.String toString();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: new           #14                 // class java/lang/StringBuilder\n+         0: new           #52                 // class java/lang/StringBuilder\n          3: dup\n-         4: invokespecial #15                 // Method java/lang/StringBuilder.\"<init>\":()V\n-         7: ldc           #16                 // String OpenAiModerationModel.OpenAiModerationModelBuilder(baseUrl=\n-         9: invokevirtual #17                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+         4: invokespecial #54                 // Method java/lang/StringBuilder.\"<init>\":()V\n+         7: ldc           #55                 // String OpenAiModerationModel.OpenAiModerationModelBuilder(baseUrl=\n+         9: invokevirtual #57                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         12: aload_0\n-        13: getfield      #4                  // Field baseUrl:Ljava/lang/String;\n-        16: invokevirtual #17                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        19: ldc           #18                 // String , apiKey=\n-        21: invokevirtual #17                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        13: getfield      #19                 // Field baseUrl:Ljava/lang/String;\n+        16: invokevirtual #57                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        19: ldc           #61                 // String , apiKey=\n+        21: invokevirtual #57                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         24: aload_0\n-        25: getfield      #5                  // Field apiKey:Ljava/lang/String;\n-        28: invokevirtual #17                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        31: ldc           #19                 // String , organizationId=\n-        33: invokevirtual #17                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        25: getfield      #22                 // Field apiKey:Ljava/lang/String;\n+        28: invokevirtual #57                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        31: ldc           #63                 // String , organizationId=\n+        33: invokevirtual #57                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         36: aload_0\n-        37: getfield      #6                  // Field organizationId:Ljava/lang/String;\n-        40: invokevirtual #17                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        43: ldc           #20                 // String , modelName=\n-        45: invokevirtual #17                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        37: getfield      #25                 // Field organizationId:Ljava/lang/String;\n+        40: invokevirtual #57                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        43: ldc           #65                 // String , modelName=\n+        45: invokevirtual #57                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         48: aload_0\n-        49: getfield      #2                  // Field modelName:Ljava/lang/String;\n-        52: invokevirtual #17                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        55: ldc           #21                 // String , timeout=\n-        57: invokevirtual #17                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        49: getfield      #7                  // Field modelName:Ljava/lang/String;\n+        52: invokevirtual #57                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        55: ldc           #67                 // String , timeout=\n+        57: invokevirtual #57                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         60: aload_0\n-        61: getfield      #7                  // Field timeout:Ljava/time/Duration;\n-        64: invokevirtual #22                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        67: ldc           #23                 // String , maxRetries=\n-        69: invokevirtual #17                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        61: getfield      #28                 // Field timeout:Ljava/time/Duration;\n+        64: invokevirtual #69                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        67: ldc           #72                 // String , maxRetries=\n+        69: invokevirtual #57                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         72: aload_0\n-        73: getfield      #8                  // Field maxRetries:Ljava/lang/Integer;\n-        76: invokevirtual #22                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        79: ldc           #24                 // String , proxy=\n-        81: invokevirtual #17                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        73: getfield      #32                 // Field maxRetries:Ljava/lang/Integer;\n+        76: invokevirtual #69                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        79: ldc           #74                 // String , proxy=\n+        81: invokevirtual #57                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         84: aload_0\n-        85: getfield      #9                  // Field proxy:Ljava/net/Proxy;\n-        88: invokevirtual #22                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        91: ldc           #25                 // String , logRequests=\n-        93: invokevirtual #17                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        85: getfield      #36                 // Field proxy:Ljava/net/Proxy;\n+        88: invokevirtual #69                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        91: ldc           #76                 // String , logRequests=\n+        93: invokevirtual #57                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         96: aload_0\n-        97: getfield      #10                 // Field logRequests:Ljava/lang/Boolean;\n-       100: invokevirtual #22                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       103: ldc           #26                 // String , logResponses=\n-       105: invokevirtual #17                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        97: getfield      #40                 // Field logRequests:Ljava/lang/Boolean;\n+       100: invokevirtual #69                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       103: ldc           #78                 // String , logResponses=\n+       105: invokevirtual #57                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        108: aload_0\n-       109: getfield      #11                 // Field logResponses:Ljava/lang/Boolean;\n-       112: invokevirtual #22                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       115: ldc           #27                 // String )\n-       117: invokevirtual #17                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-       120: invokevirtual #28                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+       109: getfield      #44                 // Field logResponses:Ljava/lang/Boolean;\n+       112: invokevirtual #69                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       115: ldc           #80                 // String )\n+       117: invokevirtual #57                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       120: invokevirtual #82                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n        123: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     124     0  this   Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n }\n SourceFile: \"OpenAiModerationModel.java\"\n InnerClasses:\n-  public static #51= #29 of #12;          // OpenAiModerationModelBuilder=class dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder of class dev/langchain4j/model/openai/OpenAiModerationModel\n+  public static #100= #8 of #47;          // OpenAiModerationModelBuilder=class dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder of class dev/langchain4j/model/openai/OpenAiModerationModel\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiModerationModel.class", "source2": "dev/langchain4j/model/openai/OpenAiModerationModel.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,361 +1,351 @@\n-  SHA-256 checksum 1fdb9a26964facfb7e0258218e4bf8418f9e5479bd5addd44d74e9504016c285\n+  SHA-256 checksum 5be4a1e836baad727dde31b4aabcbcf181ea90d192ff49ed07cb55e6caef13c1\n   Compiled from \"OpenAiModerationModel.java\"\n public class dev.langchain4j.model.openai.OpenAiModerationModel implements dev.langchain4j.model.moderation.ModerationModel\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #68                         // dev/langchain4j/model/openai/OpenAiModerationModel\n-  super_class: #69                        // java/lang/Object\n+  this_class: #84                         // dev/langchain4j/model/openai/OpenAiModerationModel\n+  super_class: #6                         // java/lang/Object\n   interfaces: 1, fields: 3, methods: 7, attributes: 3\n Constant pool:\n-    #1 = Class              #141          // dev/langchain4j/model/openai/OpenAiModelName\n-    #2 = Class              #142          // dev/langchain4j/model/openai/InternalOpenAiHelper\n-    #3 = Methodref          #69.#143      // java/lang/Object.\"<init>\":()V\n-    #4 = String             #144          // https://api.openai.com/v1\n-    #5 = Methodref          #145.#146     // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-    #6 = Class              #147          // java/lang/String\n-    #7 = String             #148          // demo\n-    #8 = Methodref          #6.#149       // java/lang/String.equals:(Ljava/lang/Object;)Z\n-    #9 = String             #150          // http://langchain4j.dev/demo/openai/v1\n-   #10 = Long               60l\n-   #12 = Methodref          #13.#151      // java/time/Duration.ofSeconds:(J)Ljava/time/Duration;\n-   #13 = Class              #152          // java/time/Duration\n-   #14 = Methodref          #153.#154     // dev/ai4j/openai4j/OpenAiClient.builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #15 = Methodref          #155.#156     // dev/ai4j/openai4j/OpenAiClient$Builder.openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #16 = Methodref          #155.#157     // dev/ai4j/openai4j/OpenAiClient$Builder.baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #17 = Methodref          #155.#158     // dev/ai4j/openai4j/OpenAiClient$Builder.organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #18 = Methodref          #155.#159     // dev/ai4j/openai4j/OpenAiClient$Builder.callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #19 = Methodref          #155.#160     // dev/ai4j/openai4j/OpenAiClient$Builder.connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #20 = Methodref          #155.#161     // dev/ai4j/openai4j/OpenAiClient$Builder.readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #21 = Methodref          #155.#162     // dev/ai4j/openai4j/OpenAiClient$Builder.writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #22 = Methodref          #155.#163     // dev/ai4j/openai4j/OpenAiClient$Builder.proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #23 = Methodref          #155.#164     // dev/ai4j/openai4j/OpenAiClient$Builder.logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #24 = Methodref          #155.#165     // dev/ai4j/openai4j/OpenAiClient$Builder.logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-   #25 = Methodref          #155.#166     // dev/ai4j/openai4j/OpenAiClient$Builder.build:()Ldev/ai4j/openai4j/OpenAiClient;\n-   #26 = Fieldref           #68.#167      // dev/langchain4j/model/openai/OpenAiModerationModel.client:Ldev/ai4j/openai4j/OpenAiClient;\n-   #27 = String             #168          // text-moderation-latest\n-   #28 = Fieldref           #68.#169      // dev/langchain4j/model/openai/OpenAiModerationModel.modelName:Ljava/lang/String;\n-   #29 = Methodref          #30.#170      // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #30 = Class              #171          // java/lang/Integer\n-   #31 = Fieldref           #68.#172      // dev/langchain4j/model/openai/OpenAiModerationModel.maxRetries:Ljava/lang/Integer;\n-   #32 = Methodref          #173.#174     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #33 = Methodref          #68.#175      // dev/langchain4j/model/openai/OpenAiModerationModel.moderateInternal:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-   #34 = Methodref          #176.#177     // dev/ai4j/openai4j/moderation/ModerationRequest.builder:()Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n-   #35 = Methodref          #178.#179     // dev/ai4j/openai4j/moderation/ModerationRequest$Builder.model:(Ljava/lang/String;)Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n-   #36 = Methodref          #178.#180     // dev/ai4j/openai4j/moderation/ModerationRequest$Builder.input:(Ljava/util/List;)Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n-   #37 = Methodref          #178.#181     // dev/ai4j/openai4j/moderation/ModerationRequest$Builder.build:()Ldev/ai4j/openai4j/moderation/ModerationRequest;\n-   #38 = InvokeDynamic      #0:#187       // #0:call:(Ldev/langchain4j/model/openai/OpenAiModerationModel;Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ljava/util/concurrent/Callable;\n-   #39 = Methodref          #30.#188      // java/lang/Integer.intValue:()I\n-   #40 = Methodref          #189.#190     // dev/langchain4j/internal/RetryUtils.withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n-   #41 = Class              #191          // dev/ai4j/openai4j/moderation/ModerationResponse\n-   #42 = Methodref          #41.#192      // dev/ai4j/openai4j/moderation/ModerationResponse.results:()Ljava/util/List;\n-   #43 = InterfaceMethodref #58.#193      // java/util/List.iterator:()Ljava/util/Iterator;\n-   #44 = InterfaceMethodref #194.#195     // java/util/Iterator.hasNext:()Z\n-   #45 = InterfaceMethodref #194.#196     // java/util/Iterator.next:()Ljava/lang/Object;\n-   #46 = Class              #197          // dev/ai4j/openai4j/moderation/ModerationResult\n-   #47 = Methodref          #46.#198      // dev/ai4j/openai4j/moderation/ModerationResult.isFlagged:()Ljava/lang/Boolean;\n-   #48 = Methodref          #199.#200     // java/lang/Boolean.booleanValue:()Z\n-   #49 = InterfaceMethodref #58.#201      // java/util/List.get:(I)Ljava/lang/Object;\n-   #50 = Methodref          #202.#203     // dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-   #51 = Methodref          #204.#205     // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-   #52 = Methodref          #202.#206     // dev/langchain4j/model/moderation/Moderation.notFlagged:()Ldev/langchain4j/model/moderation/Moderation;\n-   #53 = InterfaceMethodref #58.#207      // java/util/List.stream:()Ljava/util/stream/Stream;\n-   #54 = InvokeDynamic      #1:#211       // #1:apply:()Ljava/util/function/Function;\n-   #55 = InterfaceMethodref #212.#213     // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-   #56 = Methodref          #214.#215     // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-   #57 = InterfaceMethodref #212.#216     // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-   #58 = Class              #217          // java/util/List\n-   #59 = Methodref          #68.#218      // dev/langchain4j/model/openai/OpenAiModerationModel.builder:()Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n-   #60 = Methodref          #65.#219      // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n-   #61 = Methodref          #65.#220      // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.build:()Ldev/langchain4j/model/openai/OpenAiModerationModel;\n-   #62 = Class              #221          // dev/langchain4j/model/openai/spi/OpenAiModerationModelBuilderFactory\n-   #63 = InvokeDynamic      #2:#224       // #2:get:()Ljava/util/function/Supplier;\n-   #64 = Methodref          #225.#226     // dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-   #65 = Class              #227          // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder\n-   #66 = Methodref          #153.#228     // dev/ai4j/openai4j/OpenAiClient.moderation:(Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ldev/ai4j/openai4j/SyncOrAsync;\n-   #67 = InterfaceMethodref #229.#230     // dev/ai4j/openai4j/SyncOrAsync.execute:()Ljava/lang/Object;\n-   #68 = Class              #231          // dev/langchain4j/model/openai/OpenAiModerationModel\n-   #69 = Class              #232          // java/lang/Object\n-   #70 = Class              #233          // dev/langchain4j/model/moderation/ModerationModel\n-   #71 = Utf8               OpenAiModerationModelBuilder\n-   #72 = Utf8               InnerClasses\n-   #73 = Utf8               client\n-   #74 = Utf8               Ldev/ai4j/openai4j/OpenAiClient;\n-   #75 = Utf8               modelName\n-   #76 = Utf8               Ljava/lang/String;\n-   #77 = Utf8               maxRetries\n-   #78 = Utf8               Ljava/lang/Integer;\n-   #79 = Utf8               <init>\n-   #80 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;)V\n-   #81 = Utf8               Code\n-   #82 = Utf8               LineNumberTable\n-   #83 = Utf8               LocalVariableTable\n-   #84 = Utf8               this\n-   #85 = Utf8               Ldev/langchain4j/model/openai/OpenAiModerationModel;\n-   #86 = Utf8               baseUrl\n-   #87 = Utf8               apiKey\n-   #88 = Utf8               organizationId\n-   #89 = Utf8               timeout\n-   #90 = Utf8               Ljava/time/Duration;\n-   #91 = Utf8               proxy\n-   #92 = Utf8               Ljava/net/Proxy;\n-   #93 = Utf8               logRequests\n-   #94 = Utf8               Ljava/lang/Boolean;\n-   #95 = Utf8               logResponses\n-   #96 = Utf8               StackMapTable\n-   #97 = Class              #231          // dev/langchain4j/model/openai/OpenAiModerationModel\n-   #98 = Class              #147          // java/lang/String\n-   #99 = Class              #152          // java/time/Duration\n-  #100 = Class              #171          // java/lang/Integer\n-  #101 = Class              #234          // java/net/Proxy\n-  #102 = Class              #235          // java/lang/Boolean\n-  #103 = Utf8               moderate\n-  #104 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n-  #105 = Utf8               text\n-  #106 = Utf8               Signature\n-  #107 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n-  #108 = Utf8               moderateInternal\n-  #109 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #110 = Utf8               moderationResult\n-  #111 = Utf8               Ldev/ai4j/openai4j/moderation/ModerationResult;\n-  #112 = Utf8               inputs\n-  #113 = Utf8               Ljava/util/List;\n-  #114 = Utf8               request\n-  #115 = Utf8               Ldev/ai4j/openai4j/moderation/ModerationRequest;\n-  #116 = Utf8               response\n-  #117 = Utf8               Ldev/ai4j/openai4j/moderation/ModerationResponse;\n-  #118 = Utf8               i\n-  #119 = Utf8               I\n-  #120 = Utf8               LocalVariableTypeTable\n-  #121 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n-  #122 = Class              #217          // java/util/List\n-  #123 = Class              #236          // dev/ai4j/openai4j/moderation/ModerationRequest\n-  #124 = Class              #191          // dev/ai4j/openai4j/moderation/ModerationResponse\n-  #125 = Class              #237          // java/util/Iterator\n-  #126 = Class              #197          // dev/ai4j/openai4j/moderation/ModerationResult\n-  #127 = Utf8               (Ljava/util/List<Ljava/lang/String;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n-  #128 = Utf8               messages\n-  #129 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n-  #130 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n-  #131 = Utf8               withApiKey\n-  #132 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiModerationModel;\n-  #133 = Utf8               builder\n-  #134 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n-  #135 = Utf8               lambda$moderateInternal$0\n-  #136 = Utf8               (Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ldev/ai4j/openai4j/moderation/ModerationResponse;\n-  #137 = Utf8               Exceptions\n-  #138 = Class              #238          // java/lang/Exception\n-  #139 = Utf8               SourceFile\n-  #140 = Utf8               OpenAiModerationModel.java\n-  #141 = Utf8               dev/langchain4j/model/openai/OpenAiModelName\n-  #142 = Utf8               dev/langchain4j/model/openai/InternalOpenAiHelper\n-  #143 = NameAndType        #79:#239      // \"<init>\":()V\n-  #144 = Utf8               https://api.openai.com/v1\n-  #145 = Class              #240          // dev/langchain4j/internal/Utils\n-  #146 = NameAndType        #241:#242     // getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #147 = Utf8               java/lang/String\n-  #148 = Utf8               demo\n-  #149 = NameAndType        #243:#244     // equals:(Ljava/lang/Object;)Z\n-  #150 = Utf8               http://langchain4j.dev/demo/openai/v1\n-  #151 = NameAndType        #245:#246     // ofSeconds:(J)Ljava/time/Duration;\n-  #152 = Utf8               java/time/Duration\n-  #153 = Class              #247          // dev/ai4j/openai4j/OpenAiClient\n-  #154 = NameAndType        #133:#249     // builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #155 = Class              #250          // dev/ai4j/openai4j/OpenAiClient$Builder\n-  #156 = NameAndType        #251:#252     // openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #157 = NameAndType        #86:#252      // baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #158 = NameAndType        #88:#252      // organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #159 = NameAndType        #253:#254     // callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #160 = NameAndType        #255:#254     // connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #161 = NameAndType        #256:#254     // readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #162 = NameAndType        #257:#254     // writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #163 = NameAndType        #91:#258      // proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #164 = NameAndType        #93:#259      // logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #165 = NameAndType        #95:#259      // logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #166 = NameAndType        #260:#261     // build:()Ldev/ai4j/openai4j/OpenAiClient;\n-  #167 = NameAndType        #73:#74       // client:Ldev/ai4j/openai4j/OpenAiClient;\n-  #168 = Utf8               text-moderation-latest\n-  #169 = NameAndType        #75:#76       // modelName:Ljava/lang/String;\n-  #170 = NameAndType        #262:#263     // valueOf:(I)Ljava/lang/Integer;\n-  #171 = Utf8               java/lang/Integer\n-  #172 = NameAndType        #77:#78       // maxRetries:Ljava/lang/Integer;\n-  #173 = Class              #264          // java/util/Collections\n-  #174 = NameAndType        #265:#266     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #175 = NameAndType        #108:#109     // moderateInternal:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n-  #176 = Class              #236          // dev/ai4j/openai4j/moderation/ModerationRequest\n-  #177 = NameAndType        #133:#267     // builder:()Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n-  #178 = Class              #268          // dev/ai4j/openai4j/moderation/ModerationRequest$Builder\n-  #179 = NameAndType        #269:#270     // model:(Ljava/lang/String;)Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n-  #180 = NameAndType        #271:#272     // input:(Ljava/util/List;)Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n-  #181 = NameAndType        #260:#273     // build:()Ldev/ai4j/openai4j/moderation/ModerationRequest;\n-  #182 = Utf8               BootstrapMethods\n-  #183 = MethodHandle       6:#274        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #184 = MethodType         #275          //  ()Ljava/lang/Object;\n-  #185 = MethodHandle       7:#276        // REF_invokeSpecial dev/langchain4j/model/openai/OpenAiModerationModel.lambda$moderateInternal$0:(Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ldev/ai4j/openai4j/moderation/ModerationResponse;\n-  #186 = MethodType         #277          //  ()Ldev/ai4j/openai4j/moderation/ModerationResponse;\n-  #187 = NameAndType        #278:#279     // call:(Ldev/langchain4j/model/openai/OpenAiModerationModel;Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ljava/util/concurrent/Callable;\n-  #188 = NameAndType        #280:#281     // intValue:()I\n-  #189 = Class              #282          // dev/langchain4j/internal/RetryUtils\n-  #190 = NameAndType        #283:#284     // withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n-  #191 = Utf8               dev/ai4j/openai4j/moderation/ModerationResponse\n-  #192 = NameAndType        #285:#286     // results:()Ljava/util/List;\n-  #193 = NameAndType        #287:#288     // iterator:()Ljava/util/Iterator;\n-  #194 = Class              #237          // java/util/Iterator\n-  #195 = NameAndType        #289:#290     // hasNext:()Z\n-  #196 = NameAndType        #291:#275     // next:()Ljava/lang/Object;\n-  #197 = Utf8               dev/ai4j/openai4j/moderation/ModerationResult\n-  #198 = NameAndType        #292:#293     // isFlagged:()Ljava/lang/Boolean;\n-  #199 = Class              #235          // java/lang/Boolean\n-  #200 = NameAndType        #294:#290     // booleanValue:()Z\n-  #201 = NameAndType        #295:#296     // get:(I)Ljava/lang/Object;\n-  #202 = Class              #297          // dev/langchain4j/model/moderation/Moderation\n-  #203 = NameAndType        #298:#299     // flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-  #204 = Class              #300          // dev/langchain4j/model/output/Response\n-  #205 = NameAndType        #301:#302     // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #206 = NameAndType        #303:#304     // notFlagged:()Ldev/langchain4j/model/moderation/Moderation;\n-  #207 = NameAndType        #305:#306     // stream:()Ljava/util/stream/Stream;\n-  #208 = MethodType         #307          //  (Ljava/lang/Object;)Ljava/lang/Object;\n-  #209 = MethodHandle       9:#308        // REF_invokeInterface dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-  #210 = MethodType         #309          //  (Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n-  #211 = NameAndType        #310:#311     // apply:()Ljava/util/function/Function;\n-  #212 = Class              #312          // java/util/stream/Stream\n-  #213 = NameAndType        #313:#314     // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-  #214 = Class              #315          // java/util/stream/Collectors\n-  #215 = NameAndType        #316:#317     // toList:()Ljava/util/stream/Collector;\n-  #216 = NameAndType        #318:#319     // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-  #217 = Utf8               java/util/List\n-  #218 = NameAndType        #133:#134     // builder:()Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n-  #219 = NameAndType        #87:#320      // apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n-  #220 = NameAndType        #260:#321     // build:()Ldev/langchain4j/model/openai/OpenAiModerationModel;\n-  #221 = Utf8               dev/langchain4j/model/openai/spi/OpenAiModerationModelBuilderFactory\n-  #222 = MethodHandle       8:#322        // REF_newInvokeSpecial dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.\"<init>\":()V\n-  #223 = MethodType         #134          //  ()Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n-  #224 = NameAndType        #295:#323     // get:()Ljava/util/function/Supplier;\n-  #225 = Class              #324          // dev/langchain4j/spi/ServiceHelper\n-  #226 = NameAndType        #325:#326     // loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #227 = Utf8               dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder\n-  #228 = NameAndType        #327:#328     // moderation:(Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ldev/ai4j/openai4j/SyncOrAsync;\n-  #229 = Class              #329          // dev/ai4j/openai4j/SyncOrAsync\n-  #230 = NameAndType        #330:#275     // execute:()Ljava/lang/Object;\n-  #231 = Utf8               dev/langchain4j/model/openai/OpenAiModerationModel\n-  #232 = Utf8               java/lang/Object\n-  #233 = Utf8               dev/langchain4j/model/moderation/ModerationModel\n-  #234 = Utf8               java/net/Proxy\n-  #235 = Utf8               java/lang/Boolean\n-  #236 = Utf8               dev/ai4j/openai4j/moderation/ModerationRequest\n-  #237 = Utf8               java/util/Iterator\n-  #238 = Utf8               java/lang/Exception\n-  #239 = Utf8               ()V\n-  #240 = Utf8               dev/langchain4j/internal/Utils\n-  #241 = Utf8               getOrDefault\n-  #242 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-  #243 = Utf8               equals\n-  #244 = Utf8               (Ljava/lang/Object;)Z\n-  #245 = Utf8               ofSeconds\n-  #246 = Utf8               (J)Ljava/time/Duration;\n-  #247 = Utf8               dev/ai4j/openai4j/OpenAiClient\n-  #248 = Utf8               Builder\n-  #249 = Utf8               ()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #250 = Utf8               dev/ai4j/openai4j/OpenAiClient$Builder\n-  #251 = Utf8               openAiApiKey\n-  #252 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #253 = Utf8               callTimeout\n-  #254 = Utf8               (Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #255 = Utf8               connectTimeout\n-  #256 = Utf8               readTimeout\n-  #257 = Utf8               writeTimeout\n-  #258 = Utf8               (Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #259 = Utf8               (Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-  #260 = Utf8               build\n-  #261 = Utf8               ()Ldev/ai4j/openai4j/OpenAiClient;\n-  #262 = Utf8               valueOf\n-  #263 = Utf8               (I)Ljava/lang/Integer;\n-  #264 = Utf8               java/util/Collections\n-  #265 = Utf8               singletonList\n-  #266 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #267 = Utf8               ()Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n-  #268 = Utf8               dev/ai4j/openai4j/moderation/ModerationRequest$Builder\n-  #269 = Utf8               model\n-  #270 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n-  #271 = Utf8               input\n-  #272 = Utf8               (Ljava/util/List;)Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n-  #273 = Utf8               ()Ldev/ai4j/openai4j/moderation/ModerationRequest;\n-  #274 = Methodref          #331.#332     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #275 = Utf8               ()Ljava/lang/Object;\n-  #276 = Methodref          #68.#333      // dev/langchain4j/model/openai/OpenAiModerationModel.lambda$moderateInternal$0:(Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ldev/ai4j/openai4j/moderation/ModerationResponse;\n-  #277 = Utf8               ()Ldev/ai4j/openai4j/moderation/ModerationResponse;\n-  #278 = Utf8               call\n-  #279 = Utf8               (Ldev/langchain4j/model/openai/OpenAiModerationModel;Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ljava/util/concurrent/Callable;\n-  #280 = Utf8               intValue\n-  #281 = Utf8               ()I\n-  #282 = Utf8               dev/langchain4j/internal/RetryUtils\n-  #283 = Utf8               withRetry\n-  #284 = Utf8               (Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n-  #285 = Utf8               results\n-  #286 = Utf8               ()Ljava/util/List;\n-  #287 = Utf8               iterator\n-  #288 = Utf8               ()Ljava/util/Iterator;\n-  #289 = Utf8               hasNext\n-  #290 = Utf8               ()Z\n-  #291 = Utf8               next\n-  #292 = Utf8               isFlagged\n-  #293 = Utf8               ()Ljava/lang/Boolean;\n-  #294 = Utf8               booleanValue\n-  #295 = Utf8               get\n-  #296 = Utf8               (I)Ljava/lang/Object;\n-  #297 = Utf8               dev/langchain4j/model/moderation/Moderation\n-  #298 = Utf8               flagged\n-  #299 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-  #300 = Utf8               dev/langchain4j/model/output/Response\n-  #301 = Utf8               from\n-  #302 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n-  #303 = Utf8               notFlagged\n-  #304 = Utf8               ()Ldev/langchain4j/model/moderation/Moderation;\n-  #305 = Utf8               stream\n-  #306 = Utf8               ()Ljava/util/stream/Stream;\n-  #307 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #308 = InterfaceMethodref #334.#335     // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-  #309 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n-  #310 = Utf8               apply\n-  #311 = Utf8               ()Ljava/util/function/Function;\n-  #312 = Utf8               java/util/stream/Stream\n-  #313 = Utf8               map\n-  #314 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-  #315 = Utf8               java/util/stream/Collectors\n-  #316 = Utf8               toList\n-  #317 = Utf8               ()Ljava/util/stream/Collector;\n-  #318 = Utf8               collect\n-  #319 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n-  #320 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n-  #321 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiModerationModel;\n-  #322 = Methodref          #65.#143      // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.\"<init>\":()V\n-  #323 = Utf8               ()Ljava/util/function/Supplier;\n-  #324 = Utf8               dev/langchain4j/spi/ServiceHelper\n-  #325 = Utf8               loadFactoryService\n-  #326 = Utf8               (Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #327 = Utf8               moderation\n-  #328 = Utf8               (Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ldev/ai4j/openai4j/SyncOrAsync;\n-  #329 = Utf8               dev/ai4j/openai4j/SyncOrAsync\n-  #330 = Utf8               execute\n-  #331 = Class              #336          // java/lang/invoke/LambdaMetafactory\n-  #332 = NameAndType        #337:#340     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #333 = NameAndType        #135:#136     // lambda$moderateInternal$0:(Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ldev/ai4j/openai4j/moderation/ModerationResponse;\n-  #334 = Class              #341          // dev/langchain4j/data/message/ChatMessage\n-  #335 = NameAndType        #105:#342     // text:()Ljava/lang/String;\n-  #336 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #337 = Utf8               metafactory\n-  #338 = Class              #344          // java/lang/invoke/MethodHandles$Lookup\n-  #339 = Utf8               Lookup\n-  #340 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #341 = Utf8               dev/langchain4j/data/message/ChatMessage\n-  #342 = Utf8               ()Ljava/lang/String;\n-  #343 = Class              #345          // java/lang/invoke/MethodHandles\n-  #344 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #345 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Class              #2            // dev/langchain4j/model/openai/OpenAiModelName\n+    #2 = Utf8               dev/langchain4j/model/openai/OpenAiModelName\n+    #3 = Class              #4            // dev/langchain4j/model/openai/InternalOpenAiHelper\n+    #4 = Utf8               dev/langchain4j/model/openai/InternalOpenAiHelper\n+    #5 = Methodref          #6.#7         // java/lang/Object.\"<init>\":()V\n+    #6 = Class              #8            // java/lang/Object\n+    #7 = NameAndType        #9:#10        // \"<init>\":()V\n+    #8 = Utf8               java/lang/Object\n+    #9 = Utf8               <init>\n+   #10 = Utf8               ()V\n+   #11 = String             #12           // https://api.openai.com/v1\n+   #12 = Utf8               https://api.openai.com/v1\n+   #13 = Methodref          #14.#15       // dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #14 = Class              #16           // dev/langchain4j/internal/Utils\n+   #15 = NameAndType        #17:#18       // getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #16 = Utf8               dev/langchain4j/internal/Utils\n+   #17 = Utf8               getOrDefault\n+   #18 = Utf8               (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+   #19 = Class              #20           // java/lang/String\n+   #20 = Utf8               java/lang/String\n+   #21 = String             #22           // demo\n+   #22 = Utf8               demo\n+   #23 = Methodref          #19.#24       // java/lang/String.equals:(Ljava/lang/Object;)Z\n+   #24 = NameAndType        #25:#26       // equals:(Ljava/lang/Object;)Z\n+   #25 = Utf8               equals\n+   #26 = Utf8               (Ljava/lang/Object;)Z\n+   #27 = String             #28           // http://langchain4j.dev/demo/openai/v1\n+   #28 = Utf8               http://langchain4j.dev/demo/openai/v1\n+   #29 = Long               60l\n+   #31 = Methodref          #32.#33       // java/time/Duration.ofSeconds:(J)Ljava/time/Duration;\n+   #32 = Class              #34           // java/time/Duration\n+   #33 = NameAndType        #35:#36       // ofSeconds:(J)Ljava/time/Duration;\n+   #34 = Utf8               java/time/Duration\n+   #35 = Utf8               ofSeconds\n+   #36 = Utf8               (J)Ljava/time/Duration;\n+   #37 = Methodref          #38.#39       // dev/ai4j/openai4j/OpenAiClient.builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #38 = Class              #40           // dev/ai4j/openai4j/OpenAiClient\n+   #39 = NameAndType        #41:#42       // builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #40 = Utf8               dev/ai4j/openai4j/OpenAiClient\n+   #41 = Utf8               builder\n+   #42 = Utf8               ()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #43 = Methodref          #44.#45       // dev/ai4j/openai4j/OpenAiClient$Builder.openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #44 = Class              #46           // dev/ai4j/openai4j/OpenAiClient$Builder\n+   #45 = NameAndType        #47:#48       // openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #46 = Utf8               dev/ai4j/openai4j/OpenAiClient$Builder\n+   #47 = Utf8               openAiApiKey\n+   #48 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #49 = Methodref          #44.#50       // dev/ai4j/openai4j/OpenAiClient$Builder.baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #50 = NameAndType        #51:#48       // baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #51 = Utf8               baseUrl\n+   #52 = Methodref          #44.#53       // dev/ai4j/openai4j/OpenAiClient$Builder.organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #53 = NameAndType        #54:#48       // organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #54 = Utf8               organizationId\n+   #55 = Methodref          #44.#56       // dev/ai4j/openai4j/OpenAiClient$Builder.callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #56 = NameAndType        #57:#58       // callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #57 = Utf8               callTimeout\n+   #58 = Utf8               (Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #59 = Methodref          #44.#60       // dev/ai4j/openai4j/OpenAiClient$Builder.connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #60 = NameAndType        #61:#58       // connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #61 = Utf8               connectTimeout\n+   #62 = Methodref          #44.#63       // dev/ai4j/openai4j/OpenAiClient$Builder.readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #63 = NameAndType        #64:#58       // readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #64 = Utf8               readTimeout\n+   #65 = Methodref          #44.#66       // dev/ai4j/openai4j/OpenAiClient$Builder.writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #66 = NameAndType        #67:#58       // writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #67 = Utf8               writeTimeout\n+   #68 = Methodref          #44.#69       // dev/ai4j/openai4j/OpenAiClient$Builder.proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #69 = NameAndType        #70:#71       // proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #70 = Utf8               proxy\n+   #71 = Utf8               (Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #72 = Methodref          #44.#73       // dev/ai4j/openai4j/OpenAiClient$Builder.logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #73 = NameAndType        #74:#75       // logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #74 = Utf8               logRequests\n+   #75 = Utf8               (Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #76 = Methodref          #44.#77       // dev/ai4j/openai4j/OpenAiClient$Builder.logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #77 = NameAndType        #78:#75       // logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+   #78 = Utf8               logResponses\n+   #79 = Methodref          #44.#80       // dev/ai4j/openai4j/OpenAiClient$Builder.build:()Ldev/ai4j/openai4j/OpenAiClient;\n+   #80 = NameAndType        #81:#82       // build:()Ldev/ai4j/openai4j/OpenAiClient;\n+   #81 = Utf8               build\n+   #82 = Utf8               ()Ldev/ai4j/openai4j/OpenAiClient;\n+   #83 = Fieldref           #84.#85       // dev/langchain4j/model/openai/OpenAiModerationModel.client:Ldev/ai4j/openai4j/OpenAiClient;\n+   #84 = Class              #86           // dev/langchain4j/model/openai/OpenAiModerationModel\n+   #85 = NameAndType        #87:#88       // client:Ldev/ai4j/openai4j/OpenAiClient;\n+   #86 = Utf8               dev/langchain4j/model/openai/OpenAiModerationModel\n+   #87 = Utf8               client\n+   #88 = Utf8               Ldev/ai4j/openai4j/OpenAiClient;\n+   #89 = String             #90           // text-moderation-latest\n+   #90 = Utf8               text-moderation-latest\n+   #91 = Fieldref           #84.#92       // dev/langchain4j/model/openai/OpenAiModerationModel.modelName:Ljava/lang/String;\n+   #92 = NameAndType        #93:#94       // modelName:Ljava/lang/String;\n+   #93 = Utf8               modelName\n+   #94 = Utf8               Ljava/lang/String;\n+   #95 = Methodref          #96.#97       // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+   #96 = Class              #98           // java/lang/Integer\n+   #97 = NameAndType        #99:#100      // valueOf:(I)Ljava/lang/Integer;\n+   #98 = Utf8               java/lang/Integer\n+   #99 = Utf8               valueOf\n+  #100 = Utf8               (I)Ljava/lang/Integer;\n+  #101 = Fieldref           #84.#102      // dev/langchain4j/model/openai/OpenAiModerationModel.maxRetries:Ljava/lang/Integer;\n+  #102 = NameAndType        #103:#104     // maxRetries:Ljava/lang/Integer;\n+  #103 = Utf8               maxRetries\n+  #104 = Utf8               Ljava/lang/Integer;\n+  #105 = Methodref          #106.#107     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #106 = Class              #108          // java/util/Collections\n+  #107 = NameAndType        #109:#110     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #108 = Utf8               java/util/Collections\n+  #109 = Utf8               singletonList\n+  #110 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+  #111 = Methodref          #84.#112      // dev/langchain4j/model/openai/OpenAiModerationModel.moderateInternal:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #112 = NameAndType        #113:#114     // moderateInternal:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #113 = Utf8               moderateInternal\n+  #114 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+  #115 = Methodref          #116.#117     // dev/ai4j/openai4j/moderation/ModerationRequest.builder:()Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n+  #116 = Class              #118          // dev/ai4j/openai4j/moderation/ModerationRequest\n+  #117 = NameAndType        #41:#119      // builder:()Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n+  #118 = Utf8               dev/ai4j/openai4j/moderation/ModerationRequest\n+  #119 = Utf8               ()Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n+  #120 = Methodref          #121.#122     // dev/ai4j/openai4j/moderation/ModerationRequest$Builder.model:(Ljava/lang/String;)Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n+  #121 = Class              #123          // dev/ai4j/openai4j/moderation/ModerationRequest$Builder\n+  #122 = NameAndType        #124:#125     // model:(Ljava/lang/String;)Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n+  #123 = Utf8               dev/ai4j/openai4j/moderation/ModerationRequest$Builder\n+  #124 = Utf8               model\n+  #125 = Utf8               (Ljava/lang/String;)Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n+  #126 = Methodref          #121.#127     // dev/ai4j/openai4j/moderation/ModerationRequest$Builder.input:(Ljava/util/List;)Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n+  #127 = NameAndType        #128:#129     // input:(Ljava/util/List;)Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n+  #128 = Utf8               input\n+  #129 = Utf8               (Ljava/util/List;)Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n+  #130 = Methodref          #121.#131     // dev/ai4j/openai4j/moderation/ModerationRequest$Builder.build:()Ldev/ai4j/openai4j/moderation/ModerationRequest;\n+  #131 = NameAndType        #81:#132      // build:()Ldev/ai4j/openai4j/moderation/ModerationRequest;\n+  #132 = Utf8               ()Ldev/ai4j/openai4j/moderation/ModerationRequest;\n+  #133 = InvokeDynamic      #0:#134       // #0:call:(Ldev/langchain4j/model/openai/OpenAiModerationModel;Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ljava/util/concurrent/Callable;\n+  #134 = NameAndType        #135:#136     // call:(Ldev/langchain4j/model/openai/OpenAiModerationModel;Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ljava/util/concurrent/Callable;\n+  #135 = Utf8               call\n+  #136 = Utf8               (Ldev/langchain4j/model/openai/OpenAiModerationModel;Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ljava/util/concurrent/Callable;\n+  #137 = Methodref          #96.#138      // java/lang/Integer.intValue:()I\n+  #138 = NameAndType        #139:#140     // intValue:()I\n+  #139 = Utf8               intValue\n+  #140 = Utf8               ()I\n+  #141 = Methodref          #142.#143     // dev/langchain4j/internal/RetryUtils.withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n+  #142 = Class              #144          // dev/langchain4j/internal/RetryUtils\n+  #143 = NameAndType        #145:#146     // withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n+  #144 = Utf8               dev/langchain4j/internal/RetryUtils\n+  #145 = Utf8               withRetry\n+  #146 = Utf8               (Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n+  #147 = Class              #148          // dev/ai4j/openai4j/moderation/ModerationResponse\n+  #148 = Utf8               dev/ai4j/openai4j/moderation/ModerationResponse\n+  #149 = Methodref          #147.#150     // dev/ai4j/openai4j/moderation/ModerationResponse.results:()Ljava/util/List;\n+  #150 = NameAndType        #151:#152     // results:()Ljava/util/List;\n+  #151 = Utf8               results\n+  #152 = Utf8               ()Ljava/util/List;\n+  #153 = InterfaceMethodref #154.#155     // java/util/List.iterator:()Ljava/util/Iterator;\n+  #154 = Class              #156          // java/util/List\n+  #155 = NameAndType        #157:#158     // iterator:()Ljava/util/Iterator;\n+  #156 = Utf8               java/util/List\n+  #157 = Utf8               iterator\n+  #158 = Utf8               ()Ljava/util/Iterator;\n+  #159 = InterfaceMethodref #160.#161     // java/util/Iterator.hasNext:()Z\n+  #160 = Class              #162          // java/util/Iterator\n+  #161 = NameAndType        #163:#164     // hasNext:()Z\n+  #162 = Utf8               java/util/Iterator\n+  #163 = Utf8               hasNext\n+  #164 = Utf8               ()Z\n+  #165 = InterfaceMethodref #160.#166     // java/util/Iterator.next:()Ljava/lang/Object;\n+  #166 = NameAndType        #167:#168     // next:()Ljava/lang/Object;\n+  #167 = Utf8               next\n+  #168 = Utf8               ()Ljava/lang/Object;\n+  #169 = Class              #170          // dev/ai4j/openai4j/moderation/ModerationResult\n+  #170 = Utf8               dev/ai4j/openai4j/moderation/ModerationResult\n+  #171 = Methodref          #169.#172     // dev/ai4j/openai4j/moderation/ModerationResult.isFlagged:()Ljava/lang/Boolean;\n+  #172 = NameAndType        #173:#174     // isFlagged:()Ljava/lang/Boolean;\n+  #173 = Utf8               isFlagged\n+  #174 = Utf8               ()Ljava/lang/Boolean;\n+  #175 = Methodref          #176.#177     // java/lang/Boolean.booleanValue:()Z\n+  #176 = Class              #178          // java/lang/Boolean\n+  #177 = NameAndType        #179:#164     // booleanValue:()Z\n+  #178 = Utf8               java/lang/Boolean\n+  #179 = Utf8               booleanValue\n+  #180 = InterfaceMethodref #154.#181     // java/util/List.get:(I)Ljava/lang/Object;\n+  #181 = NameAndType        #182:#183     // get:(I)Ljava/lang/Object;\n+  #182 = Utf8               get\n+  #183 = Utf8               (I)Ljava/lang/Object;\n+  #184 = Methodref          #185.#186     // dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+  #185 = Class              #187          // dev/langchain4j/model/moderation/Moderation\n+  #186 = NameAndType        #188:#189     // flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+  #187 = Utf8               dev/langchain4j/model/moderation/Moderation\n+  #188 = Utf8               flagged\n+  #189 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+  #190 = Methodref          #191.#192     // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #191 = Class              #193          // dev/langchain4j/model/output/Response\n+  #192 = NameAndType        #194:#195     // from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #193 = Utf8               dev/langchain4j/model/output/Response\n+  #194 = Utf8               from\n+  #195 = Utf8               (Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+  #196 = Methodref          #185.#197     // dev/langchain4j/model/moderation/Moderation.notFlagged:()Ldev/langchain4j/model/moderation/Moderation;\n+  #197 = NameAndType        #198:#199     // notFlagged:()Ldev/langchain4j/model/moderation/Moderation;\n+  #198 = Utf8               notFlagged\n+  #199 = Utf8               ()Ldev/langchain4j/model/moderation/Moderation;\n+  #200 = InterfaceMethodref #154.#201     // java/util/List.stream:()Ljava/util/stream/Stream;\n+  #201 = NameAndType        #202:#203     // stream:()Ljava/util/stream/Stream;\n+  #202 = Utf8               stream\n+  #203 = Utf8               ()Ljava/util/stream/Stream;\n+  #204 = InvokeDynamic      #1:#205       // #1:apply:()Ljava/util/function/Function;\n+  #205 = NameAndType        #206:#207     // apply:()Ljava/util/function/Function;\n+  #206 = Utf8               apply\n+  #207 = Utf8               ()Ljava/util/function/Function;\n+  #208 = InterfaceMethodref #209.#210     // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+  #209 = Class              #211          // java/util/stream/Stream\n+  #210 = NameAndType        #212:#213     // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+  #211 = Utf8               java/util/stream/Stream\n+  #212 = Utf8               map\n+  #213 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+  #214 = Methodref          #215.#216     // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+  #215 = Class              #217          // java/util/stream/Collectors\n+  #216 = NameAndType        #218:#219     // toList:()Ljava/util/stream/Collector;\n+  #217 = Utf8               java/util/stream/Collectors\n+  #218 = Utf8               toList\n+  #219 = Utf8               ()Ljava/util/stream/Collector;\n+  #220 = InterfaceMethodref #209.#221     // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #221 = NameAndType        #222:#223     // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #222 = Utf8               collect\n+  #223 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #224 = Methodref          #84.#225      // dev/langchain4j/model/openai/OpenAiModerationModel.builder:()Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n+  #225 = NameAndType        #41:#226      // builder:()Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n+  #226 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n+  #227 = Methodref          #228.#229     // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n+  #228 = Class              #230          // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder\n+  #229 = NameAndType        #231:#232     // apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n+  #230 = Utf8               dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder\n+  #231 = Utf8               apiKey\n+  #232 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n+  #233 = Methodref          #228.#234     // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.build:()Ldev/langchain4j/model/openai/OpenAiModerationModel;\n+  #234 = NameAndType        #81:#235      // build:()Ldev/langchain4j/model/openai/OpenAiModerationModel;\n+  #235 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiModerationModel;\n+  #236 = Class              #237          // dev/langchain4j/model/openai/spi/OpenAiModerationModelBuilderFactory\n+  #237 = Utf8               dev/langchain4j/model/openai/spi/OpenAiModerationModelBuilderFactory\n+  #238 = InvokeDynamic      #2:#239       // #2:get:()Ljava/util/function/Supplier;\n+  #239 = NameAndType        #182:#240     // get:()Ljava/util/function/Supplier;\n+  #240 = Utf8               ()Ljava/util/function/Supplier;\n+  #241 = Methodref          #242.#243     // dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #242 = Class              #244          // dev/langchain4j/spi/ServiceHelper\n+  #243 = NameAndType        #245:#246     // loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #244 = Utf8               dev/langchain4j/spi/ServiceHelper\n+  #245 = Utf8               loadFactoryService\n+  #246 = Utf8               (Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+  #247 = Methodref          #38.#248      // dev/ai4j/openai4j/OpenAiClient.moderation:(Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ldev/ai4j/openai4j/SyncOrAsync;\n+  #248 = NameAndType        #249:#250     // moderation:(Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ldev/ai4j/openai4j/SyncOrAsync;\n+  #249 = Utf8               moderation\n+  #250 = Utf8               (Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ldev/ai4j/openai4j/SyncOrAsync;\n+  #251 = InterfaceMethodref #252.#253     // dev/ai4j/openai4j/SyncOrAsync.execute:()Ljava/lang/Object;\n+  #252 = Class              #254          // dev/ai4j/openai4j/SyncOrAsync\n+  #253 = NameAndType        #255:#168     // execute:()Ljava/lang/Object;\n+  #254 = Utf8               dev/ai4j/openai4j/SyncOrAsync\n+  #255 = Utf8               execute\n+  #256 = Class              #257          // dev/langchain4j/model/moderation/ModerationModel\n+  #257 = Utf8               dev/langchain4j/model/moderation/ModerationModel\n+  #258 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;)V\n+  #259 = Utf8               Code\n+  #260 = Utf8               LineNumberTable\n+  #261 = Utf8               LocalVariableTable\n+  #262 = Utf8               this\n+  #263 = Utf8               Ldev/langchain4j/model/openai/OpenAiModerationModel;\n+  #264 = Utf8               timeout\n+  #265 = Utf8               Ljava/time/Duration;\n+  #266 = Utf8               Ljava/net/Proxy;\n+  #267 = Utf8               Ljava/lang/Boolean;\n+  #268 = Utf8               StackMapTable\n+  #269 = Class              #270          // java/net/Proxy\n+  #270 = Utf8               java/net/Proxy\n+  #271 = Utf8               moderate\n+  #272 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n+  #273 = Utf8               text\n+  #274 = Utf8               Signature\n+  #275 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n+  #276 = Utf8               moderationResult\n+  #277 = Utf8               Ldev/ai4j/openai4j/moderation/ModerationResult;\n+  #278 = Utf8               inputs\n+  #279 = Utf8               Ljava/util/List;\n+  #280 = Utf8               request\n+  #281 = Utf8               Ldev/ai4j/openai4j/moderation/ModerationRequest;\n+  #282 = Utf8               response\n+  #283 = Utf8               Ldev/ai4j/openai4j/moderation/ModerationResponse;\n+  #284 = Utf8               i\n+  #285 = Utf8               I\n+  #286 = Utf8               LocalVariableTypeTable\n+  #287 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n+  #288 = Utf8               (Ljava/util/List<Ljava/lang/String;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n+  #289 = Utf8               messages\n+  #290 = Utf8               Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #291 = Utf8               (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n+  #292 = Utf8               withApiKey\n+  #293 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiModerationModel;\n+  #294 = Utf8               lambda$moderateInternal$0\n+  #295 = Utf8               (Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ldev/ai4j/openai4j/moderation/ModerationResponse;\n+  #296 = Utf8               Exceptions\n+  #297 = Class              #298          // java/lang/Exception\n+  #298 = Utf8               java/lang/Exception\n+  #299 = Utf8               SourceFile\n+  #300 = Utf8               OpenAiModerationModel.java\n+  #301 = Utf8               BootstrapMethods\n+  #302 = MethodHandle       6:#303        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #303 = Methodref          #304.#305     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #304 = Class              #306          // java/lang/invoke/LambdaMetafactory\n+  #305 = NameAndType        #307:#308     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #306 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #307 = Utf8               metafactory\n+  #308 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #309 = MethodType         #168          //  ()Ljava/lang/Object;\n+  #310 = MethodHandle       7:#311        // REF_invokeSpecial dev/langchain4j/model/openai/OpenAiModerationModel.lambda$moderateInternal$0:(Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ldev/ai4j/openai4j/moderation/ModerationResponse;\n+  #311 = Methodref          #84.#312      // dev/langchain4j/model/openai/OpenAiModerationModel.lambda$moderateInternal$0:(Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ldev/ai4j/openai4j/moderation/ModerationResponse;\n+  #312 = NameAndType        #294:#295     // lambda$moderateInternal$0:(Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ldev/ai4j/openai4j/moderation/ModerationResponse;\n+  #313 = MethodType         #314          //  ()Ldev/ai4j/openai4j/moderation/ModerationResponse;\n+  #314 = Utf8               ()Ldev/ai4j/openai4j/moderation/ModerationResponse;\n+  #315 = MethodType         #316          //  (Ljava/lang/Object;)Ljava/lang/Object;\n+  #316 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #317 = MethodHandle       9:#318        // REF_invokeInterface dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+  #318 = InterfaceMethodref #319.#320     // dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+  #319 = Class              #321          // dev/langchain4j/data/message/ChatMessage\n+  #320 = NameAndType        #273:#322     // text:()Ljava/lang/String;\n+  #321 = Utf8               dev/langchain4j/data/message/ChatMessage\n+  #322 = Utf8               ()Ljava/lang/String;\n+  #323 = MethodType         #324          //  (Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n+  #324 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n+  #325 = MethodHandle       8:#326        // REF_newInvokeSpecial dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.\"<init>\":()V\n+  #326 = Methodref          #228.#7       // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.\"<init>\":()V\n+  #327 = MethodType         #226          //  ()Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n+  #328 = Utf8               InnerClasses\n+  #329 = Utf8               Builder\n+  #330 = Utf8               OpenAiModerationModelBuilder\n+  #331 = Class              #332          // java/lang/invoke/MethodHandles$Lookup\n+  #332 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #333 = Class              #334          // java/lang/invoke/MethodHandles\n+  #334 = Utf8               java/lang/invoke/MethodHandles\n+  #335 = Utf8               Lookup\n {\n   private final dev.ai4j.openai4j.OpenAiClient client;\n     descriptor: Ldev/ai4j/openai4j/OpenAiClient;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n \n   private final java.lang.String modelName;\n     descriptor: Ljava/lang/String;\n@@ -367,69 +357,69 @@\n \n   public dev.langchain4j.model.openai.OpenAiModerationModel(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.time.Duration, java.lang.Integer, java.net.Proxy, java.lang.Boolean, java.lang.Boolean);\n     descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/time/Duration;Ljava/lang/Integer;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=10, args_size=10\n          0: aload_0\n-         1: invokespecial #3                  // Method java/lang/Object.\"<init>\":()V\n+         1: invokespecial #5                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_1\n-         5: ldc           #4                  // String https://api.openai.com/v1\n-         7: invokestatic  #5                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-        10: checkcast     #6                  // class java/lang/String\n+         5: ldc           #11                 // String https://api.openai.com/v1\n+         7: invokestatic  #13                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        10: checkcast     #19                 // class java/lang/String\n         13: astore_1\n-        14: ldc           #7                  // String demo\n+        14: ldc           #21                 // String demo\n         16: aload_2\n-        17: invokevirtual #8                  // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+        17: invokevirtual #23                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n         20: ifeq          26\n-        23: ldc           #9                  // String http://langchain4j.dev/demo/openai/v1\n+        23: ldc           #27                 // String http://langchain4j.dev/demo/openai/v1\n         25: astore_1\n         26: aload         5\n-        28: ldc2_w        #10                 // long 60l\n-        31: invokestatic  #12                 // Method java/time/Duration.ofSeconds:(J)Ljava/time/Duration;\n-        34: invokestatic  #5                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-        37: checkcast     #13                 // class java/time/Duration\n+        28: ldc2_w        #29                 // long 60l\n+        31: invokestatic  #31                 // Method java/time/Duration.ofSeconds:(J)Ljava/time/Duration;\n+        34: invokestatic  #13                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+        37: checkcast     #32                 // class java/time/Duration\n         40: astore        5\n         42: aload_0\n-        43: invokestatic  #14                 // Method dev/ai4j/openai4j/OpenAiClient.builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        43: invokestatic  #37                 // Method dev/ai4j/openai4j/OpenAiClient.builder:()Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         46: aload_2\n-        47: invokevirtual #15                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        47: invokevirtual #43                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.openAiApiKey:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         50: aload_1\n-        51: invokevirtual #16                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        51: invokevirtual #49                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.baseUrl:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         54: aload_3\n-        55: invokevirtual #17                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        55: invokevirtual #52                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.organizationId:(Ljava/lang/String;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         58: aload         5\n-        60: invokevirtual #18                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        60: invokevirtual #55                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.callTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         63: aload         5\n-        65: invokevirtual #19                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        65: invokevirtual #59                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.connectTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         68: aload         5\n-        70: invokevirtual #20                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        70: invokevirtual #62                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.readTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         73: aload         5\n-        75: invokevirtual #21                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        75: invokevirtual #65                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.writeTimeout:(Ljava/time/Duration;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         78: aload         7\n-        80: invokevirtual #22                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        80: invokevirtual #68                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.proxy:(Ljava/net/Proxy;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         83: aload         8\n-        85: invokevirtual #23                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        85: invokevirtual #72                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.logRequests:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n         88: aload         9\n-        90: invokevirtual #24                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n-        93: invokevirtual #25                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.build:()Ldev/ai4j/openai4j/OpenAiClient;\n-        96: putfield      #26                 // Field client:Ldev/ai4j/openai4j/OpenAiClient;\n+        90: invokevirtual #76                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.logResponses:(Ljava/lang/Boolean;)Ldev/ai4j/openai4j/OpenAiClient$Builder;\n+        93: invokevirtual #79                 // Method dev/ai4j/openai4j/OpenAiClient$Builder.build:()Ldev/ai4j/openai4j/OpenAiClient;\n+        96: putfield      #83                 // Field client:Ldev/ai4j/openai4j/OpenAiClient;\n         99: aload_0\n        100: aload         4\n-       102: ldc           #27                 // String text-moderation-latest\n-       104: invokestatic  #5                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-       107: checkcast     #6                  // class java/lang/String\n-       110: putfield      #28                 // Field modelName:Ljava/lang/String;\n+       102: ldc           #89                 // String text-moderation-latest\n+       104: invokestatic  #13                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       107: checkcast     #19                 // class java/lang/String\n+       110: putfield      #91                 // Field modelName:Ljava/lang/String;\n        113: aload_0\n        114: aload         6\n        116: iconst_3\n-       117: invokestatic  #29                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-       120: invokestatic  #5                  // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n-       123: checkcast     #30                 // class java/lang/Integer\n-       126: putfield      #31                 // Field maxRetries:Ljava/lang/Integer;\n+       117: invokestatic  #95                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+       120: invokestatic  #13                 // Method dev/langchain4j/internal/Utils.getOrDefault:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;\n+       123: checkcast     #96                 // class java/lang/Integer\n+       126: putfield      #101                // Field maxRetries:Ljava/lang/Integer;\n        129: return\n       LineNumberTable:\n         line 45: 0\n         line 47: 4\n         line 48: 14\n         line 49: 23\n         line 52: 26\n@@ -469,75 +459,75 @@\n   public dev.langchain4j.model.output.Response<dev.langchain4j.model.moderation.Moderation> moderate(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokestatic  #32                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-         5: invokespecial #33                 // Method moderateInternal:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+         2: invokestatic  #105                // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+         5: invokespecial #111                // Method moderateInternal:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n          8: areturn\n       LineNumberTable:\n         line 72: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       9     0  this   Ldev/langchain4j/model/openai/OpenAiModerationModel;\n             0       9     1  text   Ljava/lang/String;\n-    Signature: #107                         // (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n+    Signature: #275                         // (Ljava/lang/String;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n \n   private dev.langchain4j.model.output.Response<dev.langchain4j.model.moderation.Moderation> moderateInternal(java.util.List<java.lang.String>);\n     descriptor: (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=2, locals=7, args_size=2\n-         0: invokestatic  #34                 // Method dev/ai4j/openai4j/moderation/ModerationRequest.builder:()Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n+         0: invokestatic  #115                // Method dev/ai4j/openai4j/moderation/ModerationRequest.builder:()Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n          3: aload_0\n-         4: getfield      #28                 // Field modelName:Ljava/lang/String;\n-         7: invokevirtual #35                 // Method dev/ai4j/openai4j/moderation/ModerationRequest$Builder.model:(Ljava/lang/String;)Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n+         4: getfield      #91                 // Field modelName:Ljava/lang/String;\n+         7: invokevirtual #120                // Method dev/ai4j/openai4j/moderation/ModerationRequest$Builder.model:(Ljava/lang/String;)Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n         10: aload_1\n-        11: invokevirtual #36                 // Method dev/ai4j/openai4j/moderation/ModerationRequest$Builder.input:(Ljava/util/List;)Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n-        14: invokevirtual #37                 // Method dev/ai4j/openai4j/moderation/ModerationRequest$Builder.build:()Ldev/ai4j/openai4j/moderation/ModerationRequest;\n+        11: invokevirtual #126                // Method dev/ai4j/openai4j/moderation/ModerationRequest$Builder.input:(Ljava/util/List;)Ldev/ai4j/openai4j/moderation/ModerationRequest$Builder;\n+        14: invokevirtual #130                // Method dev/ai4j/openai4j/moderation/ModerationRequest$Builder.build:()Ldev/ai4j/openai4j/moderation/ModerationRequest;\n         17: astore_2\n         18: aload_0\n         19: aload_2\n-        20: invokedynamic #38,  0             // InvokeDynamic #0:call:(Ldev/langchain4j/model/openai/OpenAiModerationModel;Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ljava/util/concurrent/Callable;\n+        20: invokedynamic #133,  0            // InvokeDynamic #0:call:(Ldev/langchain4j/model/openai/OpenAiModerationModel;Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ljava/util/concurrent/Callable;\n         25: aload_0\n-        26: getfield      #31                 // Field maxRetries:Ljava/lang/Integer;\n-        29: invokevirtual #39                 // Method java/lang/Integer.intValue:()I\n-        32: invokestatic  #40                 // Method dev/langchain4j/internal/RetryUtils.withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n-        35: checkcast     #41                 // class dev/ai4j/openai4j/moderation/ModerationResponse\n+        26: getfield      #101                // Field maxRetries:Ljava/lang/Integer;\n+        29: invokevirtual #137                // Method java/lang/Integer.intValue:()I\n+        32: invokestatic  #141                // Method dev/langchain4j/internal/RetryUtils.withRetry:(Ljava/util/concurrent/Callable;I)Ljava/lang/Object;\n+        35: checkcast     #147                // class dev/ai4j/openai4j/moderation/ModerationResponse\n         38: astore_3\n         39: iconst_0\n         40: istore        4\n         42: aload_3\n-        43: invokevirtual #42                 // Method dev/ai4j/openai4j/moderation/ModerationResponse.results:()Ljava/util/List;\n-        46: invokeinterface #43,  1           // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;\n+        43: invokevirtual #149                // Method dev/ai4j/openai4j/moderation/ModerationResponse.results:()Ljava/util/List;\n+        46: invokeinterface #153,  1          // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;\n         51: astore        5\n         53: aload         5\n-        55: invokeinterface #44,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z\n+        55: invokeinterface #159,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z\n         60: ifeq          110\n         63: aload         5\n-        65: invokeinterface #45,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n-        70: checkcast     #46                 // class dev/ai4j/openai4j/moderation/ModerationResult\n+        65: invokeinterface #165,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n+        70: checkcast     #169                // class dev/ai4j/openai4j/moderation/ModerationResult\n         73: astore        6\n         75: aload         6\n-        77: invokevirtual #47                 // Method dev/ai4j/openai4j/moderation/ModerationResult.isFlagged:()Ljava/lang/Boolean;\n-        80: invokevirtual #48                 // Method java/lang/Boolean.booleanValue:()Z\n+        77: invokevirtual #171                // Method dev/ai4j/openai4j/moderation/ModerationResult.isFlagged:()Ljava/lang/Boolean;\n+        80: invokevirtual #175                // Method java/lang/Boolean.booleanValue:()Z\n         83: ifeq          104\n         86: aload_1\n         87: iload         4\n-        89: invokeinterface #49,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-        94: checkcast     #6                  // class java/lang/String\n-        97: invokestatic  #50                 // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n-       100: invokestatic  #51                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+        89: invokeinterface #180,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+        94: checkcast     #19                 // class java/lang/String\n+        97: invokestatic  #184                // Method dev/langchain4j/model/moderation/Moderation.flagged:(Ljava/lang/String;)Ldev/langchain4j/model/moderation/Moderation;\n+       100: invokestatic  #190                // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n        103: areturn\n        104: iinc          4, 1\n        107: goto          53\n-       110: invokestatic  #52                 // Method dev/langchain4j/model/moderation/Moderation.notFlagged:()Ldev/langchain4j/model/moderation/Moderation;\n-       113: invokestatic  #51                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n+       110: invokestatic  #196                // Method dev/langchain4j/model/moderation/Moderation.notFlagged:()Ldev/langchain4j/model/moderation/Moderation;\n+       113: invokestatic  #190                // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;)Ldev/langchain4j/model/output/Response;\n        116: areturn\n       LineNumberTable:\n         line 77: 0\n         line 78: 7\n         line 79: 11\n         line 80: 14\n         line 82: 18\n@@ -565,32 +555,32 @@\n           locals = [ class dev/langchain4j/model/openai/OpenAiModerationModel, class java/util/List, class dev/ai4j/openai4j/moderation/ModerationRequest, class dev/ai4j/openai4j/moderation/ModerationResponse, int, class java/util/Iterator ]\n           stack = []\n         frame_type = 252 /* append */\n           offset_delta = 50\n           locals = [ class dev/ai4j/openai4j/moderation/ModerationResult ]\n         frame_type = 249 /* chop */\n           offset_delta = 5\n-    Signature: #127                         // (Ljava/util/List<Ljava/lang/String;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n+    Signature: #288                         // (Ljava/util/List<Ljava/lang/String;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n \n   public dev.langchain4j.model.output.Response<dev.langchain4j.model.moderation.Moderation> moderate(java.util.List<dev.langchain4j.data.message.ChatMessage>);\n     descriptor: (Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=3, args_size=2\n          0: aload_1\n-         1: invokeinterface #53,  1           // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n-         6: invokedynamic #54,  0             // InvokeDynamic #1:apply:()Ljava/util/function/Function;\n-        11: invokeinterface #55,  2           // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-        16: invokestatic  #56                 // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-        19: invokeinterface #57,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-        24: checkcast     #58                 // class java/util/List\n+         1: invokeinterface #200,  1          // InterfaceMethod java/util/List.stream:()Ljava/util/stream/Stream;\n+         6: invokedynamic #204,  0            // InvokeDynamic #1:apply:()Ljava/util/function/Function;\n+        11: invokeinterface #208,  2          // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+        16: invokestatic  #214                // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+        19: invokeinterface #220,  2          // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+        24: checkcast     #154                // class java/util/List\n         27: astore_2\n         28: aload_0\n         29: aload_2\n-        30: invokespecial #33                 // Method moderateInternal:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n+        30: invokespecial #111                // Method moderateInternal:(Ljava/util/List;)Ldev/langchain4j/model/output/Response;\n         33: areturn\n       LineNumberTable:\n         line 98: 0\n         line 99: 11\n         line 100: 16\n         line 102: 28\n       LocalVariableTable:\n@@ -598,81 +588,81 @@\n             0      34     0  this   Ldev/langchain4j/model/openai/OpenAiModerationModel;\n             0      34     1 messages   Ljava/util/List;\n            28       6     2 inputs   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      34     1 messages   Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;\n            28       6     2 inputs   Ljava/util/List<Ljava/lang/String;>;\n-    Signature: #130                         // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n+    Signature: #291                         // (Ljava/util/List<Ldev/langchain4j/data/message/ChatMessage;>;)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/model/moderation/Moderation;>;\n \n   public static dev.langchain4j.model.openai.OpenAiModerationModel withApiKey(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiModerationModel;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: invokestatic  #59                 // Method builder:()Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n+         0: invokestatic  #224                // Method builder:()Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n          3: aload_0\n-         4: invokevirtual #60                 // Method dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n-         7: invokevirtual #61                 // Method dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.build:()Ldev/langchain4j/model/openai/OpenAiModerationModel;\n+         4: invokevirtual #227                // Method dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.apiKey:(Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n+         7: invokevirtual #233                // Method dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.build:()Ldev/langchain4j/model/openai/OpenAiModerationModel;\n         10: areturn\n       LineNumberTable:\n         line 106: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      11     0 apiKey   Ljava/lang/String;\n \n   public static dev.langchain4j.model.openai.OpenAiModerationModel$OpenAiModerationModelBuilder builder();\n     descriptor: ()Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=2, locals=0, args_size=0\n-         0: ldc           #62                 // class dev/langchain4j/model/openai/spi/OpenAiModerationModelBuilderFactory\n-         2: invokedynamic #63,  0             // InvokeDynamic #2:get:()Ljava/util/function/Supplier;\n-         7: invokestatic  #64                 // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        10: checkcast     #65                 // class dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder\n+         0: ldc           #236                // class dev/langchain4j/model/openai/spi/OpenAiModerationModelBuilderFactory\n+         2: invokedynamic #238,  0            // InvokeDynamic #2:get:()Ljava/util/function/Supplier;\n+         7: invokestatic  #241                // Method dev/langchain4j/spi/ServiceHelper.loadFactoryService:(Ljava/lang/Class;Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        10: checkcast     #228                // class dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder\n         13: areturn\n       LineNumberTable:\n         line 110: 0\n \n   private dev.ai4j.openai4j.moderation.ModerationResponse lambda$moderateInternal$0(dev.ai4j.openai4j.moderation.ModerationRequest) throws java.lang.Exception;\n     descriptor: (Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ldev/ai4j/openai4j/moderation/ModerationResponse;\n     flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #26                 // Field client:Ldev/ai4j/openai4j/OpenAiClient;\n+         1: getfield      #83                 // Field client:Ldev/ai4j/openai4j/OpenAiClient;\n          4: aload_1\n-         5: invokevirtual #66                 // Method dev/ai4j/openai4j/OpenAiClient.moderation:(Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ldev/ai4j/openai4j/SyncOrAsync;\n-         8: invokeinterface #67,  1           // InterfaceMethod dev/ai4j/openai4j/SyncOrAsync.execute:()Ljava/lang/Object;\n-        13: checkcast     #41                 // class dev/ai4j/openai4j/moderation/ModerationResponse\n+         5: invokevirtual #247                // Method dev/ai4j/openai4j/OpenAiClient.moderation:(Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ldev/ai4j/openai4j/SyncOrAsync;\n+         8: invokeinterface #251,  1          // InterfaceMethod dev/ai4j/openai4j/SyncOrAsync.execute:()Ljava/lang/Object;\n+        13: checkcast     #147                // class dev/ai4j/openai4j/moderation/ModerationResponse\n         16: areturn\n       LineNumberTable:\n         line 82: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      17     0  this   Ldev/langchain4j/model/openai/OpenAiModerationModel;\n             0      17     1 request   Ldev/ai4j/openai4j/moderation/ModerationRequest;\n     Exceptions:\n       throws java.lang.Exception\n }\n SourceFile: \"OpenAiModerationModel.java\"\n-InnerClasses:\n-  public static #71= #65 of #68;          // OpenAiModerationModelBuilder=class dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder of class dev/langchain4j/model/openai/OpenAiModerationModel\n-  public static abstract #248= #155 of #153; // Builder=class dev/ai4j/openai4j/OpenAiClient$Builder of class dev/ai4j/openai4j/OpenAiClient\n-  public static final #248= #178 of #176; // Builder=class dev/ai4j/openai4j/moderation/ModerationRequest$Builder of class dev/ai4j/openai4j/moderation/ModerationRequest\n-  public static final #339= #338 of #343; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #183 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #302 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #184 ()Ljava/lang/Object;\n-      #185 REF_invokeSpecial dev/langchain4j/model/openai/OpenAiModerationModel.lambda$moderateInternal$0:(Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ldev/ai4j/openai4j/moderation/ModerationResponse;\n-      #186 ()Ldev/ai4j/openai4j/moderation/ModerationResponse;\n-  1: #183 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #309 ()Ljava/lang/Object;\n+      #310 REF_invokeSpecial dev/langchain4j/model/openai/OpenAiModerationModel.lambda$moderateInternal$0:(Ldev/ai4j/openai4j/moderation/ModerationRequest;)Ldev/ai4j/openai4j/moderation/ModerationResponse;\n+      #313 ()Ldev/ai4j/openai4j/moderation/ModerationResponse;\n+  1: #302 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #208 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #209 REF_invokeInterface dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n-      #210 (Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n-  2: #183 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #315 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #317 REF_invokeInterface dev/langchain4j/data/message/ChatMessage.text:()Ljava/lang/String;\n+      #323 (Ldev/langchain4j/data/message/ChatMessage;)Ljava/lang/String;\n+  2: #302 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #184 ()Ljava/lang/Object;\n-      #222 REF_newInvokeSpecial dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.\"<init>\":()V\n-      #223 ()Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n+      #309 ()Ljava/lang/Object;\n+      #325 REF_newInvokeSpecial dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder.\"<init>\":()V\n+      #327 ()Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;\n+InnerClasses:\n+  public static abstract #329= #44 of #38; // Builder=class dev/ai4j/openai4j/OpenAiClient$Builder of class dev/ai4j/openai4j/OpenAiClient\n+  public static final #329= #121 of #116; // Builder=class dev/ai4j/openai4j/moderation/ModerationRequest$Builder of class dev/ai4j/openai4j/moderation/ModerationRequest\n+  public static #330= #228 of #84;        // OpenAiModerationModelBuilder=class dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder of class dev/langchain4j/model/openai/OpenAiModerationModel\n+  public static final #335= #331 of #333; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiModerationModelName.class", "source2": "dev/langchain4j/model/openai/OpenAiModerationModelName.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,76 +1,78 @@\n-  SHA-256 checksum 5aba788de3a4d42196d8e03a730ec64d54bcc1589f682916d92635a016c9350e\n+  SHA-256 checksum 147c319bf97a6df1adf2a36458d5f6c4ee2c62469bf682de3bcb5ea7ffc2eceb\n   Compiled from \"OpenAiModerationModelName.java\"\n public final class dev.langchain4j.model.openai.OpenAiModerationModelName extends java.lang.Enum<dev.langchain4j.model.openai.OpenAiModerationModelName>\n   minor version: 0\n   major version: 52\n   flags: (0x4031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_ENUM\n-  this_class: #4                          // dev/langchain4j/model/openai/OpenAiModerationModelName\n-  super_class: #15                        // java/lang/Enum\n-  interfaces: 0, fields: 4, methods: 5, attributes: 2\n+  this_class: #1                          // dev/langchain4j/model/openai/OpenAiModerationModelName\n+  super_class: #20                        // java/lang/Enum\n+  interfaces: 0, fields: 4, methods: 6, attributes: 2\n Constant pool:\n-   #1 = Fieldref           #4.#43         // dev/langchain4j/model/openai/OpenAiModerationModelName.$VALUES:[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n-   #2 = Methodref          #44.#45        // \"[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\".clone:()Ljava/lang/Object;\n-   #3 = Class              #22            // \"[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\"\n-   #4 = Class              #46            // dev/langchain4j/model/openai/OpenAiModerationModelName\n-   #5 = Methodref          #15.#47        // java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n-   #6 = Methodref          #15.#48        // java/lang/Enum.\"<init>\":(Ljava/lang/String;I)V\n-   #7 = Fieldref           #4.#49         // dev/langchain4j/model/openai/OpenAiModerationModelName.stringValue:Ljava/lang/String;\n-   #8 = String             #16            // TEXT_MODERATION_STABLE\n-   #9 = String             #50            // text-moderation-stable\n-  #10 = Methodref          #4.#51         // dev/langchain4j/model/openai/OpenAiModerationModelName.\"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-  #11 = Fieldref           #4.#52         // dev/langchain4j/model/openai/OpenAiModerationModelName.TEXT_MODERATION_STABLE:Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n-  #12 = String             #18            // TEXT_MODERATION_LATEST\n-  #13 = String             #53            // text-moderation-latest\n-  #14 = Fieldref           #4.#54         // dev/langchain4j/model/openai/OpenAiModerationModelName.TEXT_MODERATION_LATEST:Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n-  #15 = Class              #55            // java/lang/Enum\n-  #16 = Utf8               TEXT_MODERATION_STABLE\n-  #17 = Utf8               Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n-  #18 = Utf8               TEXT_MODERATION_LATEST\n-  #19 = Utf8               stringValue\n-  #20 = Utf8               Ljava/lang/String;\n-  #21 = Utf8               $VALUES\n-  #22 = Utf8               [Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n-  #23 = Utf8               values\n-  #24 = Utf8               ()[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n-  #25 = Utf8               Code\n-  #26 = Utf8               LineNumberTable\n-  #27 = Utf8               valueOf\n-  #28 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n-  #29 = Utf8               LocalVariableTable\n-  #30 = Utf8               name\n-  #31 = Utf8               <init>\n-  #32 = Utf8               (Ljava/lang/String;ILjava/lang/String;)V\n-  #33 = Utf8               this\n-  #34 = Utf8               Signature\n-  #35 = Utf8               (Ljava/lang/String;)V\n-  #36 = Utf8               toString\n-  #37 = Utf8               ()Ljava/lang/String;\n-  #38 = Utf8               <clinit>\n-  #39 = Utf8               ()V\n-  #40 = Utf8               Ljava/lang/Enum<Ldev/langchain4j/model/openai/OpenAiModerationModelName;>;\n-  #41 = Utf8               SourceFile\n-  #42 = Utf8               OpenAiModerationModelName.java\n-  #43 = NameAndType        #21:#22        // $VALUES:[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n-  #44 = Class              #22            // \"[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\"\n-  #45 = NameAndType        #56:#57        // clone:()Ljava/lang/Object;\n-  #46 = Utf8               dev/langchain4j/model/openai/OpenAiModerationModelName\n-  #47 = NameAndType        #27:#58        // valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n-  #48 = NameAndType        #31:#59        // \"<init>\":(Ljava/lang/String;I)V\n-  #49 = NameAndType        #19:#20        // stringValue:Ljava/lang/String;\n-  #50 = Utf8               text-moderation-stable\n-  #51 = NameAndType        #31:#32        // \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-  #52 = NameAndType        #16:#17        // TEXT_MODERATION_STABLE:Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n-  #53 = Utf8               text-moderation-latest\n-  #54 = NameAndType        #18:#17        // TEXT_MODERATION_LATEST:Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n-  #55 = Utf8               java/lang/Enum\n-  #56 = Utf8               clone\n-  #57 = Utf8               ()Ljava/lang/Object;\n-  #58 = Utf8               (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n-  #59 = Utf8               (Ljava/lang/String;I)V\n+   #1 = Class              #2             // dev/langchain4j/model/openai/OpenAiModerationModelName\n+   #2 = Utf8               dev/langchain4j/model/openai/OpenAiModerationModelName\n+   #3 = Fieldref           #1.#4          // dev/langchain4j/model/openai/OpenAiModerationModelName.TEXT_MODERATION_STABLE:Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+   #4 = NameAndType        #5:#6          // TEXT_MODERATION_STABLE:Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+   #5 = Utf8               TEXT_MODERATION_STABLE\n+   #6 = Utf8               Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+   #7 = Fieldref           #1.#8          // dev/langchain4j/model/openai/OpenAiModerationModelName.TEXT_MODERATION_LATEST:Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+   #8 = NameAndType        #9:#6          // TEXT_MODERATION_LATEST:Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+   #9 = Utf8               TEXT_MODERATION_LATEST\n+  #10 = Fieldref           #1.#11         // dev/langchain4j/model/openai/OpenAiModerationModelName.$VALUES:[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+  #11 = NameAndType        #12:#13        // $VALUES:[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+  #12 = Utf8               $VALUES\n+  #13 = Utf8               [Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+  #14 = Methodref          #15.#16        // \"[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\".clone:()Ljava/lang/Object;\n+  #15 = Class              #13            // \"[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\"\n+  #16 = NameAndType        #17:#18        // clone:()Ljava/lang/Object;\n+  #17 = Utf8               clone\n+  #18 = Utf8               ()Ljava/lang/Object;\n+  #19 = Methodref          #20.#21        // java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n+  #20 = Class              #22            // java/lang/Enum\n+  #21 = NameAndType        #23:#24        // valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n+  #22 = Utf8               java/lang/Enum\n+  #23 = Utf8               valueOf\n+  #24 = Utf8               (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n+  #25 = Methodref          #20.#26        // java/lang/Enum.\"<init>\":(Ljava/lang/String;I)V\n+  #26 = NameAndType        #27:#28        // \"<init>\":(Ljava/lang/String;I)V\n+  #27 = Utf8               <init>\n+  #28 = Utf8               (Ljava/lang/String;I)V\n+  #29 = Fieldref           #1.#30         // dev/langchain4j/model/openai/OpenAiModerationModelName.stringValue:Ljava/lang/String;\n+  #30 = NameAndType        #31:#32        // stringValue:Ljava/lang/String;\n+  #31 = Utf8               stringValue\n+  #32 = Utf8               Ljava/lang/String;\n+  #33 = String             #5             // TEXT_MODERATION_STABLE\n+  #34 = String             #35            // text-moderation-stable\n+  #35 = Utf8               text-moderation-stable\n+  #36 = Methodref          #1.#37         // dev/langchain4j/model/openai/OpenAiModerationModelName.\"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+  #37 = NameAndType        #27:#38        // \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+  #38 = Utf8               (Ljava/lang/String;ILjava/lang/String;)V\n+  #39 = String             #9             // TEXT_MODERATION_LATEST\n+  #40 = String             #41            // text-moderation-latest\n+  #41 = Utf8               text-moderation-latest\n+  #42 = Methodref          #1.#43         // dev/langchain4j/model/openai/OpenAiModerationModelName.$values:()[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+  #43 = NameAndType        #44:#45        // $values:()[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+  #44 = Utf8               $values\n+  #45 = Utf8               ()[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+  #46 = Utf8               values\n+  #47 = Utf8               Code\n+  #48 = Utf8               LineNumberTable\n+  #49 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+  #50 = Utf8               LocalVariableTable\n+  #51 = Utf8               name\n+  #52 = Utf8               this\n+  #53 = Utf8               Signature\n+  #54 = Utf8               (Ljava/lang/String;)V\n+  #55 = Utf8               toString\n+  #56 = Utf8               ()Ljava/lang/String;\n+  #57 = Utf8               <clinit>\n+  #58 = Utf8               ()V\n+  #59 = Utf8               Ljava/lang/Enum<Ldev/langchain4j/model/openai/OpenAiModerationModelName;>;\n+  #60 = Utf8               SourceFile\n+  #61 = Utf8               OpenAiModerationModelName.java\n {\n   public static final dev.langchain4j.model.openai.OpenAiModerationModelName TEXT_MODERATION_STABLE;\n     descriptor: Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n     flags: (0x4019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_ENUM\n \n   public static final dev.langchain4j.model.openai.OpenAiModerationModelName TEXT_MODERATION_LATEST;\n     descriptor: Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n@@ -85,30 +87,30 @@\n     flags: (0x101a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC\n \n   public static dev.langchain4j.model.openai.OpenAiModerationModelName[] values();\n     descriptor: ()[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=1, locals=0, args_size=0\n-         0: getstatic     #1                  // Field $VALUES:[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n-         3: invokevirtual #2                  // Method \"[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\".clone:()Ljava/lang/Object;\n-         6: checkcast     #3                  // class \"[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\"\n+         0: getstatic     #10                 // Field $VALUES:[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+         3: invokevirtual #14                 // Method \"[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\".clone:()Ljava/lang/Object;\n+         6: checkcast     #15                 // class \"[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\"\n          9: areturn\n       LineNumberTable:\n         line 3: 0\n \n   public static dev.langchain4j.model.openai.OpenAiModerationModelName valueOf(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n     flags: (0x0009) ACC_PUBLIC, ACC_STATIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: ldc           #4                  // class dev/langchain4j/model/openai/OpenAiModerationModelName\n+         0: ldc           #1                  // class dev/langchain4j/model/openai/OpenAiModerationModelName\n          2: aload_0\n-         3: invokestatic  #5                  // Method java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n-         6: checkcast     #4                  // class dev/langchain4j/model/openai/OpenAiModerationModelName\n+         3: invokestatic  #19                 // Method java/lang/Enum.valueOf:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;\n+         6: checkcast     #1                  // class dev/langchain4j/model/openai/OpenAiModerationModelName\n          9: areturn\n       LineNumberTable:\n         line 3: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      10     0  name   Ljava/lang/String;\n \n@@ -116,74 +118,84 @@\n     descriptor: (Ljava/lang/String;ILjava/lang/String;)V\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=3, locals=4, args_size=4\n          0: aload_0\n          1: aload_1\n          2: iload_2\n-         3: invokespecial #6                  // Method java/lang/Enum.\"<init>\":(Ljava/lang/String;I)V\n+         3: invokespecial #25                 // Method java/lang/Enum.\"<init>\":(Ljava/lang/String;I)V\n          6: aload_0\n          7: aload_3\n-         8: putfield      #7                  // Field stringValue:Ljava/lang/String;\n+         8: putfield      #29                 // Field stringValue:Ljava/lang/String;\n         11: return\n       LineNumberTable:\n         line 10: 0\n         line 11: 6\n         line 12: 11\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      12     0  this   Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n             0      12     3 stringValue   Ljava/lang/String;\n-    Signature: #35                          // (Ljava/lang/String;)V\n+    Signature: #54                          // (Ljava/lang/String;)V\n \n   public java.lang.String toString();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #7                  // Field stringValue:Ljava/lang/String;\n+         1: getfield      #29                 // Field stringValue:Ljava/lang/String;\n          4: areturn\n       LineNumberTable:\n         line 16: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n \n+  private static dev.langchain4j.model.openai.OpenAiModerationModelName[] $values();\n+    descriptor: ()[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n+    Code:\n+      stack=4, locals=0, args_size=0\n+         0: iconst_2\n+         1: anewarray     #1                  // class dev/langchain4j/model/openai/OpenAiModerationModelName\n+         4: dup\n+         5: iconst_0\n+         6: getstatic     #3                  // Field TEXT_MODERATION_STABLE:Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+         9: aastore\n+        10: dup\n+        11: iconst_1\n+        12: getstatic     #7                  // Field TEXT_MODERATION_LATEST:Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+        15: aastore\n+        16: areturn\n+      LineNumberTable:\n+        line 3: 0\n+\n   static {};\n     descriptor: ()V\n     flags: (0x0008) ACC_STATIC\n     Code:\n       stack=5, locals=0, args_size=0\n-         0: new           #4                  // class dev/langchain4j/model/openai/OpenAiModerationModelName\n+         0: new           #1                  // class dev/langchain4j/model/openai/OpenAiModerationModelName\n          3: dup\n-         4: ldc           #8                  // String TEXT_MODERATION_STABLE\n+         4: ldc           #33                 // String TEXT_MODERATION_STABLE\n          6: iconst_0\n-         7: ldc           #9                  // String text-moderation-stable\n-         9: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-        12: putstatic     #11                 // Field TEXT_MODERATION_STABLE:Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n-        15: new           #4                  // class dev/langchain4j/model/openai/OpenAiModerationModelName\n+         7: ldc           #34                 // String text-moderation-stable\n+         9: invokespecial #36                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+        12: putstatic     #3                  // Field TEXT_MODERATION_STABLE:Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+        15: new           #1                  // class dev/langchain4j/model/openai/OpenAiModerationModelName\n         18: dup\n-        19: ldc           #12                 // String TEXT_MODERATION_LATEST\n+        19: ldc           #39                 // String TEXT_MODERATION_LATEST\n         21: iconst_1\n-        22: ldc           #13                 // String text-moderation-latest\n-        24: invokespecial #10                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n-        27: putstatic     #14                 // Field TEXT_MODERATION_LATEST:Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n-        30: iconst_2\n-        31: anewarray     #4                  // class dev/langchain4j/model/openai/OpenAiModerationModelName\n-        34: dup\n-        35: iconst_0\n-        36: getstatic     #11                 // Field TEXT_MODERATION_STABLE:Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n-        39: aastore\n-        40: dup\n-        41: iconst_1\n-        42: getstatic     #14                 // Field TEXT_MODERATION_LATEST:Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n-        45: aastore\n-        46: putstatic     #1                  // Field $VALUES:[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n-        49: return\n+        22: ldc           #40                 // String text-moderation-latest\n+        24: invokespecial #36                 // Method \"<init>\":(Ljava/lang/String;ILjava/lang/String;)V\n+        27: putstatic     #7                  // Field TEXT_MODERATION_LATEST:Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+        30: invokestatic  #42                 // Method $values:()[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+        33: putstatic     #10                 // Field $VALUES:[Ldev/langchain4j/model/openai/OpenAiModerationModelName;\n+        36: return\n       LineNumberTable:\n         line 5: 0\n         line 6: 15\n         line 3: 30\n }\n-Signature: #40                          // Ljava/lang/Enum<Ldev/langchain4j/model/openai/OpenAiModerationModelName;>;\n+Signature: #59                          // Ljava/lang/Enum<Ldev/langchain4j/model/openai/OpenAiModerationModelName;>;\n SourceFile: \"OpenAiModerationModelName.java\"\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.class", "source2": "dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,181 +1,181 @@\n-  SHA-256 checksum 04ecb2c5c9e13c602c8728773f94623ecede3bdaeab43a724aeed4e42cb7b4b1\n+  SHA-256 checksum 6b83230255376d1f7a80ef45626d05e7035108eff5b274e8c9714dd3c65e029e\n   Compiled from \"OpenAiStreamingChatModel.java\"\n public class dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #49                         // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder\n-  super_class: #50                        // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 19, methods: 23, attributes: 2\n Constant pool:\n-    #1 = Methodref          #50.#111      // java/lang/Object.\"<init>\":()V\n-    #2 = Fieldref           #49.#112      // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.modelName:Ljava/lang/String;\n-    #3 = Methodref          #113.#114     // dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n-    #4 = Fieldref           #49.#115      // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.baseUrl:Ljava/lang/String;\n-    #5 = Fieldref           #49.#116      // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.apiKey:Ljava/lang/String;\n-    #6 = Fieldref           #49.#117      // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.organizationId:Ljava/lang/String;\n-    #7 = Fieldref           #49.#118      // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.temperature:Ljava/lang/Double;\n-    #8 = Fieldref           #49.#119      // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.topP:Ljava/lang/Double;\n-    #9 = Fieldref           #49.#120      // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.stop:Ljava/util/List;\n-   #10 = Fieldref           #49.#121      // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.maxTokens:Ljava/lang/Integer;\n-   #11 = Fieldref           #49.#122      // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.presencePenalty:Ljava/lang/Double;\n-   #12 = Fieldref           #49.#123      // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.frequencyPenalty:Ljava/lang/Double;\n-   #13 = Fieldref           #49.#124      // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.logitBias:Ljava/util/Map;\n-   #14 = Fieldref           #49.#125      // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.responseFormat:Ljava/lang/String;\n-   #15 = Fieldref           #49.#126      // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.seed:Ljava/lang/Integer;\n-   #16 = Fieldref           #49.#127      // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.user:Ljava/lang/String;\n-   #17 = Fieldref           #49.#128      // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.timeout:Ljava/time/Duration;\n-   #18 = Fieldref           #49.#129      // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.proxy:Ljava/net/Proxy;\n-   #19 = Fieldref           #49.#130      // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.logRequests:Ljava/lang/Boolean;\n-   #20 = Fieldref           #49.#131      // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.logResponses:Ljava/lang/Boolean;\n-   #21 = Fieldref           #49.#132      // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.tokenizer:Ldev/langchain4j/model/Tokenizer;\n-   #22 = Class              #133          // dev/langchain4j/model/openai/OpenAiStreamingChatModel\n-   #23 = Methodref          #22.#134      // dev/langchain4j/model/openai/OpenAiStreamingChatModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n-   #24 = Class              #135          // java/lang/StringBuilder\n-   #25 = Methodref          #24.#111      // java/lang/StringBuilder.\"<init>\":()V\n-   #26 = String             #136          // OpenAiStreamingChatModel.OpenAiStreamingChatModelBuilder(baseUrl=\n-   #27 = Methodref          #24.#137      // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #28 = String             #138          // , apiKey=\n-   #29 = String             #139          // , organizationId=\n-   #30 = String             #140          // , modelName=\n-   #31 = String             #141          // , temperature=\n-   #32 = Methodref          #24.#142      // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #33 = String             #143          // , topP=\n-   #34 = String             #144          // , stop=\n-   #35 = String             #145          // , maxTokens=\n-   #36 = String             #146          // , presencePenalty=\n-   #37 = String             #147          // , frequencyPenalty=\n-   #38 = String             #148          // , logitBias=\n-   #39 = String             #149          // , responseFormat=\n-   #40 = String             #150          // , seed=\n-   #41 = String             #151          // , user=\n-   #42 = String             #152          // , timeout=\n-   #43 = String             #153          // , proxy=\n-   #44 = String             #154          // , logRequests=\n-   #45 = String             #155          // , logResponses=\n-   #46 = String             #156          // , tokenizer=\n-   #47 = String             #157          // )\n-   #48 = Methodref          #24.#114      // java/lang/StringBuilder.toString:()Ljava/lang/String;\n-   #49 = Class              #158          // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder\n-   #50 = Class              #159          // java/lang/Object\n-   #51 = Utf8               baseUrl\n-   #52 = Utf8               Ljava/lang/String;\n-   #53 = Utf8               apiKey\n-   #54 = Utf8               organizationId\n-   #55 = Utf8               modelName\n-   #56 = Utf8               temperature\n-   #57 = Utf8               Ljava/lang/Double;\n-   #58 = Utf8               topP\n-   #59 = Utf8               stop\n-   #60 = Utf8               Ljava/util/List;\n-   #61 = Utf8               Signature\n-   #62 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n-   #63 = Utf8               maxTokens\n-   #64 = Utf8               Ljava/lang/Integer;\n-   #65 = Utf8               presencePenalty\n-   #66 = Utf8               frequencyPenalty\n-   #67 = Utf8               logitBias\n-   #68 = Utf8               Ljava/util/Map;\n-   #69 = Utf8               Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;\n-   #70 = Utf8               responseFormat\n-   #71 = Utf8               seed\n-   #72 = Utf8               user\n-   #73 = Utf8               timeout\n-   #74 = Utf8               Ljava/time/Duration;\n-   #75 = Utf8               proxy\n-   #76 = Utf8               Ljava/net/Proxy;\n-   #77 = Utf8               logRequests\n-   #78 = Utf8               Ljava/lang/Boolean;\n-   #79 = Utf8               logResponses\n-   #80 = Utf8               tokenizer\n-   #81 = Utf8               Ldev/langchain4j/model/Tokenizer;\n-   #82 = Utf8               <init>\n-   #83 = Utf8               ()V\n-   #84 = Utf8               Code\n-   #85 = Utf8               LineNumberTable\n-   #86 = Utf8               LocalVariableTable\n-   #87 = Utf8               this\n-   #88 = Utf8               OpenAiStreamingChatModelBuilder\n-   #89 = Utf8               InnerClasses\n-   #90 = Utf8               Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n-   #91 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n-   #92 = Utf8               (Ldev/langchain4j/model/openai/OpenAiChatModelName;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n-   #93 = Utf8               Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #94 = Utf8               (Ljava/lang/Double;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n-   #95 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n-   #96 = Utf8               LocalVariableTypeTable\n-   #97 = Utf8               (Ljava/util/List<Ljava/lang/String;>;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n-   #98 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n-   #99 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n-  #100 = Utf8               (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n-  #101 = Utf8               (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n-  #102 = Utf8               (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n-  #103 = Utf8               (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n-  #104 = Utf8               (Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n-  #105 = Utf8               build\n-  #106 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiStreamingChatModel;\n-  #107 = Utf8               toString\n-  #108 = Utf8               ()Ljava/lang/String;\n-  #109 = Utf8               SourceFile\n-  #110 = Utf8               OpenAiStreamingChatModel.java\n-  #111 = NameAndType        #82:#83       // \"<init>\":()V\n-  #112 = NameAndType        #55:#52       // modelName:Ljava/lang/String;\n-  #113 = Class              #160          // dev/langchain4j/model/openai/OpenAiChatModelName\n-  #114 = NameAndType        #107:#108     // toString:()Ljava/lang/String;\n-  #115 = NameAndType        #51:#52       // baseUrl:Ljava/lang/String;\n-  #116 = NameAndType        #53:#52       // apiKey:Ljava/lang/String;\n-  #117 = NameAndType        #54:#52       // organizationId:Ljava/lang/String;\n-  #118 = NameAndType        #56:#57       // temperature:Ljava/lang/Double;\n-  #119 = NameAndType        #58:#57       // topP:Ljava/lang/Double;\n-  #120 = NameAndType        #59:#60       // stop:Ljava/util/List;\n-  #121 = NameAndType        #63:#64       // maxTokens:Ljava/lang/Integer;\n-  #122 = NameAndType        #65:#57       // presencePenalty:Ljava/lang/Double;\n-  #123 = NameAndType        #66:#57       // frequencyPenalty:Ljava/lang/Double;\n-  #124 = NameAndType        #67:#68       // logitBias:Ljava/util/Map;\n-  #125 = NameAndType        #70:#52       // responseFormat:Ljava/lang/String;\n-  #126 = NameAndType        #71:#64       // seed:Ljava/lang/Integer;\n-  #127 = NameAndType        #72:#52       // user:Ljava/lang/String;\n-  #128 = NameAndType        #73:#74       // timeout:Ljava/time/Duration;\n-  #129 = NameAndType        #75:#76       // proxy:Ljava/net/Proxy;\n-  #130 = NameAndType        #77:#78       // logRequests:Ljava/lang/Boolean;\n-  #131 = NameAndType        #79:#78       // logResponses:Ljava/lang/Boolean;\n-  #132 = NameAndType        #80:#81       // tokenizer:Ldev/langchain4j/model/Tokenizer;\n-  #133 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingChatModel\n-  #134 = NameAndType        #82:#161      // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n-  #135 = Utf8               java/lang/StringBuilder\n-  #136 = Utf8               OpenAiStreamingChatModel.OpenAiStreamingChatModelBuilder(baseUrl=\n-  #137 = NameAndType        #162:#163     // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #138 = Utf8               , apiKey=\n-  #139 = Utf8               , organizationId=\n-  #140 = Utf8               , modelName=\n-  #141 = Utf8               , temperature=\n-  #142 = NameAndType        #162:#164     // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-  #143 = Utf8               , topP=\n-  #144 = Utf8               , stop=\n-  #145 = Utf8               , maxTokens=\n-  #146 = Utf8               , presencePenalty=\n-  #147 = Utf8               , frequencyPenalty=\n-  #148 = Utf8               , logitBias=\n-  #149 = Utf8               , responseFormat=\n-  #150 = Utf8               , seed=\n-  #151 = Utf8               , user=\n-  #152 = Utf8               , timeout=\n-  #153 = Utf8               , proxy=\n-  #154 = Utf8               , logRequests=\n-  #155 = Utf8               , logResponses=\n-  #156 = Utf8               , tokenizer=\n-  #157 = Utf8               )\n-  #158 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder\n-  #159 = Utf8               java/lang/Object\n-  #160 = Utf8               dev/langchain4j/model/openai/OpenAiChatModelName\n-  #161 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n-  #162 = Utf8               append\n-  #163 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #164 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Fieldref           #8.#9         // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.modelName:Ljava/lang/String;\n+    #8 = Class              #10           // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder\n+    #9 = NameAndType        #11:#12       // modelName:Ljava/lang/String;\n+   #10 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder\n+   #11 = Utf8               modelName\n+   #12 = Utf8               Ljava/lang/String;\n+   #13 = Methodref          #14.#15       // dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n+   #14 = Class              #16           // dev/langchain4j/model/openai/OpenAiChatModelName\n+   #15 = NameAndType        #17:#18       // toString:()Ljava/lang/String;\n+   #16 = Utf8               dev/langchain4j/model/openai/OpenAiChatModelName\n+   #17 = Utf8               toString\n+   #18 = Utf8               ()Ljava/lang/String;\n+   #19 = Fieldref           #8.#20        // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.baseUrl:Ljava/lang/String;\n+   #20 = NameAndType        #21:#12       // baseUrl:Ljava/lang/String;\n+   #21 = Utf8               baseUrl\n+   #22 = Fieldref           #8.#23        // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.apiKey:Ljava/lang/String;\n+   #23 = NameAndType        #24:#12       // apiKey:Ljava/lang/String;\n+   #24 = Utf8               apiKey\n+   #25 = Fieldref           #8.#26        // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.organizationId:Ljava/lang/String;\n+   #26 = NameAndType        #27:#12       // organizationId:Ljava/lang/String;\n+   #27 = Utf8               organizationId\n+   #28 = Fieldref           #8.#29        // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.temperature:Ljava/lang/Double;\n+   #29 = NameAndType        #30:#31       // temperature:Ljava/lang/Double;\n+   #30 = Utf8               temperature\n+   #31 = Utf8               Ljava/lang/Double;\n+   #32 = Fieldref           #8.#33        // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.topP:Ljava/lang/Double;\n+   #33 = NameAndType        #34:#31       // topP:Ljava/lang/Double;\n+   #34 = Utf8               topP\n+   #35 = Fieldref           #8.#36        // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.stop:Ljava/util/List;\n+   #36 = NameAndType        #37:#38       // stop:Ljava/util/List;\n+   #37 = Utf8               stop\n+   #38 = Utf8               Ljava/util/List;\n+   #39 = Fieldref           #8.#40        // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.maxTokens:Ljava/lang/Integer;\n+   #40 = NameAndType        #41:#42       // maxTokens:Ljava/lang/Integer;\n+   #41 = Utf8               maxTokens\n+   #42 = Utf8               Ljava/lang/Integer;\n+   #43 = Fieldref           #8.#44        // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.presencePenalty:Ljava/lang/Double;\n+   #44 = NameAndType        #45:#31       // presencePenalty:Ljava/lang/Double;\n+   #45 = Utf8               presencePenalty\n+   #46 = Fieldref           #8.#47        // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.frequencyPenalty:Ljava/lang/Double;\n+   #47 = NameAndType        #48:#31       // frequencyPenalty:Ljava/lang/Double;\n+   #48 = Utf8               frequencyPenalty\n+   #49 = Fieldref           #8.#50        // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.logitBias:Ljava/util/Map;\n+   #50 = NameAndType        #51:#52       // logitBias:Ljava/util/Map;\n+   #51 = Utf8               logitBias\n+   #52 = Utf8               Ljava/util/Map;\n+   #53 = Fieldref           #8.#54        // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.responseFormat:Ljava/lang/String;\n+   #54 = NameAndType        #55:#12       // responseFormat:Ljava/lang/String;\n+   #55 = Utf8               responseFormat\n+   #56 = Fieldref           #8.#57        // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.seed:Ljava/lang/Integer;\n+   #57 = NameAndType        #58:#42       // seed:Ljava/lang/Integer;\n+   #58 = Utf8               seed\n+   #59 = Fieldref           #8.#60        // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.user:Ljava/lang/String;\n+   #60 = NameAndType        #61:#12       // user:Ljava/lang/String;\n+   #61 = Utf8               user\n+   #62 = Fieldref           #8.#63        // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.timeout:Ljava/time/Duration;\n+   #63 = NameAndType        #64:#65       // timeout:Ljava/time/Duration;\n+   #64 = Utf8               timeout\n+   #65 = Utf8               Ljava/time/Duration;\n+   #66 = Fieldref           #8.#67        // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.proxy:Ljava/net/Proxy;\n+   #67 = NameAndType        #68:#69       // proxy:Ljava/net/Proxy;\n+   #68 = Utf8               proxy\n+   #69 = Utf8               Ljava/net/Proxy;\n+   #70 = Fieldref           #8.#71        // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.logRequests:Ljava/lang/Boolean;\n+   #71 = NameAndType        #72:#73       // logRequests:Ljava/lang/Boolean;\n+   #72 = Utf8               logRequests\n+   #73 = Utf8               Ljava/lang/Boolean;\n+   #74 = Fieldref           #8.#75        // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.logResponses:Ljava/lang/Boolean;\n+   #75 = NameAndType        #76:#73       // logResponses:Ljava/lang/Boolean;\n+   #76 = Utf8               logResponses\n+   #77 = Fieldref           #8.#78        // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder.tokenizer:Ldev/langchain4j/model/Tokenizer;\n+   #78 = NameAndType        #79:#80       // tokenizer:Ldev/langchain4j/model/Tokenizer;\n+   #79 = Utf8               tokenizer\n+   #80 = Utf8               Ldev/langchain4j/model/Tokenizer;\n+   #81 = Class              #82           // dev/langchain4j/model/openai/OpenAiStreamingChatModel\n+   #82 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingChatModel\n+   #83 = Methodref          #81.#84       // dev/langchain4j/model/openai/OpenAiStreamingChatModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+   #84 = NameAndType        #5:#85        // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+   #85 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+   #86 = Class              #87           // java/lang/StringBuilder\n+   #87 = Utf8               java/lang/StringBuilder\n+   #88 = Methodref          #86.#3        // java/lang/StringBuilder.\"<init>\":()V\n+   #89 = String             #90           // OpenAiStreamingChatModel.OpenAiStreamingChatModelBuilder(baseUrl=\n+   #90 = Utf8               OpenAiStreamingChatModel.OpenAiStreamingChatModelBuilder(baseUrl=\n+   #91 = Methodref          #86.#92       // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #92 = NameAndType        #93:#94       // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #93 = Utf8               append\n+   #94 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #95 = String             #96           // , apiKey=\n+   #96 = Utf8               , apiKey=\n+   #97 = String             #98           // , organizationId=\n+   #98 = Utf8               , organizationId=\n+   #99 = String             #100          // , modelName=\n+  #100 = Utf8               , modelName=\n+  #101 = String             #102          // , temperature=\n+  #102 = Utf8               , temperature=\n+  #103 = Methodref          #86.#104      // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+  #104 = NameAndType        #93:#105      // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+  #105 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+  #106 = String             #107          // , topP=\n+  #107 = Utf8               , topP=\n+  #108 = String             #109          // , stop=\n+  #109 = Utf8               , stop=\n+  #110 = String             #111          // , maxTokens=\n+  #111 = Utf8               , maxTokens=\n+  #112 = String             #113          // , presencePenalty=\n+  #113 = Utf8               , presencePenalty=\n+  #114 = String             #115          // , frequencyPenalty=\n+  #115 = Utf8               , frequencyPenalty=\n+  #116 = String             #117          // , logitBias=\n+  #117 = Utf8               , logitBias=\n+  #118 = String             #119          // , responseFormat=\n+  #119 = Utf8               , responseFormat=\n+  #120 = String             #121          // , seed=\n+  #121 = Utf8               , seed=\n+  #122 = String             #123          // , user=\n+  #123 = Utf8               , user=\n+  #124 = String             #125          // , timeout=\n+  #125 = Utf8               , timeout=\n+  #126 = String             #127          // , proxy=\n+  #127 = Utf8               , proxy=\n+  #128 = String             #129          // , logRequests=\n+  #129 = Utf8               , logRequests=\n+  #130 = String             #131          // , logResponses=\n+  #131 = Utf8               , logResponses=\n+  #132 = String             #133          // , tokenizer=\n+  #133 = Utf8               , tokenizer=\n+  #134 = String             #135          // )\n+  #135 = Utf8               )\n+  #136 = Methodref          #86.#15       // java/lang/StringBuilder.toString:()Ljava/lang/String;\n+  #137 = Utf8               Signature\n+  #138 = Utf8               Ljava/util/List<Ljava/lang/String;>;\n+  #139 = Utf8               Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;\n+  #140 = Utf8               Code\n+  #141 = Utf8               LineNumberTable\n+  #142 = Utf8               LocalVariableTable\n+  #143 = Utf8               this\n+  #144 = Utf8               Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n+  #145 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n+  #146 = Utf8               (Ldev/langchain4j/model/openai/OpenAiChatModelName;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n+  #147 = Utf8               Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+  #148 = Utf8               (Ljava/lang/Double;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n+  #149 = Utf8               (Ljava/util/List;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n+  #150 = Utf8               LocalVariableTypeTable\n+  #151 = Utf8               (Ljava/util/List<Ljava/lang/String;>;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n+  #152 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n+  #153 = Utf8               (Ljava/util/Map;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n+  #154 = Utf8               (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n+  #155 = Utf8               (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n+  #156 = Utf8               (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n+  #157 = Utf8               (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n+  #158 = Utf8               (Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n+  #159 = Utf8               build\n+  #160 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiStreamingChatModel;\n+  #161 = Utf8               SourceFile\n+  #162 = Utf8               OpenAiStreamingChatModel.java\n+  #163 = Utf8               InnerClasses\n+  #164 = Utf8               OpenAiStreamingChatModelBuilder\n {\n   private java.lang.String baseUrl;\n     descriptor: Ljava/lang/String;\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.lang.String apiKey;\n     descriptor: Ljava/lang/String;\n@@ -196,15 +196,15 @@\n   private java.lang.Double topP;\n     descriptor: Ljava/lang/Double;\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.util.List<java.lang.String> stop;\n     descriptor: Ljava/util/List;\n     flags: (0x0002) ACC_PRIVATE\n-    Signature: #62                          // Ljava/util/List<Ljava/lang/String;>;\n+    Signature: #138                         // Ljava/util/List<Ljava/lang/String;>;\n \n   private java.lang.Integer maxTokens;\n     descriptor: Ljava/lang/Integer;\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.lang.Double presencePenalty;\n     descriptor: Ljava/lang/Double;\n@@ -213,15 +213,15 @@\n   private java.lang.Double frequencyPenalty;\n     descriptor: Ljava/lang/Double;\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.util.Map<java.lang.String, java.lang.Integer> logitBias;\n     descriptor: Ljava/util/Map;\n     flags: (0x0002) ACC_PRIVATE\n-    Signature: #69                          // Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;\n+    Signature: #139                         // Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;\n \n   private java.lang.String responseFormat;\n     descriptor: Ljava/lang/String;\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.lang.Integer seed;\n     descriptor: Ljava/lang/Integer;\n@@ -269,15 +269,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder modelName(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #2                  // Field modelName:Ljava/lang/String;\n+         2: putfield      #7                  // Field modelName:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 202: 0\n         line 203: 5\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -287,16 +287,16 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder modelName(dev.langchain4j.model.openai.OpenAiChatModelName);\n     descriptor: (Ldev/langchain4j/model/openai/OpenAiChatModelName;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokevirtual #3                  // Method dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n-         5: putfield      #2                  // Field modelName:Ljava/lang/String;\n+         2: invokevirtual #13                 // Method dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n+         5: putfield      #7                  // Field modelName:Ljava/lang/String;\n          8: aload_0\n          9: areturn\n       LineNumberTable:\n         line 207: 0\n         line 208: 8\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -306,15 +306,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder baseUrl(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #4                  // Field baseUrl:Ljava/lang/String;\n+         2: putfield      #19                 // Field baseUrl:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 53: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n@@ -323,15 +323,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder apiKey(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #5                  // Field apiKey:Ljava/lang/String;\n+         2: putfield      #22                 // Field apiKey:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 53: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n@@ -340,15 +340,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder organizationId(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #6                  // Field organizationId:Ljava/lang/String;\n+         2: putfield      #25                 // Field organizationId:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 53: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n@@ -357,15 +357,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder temperature(java.lang.Double);\n     descriptor: (Ljava/lang/Double;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #7                  // Field temperature:Ljava/lang/Double;\n+         2: putfield      #28                 // Field temperature:Ljava/lang/Double;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 53: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n@@ -374,15 +374,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder topP(java.lang.Double);\n     descriptor: (Ljava/lang/Double;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #8                  // Field topP:Ljava/lang/Double;\n+         2: putfield      #32                 // Field topP:Ljava/lang/Double;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 53: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n@@ -391,36 +391,36 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder stop(java.util.List<java.lang.String>);\n     descriptor: (Ljava/util/List;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #9                  // Field stop:Ljava/util/List;\n+         2: putfield      #35                 // Field stop:Ljava/util/List;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 53: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n             0       7     1  stop   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0       7     1  stop   Ljava/util/List<Ljava/lang/String;>;\n-    Signature: #97                          // (Ljava/util/List<Ljava/lang/String;>;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n+    Signature: #151                         // (Ljava/util/List<Ljava/lang/String;>;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n \n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder maxTokens(java.lang.Integer);\n     descriptor: (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #10                 // Field maxTokens:Ljava/lang/Integer;\n+         2: putfield      #39                 // Field maxTokens:Ljava/lang/Integer;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 53: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n@@ -429,15 +429,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder presencePenalty(java.lang.Double);\n     descriptor: (Ljava/lang/Double;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #11                 // Field presencePenalty:Ljava/lang/Double;\n+         2: putfield      #43                 // Field presencePenalty:Ljava/lang/Double;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 53: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n@@ -446,15 +446,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder frequencyPenalty(java.lang.Double);\n     descriptor: (Ljava/lang/Double;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #12                 // Field frequencyPenalty:Ljava/lang/Double;\n+         2: putfield      #46                 // Field frequencyPenalty:Ljava/lang/Double;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 53: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n@@ -463,36 +463,36 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder logitBias(java.util.Map<java.lang.String, java.lang.Integer>);\n     descriptor: (Ljava/util/Map;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #13                 // Field logitBias:Ljava/util/Map;\n+         2: putfield      #49                 // Field logitBias:Ljava/util/Map;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 53: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n             0       7     1 logitBias   Ljava/util/Map;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0       7     1 logitBias   Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;\n-    Signature: #100                         // (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n+    Signature: #154                         // (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n \n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder responseFormat(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #14                 // Field responseFormat:Ljava/lang/String;\n+         2: putfield      #53                 // Field responseFormat:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 53: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n@@ -501,15 +501,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder seed(java.lang.Integer);\n     descriptor: (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #15                 // Field seed:Ljava/lang/Integer;\n+         2: putfield      #56                 // Field seed:Ljava/lang/Integer;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 53: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n@@ -518,15 +518,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder user(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #16                 // Field user:Ljava/lang/String;\n+         2: putfield      #59                 // Field user:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 53: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n@@ -535,15 +535,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder timeout(java.time.Duration);\n     descriptor: (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #17                 // Field timeout:Ljava/time/Duration;\n+         2: putfield      #62                 // Field timeout:Ljava/time/Duration;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 53: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n@@ -552,15 +552,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder proxy(java.net.Proxy);\n     descriptor: (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #18                 // Field proxy:Ljava/net/Proxy;\n+         2: putfield      #66                 // Field proxy:Ljava/net/Proxy;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 53: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n@@ -569,15 +569,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder logRequests(java.lang.Boolean);\n     descriptor: (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #19                 // Field logRequests:Ljava/lang/Boolean;\n+         2: putfield      #70                 // Field logRequests:Ljava/lang/Boolean;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 53: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n@@ -586,15 +586,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder logResponses(java.lang.Boolean);\n     descriptor: (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #20                 // Field logResponses:Ljava/lang/Boolean;\n+         2: putfield      #74                 // Field logResponses:Ljava/lang/Boolean;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 53: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n@@ -603,186 +603,186 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder tokenizer(dev.langchain4j.model.Tokenizer);\n     descriptor: (Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #21                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+         2: putfield      #77                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 53: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n             0       7     1 tokenizer   Ldev/langchain4j/model/Tokenizer;\n \n   public dev.langchain4j.model.openai.OpenAiStreamingChatModel build();\n     descriptor: ()Ldev/langchain4j/model/openai/OpenAiStreamingChatModel;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=21, locals=1, args_size=1\n-         0: new           #22                 // class dev/langchain4j/model/openai/OpenAiStreamingChatModel\n+         0: new           #81                 // class dev/langchain4j/model/openai/OpenAiStreamingChatModel\n          3: dup\n          4: aload_0\n-         5: getfield      #4                  // Field baseUrl:Ljava/lang/String;\n+         5: getfield      #19                 // Field baseUrl:Ljava/lang/String;\n          8: aload_0\n-         9: getfield      #5                  // Field apiKey:Ljava/lang/String;\n+         9: getfield      #22                 // Field apiKey:Ljava/lang/String;\n         12: aload_0\n-        13: getfield      #6                  // Field organizationId:Ljava/lang/String;\n+        13: getfield      #25                 // Field organizationId:Ljava/lang/String;\n         16: aload_0\n-        17: getfield      #2                  // Field modelName:Ljava/lang/String;\n+        17: getfield      #7                  // Field modelName:Ljava/lang/String;\n         20: aload_0\n-        21: getfield      #7                  // Field temperature:Ljava/lang/Double;\n+        21: getfield      #28                 // Field temperature:Ljava/lang/Double;\n         24: aload_0\n-        25: getfield      #8                  // Field topP:Ljava/lang/Double;\n+        25: getfield      #32                 // Field topP:Ljava/lang/Double;\n         28: aload_0\n-        29: getfield      #9                  // Field stop:Ljava/util/List;\n+        29: getfield      #35                 // Field stop:Ljava/util/List;\n         32: aload_0\n-        33: getfield      #10                 // Field maxTokens:Ljava/lang/Integer;\n+        33: getfield      #39                 // Field maxTokens:Ljava/lang/Integer;\n         36: aload_0\n-        37: getfield      #11                 // Field presencePenalty:Ljava/lang/Double;\n+        37: getfield      #43                 // Field presencePenalty:Ljava/lang/Double;\n         40: aload_0\n-        41: getfield      #12                 // Field frequencyPenalty:Ljava/lang/Double;\n+        41: getfield      #46                 // Field frequencyPenalty:Ljava/lang/Double;\n         44: aload_0\n-        45: getfield      #13                 // Field logitBias:Ljava/util/Map;\n+        45: getfield      #49                 // Field logitBias:Ljava/util/Map;\n         48: aload_0\n-        49: getfield      #14                 // Field responseFormat:Ljava/lang/String;\n+        49: getfield      #53                 // Field responseFormat:Ljava/lang/String;\n         52: aload_0\n-        53: getfield      #15                 // Field seed:Ljava/lang/Integer;\n+        53: getfield      #56                 // Field seed:Ljava/lang/Integer;\n         56: aload_0\n-        57: getfield      #16                 // Field user:Ljava/lang/String;\n+        57: getfield      #59                 // Field user:Ljava/lang/String;\n         60: aload_0\n-        61: getfield      #17                 // Field timeout:Ljava/time/Duration;\n+        61: getfield      #62                 // Field timeout:Ljava/time/Duration;\n         64: aload_0\n-        65: getfield      #18                 // Field proxy:Ljava/net/Proxy;\n+        65: getfield      #66                 // Field proxy:Ljava/net/Proxy;\n         68: aload_0\n-        69: getfield      #19                 // Field logRequests:Ljava/lang/Boolean;\n+        69: getfield      #70                 // Field logRequests:Ljava/lang/Boolean;\n         72: aload_0\n-        73: getfield      #20                 // Field logResponses:Ljava/lang/Boolean;\n+        73: getfield      #74                 // Field logResponses:Ljava/lang/Boolean;\n         76: aload_0\n-        77: getfield      #21                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n-        80: invokespecial #23                 // Method dev/langchain4j/model/openai/OpenAiStreamingChatModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+        77: getfield      #77                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+        80: invokespecial #83                 // Method dev/langchain4j/model/openai/OpenAiStreamingChatModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/List;Ljava/lang/Integer;Ljava/lang/Double;Ljava/lang/Double;Ljava/util/Map;Ljava/lang/String;Ljava/lang/Integer;Ljava/lang/String;Ljava/time/Duration;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n         83: areturn\n       LineNumberTable:\n         line 53: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      84     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n \n   public java.lang.String toString();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: new           #24                 // class java/lang/StringBuilder\n+         0: new           #86                 // class java/lang/StringBuilder\n          3: dup\n-         4: invokespecial #25                 // Method java/lang/StringBuilder.\"<init>\":()V\n-         7: ldc           #26                 // String OpenAiStreamingChatModel.OpenAiStreamingChatModelBuilder(baseUrl=\n-         9: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+         4: invokespecial #88                 // Method java/lang/StringBuilder.\"<init>\":()V\n+         7: ldc           #89                 // String OpenAiStreamingChatModel.OpenAiStreamingChatModelBuilder(baseUrl=\n+         9: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         12: aload_0\n-        13: getfield      #4                  // Field baseUrl:Ljava/lang/String;\n-        16: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        19: ldc           #28                 // String , apiKey=\n-        21: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        13: getfield      #19                 // Field baseUrl:Ljava/lang/String;\n+        16: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        19: ldc           #95                 // String , apiKey=\n+        21: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         24: aload_0\n-        25: getfield      #5                  // Field apiKey:Ljava/lang/String;\n-        28: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        31: ldc           #29                 // String , organizationId=\n-        33: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        25: getfield      #22                 // Field apiKey:Ljava/lang/String;\n+        28: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        31: ldc           #97                 // String , organizationId=\n+        33: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         36: aload_0\n-        37: getfield      #6                  // Field organizationId:Ljava/lang/String;\n-        40: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        43: ldc           #30                 // String , modelName=\n-        45: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        37: getfield      #25                 // Field organizationId:Ljava/lang/String;\n+        40: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        43: ldc           #99                 // String , modelName=\n+        45: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         48: aload_0\n-        49: getfield      #2                  // Field modelName:Ljava/lang/String;\n-        52: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        55: ldc           #31                 // String , temperature=\n-        57: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        49: getfield      #7                  // Field modelName:Ljava/lang/String;\n+        52: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        55: ldc           #101                // String , temperature=\n+        57: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         60: aload_0\n-        61: getfield      #7                  // Field temperature:Ljava/lang/Double;\n-        64: invokevirtual #32                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        67: ldc           #33                 // String , topP=\n-        69: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        61: getfield      #28                 // Field temperature:Ljava/lang/Double;\n+        64: invokevirtual #103                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        67: ldc           #106                // String , topP=\n+        69: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         72: aload_0\n-        73: getfield      #8                  // Field topP:Ljava/lang/Double;\n-        76: invokevirtual #32                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        79: ldc           #34                 // String , stop=\n-        81: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        73: getfield      #32                 // Field topP:Ljava/lang/Double;\n+        76: invokevirtual #103                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        79: ldc           #108                // String , stop=\n+        81: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         84: aload_0\n-        85: getfield      #9                  // Field stop:Ljava/util/List;\n-        88: invokevirtual #32                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        91: ldc           #35                 // String , maxTokens=\n-        93: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        85: getfield      #35                 // Field stop:Ljava/util/List;\n+        88: invokevirtual #103                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        91: ldc           #110                // String , maxTokens=\n+        93: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         96: aload_0\n-        97: getfield      #10                 // Field maxTokens:Ljava/lang/Integer;\n-       100: invokevirtual #32                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       103: ldc           #36                 // String , presencePenalty=\n-       105: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        97: getfield      #39                 // Field maxTokens:Ljava/lang/Integer;\n+       100: invokevirtual #103                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       103: ldc           #112                // String , presencePenalty=\n+       105: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        108: aload_0\n-       109: getfield      #11                 // Field presencePenalty:Ljava/lang/Double;\n-       112: invokevirtual #32                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       115: ldc           #37                 // String , frequencyPenalty=\n-       117: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       109: getfield      #43                 // Field presencePenalty:Ljava/lang/Double;\n+       112: invokevirtual #103                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       115: ldc           #114                // String , frequencyPenalty=\n+       117: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        120: aload_0\n-       121: getfield      #12                 // Field frequencyPenalty:Ljava/lang/Double;\n-       124: invokevirtual #32                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       127: ldc           #38                 // String , logitBias=\n-       129: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       121: getfield      #46                 // Field frequencyPenalty:Ljava/lang/Double;\n+       124: invokevirtual #103                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       127: ldc           #116                // String , logitBias=\n+       129: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        132: aload_0\n-       133: getfield      #13                 // Field logitBias:Ljava/util/Map;\n-       136: invokevirtual #32                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       139: ldc           #39                 // String , responseFormat=\n-       141: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       133: getfield      #49                 // Field logitBias:Ljava/util/Map;\n+       136: invokevirtual #103                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       139: ldc           #118                // String , responseFormat=\n+       141: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        144: aload_0\n-       145: getfield      #14                 // Field responseFormat:Ljava/lang/String;\n-       148: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-       151: ldc           #40                 // String , seed=\n-       153: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       145: getfield      #53                 // Field responseFormat:Ljava/lang/String;\n+       148: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       151: ldc           #120                // String , seed=\n+       153: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        156: aload_0\n-       157: getfield      #15                 // Field seed:Ljava/lang/Integer;\n-       160: invokevirtual #32                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       163: ldc           #41                 // String , user=\n-       165: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       157: getfield      #56                 // Field seed:Ljava/lang/Integer;\n+       160: invokevirtual #103                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       163: ldc           #122                // String , user=\n+       165: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        168: aload_0\n-       169: getfield      #16                 // Field user:Ljava/lang/String;\n-       172: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-       175: ldc           #42                 // String , timeout=\n-       177: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       169: getfield      #59                 // Field user:Ljava/lang/String;\n+       172: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       175: ldc           #124                // String , timeout=\n+       177: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        180: aload_0\n-       181: getfield      #17                 // Field timeout:Ljava/time/Duration;\n-       184: invokevirtual #32                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       187: ldc           #43                 // String , proxy=\n-       189: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       181: getfield      #62                 // Field timeout:Ljava/time/Duration;\n+       184: invokevirtual #103                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       187: ldc           #126                // String , proxy=\n+       189: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        192: aload_0\n-       193: getfield      #18                 // Field proxy:Ljava/net/Proxy;\n-       196: invokevirtual #32                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       199: ldc           #44                 // String , logRequests=\n-       201: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       193: getfield      #66                 // Field proxy:Ljava/net/Proxy;\n+       196: invokevirtual #103                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       199: ldc           #128                // String , logRequests=\n+       201: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        204: aload_0\n-       205: getfield      #19                 // Field logRequests:Ljava/lang/Boolean;\n-       208: invokevirtual #32                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       211: ldc           #45                 // String , logResponses=\n-       213: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       205: getfield      #70                 // Field logRequests:Ljava/lang/Boolean;\n+       208: invokevirtual #103                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       211: ldc           #130                // String , logResponses=\n+       213: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        216: aload_0\n-       217: getfield      #20                 // Field logResponses:Ljava/lang/Boolean;\n-       220: invokevirtual #32                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       223: ldc           #46                 // String , tokenizer=\n-       225: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       217: getfield      #74                 // Field logResponses:Ljava/lang/Boolean;\n+       220: invokevirtual #103                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       223: ldc           #132                // String , tokenizer=\n+       225: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        228: aload_0\n-       229: getfield      #21                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n-       232: invokevirtual #32                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       235: ldc           #47                 // String )\n-       237: invokevirtual #27                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-       240: invokevirtual #48                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+       229: getfield      #77                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+       232: invokevirtual #103                // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       235: ldc           #134                // String )\n+       237: invokevirtual #91                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       240: invokevirtual #136                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n        243: areturn\n       LineNumberTable:\n         line 53: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     244     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;\n }\n SourceFile: \"OpenAiStreamingChatModel.java\"\n InnerClasses:\n-  public static #88= #49 of #22;          // OpenAiStreamingChatModelBuilder=class dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder of class dev/langchain4j/model/openai/OpenAiStreamingChatModel\n+  public static #164= #8 of #81;          // OpenAiStreamingChatModelBuilder=class dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder of class dev/langchain4j/model/openai/OpenAiStreamingChatModel\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiStreamingChatModel.class", "source2": "dev/langchain4j/model/openai/OpenAiStreamingChatModel.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -3,15 +3,17 @@\n \n import java.util.function.Supplier;\n import dev.langchain4j.spi.ServiceHelper;\n import dev.langchain4j.model.openai.spi.OpenAiStreamingChatModelBuilderFactory;\n import dev.ai4j.openai4j.chat.Delta;\n import dev.ai4j.openai4j.chat.ChatCompletionChoice;\n import dev.ai4j.openai4j.chat.ChatCompletionResponse;\n+import dev.ai4j.openai4j.StreamingCompletionHandling;\n import java.util.function.Consumer;\n+import java.util.Objects;\n import dev.langchain4j.model.output.Response;\n import java.util.Collection;\n import java.util.Collections;\n import dev.ai4j.openai4j.chat.ChatCompletionRequest;\n import dev.langchain4j.agent.tool.ToolSpecification;\n import dev.langchain4j.data.message.AiMessage;\n import dev.langchain4j.model.StreamingResponseHandler;\n@@ -81,21 +83,25 @@\n         }\n         else if (!Utils.isNullOrEmpty((Collection)toolSpecifications)) {\n             requestBuilder.tools(InternalOpenAiHelper.toTools((Collection)toolSpecifications));\n             inputTokenCount += this.tokenizer.estimateTokenCountInToolSpecifications((Iterable)toolSpecifications);\n         }\n         final ChatCompletionRequest request = requestBuilder.build();\n         final OpenAiStreamingResponseBuilder responseBuilder = new OpenAiStreamingResponseBuilder(Integer.valueOf(inputTokenCount));\n-        this.client.chatCompletion(request).onPartialResponse(partialResponse -> {\n+        final StreamingCompletionHandling onComplete = this.client.chatCompletion(request).onPartialResponse(partialResponse -> {\n             responseBuilder.append(partialResponse);\n             handle(partialResponse, (StreamingResponseHandler<AiMessage>)handler);\n+            return;\n         }).onComplete(() -> {\n             final Response<AiMessage> response = (Response<AiMessage>)responseBuilder.build(this.tokenizer, toolThatMustBeExecuted != null);\n             handler.onComplete((Response)response);\n-        }).onError((Consumer)handler::onError).execute();\n+            return;\n+        });\n+        Objects.requireNonNull(handler);\n+        onComplete.onError((Consumer)handler::onError).execute();\n     }\n     \n     private static void handle(final ChatCompletionResponse partialResponse, final StreamingResponseHandler<AiMessage> handler) {\n         final List<ChatCompletionChoice> choices = partialResponse.choices();\n         if (choices == null || choices.isEmpty()) {\n             return;\n         }\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.class", "source2": "dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,124 +1,124 @@\n-  SHA-256 checksum 2527352cb72a7012b2d4c09c7d6682d2afef213aed9d9673f96e85dcc772a7cb\n+  SHA-256 checksum c27bc13b3bc0cc9082aeae873687de3b111d10c833c14f0b6116a06b270059f6\n   Compiled from \"OpenAiStreamingLanguageModel.java\"\n public class dev.langchain4j.model.openai.OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #31                         // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder\n-  super_class: #32                        // java/lang/Object\n+  this_class: #8                          // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 10, methods: 14, attributes: 2\n Constant pool:\n-    #1 = Methodref          #32.#72       // java/lang/Object.\"<init>\":()V\n-    #2 = Fieldref           #31.#73       // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.modelName:Ljava/lang/String;\n-    #3 = Methodref          #74.#75       // dev/langchain4j/model/openai/OpenAiLanguageModelName.toString:()Ljava/lang/String;\n-    #4 = Fieldref           #31.#76       // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.baseUrl:Ljava/lang/String;\n-    #5 = Fieldref           #31.#77       // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.apiKey:Ljava/lang/String;\n-    #6 = Fieldref           #31.#78       // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.organizationId:Ljava/lang/String;\n-    #7 = Fieldref           #31.#79       // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.temperature:Ljava/lang/Double;\n-    #8 = Fieldref           #31.#80       // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.timeout:Ljava/time/Duration;\n-    #9 = Fieldref           #31.#81       // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.proxy:Ljava/net/Proxy;\n-   #10 = Fieldref           #31.#82       // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.logRequests:Ljava/lang/Boolean;\n-   #11 = Fieldref           #31.#83       // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.logResponses:Ljava/lang/Boolean;\n-   #12 = Fieldref           #31.#84       // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.tokenizer:Ldev/langchain4j/model/Tokenizer;\n-   #13 = Class              #85           // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel\n-   #14 = Methodref          #13.#86       // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/time/Duration;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n-   #15 = Class              #87           // java/lang/StringBuilder\n-   #16 = Methodref          #15.#72       // java/lang/StringBuilder.\"<init>\":()V\n-   #17 = String             #88           // OpenAiStreamingLanguageModel.OpenAiStreamingLanguageModelBuilder(baseUrl=\n-   #18 = Methodref          #15.#89       // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #19 = String             #90           // , apiKey=\n-   #20 = String             #91           // , organizationId=\n-   #21 = String             #92           // , modelName=\n-   #22 = String             #93           // , temperature=\n-   #23 = Methodref          #15.#94       // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #24 = String             #95           // , timeout=\n-   #25 = String             #96           // , proxy=\n-   #26 = String             #97           // , logRequests=\n-   #27 = String             #98           // , logResponses=\n-   #28 = String             #99           // , tokenizer=\n-   #29 = String             #100          // )\n-   #30 = Methodref          #15.#75       // java/lang/StringBuilder.toString:()Ljava/lang/String;\n-   #31 = Class              #101          // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder\n-   #32 = Class              #102          // java/lang/Object\n-   #33 = Utf8               baseUrl\n-   #34 = Utf8               Ljava/lang/String;\n-   #35 = Utf8               apiKey\n-   #36 = Utf8               organizationId\n-   #37 = Utf8               modelName\n-   #38 = Utf8               temperature\n-   #39 = Utf8               Ljava/lang/Double;\n-   #40 = Utf8               timeout\n-   #41 = Utf8               Ljava/time/Duration;\n-   #42 = Utf8               proxy\n-   #43 = Utf8               Ljava/net/Proxy;\n-   #44 = Utf8               logRequests\n-   #45 = Utf8               Ljava/lang/Boolean;\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Fieldref           #8.#9         // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.modelName:Ljava/lang/String;\n+    #8 = Class              #10           // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder\n+    #9 = NameAndType        #11:#12       // modelName:Ljava/lang/String;\n+   #10 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder\n+   #11 = Utf8               modelName\n+   #12 = Utf8               Ljava/lang/String;\n+   #13 = Methodref          #14.#15       // dev/langchain4j/model/openai/OpenAiLanguageModelName.toString:()Ljava/lang/String;\n+   #14 = Class              #16           // dev/langchain4j/model/openai/OpenAiLanguageModelName\n+   #15 = NameAndType        #17:#18       // toString:()Ljava/lang/String;\n+   #16 = Utf8               dev/langchain4j/model/openai/OpenAiLanguageModelName\n+   #17 = Utf8               toString\n+   #18 = Utf8               ()Ljava/lang/String;\n+   #19 = Fieldref           #8.#20        // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.baseUrl:Ljava/lang/String;\n+   #20 = NameAndType        #21:#12       // baseUrl:Ljava/lang/String;\n+   #21 = Utf8               baseUrl\n+   #22 = Fieldref           #8.#23        // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.apiKey:Ljava/lang/String;\n+   #23 = NameAndType        #24:#12       // apiKey:Ljava/lang/String;\n+   #24 = Utf8               apiKey\n+   #25 = Fieldref           #8.#26        // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.organizationId:Ljava/lang/String;\n+   #26 = NameAndType        #27:#12       // organizationId:Ljava/lang/String;\n+   #27 = Utf8               organizationId\n+   #28 = Fieldref           #8.#29        // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.temperature:Ljava/lang/Double;\n+   #29 = NameAndType        #30:#31       // temperature:Ljava/lang/Double;\n+   #30 = Utf8               temperature\n+   #31 = Utf8               Ljava/lang/Double;\n+   #32 = Fieldref           #8.#33        // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.timeout:Ljava/time/Duration;\n+   #33 = NameAndType        #34:#35       // timeout:Ljava/time/Duration;\n+   #34 = Utf8               timeout\n+   #35 = Utf8               Ljava/time/Duration;\n+   #36 = Fieldref           #8.#37        // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.proxy:Ljava/net/Proxy;\n+   #37 = NameAndType        #38:#39       // proxy:Ljava/net/Proxy;\n+   #38 = Utf8               proxy\n+   #39 = Utf8               Ljava/net/Proxy;\n+   #40 = Fieldref           #8.#41        // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.logRequests:Ljava/lang/Boolean;\n+   #41 = NameAndType        #42:#43       // logRequests:Ljava/lang/Boolean;\n+   #42 = Utf8               logRequests\n+   #43 = Utf8               Ljava/lang/Boolean;\n+   #44 = Fieldref           #8.#45        // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.logResponses:Ljava/lang/Boolean;\n+   #45 = NameAndType        #46:#43       // logResponses:Ljava/lang/Boolean;\n    #46 = Utf8               logResponses\n-   #47 = Utf8               tokenizer\n-   #48 = Utf8               Ldev/langchain4j/model/Tokenizer;\n-   #49 = Utf8               <init>\n-   #50 = Utf8               ()V\n-   #51 = Utf8               Code\n-   #52 = Utf8               LineNumberTable\n-   #53 = Utf8               LocalVariableTable\n-   #54 = Utf8               this\n-   #55 = Utf8               OpenAiStreamingLanguageModelBuilder\n-   #56 = Utf8               InnerClasses\n-   #57 = Utf8               Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n-   #58 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n-   #59 = Utf8               (Ldev/langchain4j/model/openai/OpenAiLanguageModelName;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n-   #60 = Utf8               Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n-   #61 = Utf8               (Ljava/lang/Double;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n-   #62 = Utf8               (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n-   #63 = Utf8               (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n-   #64 = Utf8               (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n-   #65 = Utf8               (Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n-   #66 = Utf8               build\n-   #67 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel;\n-   #68 = Utf8               toString\n-   #69 = Utf8               ()Ljava/lang/String;\n-   #70 = Utf8               SourceFile\n-   #71 = Utf8               OpenAiStreamingLanguageModel.java\n-   #72 = NameAndType        #49:#50       // \"<init>\":()V\n-   #73 = NameAndType        #37:#34       // modelName:Ljava/lang/String;\n-   #74 = Class              #103          // dev/langchain4j/model/openai/OpenAiLanguageModelName\n-   #75 = NameAndType        #68:#69       // toString:()Ljava/lang/String;\n-   #76 = NameAndType        #33:#34       // baseUrl:Ljava/lang/String;\n-   #77 = NameAndType        #35:#34       // apiKey:Ljava/lang/String;\n-   #78 = NameAndType        #36:#34       // organizationId:Ljava/lang/String;\n-   #79 = NameAndType        #38:#39       // temperature:Ljava/lang/Double;\n-   #80 = NameAndType        #40:#41       // timeout:Ljava/time/Duration;\n-   #81 = NameAndType        #42:#43       // proxy:Ljava/net/Proxy;\n-   #82 = NameAndType        #44:#45       // logRequests:Ljava/lang/Boolean;\n-   #83 = NameAndType        #46:#45       // logResponses:Ljava/lang/Boolean;\n-   #84 = NameAndType        #47:#48       // tokenizer:Ldev/langchain4j/model/Tokenizer;\n-   #85 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingLanguageModel\n-   #86 = NameAndType        #49:#104      // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/time/Duration;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n-   #87 = Utf8               java/lang/StringBuilder\n-   #88 = Utf8               OpenAiStreamingLanguageModel.OpenAiStreamingLanguageModelBuilder(baseUrl=\n-   #89 = NameAndType        #105:#106     // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #90 = Utf8               , apiKey=\n-   #91 = Utf8               , organizationId=\n-   #92 = Utf8               , modelName=\n-   #93 = Utf8               , temperature=\n-   #94 = NameAndType        #105:#107     // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #95 = Utf8               , timeout=\n-   #96 = Utf8               , proxy=\n-   #97 = Utf8               , logRequests=\n-   #98 = Utf8               , logResponses=\n-   #99 = Utf8               , tokenizer=\n-  #100 = Utf8               )\n-  #101 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder\n-  #102 = Utf8               java/lang/Object\n-  #103 = Utf8               dev/langchain4j/model/openai/OpenAiLanguageModelName\n-  #104 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/time/Duration;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n-  #105 = Utf8               append\n-  #106 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #107 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #47 = Fieldref           #8.#48        // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder.tokenizer:Ldev/langchain4j/model/Tokenizer;\n+   #48 = NameAndType        #49:#50       // tokenizer:Ldev/langchain4j/model/Tokenizer;\n+   #49 = Utf8               tokenizer\n+   #50 = Utf8               Ldev/langchain4j/model/Tokenizer;\n+   #51 = Class              #52           // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel\n+   #52 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingLanguageModel\n+   #53 = Methodref          #51.#54       // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/time/Duration;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+   #54 = NameAndType        #5:#55        // \"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/time/Duration;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+   #55 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/time/Duration;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+   #56 = Class              #57           // java/lang/StringBuilder\n+   #57 = Utf8               java/lang/StringBuilder\n+   #58 = Methodref          #56.#3        // java/lang/StringBuilder.\"<init>\":()V\n+   #59 = String             #60           // OpenAiStreamingLanguageModel.OpenAiStreamingLanguageModelBuilder(baseUrl=\n+   #60 = Utf8               OpenAiStreamingLanguageModel.OpenAiStreamingLanguageModelBuilder(baseUrl=\n+   #61 = Methodref          #56.#62       // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #62 = NameAndType        #63:#64       // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #63 = Utf8               append\n+   #64 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #65 = String             #66           // , apiKey=\n+   #66 = Utf8               , apiKey=\n+   #67 = String             #68           // , organizationId=\n+   #68 = Utf8               , organizationId=\n+   #69 = String             #70           // , modelName=\n+   #70 = Utf8               , modelName=\n+   #71 = String             #72           // , temperature=\n+   #72 = Utf8               , temperature=\n+   #73 = Methodref          #56.#74       // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #74 = NameAndType        #63:#75       // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #75 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #76 = String             #77           // , timeout=\n+   #77 = Utf8               , timeout=\n+   #78 = String             #79           // , proxy=\n+   #79 = Utf8               , proxy=\n+   #80 = String             #81           // , logRequests=\n+   #81 = Utf8               , logRequests=\n+   #82 = String             #83           // , logResponses=\n+   #83 = Utf8               , logResponses=\n+   #84 = String             #85           // , tokenizer=\n+   #85 = Utf8               , tokenizer=\n+   #86 = String             #87           // )\n+   #87 = Utf8               )\n+   #88 = Methodref          #56.#15       // java/lang/StringBuilder.toString:()Ljava/lang/String;\n+   #89 = Utf8               Code\n+   #90 = Utf8               LineNumberTable\n+   #91 = Utf8               LocalVariableTable\n+   #92 = Utf8               this\n+   #93 = Utf8               Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n+   #94 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n+   #95 = Utf8               (Ldev/langchain4j/model/openai/OpenAiLanguageModelName;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n+   #96 = Utf8               Ldev/langchain4j/model/openai/OpenAiLanguageModelName;\n+   #97 = Utf8               (Ljava/lang/Double;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n+   #98 = Utf8               (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n+   #99 = Utf8               (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n+  #100 = Utf8               (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n+  #101 = Utf8               (Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n+  #102 = Utf8               build\n+  #103 = Utf8               ()Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel;\n+  #104 = Utf8               SourceFile\n+  #105 = Utf8               OpenAiStreamingLanguageModel.java\n+  #106 = Utf8               InnerClasses\n+  #107 = Utf8               OpenAiStreamingLanguageModelBuilder\n {\n   private java.lang.String baseUrl;\n     descriptor: Ljava/lang/String;\n     flags: (0x0002) ACC_PRIVATE\n \n   private java.lang.String apiKey;\n     descriptor: Ljava/lang/String;\n@@ -174,15 +174,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder modelName(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #2                  // Field modelName:Ljava/lang/String;\n+         2: putfield      #7                  // Field modelName:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 123: 0\n         line 124: 5\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -192,16 +192,16 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder modelName(dev.langchain4j.model.openai.OpenAiLanguageModelName);\n     descriptor: (Ldev/langchain4j/model/openai/OpenAiLanguageModelName;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokevirtual #3                  // Method dev/langchain4j/model/openai/OpenAiLanguageModelName.toString:()Ljava/lang/String;\n-         5: putfield      #2                  // Field modelName:Ljava/lang/String;\n+         2: invokevirtual #13                 // Method dev/langchain4j/model/openai/OpenAiLanguageModelName.toString:()Ljava/lang/String;\n+         5: putfield      #7                  // Field modelName:Ljava/lang/String;\n          8: aload_0\n          9: areturn\n       LineNumberTable:\n         line 128: 0\n         line 129: 8\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -211,15 +211,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder baseUrl(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #4                  // Field baseUrl:Ljava/lang/String;\n+         2: putfield      #19                 // Field baseUrl:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n@@ -228,15 +228,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder apiKey(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #5                  // Field apiKey:Ljava/lang/String;\n+         2: putfield      #22                 // Field apiKey:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n@@ -245,15 +245,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder organizationId(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #6                  // Field organizationId:Ljava/lang/String;\n+         2: putfield      #25                 // Field organizationId:Ljava/lang/String;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n@@ -262,15 +262,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder temperature(java.lang.Double);\n     descriptor: (Ljava/lang/Double;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #7                  // Field temperature:Ljava/lang/Double;\n+         2: putfield      #28                 // Field temperature:Ljava/lang/Double;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n@@ -279,15 +279,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder timeout(java.time.Duration);\n     descriptor: (Ljava/time/Duration;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #8                  // Field timeout:Ljava/time/Duration;\n+         2: putfield      #32                 // Field timeout:Ljava/time/Duration;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n@@ -296,15 +296,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder proxy(java.net.Proxy);\n     descriptor: (Ljava/net/Proxy;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #9                  // Field proxy:Ljava/net/Proxy;\n+         2: putfield      #36                 // Field proxy:Ljava/net/Proxy;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n@@ -313,15 +313,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder logRequests(java.lang.Boolean);\n     descriptor: (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #10                 // Field logRequests:Ljava/lang/Boolean;\n+         2: putfield      #40                 // Field logRequests:Ljava/lang/Boolean;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n@@ -330,15 +330,15 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder logResponses(java.lang.Boolean);\n     descriptor: (Ljava/lang/Boolean;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #11                 // Field logResponses:Ljava/lang/Boolean;\n+         2: putfield      #44                 // Field logResponses:Ljava/lang/Boolean;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n@@ -347,123 +347,123 @@\n   public dev.langchain4j.model.openai.OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder tokenizer(dev.langchain4j.model.Tokenizer);\n     descriptor: (Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: putfield      #12                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+         2: putfield      #47                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n          5: aload_0\n          6: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n             0       7     1 tokenizer   Ldev/langchain4j/model/Tokenizer;\n \n   public dev.langchain4j.model.openai.OpenAiStreamingLanguageModel build();\n     descriptor: ()Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=12, locals=1, args_size=1\n-         0: new           #13                 // class dev/langchain4j/model/openai/OpenAiStreamingLanguageModel\n+         0: new           #51                 // class dev/langchain4j/model/openai/OpenAiStreamingLanguageModel\n          3: dup\n          4: aload_0\n-         5: getfield      #4                  // Field baseUrl:Ljava/lang/String;\n+         5: getfield      #19                 // Field baseUrl:Ljava/lang/String;\n          8: aload_0\n-         9: getfield      #5                  // Field apiKey:Ljava/lang/String;\n+         9: getfield      #22                 // Field apiKey:Ljava/lang/String;\n         12: aload_0\n-        13: getfield      #6                  // Field organizationId:Ljava/lang/String;\n+        13: getfield      #25                 // Field organizationId:Ljava/lang/String;\n         16: aload_0\n-        17: getfield      #2                  // Field modelName:Ljava/lang/String;\n+        17: getfield      #7                  // Field modelName:Ljava/lang/String;\n         20: aload_0\n-        21: getfield      #7                  // Field temperature:Ljava/lang/Double;\n+        21: getfield      #28                 // Field temperature:Ljava/lang/Double;\n         24: aload_0\n-        25: getfield      #8                  // Field timeout:Ljava/time/Duration;\n+        25: getfield      #32                 // Field timeout:Ljava/time/Duration;\n         28: aload_0\n-        29: getfield      #9                  // Field proxy:Ljava/net/Proxy;\n+        29: getfield      #36                 // Field proxy:Ljava/net/Proxy;\n         32: aload_0\n-        33: getfield      #10                 // Field logRequests:Ljava/lang/Boolean;\n+        33: getfield      #40                 // Field logRequests:Ljava/lang/Boolean;\n         36: aload_0\n-        37: getfield      #11                 // Field logResponses:Ljava/lang/Boolean;\n+        37: getfield      #44                 // Field logResponses:Ljava/lang/Boolean;\n         40: aload_0\n-        41: getfield      #12                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n-        44: invokespecial #14                 // Method dev/langchain4j/model/openai/OpenAiStreamingLanguageModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/time/Duration;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n+        41: getfield      #47                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+        44: invokespecial #53                 // Method dev/langchain4j/model/openai/OpenAiStreamingLanguageModel.\"<init>\":(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Double;Ljava/time/Duration;Ljava/net/Proxy;Ljava/lang/Boolean;Ljava/lang/Boolean;Ldev/langchain4j/model/Tokenizer;)V\n         47: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      48     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n \n   public java.lang.String toString();\n     descriptor: ()Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: new           #15                 // class java/lang/StringBuilder\n+         0: new           #56                 // class java/lang/StringBuilder\n          3: dup\n-         4: invokespecial #16                 // Method java/lang/StringBuilder.\"<init>\":()V\n-         7: ldc           #17                 // String OpenAiStreamingLanguageModel.OpenAiStreamingLanguageModelBuilder(baseUrl=\n-         9: invokevirtual #18                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+         4: invokespecial #58                 // Method java/lang/StringBuilder.\"<init>\":()V\n+         7: ldc           #59                 // String OpenAiStreamingLanguageModel.OpenAiStreamingLanguageModelBuilder(baseUrl=\n+         9: invokevirtual #61                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         12: aload_0\n-        13: getfield      #4                  // Field baseUrl:Ljava/lang/String;\n-        16: invokevirtual #18                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        19: ldc           #19                 // String , apiKey=\n-        21: invokevirtual #18                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        13: getfield      #19                 // Field baseUrl:Ljava/lang/String;\n+        16: invokevirtual #61                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        19: ldc           #65                 // String , apiKey=\n+        21: invokevirtual #61                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         24: aload_0\n-        25: getfield      #5                  // Field apiKey:Ljava/lang/String;\n-        28: invokevirtual #18                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        31: ldc           #20                 // String , organizationId=\n-        33: invokevirtual #18                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        25: getfield      #22                 // Field apiKey:Ljava/lang/String;\n+        28: invokevirtual #61                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        31: ldc           #67                 // String , organizationId=\n+        33: invokevirtual #61                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         36: aload_0\n-        37: getfield      #6                  // Field organizationId:Ljava/lang/String;\n-        40: invokevirtual #18                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        43: ldc           #21                 // String , modelName=\n-        45: invokevirtual #18                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        37: getfield      #25                 // Field organizationId:Ljava/lang/String;\n+        40: invokevirtual #61                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        43: ldc           #69                 // String , modelName=\n+        45: invokevirtual #61                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         48: aload_0\n-        49: getfield      #2                  // Field modelName:Ljava/lang/String;\n-        52: invokevirtual #18                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-        55: ldc           #22                 // String , temperature=\n-        57: invokevirtual #18                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        49: getfield      #7                  // Field modelName:Ljava/lang/String;\n+        52: invokevirtual #61                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        55: ldc           #71                 // String , temperature=\n+        57: invokevirtual #61                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         60: aload_0\n-        61: getfield      #7                  // Field temperature:Ljava/lang/Double;\n-        64: invokevirtual #23                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        67: ldc           #24                 // String , timeout=\n-        69: invokevirtual #18                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        61: getfield      #28                 // Field temperature:Ljava/lang/Double;\n+        64: invokevirtual #73                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        67: ldc           #76                 // String , timeout=\n+        69: invokevirtual #61                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         72: aload_0\n-        73: getfield      #8                  // Field timeout:Ljava/time/Duration;\n-        76: invokevirtual #23                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        79: ldc           #25                 // String , proxy=\n-        81: invokevirtual #18                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        73: getfield      #32                 // Field timeout:Ljava/time/Duration;\n+        76: invokevirtual #73                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        79: ldc           #78                 // String , proxy=\n+        81: invokevirtual #61                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         84: aload_0\n-        85: getfield      #9                  // Field proxy:Ljava/net/Proxy;\n-        88: invokevirtual #23                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        91: ldc           #26                 // String , logRequests=\n-        93: invokevirtual #18                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        85: getfield      #36                 // Field proxy:Ljava/net/Proxy;\n+        88: invokevirtual #73                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        91: ldc           #80                 // String , logRequests=\n+        93: invokevirtual #61                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         96: aload_0\n-        97: getfield      #10                 // Field logRequests:Ljava/lang/Boolean;\n-       100: invokevirtual #23                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       103: ldc           #27                 // String , logResponses=\n-       105: invokevirtual #18                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        97: getfield      #40                 // Field logRequests:Ljava/lang/Boolean;\n+       100: invokevirtual #73                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       103: ldc           #82                 // String , logResponses=\n+       105: invokevirtual #61                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        108: aload_0\n-       109: getfield      #11                 // Field logResponses:Ljava/lang/Boolean;\n-       112: invokevirtual #23                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       115: ldc           #28                 // String , tokenizer=\n-       117: invokevirtual #18                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       109: getfield      #44                 // Field logResponses:Ljava/lang/Boolean;\n+       112: invokevirtual #73                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       115: ldc           #84                 // String , tokenizer=\n+       117: invokevirtual #61                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        120: aload_0\n-       121: getfield      #12                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n-       124: invokevirtual #23                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       127: ldc           #29                 // String )\n-       129: invokevirtual #18                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-       132: invokevirtual #30                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+       121: getfield      #47                 // Field tokenizer:Ldev/langchain4j/model/Tokenizer;\n+       124: invokevirtual #73                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       127: ldc           #86                 // String )\n+       129: invokevirtual #61                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       132: invokevirtual #88                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n        135: areturn\n       LineNumberTable:\n         line 36: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0     136     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;\n }\n SourceFile: \"OpenAiStreamingLanguageModel.java\"\n InnerClasses:\n-  public static #55= #31 of #13;          // OpenAiStreamingLanguageModelBuilder=class dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder of class dev/langchain4j/model/openai/OpenAiStreamingLanguageModel\n+  public static #107= #8 of #51;          // OpenAiStreamingLanguageModelBuilder=class dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder of class dev/langchain4j/model/openai/OpenAiStreamingLanguageModel\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiStreamingLanguageModel.class", "source2": "dev/langchain4j/model/openai/OpenAiStreamingLanguageModel.class", "unified_diff": null, "details": [{"source1": "procyon -ec {}", "source2": "procyon -ec {}", "unified_diff": "@@ -1,15 +1,17 @@\n \n package dev.langchain4j.model.openai;\n \n import dev.ai4j.openai4j.completion.CompletionResponse;\n import java.util.function.Supplier;\n import dev.langchain4j.spi.ServiceHelper;\n import dev.langchain4j.model.openai.spi.OpenAiStreamingLanguageModelBuilderFactory;\n+import dev.ai4j.openai4j.StreamingCompletionHandling;\n import java.util.function.Consumer;\n+import java.util.Objects;\n import dev.langchain4j.model.output.Response;\n import dev.langchain4j.data.message.AiMessage;\n import dev.ai4j.openai4j.completion.CompletionRequest;\n import dev.langchain4j.model.StreamingResponseHandler;\n import dev.langchain4j.internal.Utils;\n import java.net.Proxy;\n import java.time.Duration;\n@@ -33,24 +35,28 @@\n         this.tokenizer = (Tokenizer)Utils.getOrDefault((Object)tokenizer, () -> new OpenAiTokenizer(this.modelName));\n     }\n     \n     public void generate(final String prompt, final StreamingResponseHandler<String> handler) {\n         final CompletionRequest request = CompletionRequest.builder().model(this.modelName).prompt(prompt).temperature(this.temperature).build();\n         final int inputTokenCount = this.tokenizer.estimateTokenCountInText(prompt);\n         final OpenAiStreamingResponseBuilder responseBuilder = new OpenAiStreamingResponseBuilder(Integer.valueOf(inputTokenCount));\n-        this.client.completion(request).onPartialResponse(partialResponse -> {\n+        final StreamingCompletionHandling onComplete = this.client.completion(request).onPartialResponse(partialResponse -> {\n             responseBuilder.append(partialResponse);\n             final String token = partialResponse.text();\n             if (token != null) {\n                 handler.onNext(token);\n             }\n+            return;\n         }).onComplete(() -> {\n-            final Response<AiMessage> response = (Response<AiMessage>)responseBuilder.build(this.tokenizer, false);\n+            final Response<AiMessage> response = (Response<AiMessage>)responseBuilder.build(this.tokenizer, (boolean)(0 != 0));\n             handler.onComplete(Response.from((Object)((AiMessage)response.content()).text(), response.tokenUsage(), response.finishReason()));\n-        }).onError((Consumer)handler::onError).execute();\n+            return;\n+        });\n+        Objects.requireNonNull(handler);\n+        onComplete.onError((Consumer)handler::onError).execute();\n     }\n     \n     public int estimateTokenCount(final String prompt) {\n         return this.tokenizer.estimateTokenCountInText(prompt);\n     }\n     \n     public static OpenAiStreamingLanguageModel withApiKey(final String apiKey) {\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1.class", "source2": "dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,26 +1,26 @@\n-  SHA-256 checksum 8c7541b308260e18e8f09609a549d6cd0afb637948c1346052d275a7fe73c20b\n+  SHA-256 checksum ed9a5ec80d633f046666561a51936faeafc4859c1c94a1e1948d7ebf6af14e1f\n   Compiled from \"OpenAiStreamingResponseBuilder.java\"\n class dev.langchain4j.model.openai.OpenAiStreamingResponseBuilder$1\n   minor version: 0\n   major version: 52\n   flags: (0x1020) ACC_SUPER, ACC_SYNTHETIC\n   this_class: #1                          // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1\n-  super_class: #2                         // java/lang/Object\n+  super_class: #3                         // java/lang/Object\n   interfaces: 0, fields: 0, methods: 0, attributes: 3\n Constant pool:\n-   #1 = Class              #7             // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1\n-   #2 = Class              #9             // java/lang/Object\n-   #3 = Utf8               SourceFile\n-   #4 = Utf8               OpenAiStreamingResponseBuilder.java\n-   #5 = Utf8               EnclosingMethod\n-   #6 = Class              #10            // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder\n-   #7 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1\n-   #8 = Utf8               InnerClasses\n-   #9 = Utf8               java/lang/Object\n-  #10 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder\n+   #1 = Class              #2             // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1\n+   #2 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1\n+   #3 = Class              #4             // java/lang/Object\n+   #4 = Utf8               java/lang/Object\n+   #5 = Utf8               SourceFile\n+   #6 = Utf8               OpenAiStreamingResponseBuilder.java\n+   #7 = Utf8               EnclosingMethod\n+   #8 = Class              #9             // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder\n+   #9 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder\n+  #10 = Utf8               InnerClasses\n {\n }\n SourceFile: \"OpenAiStreamingResponseBuilder.java\"\n-EnclosingMethod: #6.#0                  // dev.langchain4j.model.openai.OpenAiStreamingResponseBuilder\n+EnclosingMethod: #8.#0                  // dev.langchain4j.model.openai.OpenAiStreamingResponseBuilder\n InnerClasses:\n   static #1;                              // class dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.class", "source2": "dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,59 +1,59 @@\n-  SHA-256 checksum 027a99f00259cc5548063b1e96cacc9fac87bf7dd7187ef854d3fdd1905ab658\n+  SHA-256 checksum c12b612767d9a3f53cd82f6ef66b94699321431d042f994decb4deedb487e350\n   Compiled from \"OpenAiStreamingResponseBuilder.java\"\n class dev.langchain4j.model.openai.OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder\n   minor version: 0\n   major version: 52\n   flags: (0x0020) ACC_SUPER\n-  this_class: #8                          // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder\n-  super_class: #9                         // java/lang/Object\n+  this_class: #2                          // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder\n+  super_class: #18                        // java/lang/Object\n   interfaces: 0, fields: 3, methods: 5, attributes: 2\n Constant pool:\n-   #1 = Methodref          #8.#33         // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.\"<init>\":()V\n-   #2 = Fieldref           #8.#34         // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.argumentsBuilder:Ljava/lang/StringBuffer;\n-   #3 = Fieldref           #8.#35         // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.nameBuilder:Ljava/lang/StringBuffer;\n-   #4 = Fieldref           #8.#36         // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.idBuilder:Ljava/lang/StringBuffer;\n-   #5 = Methodref          #9.#33         // java/lang/Object.\"<init>\":()V\n-   #6 = Class              #37            // java/lang/StringBuffer\n-   #7 = Methodref          #6.#33         // java/lang/StringBuffer.\"<init>\":()V\n-   #8 = Class              #39            // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder\n-   #9 = Class              #40            // java/lang/Object\n-  #10 = Utf8               idBuilder\n-  #11 = Utf8               Ljava/lang/StringBuffer;\n-  #12 = Utf8               nameBuilder\n-  #13 = Utf8               argumentsBuilder\n-  #14 = Utf8               <init>\n-  #15 = Utf8               ()V\n-  #16 = Utf8               Code\n-  #17 = Utf8               LineNumberTable\n-  #18 = Utf8               LocalVariableTable\n-  #19 = Utf8               this\n-  #20 = Utf8               ToolExecutionRequestBuilder\n-  #21 = Utf8               InnerClasses\n-  #22 = Utf8               Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n-  #23 = Utf8               access$000\n-  #24 = Utf8               (Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n-  #25 = Utf8               x0\n-  #26 = Utf8               access$100\n-  #27 = Utf8               access$200\n-  #28 = Class              #41            // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1\n-  #29 = Utf8               (Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1;)V\n-  #30 = Utf8               Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1;\n-  #31 = Utf8               SourceFile\n-  #32 = Utf8               OpenAiStreamingResponseBuilder.java\n-  #33 = NameAndType        #14:#15        // \"<init>\":()V\n-  #34 = NameAndType        #13:#11        // argumentsBuilder:Ljava/lang/StringBuffer;\n-  #35 = NameAndType        #12:#11        // nameBuilder:Ljava/lang/StringBuffer;\n-  #36 = NameAndType        #10:#11        // idBuilder:Ljava/lang/StringBuffer;\n-  #37 = Utf8               java/lang/StringBuffer\n-  #38 = Class              #42            // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder\n-  #39 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder\n-  #40 = Utf8               java/lang/Object\n-  #41 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1\n-  #42 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder\n+   #1 = Methodref          #2.#3          // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.\"<init>\":()V\n+   #2 = Class              #4             // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder\n+   #3 = NameAndType        #5:#6          // \"<init>\":()V\n+   #4 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder\n+   #5 = Utf8               <init>\n+   #6 = Utf8               ()V\n+   #7 = Fieldref           #2.#8          // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.argumentsBuilder:Ljava/lang/StringBuffer;\n+   #8 = NameAndType        #9:#10         // argumentsBuilder:Ljava/lang/StringBuffer;\n+   #9 = Utf8               argumentsBuilder\n+  #10 = Utf8               Ljava/lang/StringBuffer;\n+  #11 = Fieldref           #2.#12         // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.nameBuilder:Ljava/lang/StringBuffer;\n+  #12 = NameAndType        #13:#10        // nameBuilder:Ljava/lang/StringBuffer;\n+  #13 = Utf8               nameBuilder\n+  #14 = Fieldref           #2.#15         // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.idBuilder:Ljava/lang/StringBuffer;\n+  #15 = NameAndType        #16:#10        // idBuilder:Ljava/lang/StringBuffer;\n+  #16 = Utf8               idBuilder\n+  #17 = Methodref          #18.#3         // java/lang/Object.\"<init>\":()V\n+  #18 = Class              #19            // java/lang/Object\n+  #19 = Utf8               java/lang/Object\n+  #20 = Class              #21            // java/lang/StringBuffer\n+  #21 = Utf8               java/lang/StringBuffer\n+  #22 = Methodref          #20.#3         // java/lang/StringBuffer.\"<init>\":()V\n+  #23 = Utf8               Code\n+  #24 = Utf8               LineNumberTable\n+  #25 = Utf8               LocalVariableTable\n+  #26 = Utf8               this\n+  #27 = Utf8               Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n+  #28 = Utf8               access$000\n+  #29 = Utf8               (Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n+  #30 = Utf8               x0\n+  #31 = Utf8               access$100\n+  #32 = Utf8               access$200\n+  #33 = Utf8               (Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1;)V\n+  #34 = Utf8               Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1;\n+  #35 = Utf8               SourceFile\n+  #36 = Utf8               OpenAiStreamingResponseBuilder.java\n+  #37 = Utf8               InnerClasses\n+  #38 = Class              #39            // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder\n+  #39 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder\n+  #40 = Utf8               ToolExecutionRequestBuilder\n+  #41 = Class              #42            // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1\n+  #42 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1\n {\n   private final java.lang.StringBuffer idBuilder;\n     descriptor: Ljava/lang/StringBuffer;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n \n   private final java.lang.StringBuffer nameBuilder;\n     descriptor: Ljava/lang/StringBuffer;\n@@ -65,30 +65,30 @@\n \n   private dev.langchain4j.model.openai.OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder();\n     descriptor: ()V\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=3, locals=1, args_size=1\n          0: aload_0\n-         1: invokespecial #5                  // Method java/lang/Object.\"<init>\":()V\n+         1: invokespecial #17                 // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n-         5: new           #6                  // class java/lang/StringBuffer\n+         5: new           #20                 // class java/lang/StringBuffer\n          8: dup\n-         9: invokespecial #7                  // Method java/lang/StringBuffer.\"<init>\":()V\n-        12: putfield      #4                  // Field idBuilder:Ljava/lang/StringBuffer;\n+         9: invokespecial #22                 // Method java/lang/StringBuffer.\"<init>\":()V\n+        12: putfield      #14                 // Field idBuilder:Ljava/lang/StringBuffer;\n         15: aload_0\n-        16: new           #6                  // class java/lang/StringBuffer\n+        16: new           #20                 // class java/lang/StringBuffer\n         19: dup\n-        20: invokespecial #7                  // Method java/lang/StringBuffer.\"<init>\":()V\n-        23: putfield      #3                  // Field nameBuilder:Ljava/lang/StringBuffer;\n+        20: invokespecial #22                 // Method java/lang/StringBuffer.\"<init>\":()V\n+        23: putfield      #11                 // Field nameBuilder:Ljava/lang/StringBuffer;\n         26: aload_0\n-        27: new           #6                  // class java/lang/StringBuffer\n+        27: new           #20                 // class java/lang/StringBuffer\n         30: dup\n-        31: invokespecial #7                  // Method java/lang/StringBuffer.\"<init>\":()V\n-        34: putfield      #2                  // Field argumentsBuilder:Ljava/lang/StringBuffer;\n+        31: invokespecial #22                 // Method java/lang/StringBuffer.\"<init>\":()V\n+        34: putfield      #7                  // Field argumentsBuilder:Ljava/lang/StringBuffer;\n         37: return\n       LineNumberTable:\n         line 201: 0\n         line 203: 4\n         line 204: 15\n         line 205: 26\n       LocalVariableTable:\n@@ -97,43 +97,43 @@\n \n   static java.lang.StringBuffer access$000(dev.langchain4j.model.openai.OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder);\n     descriptor: (Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n     flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #4                  // Field idBuilder:Ljava/lang/StringBuffer;\n+         1: getfield      #14                 // Field idBuilder:Ljava/lang/StringBuffer;\n          4: areturn\n       LineNumberTable:\n         line 201: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0    x0   Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n \n   static java.lang.StringBuffer access$100(dev.langchain4j.model.openai.OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder);\n     descriptor: (Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n     flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #3                  // Field nameBuilder:Ljava/lang/StringBuffer;\n+         1: getfield      #11                 // Field nameBuilder:Ljava/lang/StringBuffer;\n          4: areturn\n       LineNumberTable:\n         line 201: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0    x0   Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n \n   static java.lang.StringBuffer access$200(dev.langchain4j.model.openai.OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder);\n     descriptor: (Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n     flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #2                  // Field argumentsBuilder:Ljava/lang/StringBuffer;\n+         1: getfield      #7                  // Field argumentsBuilder:Ljava/lang/StringBuffer;\n          4: areturn\n       LineNumberTable:\n         line 201: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0    x0   Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n \n@@ -150,9 +150,9 @@\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       5     0  this   Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n             0       5     1    x0   Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1;\n }\n SourceFile: \"OpenAiStreamingResponseBuilder.java\"\n InnerClasses:\n-  private static #20= #8 of #38;          // ToolExecutionRequestBuilder=class dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder of class dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder\n-  static #28;                             // class dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1\n+  private static #40= #2 of #38;          // ToolExecutionRequestBuilder=class dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder of class dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder\n+  static #41;                             // class dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.class", "source2": "dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,363 +1,354 @@\n-  SHA-256 checksum 0d1f7f3a5fc815d4aec174ef00bb166fcc42de9dc2197f20f5c0423f81b3410a\n+  SHA-256 checksum f6df4fa289a5744a1985d4f4bf28b6513f0e63e60051a8287f88d65961bddc17\n   Compiled from \"OpenAiStreamingResponseBuilder.java\"\n public class dev.langchain4j.model.openai.OpenAiStreamingResponseBuilder\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #72                         // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder\n-  super_class: #73                        // java/lang/Object\n+  this_class: #11                         // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder\n+  super_class: #2                         // java/lang/Object\n   interfaces: 0, fields: 6, methods: 8, attributes: 3\n Constant pool:\n-    #1 = Methodref          #73.#157      // java/lang/Object.\"<init>\":()V\n-    #2 = Class              #158          // java/lang/StringBuffer\n-    #3 = Methodref          #2.#157       // java/lang/StringBuffer.\"<init>\":()V\n-    #4 = Fieldref           #72.#159      // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.contentBuilder:Ljava/lang/StringBuffer;\n-    #5 = Fieldref           #72.#160      // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.toolNameBuilder:Ljava/lang/StringBuffer;\n-    #6 = Fieldref           #72.#161      // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.toolArgumentsBuilder:Ljava/lang/StringBuffer;\n-    #7 = Class              #162          // java/util/concurrent/ConcurrentHashMap\n-    #8 = Methodref          #7.#157       // java/util/concurrent/ConcurrentHashMap.\"<init>\":()V\n-    #9 = Fieldref           #72.#163      // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.indexToToolExecutionRequestBuilder:Ljava/util/Map;\n-   #10 = Fieldref           #72.#164      // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.inputTokenCount:Ljava/lang/Integer;\n-   #11 = Methodref          #165.#166     // dev/ai4j/openai4j/chat/ChatCompletionResponse.choices:()Ljava/util/List;\n-   #12 = InterfaceMethodref #59.#167      // java/util/List.isEmpty:()Z\n-   #13 = InterfaceMethodref #59.#168      // java/util/List.get:(I)Ljava/lang/Object;\n-   #14 = Class              #169          // dev/ai4j/openai4j/chat/ChatCompletionChoice\n-   #15 = Methodref          #14.#170      // dev/ai4j/openai4j/chat/ChatCompletionChoice.finishReason:()Ljava/lang/String;\n-   #16 = Fieldref           #72.#171      // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.finishReason:Ljava/lang/String;\n-   #17 = Methodref          #14.#172      // dev/ai4j/openai4j/chat/ChatCompletionChoice.delta:()Ldev/ai4j/openai4j/chat/Delta;\n-   #18 = Methodref          #173.#174     // dev/ai4j/openai4j/chat/Delta.content:()Ljava/lang/String;\n-   #19 = Methodref          #2.#175       // java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;\n-   #20 = Methodref          #173.#176     // dev/ai4j/openai4j/chat/Delta.functionCall:()Ldev/ai4j/openai4j/chat/FunctionCall;\n-   #21 = Methodref          #177.#178     // dev/ai4j/openai4j/chat/FunctionCall.name:()Ljava/lang/String;\n-   #22 = Methodref          #177.#179     // dev/ai4j/openai4j/chat/FunctionCall.arguments:()Ljava/lang/String;\n-   #23 = Methodref          #173.#180     // dev/ai4j/openai4j/chat/Delta.toolCalls:()Ljava/util/List;\n-   #24 = Class              #181          // dev/ai4j/openai4j/chat/ToolCall\n-   #25 = Methodref          #24.#182      // dev/ai4j/openai4j/chat/ToolCall.index:()Ljava/lang/Integer;\n-   #26 = InvokeDynamic      #0:#188       // #0:apply:()Ljava/util/function/Function;\n-   #27 = InterfaceMethodref #189.#190     // java/util/Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;\n-   #28 = Class              #191          // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder\n-   #29 = Methodref          #24.#192      // dev/ai4j/openai4j/chat/ToolCall.id:()Ljava/lang/String;\n-   #30 = Methodref          #28.#193      // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.access$000:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n-   #31 = Methodref          #24.#194      // dev/ai4j/openai4j/chat/ToolCall.function:()Ldev/ai4j/openai4j/chat/FunctionCall;\n-   #32 = Methodref          #28.#195      // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.access$100:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n-   #33 = Methodref          #28.#196      // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.access$200:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n-   #34 = Methodref          #197.#166     // dev/ai4j/openai4j/completion/CompletionResponse.choices:()Ljava/util/List;\n-   #35 = Class              #198          // dev/ai4j/openai4j/completion/CompletionChoice\n-   #36 = Methodref          #35.#170      // dev/ai4j/openai4j/completion/CompletionChoice.finishReason:()Ljava/lang/String;\n-   #37 = Methodref          #35.#199      // dev/ai4j/openai4j/completion/CompletionChoice.text:()Ljava/lang/String;\n-   #38 = Methodref          #2.#200       // java/lang/StringBuffer.toString:()Ljava/lang/String;\n-   #39 = Methodref          #201.#167     // java/lang/String.isEmpty:()Z\n-   #40 = Methodref          #202.#203     // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-   #41 = Methodref          #72.#204      // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.tokenUsage:(Ljava/lang/String;Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/output/TokenUsage;\n-   #42 = Methodref          #205.#206     // dev/langchain4j/model/openai/InternalOpenAiHelper.finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n-   #43 = Methodref          #207.#208     // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-   #44 = Methodref          #48.#209      // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #45 = Methodref          #210.#211     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #46 = Methodref          #210.#212     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #47 = Methodref          #210.#213     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-   #48 = Class              #214          // dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #49 = Methodref          #202.#215     // dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-   #50 = Methodref          #216.#217     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #51 = Methodref          #72.#218      // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.tokenUsage:(Ljava/util/List;Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/TokenUsage;\n-   #52 = InterfaceMethodref #189.#167     // java/util/Map.isEmpty:()Z\n-   #53 = InterfaceMethodref #189.#219     // java/util/Map.values:()Ljava/util/Collection;\n-   #54 = InterfaceMethodref #220.#221     // java/util/Collection.stream:()Ljava/util/stream/Stream;\n-   #55 = InvokeDynamic      #1:#188       // #1:apply:()Ljava/util/function/Function;\n-   #56 = InterfaceMethodref #224.#225     // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-   #57 = Methodref          #226.#227     // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-   #58 = InterfaceMethodref #224.#228     // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-   #59 = Class              #229          // java/util/List\n-   #60 = Methodref          #202.#230     // dev/langchain4j/data/message/AiMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n-   #61 = InterfaceMethodref #231.#232     // dev/langchain4j/model/Tokenizer.estimateTokenCountInText:(Ljava/lang/String;)I\n-   #62 = Class              #233          // dev/langchain4j/model/output/TokenUsage\n-   #63 = Methodref          #234.#235     // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-   #64 = Methodref          #62.#236      // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;)V\n-   #65 = InterfaceMethodref #59.#237      // java/util/List.iterator:()Ljava/util/Iterator;\n-   #66 = InterfaceMethodref #238.#239     // java/util/Iterator.hasNext:()Z\n-   #67 = InterfaceMethodref #238.#240     // java/util/Iterator.next:()Ljava/lang/Object;\n-   #68 = InterfaceMethodref #231.#241     // dev/langchain4j/model/Tokenizer.estimateTokenCountInForcefulToolExecutionRequest:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n-   #69 = InterfaceMethodref #231.#242     // dev/langchain4j/model/Tokenizer.estimateTokenCountInToolExecutionRequests:(Ljava/lang/Iterable;)I\n-   #70 = Methodref          #210.#243     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-   #71 = Methodref          #28.#244      // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.\"<init>\":(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1;)V\n-   #72 = Class              #245          // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder\n-   #73 = Class              #246          // java/lang/Object\n-   #74 = Class              #247          // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1\n-   #75 = Utf8               InnerClasses\n-   #76 = Utf8               ToolExecutionRequestBuilder\n-   #77 = Utf8               contentBuilder\n-   #78 = Utf8               Ljava/lang/StringBuffer;\n-   #79 = Utf8               toolNameBuilder\n-   #80 = Utf8               toolArgumentsBuilder\n-   #81 = Utf8               indexToToolExecutionRequestBuilder\n-   #82 = Utf8               Ljava/util/Map;\n-   #83 = Utf8               Signature\n-   #84 = Utf8               Ljava/util/Map<Ljava/lang/Integer;Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;>;\n-   #85 = Utf8               finishReason\n-   #86 = Utf8               Ljava/lang/String;\n-   #87 = Utf8               inputTokenCount\n-   #88 = Utf8               Ljava/lang/Integer;\n-   #89 = Utf8               <init>\n-   #90 = Utf8               (Ljava/lang/Integer;)V\n-   #91 = Utf8               Code\n-   #92 = Utf8               LineNumberTable\n-   #93 = Utf8               LocalVariableTable\n-   #94 = Utf8               this\n-   #95 = Utf8               Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder;\n-   #96 = Utf8               append\n-   #97 = Utf8               (Ldev/ai4j/openai4j/chat/ChatCompletionResponse;)V\n-   #98 = Utf8               functionCall\n-   #99 = Utf8               Ldev/ai4j/openai4j/chat/FunctionCall;\n-  #100 = Utf8               toolCall\n-  #101 = Utf8               Ldev/ai4j/openai4j/chat/ToolCall;\n-  #102 = Utf8               toolExecutionRequestBuilder\n-  #103 = Utf8               Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n-  #104 = Utf8               partialResponse\n-  #105 = Utf8               Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n-  #106 = Utf8               choices\n-  #107 = Utf8               Ljava/util/List;\n-  #108 = Utf8               chatCompletionChoice\n-  #109 = Utf8               Ldev/ai4j/openai4j/chat/ChatCompletionChoice;\n-  #110 = Utf8               delta\n-  #111 = Utf8               Ldev/ai4j/openai4j/chat/Delta;\n-  #112 = Utf8               content\n-  #113 = Utf8               LocalVariableTypeTable\n-  #114 = Utf8               Ljava/util/List<Ldev/ai4j/openai4j/chat/ChatCompletionChoice;>;\n-  #115 = Utf8               StackMapTable\n-  #116 = Class              #229          // java/util/List\n-  #117 = Class              #169          // dev/ai4j/openai4j/chat/ChatCompletionChoice\n-  #118 = Class              #248          // java/lang/String\n-  #119 = Class              #249          // dev/ai4j/openai4j/chat/Delta\n-  #120 = Class              #250          // dev/ai4j/openai4j/chat/FunctionCall\n-  #121 = Class              #181          // dev/ai4j/openai4j/chat/ToolCall\n-  #122 = Class              #191          // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder\n-  #123 = Utf8               (Ldev/ai4j/openai4j/completion/CompletionResponse;)V\n-  #124 = Utf8               Ldev/ai4j/openai4j/completion/CompletionResponse;\n-  #125 = Utf8               completionChoice\n-  #126 = Utf8               Ldev/ai4j/openai4j/completion/CompletionChoice;\n-  #127 = Utf8               token\n-  #128 = Utf8               Ljava/util/List<Ldev/ai4j/openai4j/completion/CompletionChoice;>;\n-  #129 = Class              #198          // dev/ai4j/openai4j/completion/CompletionChoice\n-  #130 = Utf8               build\n-  #131 = Utf8               (Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/Response;\n-  #132 = Utf8               toolExecutionRequest\n-  #133 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #134 = Utf8               toolExecutionRequests\n-  #135 = Utf8               tokenizer\n-  #136 = Utf8               Ldev/langchain4j/model/Tokenizer;\n-  #137 = Utf8               forcefulToolExecution\n-  #138 = Utf8               Z\n-  #139 = Utf8               toolName\n-  #140 = Utf8               Ljava/util/List<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;\n-  #141 = Utf8               (Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n-  #142 = Utf8               tokenUsage\n-  #143 = Utf8               (Ljava/lang/String;Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/output/TokenUsage;\n-  #144 = Utf8               outputTokenCount\n-  #145 = Utf8               I\n-  #146 = Utf8               (Ljava/util/List;Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/TokenUsage;\n-  #147 = Class              #251          // java/util/Iterator\n-  #148 = Utf8               (Ljava/util/List<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/TokenUsage;\n-  #149 = Utf8               lambda$build$1\n-  #150 = Utf8               (Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #151 = Utf8               it\n-  #152 = Utf8               lambda$append$0\n-  #153 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n-  #154 = Utf8               idx\n-  #155 = Utf8               SourceFile\n-  #156 = Utf8               OpenAiStreamingResponseBuilder.java\n-  #157 = NameAndType        #89:#252      // \"<init>\":()V\n-  #158 = Utf8               java/lang/StringBuffer\n-  #159 = NameAndType        #77:#78       // contentBuilder:Ljava/lang/StringBuffer;\n-  #160 = NameAndType        #79:#78       // toolNameBuilder:Ljava/lang/StringBuffer;\n-  #161 = NameAndType        #80:#78       // toolArgumentsBuilder:Ljava/lang/StringBuffer;\n-  #162 = Utf8               java/util/concurrent/ConcurrentHashMap\n-  #163 = NameAndType        #81:#82       // indexToToolExecutionRequestBuilder:Ljava/util/Map;\n-  #164 = NameAndType        #87:#88       // inputTokenCount:Ljava/lang/Integer;\n-  #165 = Class              #253          // dev/ai4j/openai4j/chat/ChatCompletionResponse\n-  #166 = NameAndType        #106:#254     // choices:()Ljava/util/List;\n-  #167 = NameAndType        #255:#256     // isEmpty:()Z\n-  #168 = NameAndType        #257:#258     // get:(I)Ljava/lang/Object;\n-  #169 = Utf8               dev/ai4j/openai4j/chat/ChatCompletionChoice\n-  #170 = NameAndType        #85:#259      // finishReason:()Ljava/lang/String;\n-  #171 = NameAndType        #85:#86       // finishReason:Ljava/lang/String;\n-  #172 = NameAndType        #110:#260     // delta:()Ldev/ai4j/openai4j/chat/Delta;\n-  #173 = Class              #249          // dev/ai4j/openai4j/chat/Delta\n-  #174 = NameAndType        #112:#259     // content:()Ljava/lang/String;\n-  #175 = NameAndType        #96:#261      // append:(Ljava/lang/String;)Ljava/lang/StringBuffer;\n-  #176 = NameAndType        #98:#262      // functionCall:()Ldev/ai4j/openai4j/chat/FunctionCall;\n-  #177 = Class              #250          // dev/ai4j/openai4j/chat/FunctionCall\n-  #178 = NameAndType        #263:#259     // name:()Ljava/lang/String;\n-  #179 = NameAndType        #264:#259     // arguments:()Ljava/lang/String;\n-  #180 = NameAndType        #265:#254     // toolCalls:()Ljava/util/List;\n-  #181 = Utf8               dev/ai4j/openai4j/chat/ToolCall\n-  #182 = NameAndType        #266:#267     // index:()Ljava/lang/Integer;\n-  #183 = Utf8               BootstrapMethods\n-  #184 = MethodHandle       6:#268        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #185 = MethodType         #269          //  (Ljava/lang/Object;)Ljava/lang/Object;\n-  #186 = MethodHandle       6:#270        // REF_invokeStatic dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.lambda$append$0:(Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n-  #187 = MethodType         #153          //  (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n-  #188 = NameAndType        #271:#272     // apply:()Ljava/util/function/Function;\n-  #189 = Class              #273          // java/util/Map\n-  #190 = NameAndType        #274:#275     // computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;\n-  #191 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder\n-  #192 = NameAndType        #276:#259     // id:()Ljava/lang/String;\n-  #193 = NameAndType        #277:#278     // access$000:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n-  #194 = NameAndType        #279:#262     // function:()Ldev/ai4j/openai4j/chat/FunctionCall;\n-  #195 = NameAndType        #280:#278     // access$100:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n-  #196 = NameAndType        #281:#278     // access$200:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n-  #197 = Class              #282          // dev/ai4j/openai4j/completion/CompletionResponse\n-  #198 = Utf8               dev/ai4j/openai4j/completion/CompletionChoice\n-  #199 = NameAndType        #283:#259     // text:()Ljava/lang/String;\n-  #200 = NameAndType        #284:#259     // toString:()Ljava/lang/String;\n-  #201 = Class              #248          // java/lang/String\n-  #202 = Class              #285          // dev/langchain4j/data/message/AiMessage\n-  #203 = NameAndType        #286:#287     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #204 = NameAndType        #142:#143     // tokenUsage:(Ljava/lang/String;Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/output/TokenUsage;\n-  #205 = Class              #288          // dev/langchain4j/model/openai/InternalOpenAiHelper\n-  #206 = NameAndType        #289:#290     // finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n-  #207 = Class              #291          // dev/langchain4j/model/output/Response\n-  #208 = NameAndType        #286:#292     // from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-  #209 = NameAndType        #293:#295     // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #210 = Class              #296          // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #211 = NameAndType        #263:#297     // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #212 = NameAndType        #264:#297     // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #213 = NameAndType        #130:#298     // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #214 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n-  #215 = NameAndType        #286:#299     // from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-  #216 = Class              #300          // java/util/Collections\n-  #217 = NameAndType        #301:#302     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #218 = NameAndType        #142:#146     // tokenUsage:(Ljava/util/List;Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/TokenUsage;\n-  #219 = NameAndType        #303:#304     // values:()Ljava/util/Collection;\n-  #220 = Class              #305          // java/util/Collection\n-  #221 = NameAndType        #306:#307     // stream:()Ljava/util/stream/Stream;\n-  #222 = MethodHandle       6:#308        // REF_invokeStatic dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.lambda$build$1:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #223 = MethodType         #150          //  (Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #224 = Class              #309          // java/util/stream/Stream\n-  #225 = NameAndType        #310:#311     // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-  #226 = Class              #312          // java/util/stream/Collectors\n-  #227 = NameAndType        #313:#314     // toList:()Ljava/util/stream/Collector;\n-  #228 = NameAndType        #315:#316     // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-  #229 = Utf8               java/util/List\n-  #230 = NameAndType        #286:#317     // from:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n-  #231 = Class              #318          // dev/langchain4j/model/Tokenizer\n-  #232 = NameAndType        #319:#320     // estimateTokenCountInText:(Ljava/lang/String;)I\n-  #233 = Utf8               dev/langchain4j/model/output/TokenUsage\n-  #234 = Class              #321          // java/lang/Integer\n-  #235 = NameAndType        #322:#323     // valueOf:(I)Ljava/lang/Integer;\n-  #236 = NameAndType        #89:#324      // \"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;)V\n-  #237 = NameAndType        #325:#326     // iterator:()Ljava/util/Iterator;\n-  #238 = Class              #251          // java/util/Iterator\n-  #239 = NameAndType        #327:#256     // hasNext:()Z\n-  #240 = NameAndType        #328:#329     // next:()Ljava/lang/Object;\n-  #241 = NameAndType        #330:#331     // estimateTokenCountInForcefulToolExecutionRequest:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n-  #242 = NameAndType        #332:#333     // estimateTokenCountInToolExecutionRequests:(Ljava/lang/Iterable;)I\n-  #243 = NameAndType        #276:#297     // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #244 = NameAndType        #89:#334      // \"<init>\":(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1;)V\n-  #245 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder\n-  #246 = Utf8               java/lang/Object\n-  #247 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1\n-  #248 = Utf8               java/lang/String\n-  #249 = Utf8               dev/ai4j/openai4j/chat/Delta\n-  #250 = Utf8               dev/ai4j/openai4j/chat/FunctionCall\n-  #251 = Utf8               java/util/Iterator\n-  #252 = Utf8               ()V\n-  #253 = Utf8               dev/ai4j/openai4j/chat/ChatCompletionResponse\n-  #254 = Utf8               ()Ljava/util/List;\n-  #255 = Utf8               isEmpty\n-  #256 = Utf8               ()Z\n-  #257 = Utf8               get\n-  #258 = Utf8               (I)Ljava/lang/Object;\n-  #259 = Utf8               ()Ljava/lang/String;\n-  #260 = Utf8               ()Ldev/ai4j/openai4j/chat/Delta;\n-  #261 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuffer;\n-  #262 = Utf8               ()Ldev/ai4j/openai4j/chat/FunctionCall;\n-  #263 = Utf8               name\n-  #264 = Utf8               arguments\n-  #265 = Utf8               toolCalls\n-  #266 = Utf8               index\n-  #267 = Utf8               ()Ljava/lang/Integer;\n-  #268 = Methodref          #335.#336     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #269 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #270 = Methodref          #72.#337      // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.lambda$append$0:(Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n-  #271 = Utf8               apply\n-  #272 = Utf8               ()Ljava/util/function/Function;\n-  #273 = Utf8               java/util/Map\n-  #274 = Utf8               computeIfAbsent\n-  #275 = Utf8               (Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;\n-  #276 = Utf8               id\n-  #277 = Utf8               access$000\n-  #278 = Utf8               (Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n-  #279 = Utf8               function\n-  #280 = Utf8               access$100\n-  #281 = Utf8               access$200\n-  #282 = Utf8               dev/ai4j/openai4j/completion/CompletionResponse\n-  #283 = Utf8               text\n-  #284 = Utf8               toString\n-  #285 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #286 = Utf8               from\n-  #287 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n-  #288 = Utf8               dev/langchain4j/model/openai/InternalOpenAiHelper\n-  #289 = Utf8               finishReasonFrom\n-  #290 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n-  #291 = Utf8               dev/langchain4j/model/output/Response\n-  #292 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n-  #293 = Utf8               builder\n-  #294 = Utf8               Builder\n-  #295 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #296 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n-  #297 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-  #298 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #299 = Utf8               ([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n-  #300 = Utf8               java/util/Collections\n-  #301 = Utf8               singletonList\n-  #302 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #303 = Utf8               values\n-  #304 = Utf8               ()Ljava/util/Collection;\n-  #305 = Utf8               java/util/Collection\n-  #306 = Utf8               stream\n-  #307 = Utf8               ()Ljava/util/stream/Stream;\n-  #308 = Methodref          #72.#338      // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.lambda$build$1:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #309 = Utf8               java/util/stream/Stream\n-  #310 = Utf8               map\n-  #311 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-  #312 = Utf8               java/util/stream/Collectors\n-  #313 = Utf8               toList\n-  #314 = Utf8               ()Ljava/util/stream/Collector;\n-  #315 = Utf8               collect\n-  #316 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n-  #317 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n-  #318 = Utf8               dev/langchain4j/model/Tokenizer\n-  #319 = Utf8               estimateTokenCountInText\n-  #320 = Utf8               (Ljava/lang/String;)I\n-  #321 = Utf8               java/lang/Integer\n-  #322 = Utf8               valueOf\n-  #323 = Utf8               (I)Ljava/lang/Integer;\n-  #324 = Utf8               (Ljava/lang/Integer;Ljava/lang/Integer;)V\n-  #325 = Utf8               iterator\n-  #326 = Utf8               ()Ljava/util/Iterator;\n-  #327 = Utf8               hasNext\n-  #328 = Utf8               next\n-  #329 = Utf8               ()Ljava/lang/Object;\n-  #330 = Utf8               estimateTokenCountInForcefulToolExecutionRequest\n-  #331 = Utf8               (Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n-  #332 = Utf8               estimateTokenCountInToolExecutionRequests\n-  #333 = Utf8               (Ljava/lang/Iterable;)I\n-  #334 = Utf8               (Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1;)V\n-  #335 = Class              #339          // java/lang/invoke/LambdaMetafactory\n-  #336 = NameAndType        #340:#343     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #337 = NameAndType        #152:#153     // lambda$append$0:(Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n-  #338 = NameAndType        #149:#150     // lambda$build$1:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #339 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #340 = Utf8               metafactory\n-  #341 = Class              #345          // java/lang/invoke/MethodHandles$Lookup\n-  #342 = Utf8               Lookup\n-  #343 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #344 = Class              #346          // java/lang/invoke/MethodHandles\n-  #345 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #346 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = Class              #8            // java/lang/StringBuffer\n+    #8 = Utf8               java/lang/StringBuffer\n+    #9 = Methodref          #7.#3         // java/lang/StringBuffer.\"<init>\":()V\n+   #10 = Fieldref           #11.#12       // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.contentBuilder:Ljava/lang/StringBuffer;\n+   #11 = Class              #13           // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder\n+   #12 = NameAndType        #14:#15       // contentBuilder:Ljava/lang/StringBuffer;\n+   #13 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder\n+   #14 = Utf8               contentBuilder\n+   #15 = Utf8               Ljava/lang/StringBuffer;\n+   #16 = Fieldref           #11.#17       // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.toolNameBuilder:Ljava/lang/StringBuffer;\n+   #17 = NameAndType        #18:#15       // toolNameBuilder:Ljava/lang/StringBuffer;\n+   #18 = Utf8               toolNameBuilder\n+   #19 = Fieldref           #11.#20       // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.toolArgumentsBuilder:Ljava/lang/StringBuffer;\n+   #20 = NameAndType        #21:#15       // toolArgumentsBuilder:Ljava/lang/StringBuffer;\n+   #21 = Utf8               toolArgumentsBuilder\n+   #22 = Class              #23           // java/util/concurrent/ConcurrentHashMap\n+   #23 = Utf8               java/util/concurrent/ConcurrentHashMap\n+   #24 = Methodref          #22.#3        // java/util/concurrent/ConcurrentHashMap.\"<init>\":()V\n+   #25 = Fieldref           #11.#26       // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.indexToToolExecutionRequestBuilder:Ljava/util/Map;\n+   #26 = NameAndType        #27:#28       // indexToToolExecutionRequestBuilder:Ljava/util/Map;\n+   #27 = Utf8               indexToToolExecutionRequestBuilder\n+   #28 = Utf8               Ljava/util/Map;\n+   #29 = Fieldref           #11.#30       // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.inputTokenCount:Ljava/lang/Integer;\n+   #30 = NameAndType        #31:#32       // inputTokenCount:Ljava/lang/Integer;\n+   #31 = Utf8               inputTokenCount\n+   #32 = Utf8               Ljava/lang/Integer;\n+   #33 = Methodref          #34.#35       // dev/ai4j/openai4j/chat/ChatCompletionResponse.choices:()Ljava/util/List;\n+   #34 = Class              #36           // dev/ai4j/openai4j/chat/ChatCompletionResponse\n+   #35 = NameAndType        #37:#38       // choices:()Ljava/util/List;\n+   #36 = Utf8               dev/ai4j/openai4j/chat/ChatCompletionResponse\n+   #37 = Utf8               choices\n+   #38 = Utf8               ()Ljava/util/List;\n+   #39 = InterfaceMethodref #40.#41       // java/util/List.isEmpty:()Z\n+   #40 = Class              #42           // java/util/List\n+   #41 = NameAndType        #43:#44       // isEmpty:()Z\n+   #42 = Utf8               java/util/List\n+   #43 = Utf8               isEmpty\n+   #44 = Utf8               ()Z\n+   #45 = InterfaceMethodref #40.#46       // java/util/List.get:(I)Ljava/lang/Object;\n+   #46 = NameAndType        #47:#48       // get:(I)Ljava/lang/Object;\n+   #47 = Utf8               get\n+   #48 = Utf8               (I)Ljava/lang/Object;\n+   #49 = Class              #50           // dev/ai4j/openai4j/chat/ChatCompletionChoice\n+   #50 = Utf8               dev/ai4j/openai4j/chat/ChatCompletionChoice\n+   #51 = Methodref          #49.#52       // dev/ai4j/openai4j/chat/ChatCompletionChoice.finishReason:()Ljava/lang/String;\n+   #52 = NameAndType        #53:#54       // finishReason:()Ljava/lang/String;\n+   #53 = Utf8               finishReason\n+   #54 = Utf8               ()Ljava/lang/String;\n+   #55 = Fieldref           #11.#56       // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.finishReason:Ljava/lang/String;\n+   #56 = NameAndType        #53:#57       // finishReason:Ljava/lang/String;\n+   #57 = Utf8               Ljava/lang/String;\n+   #58 = Methodref          #49.#59       // dev/ai4j/openai4j/chat/ChatCompletionChoice.delta:()Ldev/ai4j/openai4j/chat/Delta;\n+   #59 = NameAndType        #60:#61       // delta:()Ldev/ai4j/openai4j/chat/Delta;\n+   #60 = Utf8               delta\n+   #61 = Utf8               ()Ldev/ai4j/openai4j/chat/Delta;\n+   #62 = Methodref          #63.#64       // dev/ai4j/openai4j/chat/Delta.content:()Ljava/lang/String;\n+   #63 = Class              #65           // dev/ai4j/openai4j/chat/Delta\n+   #64 = NameAndType        #66:#54       // content:()Ljava/lang/String;\n+   #65 = Utf8               dev/ai4j/openai4j/chat/Delta\n+   #66 = Utf8               content\n+   #67 = Methodref          #7.#68        // java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;\n+   #68 = NameAndType        #69:#70       // append:(Ljava/lang/String;)Ljava/lang/StringBuffer;\n+   #69 = Utf8               append\n+   #70 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuffer;\n+   #71 = Methodref          #63.#72       // dev/ai4j/openai4j/chat/Delta.functionCall:()Ldev/ai4j/openai4j/chat/FunctionCall;\n+   #72 = NameAndType        #73:#74       // functionCall:()Ldev/ai4j/openai4j/chat/FunctionCall;\n+   #73 = Utf8               functionCall\n+   #74 = Utf8               ()Ldev/ai4j/openai4j/chat/FunctionCall;\n+   #75 = Methodref          #76.#77       // dev/ai4j/openai4j/chat/FunctionCall.name:()Ljava/lang/String;\n+   #76 = Class              #78           // dev/ai4j/openai4j/chat/FunctionCall\n+   #77 = NameAndType        #79:#54       // name:()Ljava/lang/String;\n+   #78 = Utf8               dev/ai4j/openai4j/chat/FunctionCall\n+   #79 = Utf8               name\n+   #80 = Methodref          #76.#81       // dev/ai4j/openai4j/chat/FunctionCall.arguments:()Ljava/lang/String;\n+   #81 = NameAndType        #82:#54       // arguments:()Ljava/lang/String;\n+   #82 = Utf8               arguments\n+   #83 = Methodref          #63.#84       // dev/ai4j/openai4j/chat/Delta.toolCalls:()Ljava/util/List;\n+   #84 = NameAndType        #85:#38       // toolCalls:()Ljava/util/List;\n+   #85 = Utf8               toolCalls\n+   #86 = Class              #87           // dev/ai4j/openai4j/chat/ToolCall\n+   #87 = Utf8               dev/ai4j/openai4j/chat/ToolCall\n+   #88 = Methodref          #86.#89       // dev/ai4j/openai4j/chat/ToolCall.index:()Ljava/lang/Integer;\n+   #89 = NameAndType        #90:#91       // index:()Ljava/lang/Integer;\n+   #90 = Utf8               index\n+   #91 = Utf8               ()Ljava/lang/Integer;\n+   #92 = InvokeDynamic      #0:#93        // #0:apply:()Ljava/util/function/Function;\n+   #93 = NameAndType        #94:#95       // apply:()Ljava/util/function/Function;\n+   #94 = Utf8               apply\n+   #95 = Utf8               ()Ljava/util/function/Function;\n+   #96 = InterfaceMethodref #97.#98       // java/util/Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;\n+   #97 = Class              #99           // java/util/Map\n+   #98 = NameAndType        #100:#101     // computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;\n+   #99 = Utf8               java/util/Map\n+  #100 = Utf8               computeIfAbsent\n+  #101 = Utf8               (Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;\n+  #102 = Class              #103          // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder\n+  #103 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder\n+  #104 = Methodref          #86.#105      // dev/ai4j/openai4j/chat/ToolCall.id:()Ljava/lang/String;\n+  #105 = NameAndType        #106:#54      // id:()Ljava/lang/String;\n+  #106 = Utf8               id\n+  #107 = Methodref          #102.#108     // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.access$000:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n+  #108 = NameAndType        #109:#110     // access$000:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n+  #109 = Utf8               access$000\n+  #110 = Utf8               (Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n+  #111 = Methodref          #86.#112      // dev/ai4j/openai4j/chat/ToolCall.function:()Ldev/ai4j/openai4j/chat/FunctionCall;\n+  #112 = NameAndType        #113:#74      // function:()Ldev/ai4j/openai4j/chat/FunctionCall;\n+  #113 = Utf8               function\n+  #114 = Methodref          #102.#115     // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.access$100:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n+  #115 = NameAndType        #116:#110     // access$100:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n+  #116 = Utf8               access$100\n+  #117 = Methodref          #102.#118     // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.access$200:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n+  #118 = NameAndType        #119:#110     // access$200:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n+  #119 = Utf8               access$200\n+  #120 = Methodref          #121.#35      // dev/ai4j/openai4j/completion/CompletionResponse.choices:()Ljava/util/List;\n+  #121 = Class              #122          // dev/ai4j/openai4j/completion/CompletionResponse\n+  #122 = Utf8               dev/ai4j/openai4j/completion/CompletionResponse\n+  #123 = Class              #124          // dev/ai4j/openai4j/completion/CompletionChoice\n+  #124 = Utf8               dev/ai4j/openai4j/completion/CompletionChoice\n+  #125 = Methodref          #123.#52      // dev/ai4j/openai4j/completion/CompletionChoice.finishReason:()Ljava/lang/String;\n+  #126 = Methodref          #123.#127     // dev/ai4j/openai4j/completion/CompletionChoice.text:()Ljava/lang/String;\n+  #127 = NameAndType        #128:#54      // text:()Ljava/lang/String;\n+  #128 = Utf8               text\n+  #129 = Methodref          #7.#130       // java/lang/StringBuffer.toString:()Ljava/lang/String;\n+  #130 = NameAndType        #131:#54      // toString:()Ljava/lang/String;\n+  #131 = Utf8               toString\n+  #132 = Methodref          #133.#41      // java/lang/String.isEmpty:()Z\n+  #133 = Class              #134          // java/lang/String\n+  #134 = Utf8               java/lang/String\n+  #135 = Methodref          #136.#137     // dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+  #136 = Class              #138          // dev/langchain4j/data/message/AiMessage\n+  #137 = NameAndType        #139:#140     // from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+  #138 = Utf8               dev/langchain4j/data/message/AiMessage\n+  #139 = Utf8               from\n+  #140 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+  #141 = Methodref          #11.#142      // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.tokenUsage:(Ljava/lang/String;Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/output/TokenUsage;\n+  #142 = NameAndType        #143:#144     // tokenUsage:(Ljava/lang/String;Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/output/TokenUsage;\n+  #143 = Utf8               tokenUsage\n+  #144 = Utf8               (Ljava/lang/String;Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/output/TokenUsage;\n+  #145 = Methodref          #146.#147     // dev/langchain4j/model/openai/InternalOpenAiHelper.finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n+  #146 = Class              #148          // dev/langchain4j/model/openai/InternalOpenAiHelper\n+  #147 = NameAndType        #149:#150     // finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n+  #148 = Utf8               dev/langchain4j/model/openai/InternalOpenAiHelper\n+  #149 = Utf8               finishReasonFrom\n+  #150 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n+  #151 = Methodref          #152.#153     // dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+  #152 = Class              #154          // dev/langchain4j/model/output/Response\n+  #153 = NameAndType        #139:#155     // from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+  #154 = Utf8               dev/langchain4j/model/output/Response\n+  #155 = Utf8               (Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+  #156 = Methodref          #157.#158     // dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #157 = Class              #159          // dev/langchain4j/agent/tool/ToolExecutionRequest\n+  #158 = NameAndType        #160:#161     // builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #159 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n+  #160 = Utf8               builder\n+  #161 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #162 = Methodref          #163.#164     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #163 = Class              #165          // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+  #164 = NameAndType        #79:#166      // name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #165 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest$Builder\n+  #166 = Utf8               (Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #167 = Methodref          #163.#168     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #168 = NameAndType        #82:#166      // arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #169 = Methodref          #163.#170     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #170 = NameAndType        #171:#172     // build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #171 = Utf8               build\n+  #172 = Utf8               ()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #173 = Methodref          #136.#174     // dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #174 = NameAndType        #139:#175     // from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #175 = Utf8               ([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+  #176 = Methodref          #177.#178     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #177 = Class              #179          // java/util/Collections\n+  #178 = NameAndType        #180:#181     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #179 = Utf8               java/util/Collections\n+  #180 = Utf8               singletonList\n+  #181 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+  #182 = Methodref          #11.#183      // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.tokenUsage:(Ljava/util/List;Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/TokenUsage;\n+  #183 = NameAndType        #143:#184     // tokenUsage:(Ljava/util/List;Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/TokenUsage;\n+  #184 = Utf8               (Ljava/util/List;Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/TokenUsage;\n+  #185 = InterfaceMethodref #97.#41       // java/util/Map.isEmpty:()Z\n+  #186 = InterfaceMethodref #97.#187      // java/util/Map.values:()Ljava/util/Collection;\n+  #187 = NameAndType        #188:#189     // values:()Ljava/util/Collection;\n+  #188 = Utf8               values\n+  #189 = Utf8               ()Ljava/util/Collection;\n+  #190 = InterfaceMethodref #191.#192     // java/util/Collection.stream:()Ljava/util/stream/Stream;\n+  #191 = Class              #193          // java/util/Collection\n+  #192 = NameAndType        #194:#195     // stream:()Ljava/util/stream/Stream;\n+  #193 = Utf8               java/util/Collection\n+  #194 = Utf8               stream\n+  #195 = Utf8               ()Ljava/util/stream/Stream;\n+  #196 = InvokeDynamic      #1:#93        // #1:apply:()Ljava/util/function/Function;\n+  #197 = InterfaceMethodref #198.#199     // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+  #198 = Class              #200          // java/util/stream/Stream\n+  #199 = NameAndType        #201:#202     // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+  #200 = Utf8               java/util/stream/Stream\n+  #201 = Utf8               map\n+  #202 = Utf8               (Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+  #203 = Methodref          #204.#205     // java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+  #204 = Class              #206          // java/util/stream/Collectors\n+  #205 = NameAndType        #207:#208     // toList:()Ljava/util/stream/Collector;\n+  #206 = Utf8               java/util/stream/Collectors\n+  #207 = Utf8               toList\n+  #208 = Utf8               ()Ljava/util/stream/Collector;\n+  #209 = InterfaceMethodref #198.#210     // java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #210 = NameAndType        #211:#212     // collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #211 = Utf8               collect\n+  #212 = Utf8               (Ljava/util/stream/Collector;)Ljava/lang/Object;\n+  #213 = Methodref          #136.#214     // dev/langchain4j/data/message/AiMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+  #214 = NameAndType        #139:#215     // from:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+  #215 = Utf8               (Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+  #216 = InterfaceMethodref #217.#218     // dev/langchain4j/model/Tokenizer.estimateTokenCountInText:(Ljava/lang/String;)I\n+  #217 = Class              #219          // dev/langchain4j/model/Tokenizer\n+  #218 = NameAndType        #220:#221     // estimateTokenCountInText:(Ljava/lang/String;)I\n+  #219 = Utf8               dev/langchain4j/model/Tokenizer\n+  #220 = Utf8               estimateTokenCountInText\n+  #221 = Utf8               (Ljava/lang/String;)I\n+  #222 = Class              #223          // dev/langchain4j/model/output/TokenUsage\n+  #223 = Utf8               dev/langchain4j/model/output/TokenUsage\n+  #224 = Methodref          #225.#226     // java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+  #225 = Class              #227          // java/lang/Integer\n+  #226 = NameAndType        #228:#229     // valueOf:(I)Ljava/lang/Integer;\n+  #227 = Utf8               java/lang/Integer\n+  #228 = Utf8               valueOf\n+  #229 = Utf8               (I)Ljava/lang/Integer;\n+  #230 = Methodref          #222.#231     // dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;)V\n+  #231 = NameAndType        #5:#232       // \"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;)V\n+  #232 = Utf8               (Ljava/lang/Integer;Ljava/lang/Integer;)V\n+  #233 = InterfaceMethodref #40.#234      // java/util/List.iterator:()Ljava/util/Iterator;\n+  #234 = NameAndType        #235:#236     // iterator:()Ljava/util/Iterator;\n+  #235 = Utf8               iterator\n+  #236 = Utf8               ()Ljava/util/Iterator;\n+  #237 = InterfaceMethodref #238.#239     // java/util/Iterator.hasNext:()Z\n+  #238 = Class              #240          // java/util/Iterator\n+  #239 = NameAndType        #241:#44      // hasNext:()Z\n+  #240 = Utf8               java/util/Iterator\n+  #241 = Utf8               hasNext\n+  #242 = InterfaceMethodref #238.#243     // java/util/Iterator.next:()Ljava/lang/Object;\n+  #243 = NameAndType        #244:#245     // next:()Ljava/lang/Object;\n+  #244 = Utf8               next\n+  #245 = Utf8               ()Ljava/lang/Object;\n+  #246 = InterfaceMethodref #217.#247     // dev/langchain4j/model/Tokenizer.estimateTokenCountInForcefulToolExecutionRequest:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n+  #247 = NameAndType        #248:#249     // estimateTokenCountInForcefulToolExecutionRequest:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n+  #248 = Utf8               estimateTokenCountInForcefulToolExecutionRequest\n+  #249 = Utf8               (Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n+  #250 = InterfaceMethodref #217.#251     // dev/langchain4j/model/Tokenizer.estimateTokenCountInToolExecutionRequests:(Ljava/lang/Iterable;)I\n+  #251 = NameAndType        #252:#253     // estimateTokenCountInToolExecutionRequests:(Ljava/lang/Iterable;)I\n+  #252 = Utf8               estimateTokenCountInToolExecutionRequests\n+  #253 = Utf8               (Ljava/lang/Iterable;)I\n+  #254 = Methodref          #163.#255     // dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #255 = NameAndType        #106:#166     // id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+  #256 = Methodref          #102.#257     // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.\"<init>\":(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1;)V\n+  #257 = NameAndType        #5:#258       // \"<init>\":(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1;)V\n+  #258 = Utf8               (Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1;)V\n+  #259 = Utf8               Signature\n+  #260 = Utf8               Ljava/util/Map<Ljava/lang/Integer;Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;>;\n+  #261 = Utf8               (Ljava/lang/Integer;)V\n+  #262 = Utf8               Code\n+  #263 = Utf8               LineNumberTable\n+  #264 = Utf8               LocalVariableTable\n+  #265 = Utf8               this\n+  #266 = Utf8               Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder;\n+  #267 = Utf8               (Ldev/ai4j/openai4j/chat/ChatCompletionResponse;)V\n+  #268 = Utf8               Ldev/ai4j/openai4j/chat/FunctionCall;\n+  #269 = Utf8               toolCall\n+  #270 = Utf8               Ldev/ai4j/openai4j/chat/ToolCall;\n+  #271 = Utf8               toolExecutionRequestBuilder\n+  #272 = Utf8               Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n+  #273 = Utf8               partialResponse\n+  #274 = Utf8               Ldev/ai4j/openai4j/chat/ChatCompletionResponse;\n+  #275 = Utf8               Ljava/util/List;\n+  #276 = Utf8               chatCompletionChoice\n+  #277 = Utf8               Ldev/ai4j/openai4j/chat/ChatCompletionChoice;\n+  #278 = Utf8               Ldev/ai4j/openai4j/chat/Delta;\n+  #279 = Utf8               LocalVariableTypeTable\n+  #280 = Utf8               Ljava/util/List<Ldev/ai4j/openai4j/chat/ChatCompletionChoice;>;\n+  #281 = Utf8               StackMapTable\n+  #282 = Utf8               (Ldev/ai4j/openai4j/completion/CompletionResponse;)V\n+  #283 = Utf8               Ldev/ai4j/openai4j/completion/CompletionResponse;\n+  #284 = Utf8               completionChoice\n+  #285 = Utf8               Ldev/ai4j/openai4j/completion/CompletionChoice;\n+  #286 = Utf8               token\n+  #287 = Utf8               Ljava/util/List<Ldev/ai4j/openai4j/completion/CompletionChoice;>;\n+  #288 = Utf8               (Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/Response;\n+  #289 = Utf8               toolExecutionRequest\n+  #290 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #291 = Utf8               toolExecutionRequests\n+  #292 = Utf8               tokenizer\n+  #293 = Utf8               Ldev/langchain4j/model/Tokenizer;\n+  #294 = Utf8               forcefulToolExecution\n+  #295 = Utf8               Z\n+  #296 = Utf8               toolName\n+  #297 = Utf8               Ljava/util/List<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;\n+  #298 = Utf8               (Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+  #299 = Utf8               outputTokenCount\n+  #300 = Utf8               I\n+  #301 = Utf8               (Ljava/util/List<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/TokenUsage;\n+  #302 = Utf8               lambda$build$1\n+  #303 = Utf8               (Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #304 = Utf8               it\n+  #305 = Utf8               lambda$append$0\n+  #306 = Utf8               (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n+  #307 = Utf8               idx\n+  #308 = Utf8               SourceFile\n+  #309 = Utf8               OpenAiStreamingResponseBuilder.java\n+  #310 = Utf8               BootstrapMethods\n+  #311 = MethodHandle       6:#312        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #312 = Methodref          #313.#314     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #313 = Class              #315          // java/lang/invoke/LambdaMetafactory\n+  #314 = NameAndType        #316:#317     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #315 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #316 = Utf8               metafactory\n+  #317 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #318 = MethodType         #319          //  (Ljava/lang/Object;)Ljava/lang/Object;\n+  #319 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #320 = MethodHandle       6:#321        // REF_invokeStatic dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.lambda$append$0:(Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n+  #321 = Methodref          #11.#322      // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.lambda$append$0:(Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n+  #322 = NameAndType        #305:#306     // lambda$append$0:(Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n+  #323 = MethodType         #306          //  (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n+  #324 = MethodHandle       6:#325        // REF_invokeStatic dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.lambda$build$1:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #325 = Methodref          #11.#326      // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.lambda$build$1:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #326 = NameAndType        #302:#303     // lambda$build$1:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #327 = MethodType         #303          //  (Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #328 = Utf8               InnerClasses\n+  #329 = Utf8               ToolExecutionRequestBuilder\n+  #330 = Utf8               Builder\n+  #331 = Class              #332          // dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1\n+  #332 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1\n+  #333 = Class              #334          // java/lang/invoke/MethodHandles$Lookup\n+  #334 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #335 = Class              #336          // java/lang/invoke/MethodHandles\n+  #336 = Utf8               java/lang/invoke/MethodHandles\n+  #337 = Utf8               Lookup\n {\n   private final java.lang.StringBuffer contentBuilder;\n     descriptor: Ljava/lang/StringBuffer;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n \n   private final java.lang.StringBuffer toolNameBuilder;\n     descriptor: Ljava/lang/StringBuffer;\n@@ -366,15 +357,15 @@\n   private final java.lang.StringBuffer toolArgumentsBuilder;\n     descriptor: Ljava/lang/StringBuffer;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n \n   private final java.util.Map<java.lang.Integer, dev.langchain4j.model.openai.OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder> indexToToolExecutionRequestBuilder;\n     descriptor: Ljava/util/Map;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n-    Signature: #84                          // Ljava/util/Map<Ljava/lang/Integer;Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;>;\n+    Signature: #260                         // Ljava/util/Map<Ljava/lang/Integer;Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;>;\n \n   private volatile java.lang.String finishReason;\n     descriptor: Ljava/lang/String;\n     flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE\n \n   private final java.lang.Integer inputTokenCount;\n     descriptor: Ljava/lang/Integer;\n@@ -384,36 +375,36 @@\n     descriptor: (Ljava/lang/Integer;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=2\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n-         5: new           #2                  // class java/lang/StringBuffer\n+         5: new           #7                  // class java/lang/StringBuffer\n          8: dup\n-         9: invokespecial #3                  // Method java/lang/StringBuffer.\"<init>\":()V\n-        12: putfield      #4                  // Field contentBuilder:Ljava/lang/StringBuffer;\n+         9: invokespecial #9                  // Method java/lang/StringBuffer.\"<init>\":()V\n+        12: putfield      #10                 // Field contentBuilder:Ljava/lang/StringBuffer;\n         15: aload_0\n-        16: new           #2                  // class java/lang/StringBuffer\n+        16: new           #7                  // class java/lang/StringBuffer\n         19: dup\n-        20: invokespecial #3                  // Method java/lang/StringBuffer.\"<init>\":()V\n-        23: putfield      #5                  // Field toolNameBuilder:Ljava/lang/StringBuffer;\n+        20: invokespecial #9                  // Method java/lang/StringBuffer.\"<init>\":()V\n+        23: putfield      #16                 // Field toolNameBuilder:Ljava/lang/StringBuffer;\n         26: aload_0\n-        27: new           #2                  // class java/lang/StringBuffer\n+        27: new           #7                  // class java/lang/StringBuffer\n         30: dup\n-        31: invokespecial #3                  // Method java/lang/StringBuffer.\"<init>\":()V\n-        34: putfield      #6                  // Field toolArgumentsBuilder:Ljava/lang/StringBuffer;\n+        31: invokespecial #9                  // Method java/lang/StringBuffer.\"<init>\":()V\n+        34: putfield      #19                 // Field toolArgumentsBuilder:Ljava/lang/StringBuffer;\n         37: aload_0\n-        38: new           #7                  // class java/util/concurrent/ConcurrentHashMap\n+        38: new           #22                 // class java/util/concurrent/ConcurrentHashMap\n         41: dup\n-        42: invokespecial #8                  // Method java/util/concurrent/ConcurrentHashMap.\"<init>\":()V\n-        45: putfield      #9                  // Field indexToToolExecutionRequestBuilder:Ljava/util/Map;\n+        42: invokespecial #24                 // Method java/util/concurrent/ConcurrentHashMap.\"<init>\":()V\n+        45: putfield      #25                 // Field indexToToolExecutionRequestBuilder:Ljava/util/Map;\n         48: aload_0\n         49: aload_1\n-        50: putfield      #10                 // Field inputTokenCount:Ljava/lang/Integer;\n+        50: putfield      #29                 // Field inputTokenCount:Ljava/lang/Integer;\n         53: return\n       LineNumberTable:\n         line 38: 0\n         line 27: 4\n         line 29: 15\n         line 30: 26\n         line 32: 37\n@@ -429,129 +420,129 @@\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=10, args_size=2\n          0: aload_1\n          1: ifnonnull     5\n          4: return\n          5: aload_1\n-         6: invokevirtual #11                 // Method dev/ai4j/openai4j/chat/ChatCompletionResponse.choices:()Ljava/util/List;\n+         6: invokevirtual #33                 // Method dev/ai4j/openai4j/chat/ChatCompletionResponse.choices:()Ljava/util/List;\n          9: astore_2\n         10: aload_2\n         11: ifnull        23\n         14: aload_2\n-        15: invokeinterface #12,  1           // InterfaceMethod java/util/List.isEmpty:()Z\n+        15: invokeinterface #39,  1           // InterfaceMethod java/util/List.isEmpty:()Z\n         20: ifeq          24\n         23: return\n         24: aload_2\n         25: iconst_0\n-        26: invokeinterface #13,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-        31: checkcast     #14                 // class dev/ai4j/openai4j/chat/ChatCompletionChoice\n+        26: invokeinterface #45,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+        31: checkcast     #49                 // class dev/ai4j/openai4j/chat/ChatCompletionChoice\n         34: astore_3\n         35: aload_3\n         36: ifnonnull     40\n         39: return\n         40: aload_3\n-        41: invokevirtual #15                 // Method dev/ai4j/openai4j/chat/ChatCompletionChoice.finishReason:()Ljava/lang/String;\n+        41: invokevirtual #51                 // Method dev/ai4j/openai4j/chat/ChatCompletionChoice.finishReason:()Ljava/lang/String;\n         44: astore        4\n         46: aload         4\n         48: ifnull        57\n         51: aload_0\n         52: aload         4\n-        54: putfield      #16                 // Field finishReason:Ljava/lang/String;\n+        54: putfield      #55                 // Field finishReason:Ljava/lang/String;\n         57: aload_3\n-        58: invokevirtual #17                 // Method dev/ai4j/openai4j/chat/ChatCompletionChoice.delta:()Ldev/ai4j/openai4j/chat/Delta;\n+        58: invokevirtual #58                 // Method dev/ai4j/openai4j/chat/ChatCompletionChoice.delta:()Ldev/ai4j/openai4j/chat/Delta;\n         61: astore        5\n         63: aload         5\n         65: ifnonnull     69\n         68: return\n         69: aload         5\n-        71: invokevirtual #18                 // Method dev/ai4j/openai4j/chat/Delta.content:()Ljava/lang/String;\n+        71: invokevirtual #62                 // Method dev/ai4j/openai4j/chat/Delta.content:()Ljava/lang/String;\n         74: astore        6\n         76: aload         6\n         78: ifnull        92\n         81: aload_0\n-        82: getfield      #4                  // Field contentBuilder:Ljava/lang/StringBuffer;\n+        82: getfield      #10                 // Field contentBuilder:Ljava/lang/StringBuffer;\n         85: aload         6\n-        87: invokevirtual #19                 // Method java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;\n+        87: invokevirtual #67                 // Method java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;\n         90: pop\n         91: return\n         92: aload         5\n-        94: invokevirtual #20                 // Method dev/ai4j/openai4j/chat/Delta.functionCall:()Ldev/ai4j/openai4j/chat/FunctionCall;\n+        94: invokevirtual #71                 // Method dev/ai4j/openai4j/chat/Delta.functionCall:()Ldev/ai4j/openai4j/chat/FunctionCall;\n         97: ifnull        149\n        100: aload         5\n-       102: invokevirtual #20                 // Method dev/ai4j/openai4j/chat/Delta.functionCall:()Ldev/ai4j/openai4j/chat/FunctionCall;\n+       102: invokevirtual #71                 // Method dev/ai4j/openai4j/chat/Delta.functionCall:()Ldev/ai4j/openai4j/chat/FunctionCall;\n        105: astore        7\n        107: aload         7\n-       109: invokevirtual #21                 // Method dev/ai4j/openai4j/chat/FunctionCall.name:()Ljava/lang/String;\n+       109: invokevirtual #75                 // Method dev/ai4j/openai4j/chat/FunctionCall.name:()Ljava/lang/String;\n        112: ifnull        128\n        115: aload_0\n-       116: getfield      #5                  // Field toolNameBuilder:Ljava/lang/StringBuffer;\n+       116: getfield      #16                 // Field toolNameBuilder:Ljava/lang/StringBuffer;\n        119: aload         7\n-       121: invokevirtual #21                 // Method dev/ai4j/openai4j/chat/FunctionCall.name:()Ljava/lang/String;\n-       124: invokevirtual #19                 // Method java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;\n+       121: invokevirtual #75                 // Method dev/ai4j/openai4j/chat/FunctionCall.name:()Ljava/lang/String;\n+       124: invokevirtual #67                 // Method java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;\n        127: pop\n        128: aload         7\n-       130: invokevirtual #22                 // Method dev/ai4j/openai4j/chat/FunctionCall.arguments:()Ljava/lang/String;\n+       130: invokevirtual #80                 // Method dev/ai4j/openai4j/chat/FunctionCall.arguments:()Ljava/lang/String;\n        133: ifnull        149\n        136: aload_0\n-       137: getfield      #6                  // Field toolArgumentsBuilder:Ljava/lang/StringBuffer;\n+       137: getfield      #19                 // Field toolArgumentsBuilder:Ljava/lang/StringBuffer;\n        140: aload         7\n-       142: invokevirtual #22                 // Method dev/ai4j/openai4j/chat/FunctionCall.arguments:()Ljava/lang/String;\n-       145: invokevirtual #19                 // Method java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;\n+       142: invokevirtual #80                 // Method dev/ai4j/openai4j/chat/FunctionCall.arguments:()Ljava/lang/String;\n+       145: invokevirtual #67                 // Method java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;\n        148: pop\n        149: aload         5\n-       151: invokevirtual #23                 // Method dev/ai4j/openai4j/chat/Delta.toolCalls:()Ljava/util/List;\n+       151: invokevirtual #83                 // Method dev/ai4j/openai4j/chat/Delta.toolCalls:()Ljava/util/List;\n        154: ifnull        283\n        157: aload         5\n-       159: invokevirtual #23                 // Method dev/ai4j/openai4j/chat/Delta.toolCalls:()Ljava/util/List;\n-       162: invokeinterface #12,  1           // InterfaceMethod java/util/List.isEmpty:()Z\n+       159: invokevirtual #83                 // Method dev/ai4j/openai4j/chat/Delta.toolCalls:()Ljava/util/List;\n+       162: invokeinterface #39,  1           // InterfaceMethod java/util/List.isEmpty:()Z\n        167: ifne          283\n        170: aload         5\n-       172: invokevirtual #23                 // Method dev/ai4j/openai4j/chat/Delta.toolCalls:()Ljava/util/List;\n+       172: invokevirtual #83                 // Method dev/ai4j/openai4j/chat/Delta.toolCalls:()Ljava/util/List;\n        175: iconst_0\n-       176: invokeinterface #13,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-       181: checkcast     #24                 // class dev/ai4j/openai4j/chat/ToolCall\n+       176: invokeinterface #45,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+       181: checkcast     #86                 // class dev/ai4j/openai4j/chat/ToolCall\n        184: astore        7\n        186: aload_0\n-       187: getfield      #9                  // Field indexToToolExecutionRequestBuilder:Ljava/util/Map;\n+       187: getfield      #25                 // Field indexToToolExecutionRequestBuilder:Ljava/util/Map;\n        190: aload         7\n-       192: invokevirtual #25                 // Method dev/ai4j/openai4j/chat/ToolCall.index:()Ljava/lang/Integer;\n-       195: invokedynamic #26,  0             // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n-       200: invokeinterface #27,  3           // InterfaceMethod java/util/Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;\n-       205: checkcast     #28                 // class dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder\n+       192: invokevirtual #88                 // Method dev/ai4j/openai4j/chat/ToolCall.index:()Ljava/lang/Integer;\n+       195: invokedynamic #92,  0             // InvokeDynamic #0:apply:()Ljava/util/function/Function;\n+       200: invokeinterface #96,  3           // InterfaceMethod java/util/Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;\n+       205: checkcast     #102                // class dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder\n        208: astore        8\n        210: aload         7\n-       212: invokevirtual #29                 // Method dev/ai4j/openai4j/chat/ToolCall.id:()Ljava/lang/String;\n+       212: invokevirtual #104                // Method dev/ai4j/openai4j/chat/ToolCall.id:()Ljava/lang/String;\n        215: ifnull        232\n        218: aload         8\n-       220: invokestatic  #30                 // Method dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.access$000:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n+       220: invokestatic  #107                // Method dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.access$000:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n        223: aload         7\n-       225: invokevirtual #29                 // Method dev/ai4j/openai4j/chat/ToolCall.id:()Ljava/lang/String;\n-       228: invokevirtual #19                 // Method java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;\n+       225: invokevirtual #104                // Method dev/ai4j/openai4j/chat/ToolCall.id:()Ljava/lang/String;\n+       228: invokevirtual #67                 // Method java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;\n        231: pop\n        232: aload         7\n-       234: invokevirtual #31                 // Method dev/ai4j/openai4j/chat/ToolCall.function:()Ldev/ai4j/openai4j/chat/FunctionCall;\n+       234: invokevirtual #111                // Method dev/ai4j/openai4j/chat/ToolCall.function:()Ldev/ai4j/openai4j/chat/FunctionCall;\n        237: astore        9\n        239: aload         9\n-       241: invokevirtual #21                 // Method dev/ai4j/openai4j/chat/FunctionCall.name:()Ljava/lang/String;\n+       241: invokevirtual #75                 // Method dev/ai4j/openai4j/chat/FunctionCall.name:()Ljava/lang/String;\n        244: ifnull        261\n        247: aload         8\n-       249: invokestatic  #32                 // Method dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.access$100:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n+       249: invokestatic  #114                // Method dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.access$100:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n        252: aload         9\n-       254: invokevirtual #21                 // Method dev/ai4j/openai4j/chat/FunctionCall.name:()Ljava/lang/String;\n-       257: invokevirtual #19                 // Method java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;\n+       254: invokevirtual #75                 // Method dev/ai4j/openai4j/chat/FunctionCall.name:()Ljava/lang/String;\n+       257: invokevirtual #67                 // Method java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;\n        260: pop\n        261: aload         9\n-       263: invokevirtual #22                 // Method dev/ai4j/openai4j/chat/FunctionCall.arguments:()Ljava/lang/String;\n+       263: invokevirtual #80                 // Method dev/ai4j/openai4j/chat/FunctionCall.arguments:()Ljava/lang/String;\n        266: ifnull        283\n        269: aload         8\n-       271: invokestatic  #33                 // Method dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.access$200:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n+       271: invokestatic  #117                // Method dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.access$200:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n        274: aload         9\n-       276: invokevirtual #22                 // Method dev/ai4j/openai4j/chat/FunctionCall.arguments:()Ljava/lang/String;\n-       279: invokevirtual #19                 // Method java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;\n+       276: invokevirtual #80                 // Method dev/ai4j/openai4j/chat/FunctionCall.arguments:()Ljava/lang/String;\n+       279: invokevirtual #67                 // Method java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;\n        282: pop\n        283: return\n       LineNumberTable:\n         line 43: 0\n         line 44: 4\n         line 47: 5\n         line 48: 10\n@@ -640,47 +631,47 @@\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=6, args_size=2\n          0: aload_1\n          1: ifnonnull     5\n          4: return\n          5: aload_1\n-         6: invokevirtual #34                 // Method dev/ai4j/openai4j/completion/CompletionResponse.choices:()Ljava/util/List;\n+         6: invokevirtual #120                // Method dev/ai4j/openai4j/completion/CompletionResponse.choices:()Ljava/util/List;\n          9: astore_2\n         10: aload_2\n         11: ifnull        23\n         14: aload_2\n-        15: invokeinterface #12,  1           // InterfaceMethod java/util/List.isEmpty:()Z\n+        15: invokeinterface #39,  1           // InterfaceMethod java/util/List.isEmpty:()Z\n         20: ifeq          24\n         23: return\n         24: aload_2\n         25: iconst_0\n-        26: invokeinterface #13,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-        31: checkcast     #35                 // class dev/ai4j/openai4j/completion/CompletionChoice\n+        26: invokeinterface #45,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+        31: checkcast     #123                // class dev/ai4j/openai4j/completion/CompletionChoice\n         34: astore_3\n         35: aload_3\n         36: ifnonnull     40\n         39: return\n         40: aload_3\n-        41: invokevirtual #36                 // Method dev/ai4j/openai4j/completion/CompletionChoice.finishReason:()Ljava/lang/String;\n+        41: invokevirtual #125                // Method dev/ai4j/openai4j/completion/CompletionChoice.finishReason:()Ljava/lang/String;\n         44: astore        4\n         46: aload         4\n         48: ifnull        57\n         51: aload_0\n         52: aload         4\n-        54: putfield      #16                 // Field finishReason:Ljava/lang/String;\n+        54: putfield      #55                 // Field finishReason:Ljava/lang/String;\n         57: aload_3\n-        58: invokevirtual #37                 // Method dev/ai4j/openai4j/completion/CompletionChoice.text:()Ljava/lang/String;\n+        58: invokevirtual #126                // Method dev/ai4j/openai4j/completion/CompletionChoice.text:()Ljava/lang/String;\n         61: astore        5\n         63: aload         5\n         65: ifnull        78\n         68: aload_0\n-        69: getfield      #4                  // Field contentBuilder:Ljava/lang/StringBuffer;\n+        69: getfield      #10                 // Field contentBuilder:Ljava/lang/StringBuffer;\n         72: aload         5\n-        74: invokevirtual #19                 // Method java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;\n+        74: invokevirtual #67                 // Method java/lang/StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;\n         77: pop\n         78: return\n       LineNumberTable:\n         line 108: 0\n         line 109: 4\n         line 112: 5\n         line 113: 10\n@@ -724,90 +715,90 @@\n \n   public dev.langchain4j.model.output.Response<dev.langchain4j.data.message.AiMessage> build(dev.langchain4j.model.Tokenizer, boolean);\n     descriptor: (Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/Response;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=5, locals=6, args_size=3\n          0: aload_0\n-         1: getfield      #4                  // Field contentBuilder:Ljava/lang/StringBuffer;\n-         4: invokevirtual #38                 // Method java/lang/StringBuffer.toString:()Ljava/lang/String;\n+         1: getfield      #10                 // Field contentBuilder:Ljava/lang/StringBuffer;\n+         4: invokevirtual #129                // Method java/lang/StringBuffer.toString:()Ljava/lang/String;\n          7: astore_3\n          8: aload_3\n-         9: invokevirtual #39                 // Method java/lang/String.isEmpty:()Z\n+         9: invokevirtual #132                // Method java/lang/String.isEmpty:()Z\n         12: ifne          36\n         15: aload_3\n-        16: invokestatic  #40                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n+        16: invokestatic  #135                // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/lang/String;)Ldev/langchain4j/data/message/AiMessage;\n         19: aload_0\n         20: aload_3\n         21: aload_1\n-        22: invokespecial #41                 // Method tokenUsage:(Ljava/lang/String;Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/output/TokenUsage;\n+        22: invokespecial #141                // Method tokenUsage:(Ljava/lang/String;Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/output/TokenUsage;\n         25: aload_0\n-        26: getfield      #16                 // Field finishReason:Ljava/lang/String;\n-        29: invokestatic  #42                 // Method dev/langchain4j/model/openai/InternalOpenAiHelper.finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n-        32: invokestatic  #43                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+        26: getfield      #55                 // Field finishReason:Ljava/lang/String;\n+        29: invokestatic  #145                // Method dev/langchain4j/model/openai/InternalOpenAiHelper.finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n+        32: invokestatic  #151                // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n         35: areturn\n         36: aload_0\n-        37: getfield      #5                  // Field toolNameBuilder:Ljava/lang/StringBuffer;\n-        40: invokevirtual #38                 // Method java/lang/StringBuffer.toString:()Ljava/lang/String;\n+        37: getfield      #16                 // Field toolNameBuilder:Ljava/lang/StringBuffer;\n+        40: invokevirtual #129                // Method java/lang/StringBuffer.toString:()Ljava/lang/String;\n         43: astore        4\n         45: aload         4\n-        47: invokevirtual #39                 // Method java/lang/String.isEmpty:()Z\n+        47: invokevirtual #132                // Method java/lang/String.isEmpty:()Z\n         50: ifne          110\n-        53: invokestatic  #44                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        53: invokestatic  #156                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n         56: aload         4\n-        58: invokevirtual #45                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        58: invokevirtual #162                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n         61: aload_0\n-        62: getfield      #6                  // Field toolArgumentsBuilder:Ljava/lang/StringBuffer;\n-        65: invokevirtual #38                 // Method java/lang/StringBuffer.toString:()Ljava/lang/String;\n-        68: invokevirtual #46                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        71: invokevirtual #47                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+        62: getfield      #19                 // Field toolArgumentsBuilder:Ljava/lang/StringBuffer;\n+        65: invokevirtual #129                // Method java/lang/StringBuffer.toString:()Ljava/lang/String;\n+        68: invokevirtual #167                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        71: invokevirtual #169                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         74: astore        5\n         76: iconst_1\n-        77: anewarray     #48                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+        77: anewarray     #157                // class dev/langchain4j/agent/tool/ToolExecutionRequest\n         80: dup\n         81: iconst_0\n         82: aload         5\n         84: aastore\n-        85: invokestatic  #49                 // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n+        85: invokestatic  #173                // Method dev/langchain4j/data/message/AiMessage.from:([Ldev/langchain4j/agent/tool/ToolExecutionRequest;)Ldev/langchain4j/data/message/AiMessage;\n         88: aload_0\n         89: aload         5\n-        91: invokestatic  #50                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        91: invokestatic  #176                // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n         94: aload_1\n         95: iload_2\n-        96: invokespecial #51                 // Method tokenUsage:(Ljava/util/List;Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/TokenUsage;\n+        96: invokespecial #182                // Method tokenUsage:(Ljava/util/List;Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/TokenUsage;\n         99: aload_0\n-       100: getfield      #16                 // Field finishReason:Ljava/lang/String;\n-       103: invokestatic  #42                 // Method dev/langchain4j/model/openai/InternalOpenAiHelper.finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n-       106: invokestatic  #43                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+       100: getfield      #55                 // Field finishReason:Ljava/lang/String;\n+       103: invokestatic  #145                // Method dev/langchain4j/model/openai/InternalOpenAiHelper.finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n+       106: invokestatic  #151                // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n        109: areturn\n        110: aload_0\n-       111: getfield      #9                  // Field indexToToolExecutionRequestBuilder:Ljava/util/Map;\n-       114: invokeinterface #52,  1           // InterfaceMethod java/util/Map.isEmpty:()Z\n+       111: getfield      #25                 // Field indexToToolExecutionRequestBuilder:Ljava/util/Map;\n+       114: invokeinterface #185,  1          // InterfaceMethod java/util/Map.isEmpty:()Z\n        119: ifne          183\n        122: aload_0\n-       123: getfield      #9                  // Field indexToToolExecutionRequestBuilder:Ljava/util/Map;\n-       126: invokeinterface #53,  1           // InterfaceMethod java/util/Map.values:()Ljava/util/Collection;\n-       131: invokeinterface #54,  1           // InterfaceMethod java/util/Collection.stream:()Ljava/util/stream/Stream;\n-       136: invokedynamic #55,  0             // InvokeDynamic #1:apply:()Ljava/util/function/Function;\n-       141: invokeinterface #56,  2           // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n-       146: invokestatic  #57                 // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n-       149: invokeinterface #58,  2           // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n-       154: checkcast     #59                 // class java/util/List\n+       123: getfield      #25                 // Field indexToToolExecutionRequestBuilder:Ljava/util/Map;\n+       126: invokeinterface #186,  1          // InterfaceMethod java/util/Map.values:()Ljava/util/Collection;\n+       131: invokeinterface #190,  1          // InterfaceMethod java/util/Collection.stream:()Ljava/util/stream/Stream;\n+       136: invokedynamic #196,  0            // InvokeDynamic #1:apply:()Ljava/util/function/Function;\n+       141: invokeinterface #197,  2          // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;\n+       146: invokestatic  #203                // Method java/util/stream/Collectors.toList:()Ljava/util/stream/Collector;\n+       149: invokeinterface #209,  2          // InterfaceMethod java/util/stream/Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;\n+       154: checkcast     #40                 // class java/util/List\n        157: astore        5\n        159: aload         5\n-       161: invokestatic  #60                 // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n+       161: invokestatic  #213                // Method dev/langchain4j/data/message/AiMessage.from:(Ljava/util/List;)Ldev/langchain4j/data/message/AiMessage;\n        164: aload_0\n        165: aload         5\n        167: aload_1\n        168: iload_2\n-       169: invokespecial #51                 // Method tokenUsage:(Ljava/util/List;Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/TokenUsage;\n+       169: invokespecial #182                // Method tokenUsage:(Ljava/util/List;Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/TokenUsage;\n        172: aload_0\n-       173: getfield      #16                 // Field finishReason:Ljava/lang/String;\n-       176: invokestatic  #42                 // Method dev/langchain4j/model/openai/InternalOpenAiHelper.finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n-       179: invokestatic  #43                 // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n+       173: getfield      #55                 // Field finishReason:Ljava/lang/String;\n+       176: invokestatic  #145                // Method dev/langchain4j/model/openai/InternalOpenAiHelper.finishReasonFrom:(Ljava/lang/String;)Ldev/langchain4j/model/output/FinishReason;\n+       179: invokestatic  #151                // Method dev/langchain4j/model/output/Response.from:(Ljava/lang/Object;Ldev/langchain4j/model/output/TokenUsage;Ldev/langchain4j/model/output/FinishReason;)Ldev/langchain4j/model/output/Response;\n        182: areturn\n        183: aconst_null\n        184: areturn\n       LineNumberTable:\n         line 135: 0\n         line 136: 8\n         line 137: 15\n@@ -853,36 +844,36 @@\n           offset_delta = 36\n           locals = [ class java/lang/String ]\n         frame_type = 252 /* append */\n           offset_delta = 73\n           locals = [ class java/lang/String ]\n         frame_type = 251 /* same_frame_extended */\n           offset_delta = 72\n-    Signature: #141                         // (Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n+    Signature: #298                         // (Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/Response<Ldev/langchain4j/data/message/AiMessage;>;\n \n   private dev.langchain4j.model.output.TokenUsage tokenUsage(java.lang.String, dev.langchain4j.model.Tokenizer);\n     descriptor: (Ljava/lang/String;Ldev/langchain4j/model/Tokenizer;)Ldev/langchain4j/model/output/TokenUsage;\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=4, locals=4, args_size=3\n          0: aload_2\n          1: ifnonnull     6\n          4: aconst_null\n          5: areturn\n          6: aload_2\n          7: aload_1\n-         8: invokeinterface #61,  2           // InterfaceMethod dev/langchain4j/model/Tokenizer.estimateTokenCountInText:(Ljava/lang/String;)I\n+         8: invokeinterface #216,  2          // InterfaceMethod dev/langchain4j/model/Tokenizer.estimateTokenCountInText:(Ljava/lang/String;)I\n         13: istore_3\n-        14: new           #62                 // class dev/langchain4j/model/output/TokenUsage\n+        14: new           #222                // class dev/langchain4j/model/output/TokenUsage\n         17: dup\n         18: aload_0\n-        19: getfield      #10                 // Field inputTokenCount:Ljava/lang/Integer;\n+        19: getfield      #29                 // Field inputTokenCount:Ljava/lang/Integer;\n         22: iload_3\n-        23: invokestatic  #63                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        26: invokespecial #64                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        23: invokestatic  #224                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        26: invokespecial #230                // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;)V\n         29: areturn\n       LineNumberTable:\n         line 176: 0\n         line 177: 4\n         line 179: 6\n         line 180: 14\n       LocalVariableTable:\n@@ -904,42 +895,42 @@\n          4: aconst_null\n          5: areturn\n          6: iconst_0\n          7: istore        4\n          9: iload_3\n         10: ifeq          62\n         13: aload_1\n-        14: invokeinterface #65,  1           // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;\n+        14: invokeinterface #233,  1          // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;\n         19: astore        5\n         21: aload         5\n-        23: invokeinterface #66,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z\n+        23: invokeinterface #237,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z\n         28: ifeq          59\n         31: aload         5\n-        33: invokeinterface #67,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n-        38: checkcast     #48                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+        33: invokeinterface #242,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n+        38: checkcast     #157                // class dev/langchain4j/agent/tool/ToolExecutionRequest\n         41: astore        6\n         43: iload         4\n         45: aload_2\n         46: aload         6\n-        48: invokeinterface #68,  2           // InterfaceMethod dev/langchain4j/model/Tokenizer.estimateTokenCountInForcefulToolExecutionRequest:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n+        48: invokeinterface #246,  2          // InterfaceMethod dev/langchain4j/model/Tokenizer.estimateTokenCountInForcefulToolExecutionRequest:(Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n         53: iadd\n         54: istore        4\n         56: goto          21\n         59: goto          71\n         62: aload_2\n         63: aload_1\n-        64: invokeinterface #69,  2           // InterfaceMethod dev/langchain4j/model/Tokenizer.estimateTokenCountInToolExecutionRequests:(Ljava/lang/Iterable;)I\n+        64: invokeinterface #250,  2          // InterfaceMethod dev/langchain4j/model/Tokenizer.estimateTokenCountInToolExecutionRequests:(Ljava/lang/Iterable;)I\n         69: istore        4\n-        71: new           #62                 // class dev/langchain4j/model/output/TokenUsage\n+        71: new           #222                // class dev/langchain4j/model/output/TokenUsage\n         74: dup\n         75: aload_0\n-        76: getfield      #10                 // Field inputTokenCount:Ljava/lang/Integer;\n+        76: getfield      #29                 // Field inputTokenCount:Ljava/lang/Integer;\n         79: iload         4\n-        81: invokestatic  #63                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n-        84: invokespecial #64                 // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;)V\n+        81: invokestatic  #224                // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;\n+        84: invokespecial #230                // Method dev/langchain4j/model/output/TokenUsage.\"<init>\":(Ljava/lang/Integer;Ljava/lang/Integer;)V\n         87: areturn\n       LineNumberTable:\n         line 184: 0\n         line 185: 4\n         line 188: 6\n         line 189: 9\n         line 191: 13\n@@ -963,35 +954,35 @@\n         frame_type = 253 /* append */\n           offset_delta = 14\n           locals = [ int, class java/util/Iterator ]\n         frame_type = 250 /* chop */\n           offset_delta = 37\n         frame_type = 2 /* same */\n         frame_type = 8 /* same */\n-    Signature: #148                         // (Ljava/util/List<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/TokenUsage;\n+    Signature: #301                         // (Ljava/util/List<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;Ldev/langchain4j/model/Tokenizer;Z)Ldev/langchain4j/model/output/TokenUsage;\n \n   private static dev.langchain4j.agent.tool.ToolExecutionRequest lambda$build$1(dev.langchain4j.model.openai.OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder);\n     descriptor: (Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=2, locals=1, args_size=1\n-         0: invokestatic  #44                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         0: invokestatic  #156                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.builder:()Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n          3: aload_0\n-         4: invokestatic  #30                 // Method dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.access$000:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n-         7: invokevirtual #38                 // Method java/lang/StringBuffer.toString:()Ljava/lang/String;\n-        10: invokevirtual #70                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+         4: invokestatic  #107                // Method dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.access$000:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n+         7: invokevirtual #129                // Method java/lang/StringBuffer.toString:()Ljava/lang/String;\n+        10: invokevirtual #254                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.id:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n         13: aload_0\n-        14: invokestatic  #32                 // Method dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.access$100:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n-        17: invokevirtual #38                 // Method java/lang/StringBuffer.toString:()Ljava/lang/String;\n-        20: invokevirtual #45                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        14: invokestatic  #114                // Method dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.access$100:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n+        17: invokevirtual #129                // Method java/lang/StringBuffer.toString:()Ljava/lang/String;\n+        20: invokevirtual #162                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.name:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n         23: aload_0\n-        24: invokestatic  #33                 // Method dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.access$200:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n-        27: invokevirtual #38                 // Method java/lang/StringBuffer.toString:()Ljava/lang/String;\n-        30: invokevirtual #46                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n-        33: invokevirtual #47                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+        24: invokestatic  #117                // Method dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.access$200:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ljava/lang/StringBuffer;\n+        27: invokevirtual #129                // Method java/lang/StringBuffer.toString:()Ljava/lang/String;\n+        30: invokevirtual #167                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.arguments:(Ljava/lang/String;)Ldev/langchain4j/agent/tool/ToolExecutionRequest$Builder;\n+        33: invokevirtual #169                // Method dev/langchain4j/agent/tool/ToolExecutionRequest$Builder.build:()Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n         36: areturn\n       LineNumberTable:\n         line 159: 0\n         line 160: 4\n         line 161: 14\n         line 162: 24\n         line 163: 33\n@@ -1001,35 +992,35 @@\n             0      37     0    it   Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n \n   private static dev.langchain4j.model.openai.OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder lambda$append$0(java.lang.Integer);\n     descriptor: (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n     flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC\n     Code:\n       stack=3, locals=1, args_size=1\n-         0: new           #28                 // class dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder\n+         0: new           #102                // class dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder\n          3: dup\n          4: aconst_null\n-         5: invokespecial #71                 // Method dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.\"<init>\":(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1;)V\n+         5: invokespecial #256                // Method dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder.\"<init>\":(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1;)V\n          8: areturn\n       LineNumberTable:\n         line 89: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       9     0   idx   Ljava/lang/Integer;\n }\n SourceFile: \"OpenAiStreamingResponseBuilder.java\"\n-InnerClasses:\n-  static #74;                             // class dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1\n-  private static #76= #28 of #72;         // ToolExecutionRequestBuilder=class dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder of class dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder\n-  public static final #294= #210 of #48;  // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n-  public static final #342= #341 of #344; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #184 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #311 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #185 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #186 REF_invokeStatic dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.lambda$append$0:(Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n-      #187 (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n-  1: #184 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+      #318 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #320 REF_invokeStatic dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.lambda$append$0:(Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n+      #323 (Ljava/lang/Integer;)Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;\n+  1: #311 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #185 (Ljava/lang/Object;)Ljava/lang/Object;\n-      #222 REF_invokeStatic dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.lambda$build$1:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-      #223 (Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+      #318 (Ljava/lang/Object;)Ljava/lang/Object;\n+      #324 REF_invokeStatic dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder.lambda$build$1:(Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+      #327 (Ldev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder;)Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+InnerClasses:\n+  private static #329= #102 of #11;       // ToolExecutionRequestBuilder=class dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$ToolExecutionRequestBuilder of class dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder\n+  public static final #330= #163 of #157; // Builder=class dev/langchain4j/agent/tool/ToolExecutionRequest$Builder of class dev/langchain4j/agent/tool/ToolExecutionRequest\n+  static #331;                            // class dev/langchain4j/model/openai/OpenAiStreamingResponseBuilder$1\n+  public static final #337= #333 of #335; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/openai/OpenAiTokenizer.class", "source2": "dev/langchain4j/model/openai/OpenAiTokenizer.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,469 +1,459 @@\n-  SHA-256 checksum 1f6e7283517d1e22365829e899a900369a8883901ab2558ffe43a5976736a6a7\n+  SHA-256 checksum a4eaef526b454bae17ea0a2b685fda0752fd7365a9b5f5ba119ceaf1ff53caee\n   Compiled from \"OpenAiTokenizer.java\"\n public class dev.langchain4j.model.openai.OpenAiTokenizer implements dev.langchain4j.model.Tokenizer\n   minor version: 0\n   major version: 52\n   flags: (0x0021) ACC_PUBLIC, ACC_SUPER\n-  this_class: #103                        // dev/langchain4j/model/openai/OpenAiTokenizer\n-  super_class: #40                        // java/lang/Object\n+  this_class: #16                         // dev/langchain4j/model/openai/OpenAiTokenizer\n+  super_class: #2                         // java/lang/Object\n   interfaces: 1, fields: 2, methods: 24, attributes: 3\n Constant pool:\n-    #1 = Methodref          #40.#229      // java/lang/Object.\"<init>\":()V\n-    #2 = String             #105          // modelName\n-    #3 = Methodref          #230.#231     // dev/langchain4j/internal/ValidationUtils.ensureNotBlank:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\n-    #4 = Fieldref           #103.#232     // dev/langchain4j/model/openai/OpenAiTokenizer.modelName:Ljava/lang/String;\n-    #5 = Methodref          #233.#234     // com/knuddels/jtokkit/Encodings.newLazyEncodingRegistry:()Lcom/knuddels/jtokkit/api/EncodingRegistry;\n-    #6 = InterfaceMethodref #235.#236     // com/knuddels/jtokkit/api/EncodingRegistry.getEncodingForModel:(Ljava/lang/String;)Ljava/util/Optional;\n-    #7 = Fieldref           #103.#237     // dev/langchain4j/model/openai/OpenAiTokenizer.encoding:Ljava/util/Optional;\n-    #8 = Methodref          #103.#238     // dev/langchain4j/model/openai/OpenAiTokenizer.unknownModelException:()Ljava/util/function/Supplier;\n-    #9 = Methodref          #239.#240     // java/util/Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;\n-   #10 = Class              #241          // com/knuddels/jtokkit/api/Encoding\n-   #11 = InterfaceMethodref #10.#242      // com/knuddels/jtokkit/api/Encoding.countTokensOrdinary:(Ljava/lang/String;)I\n-   #12 = Methodref          #103.#243     // dev/langchain4j/model/openai/OpenAiTokenizer.extraTokensPerMessage:()I\n-   #13 = Class              #244          // dev/langchain4j/data/message/SystemMessage\n-   #14 = Methodref          #103.#245     // dev/langchain4j/model/openai/OpenAiTokenizer.estimateTokenCountIn:(Ldev/langchain4j/data/message/SystemMessage;)I\n-   #15 = Class              #246          // dev/langchain4j/data/message/UserMessage\n-   #16 = Methodref          #103.#247     // dev/langchain4j/model/openai/OpenAiTokenizer.estimateTokenCountIn:(Ldev/langchain4j/data/message/UserMessage;)I\n-   #17 = Class              #248          // dev/langchain4j/data/message/AiMessage\n-   #18 = Methodref          #103.#249     // dev/langchain4j/model/openai/OpenAiTokenizer.estimateTokenCountIn:(Ldev/langchain4j/data/message/AiMessage;)I\n-   #19 = Class              #250          // dev/langchain4j/data/message/ToolExecutionResultMessage\n-   #20 = Methodref          #103.#251     // dev/langchain4j/model/openai/OpenAiTokenizer.estimateTokenCountIn:(Ldev/langchain4j/data/message/ToolExecutionResultMessage;)I\n-   #21 = Class              #252          // java/lang/IllegalArgumentException\n-   #22 = Class              #253          // java/lang/StringBuilder\n-   #23 = Methodref          #22.#229      // java/lang/StringBuilder.\"<init>\":()V\n-   #24 = String             #254          // Unknown message type:\n-   #25 = Methodref          #22.#255      // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-   #26 = Methodref          #22.#256      // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-   #27 = Methodref          #22.#257      // java/lang/StringBuilder.toString:()Ljava/lang/String;\n-   #28 = Methodref          #21.#258      // java/lang/IllegalArgumentException.\"<init>\":(Ljava/lang/String;)V\n-   #29 = Methodref          #13.#259      // dev/langchain4j/data/message/SystemMessage.text:()Ljava/lang/String;\n-   #30 = Methodref          #103.#260     // dev/langchain4j/model/openai/OpenAiTokenizer.estimateTokenCountInText:(Ljava/lang/String;)I\n-   #31 = Methodref          #15.#261      // dev/langchain4j/data/message/UserMessage.contents:()Ljava/util/List;\n-   #32 = InterfaceMethodref #262.#263     // java/util/List.iterator:()Ljava/util/Iterator;\n-   #33 = InterfaceMethodref #264.#265     // java/util/Iterator.hasNext:()Z\n-   #34 = InterfaceMethodref #264.#266     // java/util/Iterator.next:()Ljava/lang/Object;\n-   #35 = Class              #267          // dev/langchain4j/data/message/Content\n-   #36 = Class              #268          // dev/langchain4j/data/message/TextContent\n-   #37 = Methodref          #36.#259      // dev/langchain4j/data/message/TextContent.text:()Ljava/lang/String;\n-   #38 = Class              #269          // dev/langchain4j/data/message/ImageContent\n-   #39 = String             #270          // Unknown content type:\n-   #40 = Class              #271          // java/lang/Object\n-   #41 = Methodref          #272.#273     // dev/langchain4j/internal/Exceptions.illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n-   #42 = Methodref          #15.#274      // dev/langchain4j/data/message/UserMessage.name:()Ljava/lang/String;\n-   #43 = Fieldref           #275.#276     // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_VISION_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #44 = Methodref          #75.#277      // java/lang/String.equals:(Ljava/lang/Object;)Z\n-   #45 = Methodref          #103.#278     // dev/langchain4j/model/openai/OpenAiTokenizer.extraTokensPerName:()I\n-   #46 = Methodref          #17.#259      // dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-   #47 = Methodref          #17.#279      // dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-   #48 = Methodref          #103.#280     // dev/langchain4j/model/openai/OpenAiTokenizer.isOneOfLatestModels:()Z\n-   #49 = InterfaceMethodref #262.#281     // java/util/List.size:()I\n-   #50 = InterfaceMethodref #262.#282     // java/util/List.get:(I)Ljava/lang/Object;\n-   #51 = Class              #283          // dev/langchain4j/agent/tool/ToolExecutionRequest\n-   #52 = Methodref          #51.#274      // dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n-   #53 = Methodref          #51.#284      // dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-   #54 = Class              #285          // java/util/Map\n-   #55 = Methodref          #286.#287     // dev/langchain4j/internal/Json.fromJson:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n-   #56 = InterfaceMethodref #54.#288      // java/util/Map.entrySet:()Ljava/util/Set;\n-   #57 = InterfaceMethodref #289.#263     // java/util/Set.iterator:()Ljava/util/Iterator;\n-   #58 = Class              #290          // java/util/Map$Entry\n-   #59 = InterfaceMethodref #58.#291      // java/util/Map$Entry.getKey:()Ljava/lang/Object;\n-   #60 = Methodref          #40.#257      // java/lang/Object.toString:()Ljava/lang/String;\n-   #61 = InterfaceMethodref #58.#292      // java/util/Map$Entry.getValue:()Ljava/lang/Object;\n-   #62 = Methodref          #19.#259      // dev/langchain4j/data/message/ToolExecutionResultMessage.text:()Ljava/lang/String;\n-   #63 = String             #293          // gpt-3.5-turbo-0301\n-   #64 = InterfaceMethodref #294.#263     // java/lang/Iterable.iterator:()Ljava/util/Iterator;\n-   #65 = Class              #295          // dev/langchain4j/data/message/ChatMessage\n-   #66 = Methodref          #103.#296     // dev/langchain4j/model/openai/OpenAiTokenizer.estimateTokenCountInMessage:(Ldev/langchain4j/data/message/ChatMessage;)I\n-   #67 = Class              #297          // dev/langchain4j/agent/tool/ToolSpecification\n-   #68 = Methodref          #67.#274      // dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n-   #69 = Methodref          #67.#298      // dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n-   #70 = Methodref          #67.#299      // dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-   #71 = Methodref          #103.#300     // dev/langchain4j/model/openai/OpenAiTokenizer.estimateTokenCountInToolParameters:(Ldev/langchain4j/agent/tool/ToolParameters;)I\n-   #72 = Methodref          #301.#302     // dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n-   #73 = InterfaceMethodref #54.#281      // java/util/Map.size:()I\n-   #74 = InterfaceMethodref #54.#303      // java/util/Map.keySet:()Ljava/util/Set;\n-   #75 = Class              #304          // java/lang/String\n-   #76 = InterfaceMethodref #54.#305      // java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;\n-   #77 = String             #306          // type\n-   #78 = String             #307          // array\n-   #79 = String             #308          // description\n-   #80 = Methodref          #301.#309     // dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n-   #81 = InterfaceMethodref #262.#310     // java/util/List.contains:(Ljava/lang/Object;)Z\n-   #82 = String             #311          // enum\n-   #83 = Class              #312          // \"[Ljava/lang/Object;\"\n-   #84 = Methodref          #313.#314     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-   #85 = Methodref          #103.#315     // dev/langchain4j/model/openai/OpenAiTokenizer.estimateTokenCountInToolSpecifications:(Ljava/lang/Iterable;)I\n-   #86 = InterfaceMethodref #10.#316      // com/knuddels/jtokkit/api/Encoding.encodeOrdinary:(Ljava/lang/String;)Ljava/util/List;\n-   #87 = InterfaceMethodref #10.#317      // com/knuddels/jtokkit/api/Encoding.encodeOrdinary:(Ljava/lang/String;I)Lcom/knuddels/jtokkit/api/EncodingResult;\n-   #88 = Methodref          #318.#319     // com/knuddels/jtokkit/api/EncodingResult.getTokens:()Ljava/util/List;\n-   #89 = InterfaceMethodref #10.#320      // com/knuddels/jtokkit/api/Encoding.decode:(Ljava/util/List;)Ljava/lang/String;\n-   #90 = InvokeDynamic      #0:#326       // #0:get:(Ldev/langchain4j/model/openai/OpenAiTokenizer;)Ljava/util/function/Supplier;\n-   #91 = Methodref          #103.#327     // dev/langchain4j/model/openai/OpenAiTokenizer.countArguments:(Ljava/lang/String;)I\n-   #92 = Fieldref           #275.#328     // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_1106:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #93 = Methodref          #275.#257     // dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n-   #94 = Methodref          #103.#329     // dev/langchain4j/model/openai/OpenAiTokenizer.isOneOfLatestGpt4Models:()Z\n-   #95 = Fieldref           #275.#330     // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_1106_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-   #96 = Methodref          #103.#331     // dev/langchain4j/model/openai/OpenAiTokenizer.estimateTokenCountInToolExecutionRequests:(Ljava/lang/Iterable;)I\n-   #97 = Methodref          #332.#333     // dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n-   #98 = Methodref          #103.#334     // dev/langchain4j/model/openai/OpenAiTokenizer.isOneOfLatestGpt3Models:()Z\n-   #99 = Fieldref           #275.#335     // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_0125:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #100 = Fieldref           #275.#336     // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_TURBO_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #101 = Fieldref           #275.#337     // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_0125_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #102 = String             #338          // Model \\'%s\\' is unknown to jtokkit\n-  #103 = Class              #339          // dev/langchain4j/model/openai/OpenAiTokenizer\n-  #104 = Class              #340          // dev/langchain4j/model/Tokenizer\n-  #105 = Utf8               modelName\n-  #106 = Utf8               Ljava/lang/String;\n-  #107 = Utf8               encoding\n-  #108 = Utf8               Ljava/util/Optional;\n-  #109 = Utf8               Signature\n-  #110 = Utf8               Ljava/util/Optional<Lcom/knuddels/jtokkit/api/Encoding;>;\n-  #111 = Utf8               <init>\n-  #112 = Utf8               (Ljava/lang/String;)V\n-  #113 = Utf8               Code\n-  #114 = Utf8               LineNumberTable\n-  #115 = Utf8               LocalVariableTable\n-  #116 = Utf8               this\n-  #117 = Utf8               Ldev/langchain4j/model/openai/OpenAiTokenizer;\n-  #118 = Utf8               estimateTokenCountInText\n-  #119 = Utf8               (Ljava/lang/String;)I\n-  #120 = Utf8               text\n-  #121 = Utf8               estimateTokenCountInMessage\n-  #122 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)I\n-  #123 = Utf8               message\n-  #124 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n-  #125 = Utf8               tokenCount\n-  #126 = Utf8               I\n-  #127 = Utf8               StackMapTable\n-  #128 = Utf8               estimateTokenCountIn\n-  #129 = Utf8               (Ldev/langchain4j/data/message/SystemMessage;)I\n-  #130 = Utf8               systemMessage\n-  #131 = Utf8               Ldev/langchain4j/data/message/SystemMessage;\n-  #132 = Utf8               (Ldev/langchain4j/data/message/UserMessage;)I\n-  #133 = Utf8               content\n-  #134 = Utf8               Ldev/langchain4j/data/message/Content;\n-  #135 = Utf8               userMessage\n-  #136 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n-  #137 = Class              #341          // java/util/Iterator\n-  #138 = Class              #267          // dev/langchain4j/data/message/Content\n-  #139 = Utf8               (Ldev/langchain4j/data/message/AiMessage;)I\n-  #140 = Utf8               toolExecutionRequest\n-  #141 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n-  #142 = Utf8               argument\n-  #143 = Utf8               Entry\n-  #144 = Utf8               InnerClasses\n-  #145 = Utf8               Ljava/util/Map$Entry;\n-  #146 = Utf8               arguments\n-  #147 = Utf8               Ljava/util/Map;\n-  #148 = Utf8               aiMessage\n-  #149 = Utf8               Ldev/langchain4j/data/message/AiMessage;\n-  #150 = Utf8               LocalVariableTypeTable\n-  #151 = Utf8               Ljava/util/Map$Entry<**>;\n-  #152 = Utf8               Ljava/util/Map<**>;\n-  #153 = Class              #283          // dev/langchain4j/agent/tool/ToolExecutionRequest\n-  #154 = Class              #285          // java/util/Map\n-  #155 = Utf8               (Ldev/langchain4j/data/message/ToolExecutionResultMessage;)I\n-  #156 = Utf8               toolExecutionResultMessage\n-  #157 = Utf8               Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n-  #158 = Utf8               extraTokensPerMessage\n-  #159 = Utf8               ()I\n-  #160 = Utf8               extraTokensPerName\n-  #161 = Utf8               estimateTokenCountInMessages\n-  #162 = Utf8               (Ljava/lang/Iterable;)I\n-  #163 = Utf8               messages\n-  #164 = Utf8               Ljava/lang/Iterable;\n-  #165 = Utf8               Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;\n-  #166 = Utf8               (Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;)I\n-  #167 = Utf8               estimateTokenCountInToolSpecifications\n-  #168 = Utf8               toolSpecification\n-  #169 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecification;\n-  #170 = Utf8               toolSpecifications\n-  #171 = Utf8               Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolSpecification;>;\n-  #172 = Class              #297          // dev/langchain4j/agent/tool/ToolSpecification\n-  #173 = Utf8               (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolSpecification;>;)I\n-  #174 = Utf8               estimateTokenCountInToolParameters\n-  #175 = Utf8               (Ldev/langchain4j/agent/tool/ToolParameters;)I\n-  #176 = Utf8               enumValue\n-  #177 = Utf8               Ljava/lang/Object;\n-  #178 = Utf8               entry\n-  #179 = Utf8               property\n-  #180 = Utf8               parameters\n-  #181 = Utf8               Ldev/langchain4j/agent/tool/ToolParameters;\n-  #182 = Utf8               properties\n-  #183 = Utf8               Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;\n-  #184 = Utf8               Ljava/util/Map<Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;\n-  #185 = Class              #304          // java/lang/String\n-  #186 = Class              #290          // java/util/Map$Entry\n-  #187 = Class              #339          // dev/langchain4j/model/openai/OpenAiTokenizer\n-  #188 = Class              #342          // dev/langchain4j/agent/tool/ToolParameters\n-  #189 = Utf8               estimateTokenCountInForcefulToolSpecification\n-  #190 = Utf8               (Ldev/langchain4j/agent/tool/ToolSpecification;)I\n-  #191 = Utf8               encode\n-  #192 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n-  #193 = Utf8               (Ljava/lang/String;)Ljava/util/List<Ljava/lang/Integer;>;\n-  #194 = Utf8               (Ljava/lang/String;I)Ljava/util/List;\n-  #195 = Utf8               maxTokensToEncode\n-  #196 = Utf8               (Ljava/lang/String;I)Ljava/util/List<Ljava/lang/Integer;>;\n-  #197 = Utf8               decode\n-  #198 = Utf8               (Ljava/util/List;)Ljava/lang/String;\n-  #199 = Utf8               tokens\n-  #200 = Utf8               Ljava/util/List;\n-  #201 = Utf8               Ljava/util/List<Ljava/lang/Integer;>;\n-  #202 = Utf8               (Ljava/util/List<Ljava/lang/Integer;>;)Ljava/lang/String;\n-  #203 = Utf8               unknownModelException\n-  #204 = Utf8               ()Ljava/util/function/Supplier;\n-  #205 = Utf8               ()Ljava/util/function/Supplier<Ljava/lang/IllegalArgumentException;>;\n-  #206 = Utf8               estimateTokenCountInToolExecutionRequests\n-  #207 = Utf8               argumentCount\n-  #208 = Utf8               toolExecutionRequests\n-  #209 = Utf8               toolsCount\n-  #210 = Utf8               toolsWithArgumentsCount\n-  #211 = Utf8               toolsWithoutArgumentsCount\n-  #212 = Utf8               totalArgumentsCount\n-  #213 = Utf8               Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;\n-  #214 = Class              #343          // java/lang/Iterable\n-  #215 = Utf8               (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;)I\n-  #216 = Utf8               estimateTokenCountInForcefulToolExecutionRequest\n-  #217 = Utf8               (Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n-  #218 = Utf8               argumentsCount\n-  #219 = Utf8               countArguments\n-  #220 = Utf8               argumentsMap\n-  #221 = Utf8               isOneOfLatestModels\n-  #222 = Utf8               ()Z\n-  #223 = Utf8               isOneOfLatestGpt3Models\n-  #224 = Utf8               isOneOfLatestGpt4Models\n-  #225 = Utf8               lambda$unknownModelException$0\n-  #226 = Utf8               ()Ljava/lang/IllegalArgumentException;\n-  #227 = Utf8               SourceFile\n-  #228 = Utf8               OpenAiTokenizer.java\n-  #229 = NameAndType        #111:#344     // \"<init>\":()V\n-  #230 = Class              #345          // dev/langchain4j/internal/ValidationUtils\n-  #231 = NameAndType        #346:#347     // ensureNotBlank:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\n-  #232 = NameAndType        #105:#106     // modelName:Ljava/lang/String;\n-  #233 = Class              #348          // com/knuddels/jtokkit/Encodings\n-  #234 = NameAndType        #349:#350     // newLazyEncodingRegistry:()Lcom/knuddels/jtokkit/api/EncodingRegistry;\n-  #235 = Class              #351          // com/knuddels/jtokkit/api/EncodingRegistry\n-  #236 = NameAndType        #352:#353     // getEncodingForModel:(Ljava/lang/String;)Ljava/util/Optional;\n-  #237 = NameAndType        #107:#108     // encoding:Ljava/util/Optional;\n-  #238 = NameAndType        #203:#204     // unknownModelException:()Ljava/util/function/Supplier;\n-  #239 = Class              #354          // java/util/Optional\n-  #240 = NameAndType        #355:#356     // orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #241 = Utf8               com/knuddels/jtokkit/api/Encoding\n-  #242 = NameAndType        #357:#119     // countTokensOrdinary:(Ljava/lang/String;)I\n-  #243 = NameAndType        #158:#159     // extraTokensPerMessage:()I\n-  #244 = Utf8               dev/langchain4j/data/message/SystemMessage\n-  #245 = NameAndType        #128:#129     // estimateTokenCountIn:(Ldev/langchain4j/data/message/SystemMessage;)I\n-  #246 = Utf8               dev/langchain4j/data/message/UserMessage\n-  #247 = NameAndType        #128:#132     // estimateTokenCountIn:(Ldev/langchain4j/data/message/UserMessage;)I\n-  #248 = Utf8               dev/langchain4j/data/message/AiMessage\n-  #249 = NameAndType        #128:#139     // estimateTokenCountIn:(Ldev/langchain4j/data/message/AiMessage;)I\n-  #250 = Utf8               dev/langchain4j/data/message/ToolExecutionResultMessage\n-  #251 = NameAndType        #128:#155     // estimateTokenCountIn:(Ldev/langchain4j/data/message/ToolExecutionResultMessage;)I\n-  #252 = Utf8               java/lang/IllegalArgumentException\n-  #253 = Utf8               java/lang/StringBuilder\n-  #254 = Utf8               Unknown message type:\n-  #255 = NameAndType        #358:#359     // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #256 = NameAndType        #358:#360     // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-  #257 = NameAndType        #361:#362     // toString:()Ljava/lang/String;\n-  #258 = NameAndType        #111:#112     // \"<init>\":(Ljava/lang/String;)V\n-  #259 = NameAndType        #120:#362     // text:()Ljava/lang/String;\n-  #260 = NameAndType        #118:#119     // estimateTokenCountInText:(Ljava/lang/String;)I\n-  #261 = NameAndType        #363:#364     // contents:()Ljava/util/List;\n-  #262 = Class              #365          // java/util/List\n-  #263 = NameAndType        #366:#367     // iterator:()Ljava/util/Iterator;\n-  #264 = Class              #341          // java/util/Iterator\n-  #265 = NameAndType        #368:#222     // hasNext:()Z\n-  #266 = NameAndType        #369:#370     // next:()Ljava/lang/Object;\n-  #267 = Utf8               dev/langchain4j/data/message/Content\n-  #268 = Utf8               dev/langchain4j/data/message/TextContent\n-  #269 = Utf8               dev/langchain4j/data/message/ImageContent\n-  #270 = Utf8               Unknown content type:\n-  #271 = Utf8               java/lang/Object\n-  #272 = Class              #371          // dev/langchain4j/internal/Exceptions\n-  #273 = NameAndType        #372:#373     // illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n-  #274 = NameAndType        #374:#362     // name:()Ljava/lang/String;\n-  #275 = Class              #375          // dev/langchain4j/model/openai/OpenAiChatModelName\n-  #276 = NameAndType        #376:#377     // GPT_4_VISION_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #277 = NameAndType        #378:#379     // equals:(Ljava/lang/Object;)Z\n-  #278 = NameAndType        #160:#159     // extraTokensPerName:()I\n-  #279 = NameAndType        #208:#364     // toolExecutionRequests:()Ljava/util/List;\n-  #280 = NameAndType        #221:#222     // isOneOfLatestModels:()Z\n-  #281 = NameAndType        #380:#159     // size:()I\n-  #282 = NameAndType        #381:#382     // get:(I)Ljava/lang/Object;\n-  #283 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n-  #284 = NameAndType        #146:#362     // arguments:()Ljava/lang/String;\n-  #285 = Utf8               java/util/Map\n-  #286 = Class              #383          // dev/langchain4j/internal/Json\n-  #287 = NameAndType        #384:#385     // fromJson:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n-  #288 = NameAndType        #386:#387     // entrySet:()Ljava/util/Set;\n-  #289 = Class              #388          // java/util/Set\n-  #290 = Utf8               java/util/Map$Entry\n-  #291 = NameAndType        #389:#370     // getKey:()Ljava/lang/Object;\n-  #292 = NameAndType        #390:#370     // getValue:()Ljava/lang/Object;\n-  #293 = Utf8               gpt-3.5-turbo-0301\n-  #294 = Class              #343          // java/lang/Iterable\n-  #295 = Utf8               dev/langchain4j/data/message/ChatMessage\n-  #296 = NameAndType        #121:#122     // estimateTokenCountInMessage:(Ldev/langchain4j/data/message/ChatMessage;)I\n-  #297 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n-  #298 = NameAndType        #308:#362     // description:()Ljava/lang/String;\n-  #299 = NameAndType        #180:#391     // parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-  #300 = NameAndType        #174:#175     // estimateTokenCountInToolParameters:(Ldev/langchain4j/agent/tool/ToolParameters;)I\n-  #301 = Class              #342          // dev/langchain4j/agent/tool/ToolParameters\n-  #302 = NameAndType        #182:#392     // properties:()Ljava/util/Map;\n-  #303 = NameAndType        #393:#387     // keySet:()Ljava/util/Set;\n-  #304 = Utf8               java/lang/String\n-  #305 = NameAndType        #381:#394     // get:(Ljava/lang/Object;)Ljava/lang/Object;\n-  #306 = Utf8               type\n-  #307 = Utf8               array\n-  #308 = Utf8               description\n-  #309 = NameAndType        #395:#364     // required:()Ljava/util/List;\n-  #310 = NameAndType        #396:#379     // contains:(Ljava/lang/Object;)Z\n-  #311 = Utf8               enum\n-  #312 = Utf8               [Ljava/lang/Object;\n-  #313 = Class              #397          // java/util/Collections\n-  #314 = NameAndType        #398:#399     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-  #315 = NameAndType        #167:#162     // estimateTokenCountInToolSpecifications:(Ljava/lang/Iterable;)I\n-  #316 = NameAndType        #400:#192     // encodeOrdinary:(Ljava/lang/String;)Ljava/util/List;\n-  #317 = NameAndType        #400:#401     // encodeOrdinary:(Ljava/lang/String;I)Lcom/knuddels/jtokkit/api/EncodingResult;\n-  #318 = Class              #402          // com/knuddels/jtokkit/api/EncodingResult\n-  #319 = NameAndType        #403:#364     // getTokens:()Ljava/util/List;\n-  #320 = NameAndType        #197:#198     // decode:(Ljava/util/List;)Ljava/lang/String;\n-  #321 = Utf8               BootstrapMethods\n-  #322 = MethodHandle       6:#404        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #323 = MethodType         #370          //  ()Ljava/lang/Object;\n-  #324 = MethodHandle       7:#405        // REF_invokeSpecial dev/langchain4j/model/openai/OpenAiTokenizer.lambda$unknownModelException$0:()Ljava/lang/IllegalArgumentException;\n-  #325 = MethodType         #226          //  ()Ljava/lang/IllegalArgumentException;\n-  #326 = NameAndType        #381:#406     // get:(Ldev/langchain4j/model/openai/OpenAiTokenizer;)Ljava/util/function/Supplier;\n-  #327 = NameAndType        #219:#119     // countArguments:(Ljava/lang/String;)I\n-  #328 = NameAndType        #407:#377     // GPT_3_5_TURBO_1106:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #329 = NameAndType        #224:#222     // isOneOfLatestGpt4Models:()Z\n-  #330 = NameAndType        #408:#377     // GPT_4_1106_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #331 = NameAndType        #206:#162     // estimateTokenCountInToolExecutionRequests:(Ljava/lang/Iterable;)I\n-  #332 = Class              #409          // dev/langchain4j/internal/Utils\n-  #333 = NameAndType        #410:#411     // isNullOrBlank:(Ljava/lang/String;)Z\n-  #334 = NameAndType        #223:#222     // isOneOfLatestGpt3Models:()Z\n-  #335 = NameAndType        #412:#377     // GPT_3_5_TURBO_0125:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #336 = NameAndType        #413:#377     // GPT_4_TURBO_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #337 = NameAndType        #414:#377     // GPT_4_0125_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #338 = Utf8               Model \\'%s\\' is unknown to jtokkit\n-  #339 = Utf8               dev/langchain4j/model/openai/OpenAiTokenizer\n-  #340 = Utf8               dev/langchain4j/model/Tokenizer\n-  #341 = Utf8               java/util/Iterator\n-  #342 = Utf8               dev/langchain4j/agent/tool/ToolParameters\n-  #343 = Utf8               java/lang/Iterable\n-  #344 = Utf8               ()V\n-  #345 = Utf8               dev/langchain4j/internal/ValidationUtils\n-  #346 = Utf8               ensureNotBlank\n-  #347 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\n-  #348 = Utf8               com/knuddels/jtokkit/Encodings\n-  #349 = Utf8               newLazyEncodingRegistry\n-  #350 = Utf8               ()Lcom/knuddels/jtokkit/api/EncodingRegistry;\n-  #351 = Utf8               com/knuddels/jtokkit/api/EncodingRegistry\n-  #352 = Utf8               getEncodingForModel\n-  #353 = Utf8               (Ljava/lang/String;)Ljava/util/Optional;\n-  #354 = Utf8               java/util/Optional\n-  #355 = Utf8               orElseThrow\n-  #356 = Utf8               (Ljava/util/function/Supplier;)Ljava/lang/Object;\n-  #357 = Utf8               countTokensOrdinary\n-  #358 = Utf8               append\n-  #359 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n-  #360 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-  #361 = Utf8               toString\n-  #362 = Utf8               ()Ljava/lang/String;\n-  #363 = Utf8               contents\n-  #364 = Utf8               ()Ljava/util/List;\n-  #365 = Utf8               java/util/List\n-  #366 = Utf8               iterator\n-  #367 = Utf8               ()Ljava/util/Iterator;\n-  #368 = Utf8               hasNext\n-  #369 = Utf8               next\n-  #370 = Utf8               ()Ljava/lang/Object;\n-  #371 = Utf8               dev/langchain4j/internal/Exceptions\n-  #372 = Utf8               illegalArgument\n-  #373 = Utf8               (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n-  #374 = Utf8               name\n-  #375 = Utf8               dev/langchain4j/model/openai/OpenAiChatModelName\n-  #376 = Utf8               GPT_4_VISION_PREVIEW\n-  #377 = Utf8               Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-  #378 = Utf8               equals\n-  #379 = Utf8               (Ljava/lang/Object;)Z\n-  #380 = Utf8               size\n-  #381 = Utf8               get\n-  #382 = Utf8               (I)Ljava/lang/Object;\n-  #383 = Utf8               dev/langchain4j/internal/Json\n-  #384 = Utf8               fromJson\n-  #385 = Utf8               (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n-  #386 = Utf8               entrySet\n-  #387 = Utf8               ()Ljava/util/Set;\n-  #388 = Utf8               java/util/Set\n-  #389 = Utf8               getKey\n-  #390 = Utf8               getValue\n-  #391 = Utf8               ()Ldev/langchain4j/agent/tool/ToolParameters;\n-  #392 = Utf8               ()Ljava/util/Map;\n-  #393 = Utf8               keySet\n-  #394 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n-  #395 = Utf8               required\n-  #396 = Utf8               contains\n-  #397 = Utf8               java/util/Collections\n-  #398 = Utf8               singletonList\n-  #399 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n-  #400 = Utf8               encodeOrdinary\n-  #401 = Utf8               (Ljava/lang/String;I)Lcom/knuddels/jtokkit/api/EncodingResult;\n-  #402 = Utf8               com/knuddels/jtokkit/api/EncodingResult\n-  #403 = Utf8               getTokens\n-  #404 = Methodref          #415.#416     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #405 = Methodref          #103.#417     // dev/langchain4j/model/openai/OpenAiTokenizer.lambda$unknownModelException$0:()Ljava/lang/IllegalArgumentException;\n-  #406 = Utf8               (Ldev/langchain4j/model/openai/OpenAiTokenizer;)Ljava/util/function/Supplier;\n-  #407 = Utf8               GPT_3_5_TURBO_1106\n-  #408 = Utf8               GPT_4_1106_PREVIEW\n-  #409 = Utf8               dev/langchain4j/internal/Utils\n-  #410 = Utf8               isNullOrBlank\n-  #411 = Utf8               (Ljava/lang/String;)Z\n-  #412 = Utf8               GPT_3_5_TURBO_0125\n-  #413 = Utf8               GPT_4_TURBO_PREVIEW\n-  #414 = Utf8               GPT_4_0125_PREVIEW\n-  #415 = Class              #418          // java/lang/invoke/LambdaMetafactory\n-  #416 = NameAndType        #419:#422     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #417 = NameAndType        #225:#226     // lambda$unknownModelException$0:()Ljava/lang/IllegalArgumentException;\n-  #418 = Utf8               java/lang/invoke/LambdaMetafactory\n-  #419 = Utf8               metafactory\n-  #420 = Class              #424          // java/lang/invoke/MethodHandles$Lookup\n-  #421 = Utf8               Lookup\n-  #422 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n-  #423 = Class              #425          // java/lang/invoke/MethodHandles\n-  #424 = Utf8               java/lang/invoke/MethodHandles$Lookup\n-  #425 = Utf8               java/lang/invoke/MethodHandles\n+    #1 = Methodref          #2.#3         // java/lang/Object.\"<init>\":()V\n+    #2 = Class              #4            // java/lang/Object\n+    #3 = NameAndType        #5:#6         // \"<init>\":()V\n+    #4 = Utf8               java/lang/Object\n+    #5 = Utf8               <init>\n+    #6 = Utf8               ()V\n+    #7 = String             #8            // modelName\n+    #8 = Utf8               modelName\n+    #9 = Methodref          #10.#11       // dev/langchain4j/internal/ValidationUtils.ensureNotBlank:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\n+   #10 = Class              #12           // dev/langchain4j/internal/ValidationUtils\n+   #11 = NameAndType        #13:#14       // ensureNotBlank:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\n+   #12 = Utf8               dev/langchain4j/internal/ValidationUtils\n+   #13 = Utf8               ensureNotBlank\n+   #14 = Utf8               (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\n+   #15 = Fieldref           #16.#17       // dev/langchain4j/model/openai/OpenAiTokenizer.modelName:Ljava/lang/String;\n+   #16 = Class              #18           // dev/langchain4j/model/openai/OpenAiTokenizer\n+   #17 = NameAndType        #8:#19        // modelName:Ljava/lang/String;\n+   #18 = Utf8               dev/langchain4j/model/openai/OpenAiTokenizer\n+   #19 = Utf8               Ljava/lang/String;\n+   #20 = Methodref          #21.#22       // com/knuddels/jtokkit/Encodings.newLazyEncodingRegistry:()Lcom/knuddels/jtokkit/api/EncodingRegistry;\n+   #21 = Class              #23           // com/knuddels/jtokkit/Encodings\n+   #22 = NameAndType        #24:#25       // newLazyEncodingRegistry:()Lcom/knuddels/jtokkit/api/EncodingRegistry;\n+   #23 = Utf8               com/knuddels/jtokkit/Encodings\n+   #24 = Utf8               newLazyEncodingRegistry\n+   #25 = Utf8               ()Lcom/knuddels/jtokkit/api/EncodingRegistry;\n+   #26 = InterfaceMethodref #27.#28       // com/knuddels/jtokkit/api/EncodingRegistry.getEncodingForModel:(Ljava/lang/String;)Ljava/util/Optional;\n+   #27 = Class              #29           // com/knuddels/jtokkit/api/EncodingRegistry\n+   #28 = NameAndType        #30:#31       // getEncodingForModel:(Ljava/lang/String;)Ljava/util/Optional;\n+   #29 = Utf8               com/knuddels/jtokkit/api/EncodingRegistry\n+   #30 = Utf8               getEncodingForModel\n+   #31 = Utf8               (Ljava/lang/String;)Ljava/util/Optional;\n+   #32 = Fieldref           #16.#33       // dev/langchain4j/model/openai/OpenAiTokenizer.encoding:Ljava/util/Optional;\n+   #33 = NameAndType        #34:#35       // encoding:Ljava/util/Optional;\n+   #34 = Utf8               encoding\n+   #35 = Utf8               Ljava/util/Optional;\n+   #36 = Methodref          #16.#37       // dev/langchain4j/model/openai/OpenAiTokenizer.unknownModelException:()Ljava/util/function/Supplier;\n+   #37 = NameAndType        #38:#39       // unknownModelException:()Ljava/util/function/Supplier;\n+   #38 = Utf8               unknownModelException\n+   #39 = Utf8               ()Ljava/util/function/Supplier;\n+   #40 = Methodref          #41.#42       // java/util/Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #41 = Class              #43           // java/util/Optional\n+   #42 = NameAndType        #44:#45       // orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #43 = Utf8               java/util/Optional\n+   #44 = Utf8               orElseThrow\n+   #45 = Utf8               (Ljava/util/function/Supplier;)Ljava/lang/Object;\n+   #46 = Class              #47           // com/knuddels/jtokkit/api/Encoding\n+   #47 = Utf8               com/knuddels/jtokkit/api/Encoding\n+   #48 = InterfaceMethodref #46.#49       // com/knuddels/jtokkit/api/Encoding.countTokensOrdinary:(Ljava/lang/String;)I\n+   #49 = NameAndType        #50:#51       // countTokensOrdinary:(Ljava/lang/String;)I\n+   #50 = Utf8               countTokensOrdinary\n+   #51 = Utf8               (Ljava/lang/String;)I\n+   #52 = Methodref          #16.#53       // dev/langchain4j/model/openai/OpenAiTokenizer.extraTokensPerMessage:()I\n+   #53 = NameAndType        #54:#55       // extraTokensPerMessage:()I\n+   #54 = Utf8               extraTokensPerMessage\n+   #55 = Utf8               ()I\n+   #56 = Class              #57           // dev/langchain4j/data/message/SystemMessage\n+   #57 = Utf8               dev/langchain4j/data/message/SystemMessage\n+   #58 = Methodref          #16.#59       // dev/langchain4j/model/openai/OpenAiTokenizer.estimateTokenCountIn:(Ldev/langchain4j/data/message/SystemMessage;)I\n+   #59 = NameAndType        #60:#61       // estimateTokenCountIn:(Ldev/langchain4j/data/message/SystemMessage;)I\n+   #60 = Utf8               estimateTokenCountIn\n+   #61 = Utf8               (Ldev/langchain4j/data/message/SystemMessage;)I\n+   #62 = Class              #63           // dev/langchain4j/data/message/UserMessage\n+   #63 = Utf8               dev/langchain4j/data/message/UserMessage\n+   #64 = Methodref          #16.#65       // dev/langchain4j/model/openai/OpenAiTokenizer.estimateTokenCountIn:(Ldev/langchain4j/data/message/UserMessage;)I\n+   #65 = NameAndType        #60:#66       // estimateTokenCountIn:(Ldev/langchain4j/data/message/UserMessage;)I\n+   #66 = Utf8               (Ldev/langchain4j/data/message/UserMessage;)I\n+   #67 = Class              #68           // dev/langchain4j/data/message/AiMessage\n+   #68 = Utf8               dev/langchain4j/data/message/AiMessage\n+   #69 = Methodref          #16.#70       // dev/langchain4j/model/openai/OpenAiTokenizer.estimateTokenCountIn:(Ldev/langchain4j/data/message/AiMessage;)I\n+   #70 = NameAndType        #60:#71       // estimateTokenCountIn:(Ldev/langchain4j/data/message/AiMessage;)I\n+   #71 = Utf8               (Ldev/langchain4j/data/message/AiMessage;)I\n+   #72 = Class              #73           // dev/langchain4j/data/message/ToolExecutionResultMessage\n+   #73 = Utf8               dev/langchain4j/data/message/ToolExecutionResultMessage\n+   #74 = Methodref          #16.#75       // dev/langchain4j/model/openai/OpenAiTokenizer.estimateTokenCountIn:(Ldev/langchain4j/data/message/ToolExecutionResultMessage;)I\n+   #75 = NameAndType        #60:#76       // estimateTokenCountIn:(Ldev/langchain4j/data/message/ToolExecutionResultMessage;)I\n+   #76 = Utf8               (Ldev/langchain4j/data/message/ToolExecutionResultMessage;)I\n+   #77 = Class              #78           // java/lang/IllegalArgumentException\n+   #78 = Utf8               java/lang/IllegalArgumentException\n+   #79 = Class              #80           // java/lang/StringBuilder\n+   #80 = Utf8               java/lang/StringBuilder\n+   #81 = Methodref          #79.#3        // java/lang/StringBuilder.\"<init>\":()V\n+   #82 = String             #83           // Unknown message type:\n+   #83 = Utf8               Unknown message type:\n+   #84 = Methodref          #79.#85       // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #85 = NameAndType        #86:#87       // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #86 = Utf8               append\n+   #87 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;\n+   #88 = Methodref          #79.#89       // java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #89 = NameAndType        #86:#90       // append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #90 = Utf8               (Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+   #91 = Methodref          #79.#92       // java/lang/StringBuilder.toString:()Ljava/lang/String;\n+   #92 = NameAndType        #93:#94       // toString:()Ljava/lang/String;\n+   #93 = Utf8               toString\n+   #94 = Utf8               ()Ljava/lang/String;\n+   #95 = Methodref          #77.#96       // java/lang/IllegalArgumentException.\"<init>\":(Ljava/lang/String;)V\n+   #96 = NameAndType        #5:#97        // \"<init>\":(Ljava/lang/String;)V\n+   #97 = Utf8               (Ljava/lang/String;)V\n+   #98 = Methodref          #56.#99       // dev/langchain4j/data/message/SystemMessage.text:()Ljava/lang/String;\n+   #99 = NameAndType        #100:#94      // text:()Ljava/lang/String;\n+  #100 = Utf8               text\n+  #101 = Methodref          #16.#102      // dev/langchain4j/model/openai/OpenAiTokenizer.estimateTokenCountInText:(Ljava/lang/String;)I\n+  #102 = NameAndType        #103:#51      // estimateTokenCountInText:(Ljava/lang/String;)I\n+  #103 = Utf8               estimateTokenCountInText\n+  #104 = Methodref          #62.#105      // dev/langchain4j/data/message/UserMessage.contents:()Ljava/util/List;\n+  #105 = NameAndType        #106:#107     // contents:()Ljava/util/List;\n+  #106 = Utf8               contents\n+  #107 = Utf8               ()Ljava/util/List;\n+  #108 = InterfaceMethodref #109.#110     // java/util/List.iterator:()Ljava/util/Iterator;\n+  #109 = Class              #111          // java/util/List\n+  #110 = NameAndType        #112:#113     // iterator:()Ljava/util/Iterator;\n+  #111 = Utf8               java/util/List\n+  #112 = Utf8               iterator\n+  #113 = Utf8               ()Ljava/util/Iterator;\n+  #114 = InterfaceMethodref #115.#116     // java/util/Iterator.hasNext:()Z\n+  #115 = Class              #117          // java/util/Iterator\n+  #116 = NameAndType        #118:#119     // hasNext:()Z\n+  #117 = Utf8               java/util/Iterator\n+  #118 = Utf8               hasNext\n+  #119 = Utf8               ()Z\n+  #120 = InterfaceMethodref #115.#121     // java/util/Iterator.next:()Ljava/lang/Object;\n+  #121 = NameAndType        #122:#123     // next:()Ljava/lang/Object;\n+  #122 = Utf8               next\n+  #123 = Utf8               ()Ljava/lang/Object;\n+  #124 = Class              #125          // dev/langchain4j/data/message/Content\n+  #125 = Utf8               dev/langchain4j/data/message/Content\n+  #126 = Class              #127          // dev/langchain4j/data/message/TextContent\n+  #127 = Utf8               dev/langchain4j/data/message/TextContent\n+  #128 = Methodref          #126.#99      // dev/langchain4j/data/message/TextContent.text:()Ljava/lang/String;\n+  #129 = Class              #130          // dev/langchain4j/data/message/ImageContent\n+  #130 = Utf8               dev/langchain4j/data/message/ImageContent\n+  #131 = String             #132          // Unknown content type:\n+  #132 = Utf8               Unknown content type:\n+  #133 = Methodref          #134.#135     // dev/langchain4j/internal/Exceptions.illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n+  #134 = Class              #136          // dev/langchain4j/internal/Exceptions\n+  #135 = NameAndType        #137:#138     // illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n+  #136 = Utf8               dev/langchain4j/internal/Exceptions\n+  #137 = Utf8               illegalArgument\n+  #138 = Utf8               (Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n+  #139 = Methodref          #62.#140      // dev/langchain4j/data/message/UserMessage.name:()Ljava/lang/String;\n+  #140 = NameAndType        #141:#94      // name:()Ljava/lang/String;\n+  #141 = Utf8               name\n+  #142 = Fieldref           #143.#144     // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_VISION_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+  #143 = Class              #145          // dev/langchain4j/model/openai/OpenAiChatModelName\n+  #144 = NameAndType        #146:#147     // GPT_4_VISION_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+  #145 = Utf8               dev/langchain4j/model/openai/OpenAiChatModelName\n+  #146 = Utf8               GPT_4_VISION_PREVIEW\n+  #147 = Utf8               Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+  #148 = Methodref          #149.#150     // java/lang/String.equals:(Ljava/lang/Object;)Z\n+  #149 = Class              #151          // java/lang/String\n+  #150 = NameAndType        #152:#153     // equals:(Ljava/lang/Object;)Z\n+  #151 = Utf8               java/lang/String\n+  #152 = Utf8               equals\n+  #153 = Utf8               (Ljava/lang/Object;)Z\n+  #154 = Methodref          #16.#155      // dev/langchain4j/model/openai/OpenAiTokenizer.extraTokensPerName:()I\n+  #155 = NameAndType        #156:#55      // extraTokensPerName:()I\n+  #156 = Utf8               extraTokensPerName\n+  #157 = Methodref          #67.#99       // dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+  #158 = Methodref          #67.#159      // dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+  #159 = NameAndType        #160:#107     // toolExecutionRequests:()Ljava/util/List;\n+  #160 = Utf8               toolExecutionRequests\n+  #161 = Methodref          #16.#162      // dev/langchain4j/model/openai/OpenAiTokenizer.isOneOfLatestModels:()Z\n+  #162 = NameAndType        #163:#119     // isOneOfLatestModels:()Z\n+  #163 = Utf8               isOneOfLatestModels\n+  #164 = InterfaceMethodref #109.#165     // java/util/List.size:()I\n+  #165 = NameAndType        #166:#55      // size:()I\n+  #166 = Utf8               size\n+  #167 = InterfaceMethodref #109.#168     // java/util/List.get:(I)Ljava/lang/Object;\n+  #168 = NameAndType        #169:#170     // get:(I)Ljava/lang/Object;\n+  #169 = Utf8               get\n+  #170 = Utf8               (I)Ljava/lang/Object;\n+  #171 = Class              #172          // dev/langchain4j/agent/tool/ToolExecutionRequest\n+  #172 = Utf8               dev/langchain4j/agent/tool/ToolExecutionRequest\n+  #173 = Methodref          #171.#140     // dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n+  #174 = Methodref          #171.#175     // dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+  #175 = NameAndType        #176:#94      // arguments:()Ljava/lang/String;\n+  #176 = Utf8               arguments\n+  #177 = Class              #178          // java/util/Map\n+  #178 = Utf8               java/util/Map\n+  #179 = Methodref          #180.#181     // dev/langchain4j/internal/Json.fromJson:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n+  #180 = Class              #182          // dev/langchain4j/internal/Json\n+  #181 = NameAndType        #183:#184     // fromJson:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n+  #182 = Utf8               dev/langchain4j/internal/Json\n+  #183 = Utf8               fromJson\n+  #184 = Utf8               (Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n+  #185 = InterfaceMethodref #177.#186     // java/util/Map.entrySet:()Ljava/util/Set;\n+  #186 = NameAndType        #187:#188     // entrySet:()Ljava/util/Set;\n+  #187 = Utf8               entrySet\n+  #188 = Utf8               ()Ljava/util/Set;\n+  #189 = InterfaceMethodref #190.#110     // java/util/Set.iterator:()Ljava/util/Iterator;\n+  #190 = Class              #191          // java/util/Set\n+  #191 = Utf8               java/util/Set\n+  #192 = Class              #193          // java/util/Map$Entry\n+  #193 = Utf8               java/util/Map$Entry\n+  #194 = InterfaceMethodref #192.#195     // java/util/Map$Entry.getKey:()Ljava/lang/Object;\n+  #195 = NameAndType        #196:#123     // getKey:()Ljava/lang/Object;\n+  #196 = Utf8               getKey\n+  #197 = Methodref          #2.#92        // java/lang/Object.toString:()Ljava/lang/String;\n+  #198 = InterfaceMethodref #192.#199     // java/util/Map$Entry.getValue:()Ljava/lang/Object;\n+  #199 = NameAndType        #200:#123     // getValue:()Ljava/lang/Object;\n+  #200 = Utf8               getValue\n+  #201 = Methodref          #72.#99       // dev/langchain4j/data/message/ToolExecutionResultMessage.text:()Ljava/lang/String;\n+  #202 = String             #203          // gpt-3.5-turbo-0301\n+  #203 = Utf8               gpt-3.5-turbo-0301\n+  #204 = InterfaceMethodref #205.#110     // java/lang/Iterable.iterator:()Ljava/util/Iterator;\n+  #205 = Class              #206          // java/lang/Iterable\n+  #206 = Utf8               java/lang/Iterable\n+  #207 = Class              #208          // dev/langchain4j/data/message/ChatMessage\n+  #208 = Utf8               dev/langchain4j/data/message/ChatMessage\n+  #209 = Methodref          #16.#210      // dev/langchain4j/model/openai/OpenAiTokenizer.estimateTokenCountInMessage:(Ldev/langchain4j/data/message/ChatMessage;)I\n+  #210 = NameAndType        #211:#212     // estimateTokenCountInMessage:(Ldev/langchain4j/data/message/ChatMessage;)I\n+  #211 = Utf8               estimateTokenCountInMessage\n+  #212 = Utf8               (Ldev/langchain4j/data/message/ChatMessage;)I\n+  #213 = Class              #214          // dev/langchain4j/agent/tool/ToolSpecification\n+  #214 = Utf8               dev/langchain4j/agent/tool/ToolSpecification\n+  #215 = Methodref          #213.#140     // dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n+  #216 = Methodref          #213.#217     // dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n+  #217 = NameAndType        #218:#94      // description:()Ljava/lang/String;\n+  #218 = Utf8               description\n+  #219 = Methodref          #213.#220     // dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+  #220 = NameAndType        #221:#222     // parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+  #221 = Utf8               parameters\n+  #222 = Utf8               ()Ldev/langchain4j/agent/tool/ToolParameters;\n+  #223 = Methodref          #16.#224      // dev/langchain4j/model/openai/OpenAiTokenizer.estimateTokenCountInToolParameters:(Ldev/langchain4j/agent/tool/ToolParameters;)I\n+  #224 = NameAndType        #225:#226     // estimateTokenCountInToolParameters:(Ldev/langchain4j/agent/tool/ToolParameters;)I\n+  #225 = Utf8               estimateTokenCountInToolParameters\n+  #226 = Utf8               (Ldev/langchain4j/agent/tool/ToolParameters;)I\n+  #227 = Methodref          #228.#229     // dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n+  #228 = Class              #230          // dev/langchain4j/agent/tool/ToolParameters\n+  #229 = NameAndType        #231:#232     // properties:()Ljava/util/Map;\n+  #230 = Utf8               dev/langchain4j/agent/tool/ToolParameters\n+  #231 = Utf8               properties\n+  #232 = Utf8               ()Ljava/util/Map;\n+  #233 = InterfaceMethodref #177.#165     // java/util/Map.size:()I\n+  #234 = InterfaceMethodref #177.#235     // java/util/Map.keySet:()Ljava/util/Set;\n+  #235 = NameAndType        #236:#188     // keySet:()Ljava/util/Set;\n+  #236 = Utf8               keySet\n+  #237 = InterfaceMethodref #177.#238     // java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #238 = NameAndType        #169:#239     // get:(Ljava/lang/Object;)Ljava/lang/Object;\n+  #239 = Utf8               (Ljava/lang/Object;)Ljava/lang/Object;\n+  #240 = String             #241          // type\n+  #241 = Utf8               type\n+  #242 = String             #243          // array\n+  #243 = Utf8               array\n+  #244 = String             #218          // description\n+  #245 = Methodref          #228.#246     // dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n+  #246 = NameAndType        #247:#107     // required:()Ljava/util/List;\n+  #247 = Utf8               required\n+  #248 = InterfaceMethodref #109.#249     // java/util/List.contains:(Ljava/lang/Object;)Z\n+  #249 = NameAndType        #250:#153     // contains:(Ljava/lang/Object;)Z\n+  #250 = Utf8               contains\n+  #251 = String             #252          // enum\n+  #252 = Utf8               enum\n+  #253 = Class              #254          // \"[Ljava/lang/Object;\"\n+  #254 = Utf8               [Ljava/lang/Object;\n+  #255 = Methodref          #256.#257     // java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #256 = Class              #258          // java/util/Collections\n+  #257 = NameAndType        #259:#260     // singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+  #258 = Utf8               java/util/Collections\n+  #259 = Utf8               singletonList\n+  #260 = Utf8               (Ljava/lang/Object;)Ljava/util/List;\n+  #261 = Methodref          #16.#262      // dev/langchain4j/model/openai/OpenAiTokenizer.estimateTokenCountInToolSpecifications:(Ljava/lang/Iterable;)I\n+  #262 = NameAndType        #263:#264     // estimateTokenCountInToolSpecifications:(Ljava/lang/Iterable;)I\n+  #263 = Utf8               estimateTokenCountInToolSpecifications\n+  #264 = Utf8               (Ljava/lang/Iterable;)I\n+  #265 = InterfaceMethodref #46.#266      // com/knuddels/jtokkit/api/Encoding.encodeOrdinary:(Ljava/lang/String;)Ljava/util/List;\n+  #266 = NameAndType        #267:#268     // encodeOrdinary:(Ljava/lang/String;)Ljava/util/List;\n+  #267 = Utf8               encodeOrdinary\n+  #268 = Utf8               (Ljava/lang/String;)Ljava/util/List;\n+  #269 = InterfaceMethodref #46.#270      // com/knuddels/jtokkit/api/Encoding.encodeOrdinary:(Ljava/lang/String;I)Lcom/knuddels/jtokkit/api/EncodingResult;\n+  #270 = NameAndType        #267:#271     // encodeOrdinary:(Ljava/lang/String;I)Lcom/knuddels/jtokkit/api/EncodingResult;\n+  #271 = Utf8               (Ljava/lang/String;I)Lcom/knuddels/jtokkit/api/EncodingResult;\n+  #272 = Methodref          #273.#274     // com/knuddels/jtokkit/api/EncodingResult.getTokens:()Ljava/util/List;\n+  #273 = Class              #275          // com/knuddels/jtokkit/api/EncodingResult\n+  #274 = NameAndType        #276:#107     // getTokens:()Ljava/util/List;\n+  #275 = Utf8               com/knuddels/jtokkit/api/EncodingResult\n+  #276 = Utf8               getTokens\n+  #277 = InterfaceMethodref #46.#278      // com/knuddels/jtokkit/api/Encoding.decode:(Ljava/util/List;)Ljava/lang/String;\n+  #278 = NameAndType        #279:#280     // decode:(Ljava/util/List;)Ljava/lang/String;\n+  #279 = Utf8               decode\n+  #280 = Utf8               (Ljava/util/List;)Ljava/lang/String;\n+  #281 = InvokeDynamic      #0:#282       // #0:get:(Ldev/langchain4j/model/openai/OpenAiTokenizer;)Ljava/util/function/Supplier;\n+  #282 = NameAndType        #169:#283     // get:(Ldev/langchain4j/model/openai/OpenAiTokenizer;)Ljava/util/function/Supplier;\n+  #283 = Utf8               (Ldev/langchain4j/model/openai/OpenAiTokenizer;)Ljava/util/function/Supplier;\n+  #284 = Methodref          #16.#285      // dev/langchain4j/model/openai/OpenAiTokenizer.countArguments:(Ljava/lang/String;)I\n+  #285 = NameAndType        #286:#51      // countArguments:(Ljava/lang/String;)I\n+  #286 = Utf8               countArguments\n+  #287 = Fieldref           #143.#288     // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_1106:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+  #288 = NameAndType        #289:#147     // GPT_3_5_TURBO_1106:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+  #289 = Utf8               GPT_3_5_TURBO_1106\n+  #290 = Methodref          #143.#92      // dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n+  #291 = Methodref          #16.#292      // dev/langchain4j/model/openai/OpenAiTokenizer.isOneOfLatestGpt4Models:()Z\n+  #292 = NameAndType        #293:#119     // isOneOfLatestGpt4Models:()Z\n+  #293 = Utf8               isOneOfLatestGpt4Models\n+  #294 = Fieldref           #143.#295     // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_1106_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+  #295 = NameAndType        #296:#147     // GPT_4_1106_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+  #296 = Utf8               GPT_4_1106_PREVIEW\n+  #297 = Methodref          #16.#298      // dev/langchain4j/model/openai/OpenAiTokenizer.estimateTokenCountInToolExecutionRequests:(Ljava/lang/Iterable;)I\n+  #298 = NameAndType        #299:#264     // estimateTokenCountInToolExecutionRequests:(Ljava/lang/Iterable;)I\n+  #299 = Utf8               estimateTokenCountInToolExecutionRequests\n+  #300 = Methodref          #301.#302     // dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n+  #301 = Class              #303          // dev/langchain4j/internal/Utils\n+  #302 = NameAndType        #304:#305     // isNullOrBlank:(Ljava/lang/String;)Z\n+  #303 = Utf8               dev/langchain4j/internal/Utils\n+  #304 = Utf8               isNullOrBlank\n+  #305 = Utf8               (Ljava/lang/String;)Z\n+  #306 = Methodref          #16.#307      // dev/langchain4j/model/openai/OpenAiTokenizer.isOneOfLatestGpt3Models:()Z\n+  #307 = NameAndType        #308:#119     // isOneOfLatestGpt3Models:()Z\n+  #308 = Utf8               isOneOfLatestGpt3Models\n+  #309 = Fieldref           #143.#310     // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_0125:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+  #310 = NameAndType        #311:#147     // GPT_3_5_TURBO_0125:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+  #311 = Utf8               GPT_3_5_TURBO_0125\n+  #312 = Fieldref           #143.#313     // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_TURBO_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+  #313 = NameAndType        #314:#147     // GPT_4_TURBO_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+  #314 = Utf8               GPT_4_TURBO_PREVIEW\n+  #315 = Fieldref           #143.#316     // dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_0125_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+  #316 = NameAndType        #317:#147     // GPT_4_0125_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+  #317 = Utf8               GPT_4_0125_PREVIEW\n+  #318 = String             #319          // Model \\'%s\\' is unknown to jtokkit\n+  #319 = Utf8               Model \\'%s\\' is unknown to jtokkit\n+  #320 = Class              #321          // dev/langchain4j/model/Tokenizer\n+  #321 = Utf8               dev/langchain4j/model/Tokenizer\n+  #322 = Utf8               Signature\n+  #323 = Utf8               Ljava/util/Optional<Lcom/knuddels/jtokkit/api/Encoding;>;\n+  #324 = Utf8               Code\n+  #325 = Utf8               LineNumberTable\n+  #326 = Utf8               LocalVariableTable\n+  #327 = Utf8               this\n+  #328 = Utf8               Ldev/langchain4j/model/openai/OpenAiTokenizer;\n+  #329 = Utf8               message\n+  #330 = Utf8               Ldev/langchain4j/data/message/ChatMessage;\n+  #331 = Utf8               tokenCount\n+  #332 = Utf8               I\n+  #333 = Utf8               StackMapTable\n+  #334 = Utf8               systemMessage\n+  #335 = Utf8               Ldev/langchain4j/data/message/SystemMessage;\n+  #336 = Utf8               content\n+  #337 = Utf8               Ldev/langchain4j/data/message/Content;\n+  #338 = Utf8               userMessage\n+  #339 = Utf8               Ldev/langchain4j/data/message/UserMessage;\n+  #340 = Utf8               toolExecutionRequest\n+  #341 = Utf8               Ldev/langchain4j/agent/tool/ToolExecutionRequest;\n+  #342 = Utf8               argument\n+  #343 = Utf8               Ljava/util/Map$Entry;\n+  #344 = Utf8               Ljava/util/Map;\n+  #345 = Utf8               aiMessage\n+  #346 = Utf8               Ldev/langchain4j/data/message/AiMessage;\n+  #347 = Utf8               LocalVariableTypeTable\n+  #348 = Utf8               Ljava/util/Map$Entry<**>;\n+  #349 = Utf8               Ljava/util/Map<**>;\n+  #350 = Utf8               toolExecutionResultMessage\n+  #351 = Utf8               Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n+  #352 = Utf8               estimateTokenCountInMessages\n+  #353 = Utf8               messages\n+  #354 = Utf8               Ljava/lang/Iterable;\n+  #355 = Utf8               Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;\n+  #356 = Utf8               (Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;)I\n+  #357 = Utf8               toolSpecification\n+  #358 = Utf8               Ldev/langchain4j/agent/tool/ToolSpecification;\n+  #359 = Utf8               toolSpecifications\n+  #360 = Utf8               Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolSpecification;>;\n+  #361 = Utf8               (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolSpecification;>;)I\n+  #362 = Utf8               enumValue\n+  #363 = Utf8               Ljava/lang/Object;\n+  #364 = Utf8               entry\n+  #365 = Utf8               property\n+  #366 = Utf8               Ldev/langchain4j/agent/tool/ToolParameters;\n+  #367 = Utf8               Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;\n+  #368 = Utf8               Ljava/util/Map<Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;\n+  #369 = Utf8               estimateTokenCountInForcefulToolSpecification\n+  #370 = Utf8               (Ldev/langchain4j/agent/tool/ToolSpecification;)I\n+  #371 = Utf8               encode\n+  #372 = Utf8               (Ljava/lang/String;)Ljava/util/List<Ljava/lang/Integer;>;\n+  #373 = Utf8               (Ljava/lang/String;I)Ljava/util/List;\n+  #374 = Utf8               maxTokensToEncode\n+  #375 = Utf8               (Ljava/lang/String;I)Ljava/util/List<Ljava/lang/Integer;>;\n+  #376 = Utf8               tokens\n+  #377 = Utf8               Ljava/util/List;\n+  #378 = Utf8               Ljava/util/List<Ljava/lang/Integer;>;\n+  #379 = Utf8               (Ljava/util/List<Ljava/lang/Integer;>;)Ljava/lang/String;\n+  #380 = Utf8               ()Ljava/util/function/Supplier<Ljava/lang/IllegalArgumentException;>;\n+  #381 = Utf8               argumentCount\n+  #382 = Utf8               toolsCount\n+  #383 = Utf8               toolsWithArgumentsCount\n+  #384 = Utf8               toolsWithoutArgumentsCount\n+  #385 = Utf8               totalArgumentsCount\n+  #386 = Utf8               Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;\n+  #387 = Utf8               (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;)I\n+  #388 = Utf8               estimateTokenCountInForcefulToolExecutionRequest\n+  #389 = Utf8               (Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n+  #390 = Utf8               argumentsCount\n+  #391 = Utf8               argumentsMap\n+  #392 = Utf8               lambda$unknownModelException$0\n+  #393 = Utf8               ()Ljava/lang/IllegalArgumentException;\n+  #394 = Utf8               SourceFile\n+  #395 = Utf8               OpenAiTokenizer.java\n+  #396 = Utf8               BootstrapMethods\n+  #397 = MethodHandle       6:#398        // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #398 = Methodref          #399.#400     // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #399 = Class              #401          // java/lang/invoke/LambdaMetafactory\n+  #400 = NameAndType        #402:#403     // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #401 = Utf8               java/lang/invoke/LambdaMetafactory\n+  #402 = Utf8               metafactory\n+  #403 = Utf8               (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  #404 = MethodType         #123          //  ()Ljava/lang/Object;\n+  #405 = MethodHandle       7:#406        // REF_invokeSpecial dev/langchain4j/model/openai/OpenAiTokenizer.lambda$unknownModelException$0:()Ljava/lang/IllegalArgumentException;\n+  #406 = Methodref          #16.#407      // dev/langchain4j/model/openai/OpenAiTokenizer.lambda$unknownModelException$0:()Ljava/lang/IllegalArgumentException;\n+  #407 = NameAndType        #392:#393     // lambda$unknownModelException$0:()Ljava/lang/IllegalArgumentException;\n+  #408 = MethodType         #393          //  ()Ljava/lang/IllegalArgumentException;\n+  #409 = Utf8               InnerClasses\n+  #410 = Utf8               Entry\n+  #411 = Class              #412          // java/lang/invoke/MethodHandles$Lookup\n+  #412 = Utf8               java/lang/invoke/MethodHandles$Lookup\n+  #413 = Class              #414          // java/lang/invoke/MethodHandles\n+  #414 = Utf8               java/lang/invoke/MethodHandles\n+  #415 = Utf8               Lookup\n {\n   private final java.lang.String modelName;\n     descriptor: Ljava/lang/String;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n \n   private final java.util.Optional<com.knuddels.jtokkit.api.Encoding> encoding;\n     descriptor: Ljava/util/Optional;\n     flags: (0x0012) ACC_PRIVATE, ACC_FINAL\n-    Signature: #110                         // Ljava/util/Optional<Lcom/knuddels/jtokkit/api/Encoding;>;\n+    Signature: #323                         // Ljava/util/Optional<Lcom/knuddels/jtokkit/api/Encoding;>;\n \n   public dev.langchain4j.model.openai.OpenAiTokenizer(java.lang.String);\n     descriptor: (Ljava/lang/String;)V\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=2, args_size=2\n          0: aload_0\n          1: invokespecial #1                  // Method java/lang/Object.\"<init>\":()V\n          4: aload_0\n          5: aload_1\n-         6: ldc           #2                  // String modelName\n-         8: invokestatic  #3                  // Method dev/langchain4j/internal/ValidationUtils.ensureNotBlank:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\n-        11: putfield      #4                  // Field modelName:Ljava/lang/String;\n+         6: ldc           #7                  // String modelName\n+         8: invokestatic  #9                  // Method dev/langchain4j/internal/ValidationUtils.ensureNotBlank:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;\n+        11: putfield      #15                 // Field modelName:Ljava/lang/String;\n         14: aload_0\n-        15: invokestatic  #5                  // Method com/knuddels/jtokkit/Encodings.newLazyEncodingRegistry:()Lcom/knuddels/jtokkit/api/EncodingRegistry;\n+        15: invokestatic  #20                 // Method com/knuddels/jtokkit/Encodings.newLazyEncodingRegistry:()Lcom/knuddels/jtokkit/api/EncodingRegistry;\n         18: aload_1\n-        19: invokeinterface #6,  2            // InterfaceMethod com/knuddels/jtokkit/api/EncodingRegistry.getEncodingForModel:(Ljava/lang/String;)Ljava/util/Optional;\n-        24: putfield      #7                  // Field encoding:Ljava/util/Optional;\n+        19: invokeinterface #26,  2           // InterfaceMethod com/knuddels/jtokkit/api/EncodingRegistry.getEncodingForModel:(Ljava/lang/String;)Ljava/util/Optional;\n+        24: putfield      #32                 // Field encoding:Ljava/util/Optional;\n         27: return\n       LineNumberTable:\n         line 33: 0\n         line 34: 4\n         line 39: 14\n         line 40: 27\n       LocalVariableTable:\n@@ -473,21 +463,21 @@\n \n   public int estimateTokenCountInText(java.lang.String);\n     descriptor: (Ljava/lang/String;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #7                  // Field encoding:Ljava/util/Optional;\n+         1: getfield      #32                 // Field encoding:Ljava/util/Optional;\n          4: aload_0\n-         5: invokespecial #8                  // Method unknownModelException:()Ljava/util/function/Supplier;\n-         8: invokevirtual #9                  // Method java/util/Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        11: checkcast     #10                 // class com/knuddels/jtokkit/api/Encoding\n+         5: invokespecial #36                 // Method unknownModelException:()Ljava/util/function/Supplier;\n+         8: invokevirtual #40                 // Method java/util/Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        11: checkcast     #46                 // class com/knuddels/jtokkit/api/Encoding\n         14: aload_1\n-        15: invokeinterface #11,  2           // InterfaceMethod com/knuddels/jtokkit/api/Encoding.countTokensOrdinary:(Ljava/lang/String;)I\n+        15: invokeinterface #48,  2           // InterfaceMethod com/knuddels/jtokkit/api/Encoding.countTokensOrdinary:(Ljava/lang/String;)I\n         20: ireturn\n       LineNumberTable:\n         line 43: 0\n         line 44: 15\n         line 43: 20\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n@@ -499,72 +489,72 @@\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=4, locals=3, args_size=2\n          0: iconst_1\n          1: istore_2\n          2: iload_2\n          3: aload_0\n-         4: invokespecial #12                 // Method extraTokensPerMessage:()I\n+         4: invokespecial #52                 // Method extraTokensPerMessage:()I\n          7: iadd\n          8: istore_2\n          9: aload_1\n-        10: instanceof    #13                 // class dev/langchain4j/data/message/SystemMessage\n+        10: instanceof    #56                 // class dev/langchain4j/data/message/SystemMessage\n         13: ifeq          30\n         16: iload_2\n         17: aload_0\n         18: aload_1\n-        19: checkcast     #13                 // class dev/langchain4j/data/message/SystemMessage\n-        22: invokespecial #14                 // Method estimateTokenCountIn:(Ldev/langchain4j/data/message/SystemMessage;)I\n+        19: checkcast     #56                 // class dev/langchain4j/data/message/SystemMessage\n+        22: invokespecial #58                 // Method estimateTokenCountIn:(Ldev/langchain4j/data/message/SystemMessage;)I\n         25: iadd\n         26: istore_2\n         27: goto          120\n         30: aload_1\n-        31: instanceof    #15                 // class dev/langchain4j/data/message/UserMessage\n+        31: instanceof    #62                 // class dev/langchain4j/data/message/UserMessage\n         34: ifeq          51\n         37: iload_2\n         38: aload_0\n         39: aload_1\n-        40: checkcast     #15                 // class dev/langchain4j/data/message/UserMessage\n-        43: invokespecial #16                 // Method estimateTokenCountIn:(Ldev/langchain4j/data/message/UserMessage;)I\n+        40: checkcast     #62                 // class dev/langchain4j/data/message/UserMessage\n+        43: invokespecial #64                 // Method estimateTokenCountIn:(Ldev/langchain4j/data/message/UserMessage;)I\n         46: iadd\n         47: istore_2\n         48: goto          120\n         51: aload_1\n-        52: instanceof    #17                 // class dev/langchain4j/data/message/AiMessage\n+        52: instanceof    #67                 // class dev/langchain4j/data/message/AiMessage\n         55: ifeq          72\n         58: iload_2\n         59: aload_0\n         60: aload_1\n-        61: checkcast     #17                 // class dev/langchain4j/data/message/AiMessage\n-        64: invokespecial #18                 // Method estimateTokenCountIn:(Ldev/langchain4j/data/message/AiMessage;)I\n+        61: checkcast     #67                 // class dev/langchain4j/data/message/AiMessage\n+        64: invokespecial #69                 // Method estimateTokenCountIn:(Ldev/langchain4j/data/message/AiMessage;)I\n         67: iadd\n         68: istore_2\n         69: goto          120\n         72: aload_1\n-        73: instanceof    #19                 // class dev/langchain4j/data/message/ToolExecutionResultMessage\n+        73: instanceof    #72                 // class dev/langchain4j/data/message/ToolExecutionResultMessage\n         76: ifeq          93\n         79: iload_2\n         80: aload_0\n         81: aload_1\n-        82: checkcast     #19                 // class dev/langchain4j/data/message/ToolExecutionResultMessage\n-        85: invokespecial #20                 // Method estimateTokenCountIn:(Ldev/langchain4j/data/message/ToolExecutionResultMessage;)I\n+        82: checkcast     #72                 // class dev/langchain4j/data/message/ToolExecutionResultMessage\n+        85: invokespecial #74                 // Method estimateTokenCountIn:(Ldev/langchain4j/data/message/ToolExecutionResultMessage;)I\n         88: iadd\n         89: istore_2\n         90: goto          120\n-        93: new           #21                 // class java/lang/IllegalArgumentException\n+        93: new           #77                 // class java/lang/IllegalArgumentException\n         96: dup\n-        97: new           #22                 // class java/lang/StringBuilder\n+        97: new           #79                 // class java/lang/StringBuilder\n        100: dup\n-       101: invokespecial #23                 // Method java/lang/StringBuilder.\"<init>\":()V\n-       104: ldc           #24                 // String Unknown message type:\n-       106: invokevirtual #25                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+       101: invokespecial #81                 // Method java/lang/StringBuilder.\"<init>\":()V\n+       104: ldc           #82                 // String Unknown message type:\n+       106: invokevirtual #84                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n        109: aload_1\n-       110: invokevirtual #26                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-       113: invokevirtual #27                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n-       116: invokespecial #28                 // Method java/lang/IllegalArgumentException.\"<init>\":(Ljava/lang/String;)V\n+       110: invokevirtual #88                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+       113: invokevirtual #91                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+       116: invokespecial #95                 // Method java/lang/IllegalArgumentException.\"<init>\":(Ljava/lang/String;)V\n        119: athrow\n        120: iload_2\n        121: ireturn\n       LineNumberTable:\n         line 49: 0\n         line 50: 2\n         line 52: 9\n@@ -594,16 +584,16 @@\n   private int estimateTokenCountIn(dev.langchain4j.data.message.SystemMessage);\n     descriptor: (Ldev/langchain4j/data/message/SystemMessage;)I\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokevirtual #29                 // Method dev/langchain4j/data/message/SystemMessage.text:()Ljava/lang/String;\n-         5: invokevirtual #30                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+         2: invokevirtual #98                 // Method dev/langchain4j/data/message/SystemMessage.text:()Ljava/lang/String;\n+         5: invokevirtual #101                // Method estimateTokenCountInText:(Ljava/lang/String;)I\n          8: ireturn\n       LineNumberTable:\n         line 68: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       9     0  this   Ldev/langchain4j/model/openai/OpenAiTokenizer;\n             0       9     1 systemMessage   Ldev/langchain4j/data/message/SystemMessage;\n@@ -612,72 +602,72 @@\n     descriptor: (Ldev/langchain4j/data/message/UserMessage;)I\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=3, locals=5, args_size=2\n          0: iconst_0\n          1: istore_2\n          2: aload_1\n-         3: invokevirtual #31                 // Method dev/langchain4j/data/message/UserMessage.contents:()Ljava/util/List;\n-         6: invokeinterface #32,  1           // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;\n+         3: invokevirtual #104                // Method dev/langchain4j/data/message/UserMessage.contents:()Ljava/util/List;\n+         6: invokeinterface #108,  1          // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;\n         11: astore_3\n         12: aload_3\n-        13: invokeinterface #33,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z\n+        13: invokeinterface #114,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z\n         18: ifeq          103\n         21: aload_3\n-        22: invokeinterface #34,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n-        27: checkcast     #35                 // class dev/langchain4j/data/message/Content\n+        22: invokeinterface #120,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n+        27: checkcast     #124                // class dev/langchain4j/data/message/Content\n         30: astore        4\n         32: aload         4\n-        34: instanceof    #36                 // class dev/langchain4j/data/message/TextContent\n+        34: instanceof    #126                // class dev/langchain4j/data/message/TextContent\n         37: ifeq          58\n         40: iload_2\n         41: aload_0\n         42: aload         4\n-        44: checkcast     #36                 // class dev/langchain4j/data/message/TextContent\n-        47: invokevirtual #37                 // Method dev/langchain4j/data/message/TextContent.text:()Ljava/lang/String;\n-        50: invokevirtual #30                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+        44: checkcast     #126                // class dev/langchain4j/data/message/TextContent\n+        47: invokevirtual #128                // Method dev/langchain4j/data/message/TextContent.text:()Ljava/lang/String;\n+        50: invokevirtual #101                // Method estimateTokenCountInText:(Ljava/lang/String;)I\n         53: iadd\n         54: istore_2\n         55: goto          100\n         58: aload         4\n-        60: instanceof    #38                 // class dev/langchain4j/data/message/ImageContent\n+        60: instanceof    #129                // class dev/langchain4j/data/message/ImageContent\n         63: ifeq          72\n         66: iinc          2, 85\n         69: goto          100\n-        72: new           #22                 // class java/lang/StringBuilder\n+        72: new           #79                 // class java/lang/StringBuilder\n         75: dup\n-        76: invokespecial #23                 // Method java/lang/StringBuilder.\"<init>\":()V\n-        79: ldc           #39                 // String Unknown content type:\n-        81: invokevirtual #25                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n+        76: invokespecial #81                 // Method java/lang/StringBuilder.\"<init>\":()V\n+        79: ldc           #131                // String Unknown content type:\n+        81: invokevirtual #84                 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;\n         84: aload         4\n-        86: invokevirtual #26                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n-        89: invokevirtual #27                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n+        86: invokevirtual #88                 // Method java/lang/StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;\n+        89: invokevirtual #91                 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;\n         92: iconst_0\n-        93: anewarray     #40                 // class java/lang/Object\n-        96: invokestatic  #41                 // Method dev/langchain4j/internal/Exceptions.illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n+        93: anewarray     #2                  // class java/lang/Object\n+        96: invokestatic  #133                // Method dev/langchain4j/internal/Exceptions.illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n         99: athrow\n        100: goto          12\n        103: aload_1\n-       104: invokevirtual #42                 // Method dev/langchain4j/data/message/UserMessage.name:()Ljava/lang/String;\n+       104: invokevirtual #139                // Method dev/langchain4j/data/message/UserMessage.name:()Ljava/lang/String;\n        107: ifnull        141\n        110: aload_0\n-       111: getfield      #4                  // Field modelName:Ljava/lang/String;\n-       114: getstatic     #43                 // Field dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_VISION_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       117: invokevirtual #44                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+       111: getfield      #15                 // Field modelName:Ljava/lang/String;\n+       114: getstatic     #142                // Field dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_VISION_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+       117: invokevirtual #148                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n        120: ifne          141\n        123: iload_2\n        124: aload_0\n-       125: invokespecial #45                 // Method extraTokensPerName:()I\n+       125: invokespecial #154                // Method extraTokensPerName:()I\n        128: iadd\n        129: istore_2\n        130: iload_2\n        131: aload_0\n        132: aload_1\n-       133: invokevirtual #42                 // Method dev/langchain4j/data/message/UserMessage.name:()Ljava/lang/String;\n-       136: invokevirtual #30                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+       133: invokevirtual #139                // Method dev/langchain4j/data/message/UserMessage.name:()Ljava/lang/String;\n+       136: invokevirtual #101                // Method estimateTokenCountInText:(Ljava/lang/String;)I\n        139: iadd\n        140: istore_2\n        141: iload_2\n        142: ireturn\n       LineNumberTable:\n         line 72: 0\n         line 74: 2\n@@ -715,113 +705,113 @@\n     descriptor: (Ldev/langchain4j/data/message/AiMessage;)I\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=3, locals=8, args_size=2\n          0: iconst_0\n          1: istore_2\n          2: aload_1\n-         3: invokevirtual #46                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+         3: invokevirtual #157                // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n          6: ifnull        20\n          9: iload_2\n         10: aload_0\n         11: aload_1\n-        12: invokevirtual #46                 // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n-        15: invokevirtual #30                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+        12: invokevirtual #157                // Method dev/langchain4j/data/message/AiMessage.text:()Ljava/lang/String;\n+        15: invokevirtual #101                // Method estimateTokenCountInText:(Ljava/lang/String;)I\n         18: iadd\n         19: istore_2\n         20: aload_1\n-        21: invokevirtual #47                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+        21: invokevirtual #158                // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n         24: ifnull        242\n         27: aload_0\n-        28: invokespecial #48                 // Method isOneOfLatestModels:()Z\n+        28: invokespecial #161                // Method isOneOfLatestModels:()Z\n         31: ifeq          40\n         34: iinc          2, 6\n         37: goto          43\n         40: iinc          2, 3\n         43: aload_1\n-        44: invokevirtual #47                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-        47: invokeinterface #49,  1           // InterfaceMethod java/util/List.size:()I\n+        44: invokevirtual #158                // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+        47: invokeinterface #164,  1          // InterfaceMethod java/util/List.size:()I\n         52: iconst_1\n         53: if_icmpne     100\n         56: iinc          2, -1\n         59: aload_1\n-        60: invokevirtual #47                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+        60: invokevirtual #158                // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n         63: iconst_0\n-        64: invokeinterface #50,  2           // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n-        69: checkcast     #51                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+        64: invokeinterface #167,  2          // InterfaceMethod java/util/List.get:(I)Ljava/lang/Object;\n+        69: checkcast     #171                // class dev/langchain4j/agent/tool/ToolExecutionRequest\n         72: astore_3\n         73: iload_2\n         74: aload_0\n         75: aload_3\n-        76: invokevirtual #52                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n-        79: invokevirtual #30                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+        76: invokevirtual #173                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n+        79: invokevirtual #101                // Method estimateTokenCountInText:(Ljava/lang/String;)I\n         82: iconst_2\n         83: imul\n         84: iadd\n         85: istore_2\n         86: iload_2\n         87: aload_0\n         88: aload_3\n-        89: invokevirtual #53                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-        92: invokevirtual #30                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+        89: invokevirtual #174                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+        92: invokevirtual #101                // Method estimateTokenCountInText:(Ljava/lang/String;)I\n         95: iadd\n         96: istore_2\n         97: goto          242\n        100: iinc          2, 15\n        103: aload_1\n-       104: invokevirtual #47                 // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n-       107: invokeinterface #32,  1           // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;\n+       104: invokevirtual #158                // Method dev/langchain4j/data/message/AiMessage.toolExecutionRequests:()Ljava/util/List;\n+       107: invokeinterface #108,  1          // InterfaceMethod java/util/List.iterator:()Ljava/util/Iterator;\n        112: astore_3\n        113: aload_3\n-       114: invokeinterface #33,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z\n+       114: invokeinterface #114,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z\n        119: ifeq          242\n        122: aload_3\n-       123: invokeinterface #34,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n-       128: checkcast     #51                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+       123: invokeinterface #120,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n+       128: checkcast     #171                // class dev/langchain4j/agent/tool/ToolExecutionRequest\n        131: astore        4\n        133: iinc          2, 7\n        136: iload_2\n        137: aload_0\n        138: aload         4\n-       140: invokevirtual #52                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n-       143: invokevirtual #30                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+       140: invokevirtual #173                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n+       143: invokevirtual #101                // Method estimateTokenCountInText:(Ljava/lang/String;)I\n        146: iadd\n        147: istore_2\n        148: aload         4\n-       150: invokevirtual #53                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-       153: ldc           #54                 // class java/util/Map\n-       155: invokestatic  #55                 // Method dev/langchain4j/internal/Json.fromJson:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n-       158: checkcast     #54                 // class java/util/Map\n+       150: invokevirtual #174                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+       153: ldc           #177                // class java/util/Map\n+       155: invokestatic  #179                // Method dev/langchain4j/internal/Json.fromJson:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n+       158: checkcast     #177                // class java/util/Map\n        161: astore        5\n        163: aload         5\n-       165: invokeinterface #56,  1           // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set;\n-       170: invokeinterface #57,  1           // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;\n+       165: invokeinterface #185,  1          // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set;\n+       170: invokeinterface #189,  1          // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;\n        175: astore        6\n        177: aload         6\n-       179: invokeinterface #33,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z\n+       179: invokeinterface #114,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z\n        184: ifeq          239\n        187: aload         6\n-       189: invokeinterface #34,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n-       194: checkcast     #58                 // class java/util/Map$Entry\n+       189: invokeinterface #120,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n+       194: checkcast     #192                // class java/util/Map$Entry\n        197: astore        7\n        199: iinc          2, 2\n        202: iload_2\n        203: aload_0\n        204: aload         7\n-       206: invokeinterface #59,  1           // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;\n-       211: invokevirtual #60                 // Method java/lang/Object.toString:()Ljava/lang/String;\n-       214: invokevirtual #30                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+       206: invokeinterface #194,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;\n+       211: invokevirtual #197                // Method java/lang/Object.toString:()Ljava/lang/String;\n+       214: invokevirtual #101                // Method estimateTokenCountInText:(Ljava/lang/String;)I\n        217: iadd\n        218: istore_2\n        219: iload_2\n        220: aload_0\n        221: aload         7\n-       223: invokeinterface #61,  1           // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;\n-       228: invokevirtual #60                 // Method java/lang/Object.toString:()Ljava/lang/String;\n-       231: invokevirtual #30                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+       223: invokeinterface #198,  1          // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;\n+       228: invokevirtual #197                // Method java/lang/Object.toString:()Ljava/lang/String;\n+       231: invokevirtual #101                // Method estimateTokenCountInText:(Ljava/lang/String;)I\n        234: iadd\n        235: istore_2\n        236: goto          177\n        239: goto          113\n        242: iload_2\n        243: ireturn\n       LineNumberTable:\n@@ -884,33 +874,33 @@\n   private int estimateTokenCountIn(dev.langchain4j.data.message.ToolExecutionResultMessage);\n     descriptor: (Ldev/langchain4j/data/message/ToolExecutionResultMessage;)I\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokevirtual #62                 // Method dev/langchain4j/data/message/ToolExecutionResultMessage.text:()Ljava/lang/String;\n-         5: invokevirtual #30                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+         2: invokevirtual #201                // Method dev/langchain4j/data/message/ToolExecutionResultMessage.text:()Ljava/lang/String;\n+         5: invokevirtual #101                // Method estimateTokenCountInText:(Ljava/lang/String;)I\n          8: ireturn\n       LineNumberTable:\n         line 130: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       9     0  this   Ldev/langchain4j/model/openai/OpenAiTokenizer;\n             0       9     1 toolExecutionResultMessage   Ldev/langchain4j/data/message/ToolExecutionResultMessage;\n \n   private int extraTokensPerMessage();\n     descriptor: ()I\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #4                  // Field modelName:Ljava/lang/String;\n-         4: ldc           #63                 // String gpt-3.5-turbo-0301\n-         6: invokevirtual #44                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+         1: getfield      #15                 // Field modelName:Ljava/lang/String;\n+         4: ldc           #202                // String gpt-3.5-turbo-0301\n+         6: invokevirtual #148                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n          9: ifeq          14\n         12: iconst_4\n         13: ireturn\n         14: iconst_3\n         15: ireturn\n       LineNumberTable:\n         line 134: 0\n@@ -924,17 +914,17 @@\n \n   private int extraTokensPerName();\n     descriptor: ()I\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #4                  // Field modelName:Ljava/lang/String;\n-         4: ldc           #63                 // String gpt-3.5-turbo-0301\n-         6: invokevirtual #44                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+         1: getfield      #15                 // Field modelName:Ljava/lang/String;\n+         4: ldc           #202                // String gpt-3.5-turbo-0301\n+         6: invokevirtual #148                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n          9: ifeq          14\n         12: iconst_m1\n         13: ireturn\n         14: iconst_1\n         15: ireturn\n       LineNumberTable:\n         line 142: 0\n@@ -950,27 +940,27 @@\n     descriptor: (Ljava/lang/Iterable;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=5, args_size=2\n          0: iconst_3\n          1: istore_2\n          2: aload_1\n-         3: invokeinterface #64,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;\n+         3: invokeinterface #204,  1          // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;\n          8: astore_3\n          9: aload_3\n-        10: invokeinterface #33,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z\n+        10: invokeinterface #114,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z\n         15: ifeq          41\n         18: aload_3\n-        19: invokeinterface #34,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n-        24: checkcast     #65                 // class dev/langchain4j/data/message/ChatMessage\n+        19: invokeinterface #120,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n+        24: checkcast     #207                // class dev/langchain4j/data/message/ChatMessage\n         27: astore        4\n         29: iload_2\n         30: aload_0\n         31: aload         4\n-        33: invokevirtual #66                 // Method estimateTokenCountInMessage:(Ldev/langchain4j/data/message/ChatMessage;)I\n+        33: invokevirtual #209                // Method estimateTokenCountInMessage:(Ldev/langchain4j/data/message/ChatMessage;)I\n         36: iadd\n         37: istore_2\n         38: goto          9\n         41: iload_2\n         42: ireturn\n       LineNumberTable:\n         line 153: 0\n@@ -989,57 +979,57 @@\n             0      43     1 messages   Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;\n       StackMapTable: number_of_entries = 2\n         frame_type = 253 /* append */\n           offset_delta = 9\n           locals = [ int, class java/util/Iterator ]\n         frame_type = 250 /* chop */\n           offset_delta = 31\n-    Signature: #166                         // (Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;)I\n+    Signature: #356                         // (Ljava/lang/Iterable<Ldev/langchain4j/data/message/ChatMessage;>;)I\n \n   public int estimateTokenCountInToolSpecifications(java.lang.Iterable<dev.langchain4j.agent.tool.ToolSpecification>);\n     descriptor: (Ljava/lang/Iterable;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=5, args_size=2\n          0: bipush        16\n          2: istore_2\n          3: aload_1\n-         4: invokeinterface #64,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;\n+         4: invokeinterface #204,  1          // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;\n          9: astore_3\n         10: aload_3\n-        11: invokeinterface #33,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z\n+        11: invokeinterface #114,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z\n         16: ifeq          83\n         19: aload_3\n-        20: invokeinterface #34,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n-        25: checkcast     #67                 // class dev/langchain4j/agent/tool/ToolSpecification\n+        20: invokeinterface #120,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n+        25: checkcast     #213                // class dev/langchain4j/agent/tool/ToolSpecification\n         28: astore        4\n         30: iinc          2, 6\n         33: iload_2\n         34: aload_0\n         35: aload         4\n-        37: invokevirtual #68                 // Method dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n-        40: invokevirtual #30                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+        37: invokevirtual #215                // Method dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n+        40: invokevirtual #101                // Method estimateTokenCountInText:(Ljava/lang/String;)I\n         43: iadd\n         44: istore_2\n         45: aload         4\n-        47: invokevirtual #69                 // Method dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n+        47: invokevirtual #216                // Method dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n         50: ifnull        68\n         53: iinc          2, 2\n         56: iload_2\n         57: aload_0\n         58: aload         4\n-        60: invokevirtual #69                 // Method dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n-        63: invokevirtual #30                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+        60: invokevirtual #216                // Method dev/langchain4j/agent/tool/ToolSpecification.description:()Ljava/lang/String;\n+        63: invokevirtual #101                // Method estimateTokenCountInText:(Ljava/lang/String;)I\n         66: iadd\n         67: istore_2\n         68: iload_2\n         69: aload_0\n         70: aload         4\n-        72: invokevirtual #70                 // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n-        75: invokespecial #71                 // Method estimateTokenCountInToolParameters:(Ldev/langchain4j/agent/tool/ToolParameters;)I\n+        72: invokevirtual #219                // Method dev/langchain4j/agent/tool/ToolSpecification.parameters:()Ldev/langchain4j/agent/tool/ToolParameters;\n+        75: invokespecial #223                // Method estimateTokenCountInToolParameters:(Ldev/langchain4j/agent/tool/ToolParameters;)I\n         78: iadd\n         79: istore_2\n         80: goto          10\n         83: iload_2\n         84: ireturn\n       LineNumberTable:\n         line 162: 0\n@@ -1066,158 +1056,157 @@\n           offset_delta = 10\n           locals = [ int, class java/util/Iterator ]\n         frame_type = 252 /* append */\n           offset_delta = 57\n           locals = [ class dev/langchain4j/agent/tool/ToolSpecification ]\n         frame_type = 249 /* chop */\n           offset_delta = 14\n-    Signature: #173                         // (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolSpecification;>;)I\n+    Signature: #361                         // (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolSpecification;>;)I\n \n   private int estimateTokenCountInToolParameters(dev.langchain4j.agent.tool.ToolParameters);\n     descriptor: (Ldev/langchain4j/agent/tool/ToolParameters;)I\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=3, locals=12, args_size=2\n          0: aload_1\n          1: ifnonnull     6\n          4: iconst_0\n          5: ireturn\n          6: iconst_3\n          7: istore_2\n          8: aload_1\n-         9: invokevirtual #72                 // Method dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n+         9: invokevirtual #227                // Method dev/langchain4j/agent/tool/ToolParameters.properties:()Ljava/util/Map;\n         12: astore_3\n         13: aload_0\n-        14: invokespecial #48                 // Method isOneOfLatestModels:()Z\n+        14: invokespecial #161                // Method isOneOfLatestModels:()Z\n         17: ifeq          31\n         20: iload_2\n         21: aload_3\n-        22: invokeinterface #73,  1           // InterfaceMethod java/util/Map.size:()I\n+        22: invokeinterface #233,  1          // InterfaceMethod java/util/Map.size:()I\n         27: iconst_1\n         28: isub\n         29: iadd\n         30: istore_2\n         31: aload_3\n-        32: invokeinterface #74,  1           // InterfaceMethod java/util/Map.keySet:()Ljava/util/Set;\n-        37: invokeinterface #57,  1           // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;\n+        32: invokeinterface #234,  1          // InterfaceMethod java/util/Map.keySet:()Ljava/util/Set;\n+        37: invokeinterface #189,  1          // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;\n         42: astore        4\n         44: aload         4\n-        46: invokeinterface #33,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z\n-        51: ifeq          336\n+        46: invokeinterface #114,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z\n+        51: ifeq          333\n         54: aload         4\n-        56: invokeinterface #34,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n-        61: checkcast     #75                 // class java/lang/String\n+        56: invokeinterface #120,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n+        61: checkcast     #149                // class java/lang/String\n         64: astore        5\n         66: aload_0\n-        67: invokespecial #48                 // Method isOneOfLatestModels:()Z\n+        67: invokespecial #161                // Method isOneOfLatestModels:()Z\n         70: ifeq          79\n         73: iinc          2, 2\n         76: goto          82\n         79: iinc          2, 3\n         82: iload_2\n         83: aload_0\n         84: aload         5\n-        86: invokevirtual #30                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+        86: invokevirtual #101                // Method estimateTokenCountInText:(Ljava/lang/String;)I\n         89: iadd\n         90: istore_2\n         91: aload_3\n         92: aload         5\n-        94: invokeinterface #76,  2           // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;\n-        99: checkcast     #54                 // class java/util/Map\n-       102: invokeinterface #56,  1           // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set;\n-       107: invokeinterface #57,  1           // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;\n+        94: invokeinterface #237,  2          // InterfaceMethod java/util/Map.get:(Ljava/lang/Object;)Ljava/lang/Object;\n+        99: checkcast     #177                // class java/util/Map\n+       102: invokeinterface #185,  1          // InterfaceMethod java/util/Map.entrySet:()Ljava/util/Set;\n+       107: invokeinterface #189,  1          // InterfaceMethod java/util/Set.iterator:()Ljava/util/Iterator;\n        112: astore        6\n        114: aload         6\n-       116: invokeinterface #33,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z\n-       121: ifeq          333\n+       116: invokeinterface #114,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z\n+       121: ifeq          330\n        124: aload         6\n-       126: invokeinterface #34,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n-       131: checkcast     #58                 // class java/util/Map$Entry\n+       126: invokeinterface #120,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n+       131: checkcast     #192                // class java/util/Map$Entry\n        134: astore        7\n-       136: ldc           #77                 // String type\n+       136: ldc           #240                // String type\n        138: aload         7\n-       140: invokeinterface #59,  1           // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;\n-       145: invokevirtual #44                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+       140: invokeinterface #194,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;\n+       145: invokevirtual #148                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n        148: ifeq          179\n-       151: ldc           #78                 // String array\n+       151: ldc           #242                // String array\n        153: aload         7\n-       155: invokeinterface #61,  1           // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;\n-       160: invokevirtual #44                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n-       163: ifeq          330\n+       155: invokeinterface #198,  1          // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;\n+       160: invokevirtual #148                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+       163: ifeq          327\n        166: aload_0\n-       167: invokespecial #48                 // Method isOneOfLatestModels:()Z\n-       170: ifeq          330\n+       167: invokespecial #161                // Method isOneOfLatestModels:()Z\n+       170: ifeq          327\n        173: iinc          2, 1\n-       176: goto          330\n-       179: ldc           #79                 // String description\n+       176: goto          327\n+       179: ldc           #244                // String description\n        181: aload         7\n-       183: invokeinterface #59,  1           // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;\n-       188: invokevirtual #44                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+       183: invokeinterface #194,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;\n+       188: invokevirtual #148                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n        191: ifeq          241\n        194: iinc          2, 2\n        197: iload_2\n        198: aload_0\n        199: aload         7\n-       201: invokeinterface #61,  1           // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;\n-       206: invokevirtual #60                 // Method java/lang/Object.toString:()Ljava/lang/String;\n-       209: invokevirtual #30                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+       201: invokeinterface #198,  1          // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;\n+       206: invokevirtual #197                // Method java/lang/Object.toString:()Ljava/lang/String;\n+       209: invokevirtual #101                // Method estimateTokenCountInText:(Ljava/lang/String;)I\n        212: iadd\n        213: istore_2\n        214: aload_0\n-       215: invokespecial #48                 // Method isOneOfLatestModels:()Z\n-       218: ifeq          330\n+       215: invokespecial #161                // Method isOneOfLatestModels:()Z\n+       218: ifeq          327\n        221: aload_1\n-       222: invokevirtual #80                 // Method dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n+       222: invokevirtual #245                // Method dev/langchain4j/agent/tool/ToolParameters.required:()Ljava/util/List;\n        225: aload         5\n-       227: invokeinterface #81,  2           // InterfaceMethod java/util/List.contains:(Ljava/lang/Object;)Z\n-       232: ifeq          330\n+       227: invokeinterface #248,  2          // InterfaceMethod java/util/List.contains:(Ljava/lang/Object;)Z\n+       232: ifeq          327\n        235: iinc          2, 1\n-       238: goto          330\n-       241: ldc           #82                 // String enum\n+       238: goto          327\n+       241: ldc           #251                // String enum\n        243: aload         7\n-       245: invokeinterface #59,  1           // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;\n-       250: invokevirtual #44                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n-       253: ifeq          330\n+       245: invokeinterface #194,  1          // InterfaceMethod java/util/Map$Entry.getKey:()Ljava/lang/Object;\n+       250: invokevirtual #148                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+       253: ifeq          327\n        256: aload_0\n-       257: invokespecial #48                 // Method isOneOfLatestModels:()Z\n+       257: invokespecial #161                // Method isOneOfLatestModels:()Z\n        260: ifeq          269\n        263: iinc          2, -2\n        266: goto          272\n        269: iinc          2, -3\n        272: aload         7\n-       274: invokeinterface #61,  1           // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;\n-       279: checkcast     #83                 // class \"[Ljava/lang/Object;\"\n-       282: checkcast     #83                 // class \"[Ljava/lang/Object;\"\n-       285: astore        8\n-       287: aload         8\n-       289: arraylength\n-       290: istore        9\n-       292: iconst_0\n-       293: istore        10\n-       295: iload         10\n-       297: iload         9\n-       299: if_icmpge     330\n-       302: aload         8\n-       304: iload         10\n-       306: aaload\n-       307: astore        11\n-       309: iinc          2, 3\n-       312: iload_2\n-       313: aload_0\n-       314: aload         11\n-       316: invokevirtual #60                 // Method java/lang/Object.toString:()Ljava/lang/String;\n-       319: invokevirtual #30                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n-       322: iadd\n-       323: istore_2\n-       324: iinc          10, 1\n-       327: goto          295\n-       330: goto          114\n-       333: goto          44\n-       336: iload_2\n-       337: ireturn\n+       274: invokeinterface #198,  1          // InterfaceMethod java/util/Map$Entry.getValue:()Ljava/lang/Object;\n+       279: checkcast     #253                // class \"[Ljava/lang/Object;\"\n+       282: astore        8\n+       284: aload         8\n+       286: arraylength\n+       287: istore        9\n+       289: iconst_0\n+       290: istore        10\n+       292: iload         10\n+       294: iload         9\n+       296: if_icmpge     327\n+       299: aload         8\n+       301: iload         10\n+       303: aaload\n+       304: astore        11\n+       306: iinc          2, 3\n+       309: iload_2\n+       310: aload_0\n+       311: aload         11\n+       313: invokevirtual #197                // Method java/lang/Object.toString:()Ljava/lang/String;\n+       316: invokevirtual #101                // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+       319: iadd\n+       320: istore_2\n+       321: iinc          10, 1\n+       324: goto          292\n+       327: goto          114\n+       330: goto          44\n+       333: iload_2\n+       334: ireturn\n       LineNumberTable:\n         line 176: 0\n         line 177: 4\n         line 180: 6\n         line 181: 8\n         line 182: 13\n         line 183: 20\n@@ -1236,33 +1225,33 @@\n         line 201: 214\n         line 202: 235\n         line 204: 241\n         line 205: 256\n         line 206: 263\n         line 208: 269\n         line 210: 272\n-        line 211: 309\n-        line 212: 312\n-        line 210: 324\n-        line 215: 330\n-        line 216: 333\n-        line 217: 336\n+        line 211: 306\n+        line 212: 309\n+        line 210: 321\n+        line 215: 327\n+        line 216: 330\n+        line 217: 333\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n-          309      15    11 enumValue   Ljava/lang/Object;\n-          136     194     7 entry   Ljava/util/Map$Entry;\n-           66     267     5 property   Ljava/lang/String;\n-            0     338     0  this   Ldev/langchain4j/model/openai/OpenAiTokenizer;\n-            0     338     1 parameters   Ldev/langchain4j/agent/tool/ToolParameters;\n-            8     330     2 tokenCount   I\n-           13     325     3 properties   Ljava/util/Map;\n+          306      15    11 enumValue   Ljava/lang/Object;\n+          136     191     7 entry   Ljava/util/Map$Entry;\n+           66     264     5 property   Ljava/lang/String;\n+            0     335     0  this   Ldev/langchain4j/model/openai/OpenAiTokenizer;\n+            0     335     1 parameters   Ldev/langchain4j/agent/tool/ToolParameters;\n+            8     327     2 tokenCount   I\n+           13     322     3 properties   Ljava/util/Map;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n-          136     194     7 entry   Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;\n-           13     325     3 properties   Ljava/util/Map<Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;\n+          136     191     7 entry   Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;\n+           13     322     3 properties   Ljava/util/Map<Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;>;\n       StackMapTable: number_of_entries = 14\n         frame_type = 6 /* same */\n         frame_type = 253 /* append */\n           offset_delta = 24\n           locals = [ int, class java/util/Map ]\n         frame_type = 252 /* append */\n           offset_delta = 12\n@@ -1277,15 +1266,15 @@\n         frame_type = 252 /* append */\n           offset_delta = 64\n           locals = [ class java/util/Map$Entry ]\n         frame_type = 61 /* same */\n         frame_type = 27 /* same */\n         frame_type = 2 /* same */\n         frame_type = 254 /* append */\n-          offset_delta = 22\n+          offset_delta = 19\n           locals = [ class \"[Ljava/lang/Object;\", int, int ]\n         frame_type = 255 /* full_frame */\n           offset_delta = 34\n           locals = [ class dev/langchain4j/model/openai/OpenAiTokenizer, class dev/langchain4j/agent/tool/ToolParameters, int, class java/util/Map, class java/util/Iterator, class java/lang/String, class java/util/Iterator ]\n           stack = []\n         frame_type = 249 /* chop */\n           offset_delta = 2\n@@ -1295,27 +1284,27 @@\n   public int estimateTokenCountInForcefulToolSpecification(dev.langchain4j.agent.tool.ToolSpecification);\n     descriptor: (Ldev/langchain4j/agent/tool/ToolSpecification;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=3, args_size=2\n          0: aload_0\n          1: aload_1\n-         2: invokestatic  #84                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-         5: invokevirtual #85                 // Method estimateTokenCountInToolSpecifications:(Ljava/lang/Iterable;)I\n+         2: invokestatic  #255                // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+         5: invokevirtual #261                // Method estimateTokenCountInToolSpecifications:(Ljava/lang/Iterable;)I\n          8: istore_2\n          9: iinc          2, 4\n         12: iload_2\n         13: aload_0\n         14: aload_1\n-        15: invokevirtual #68                 // Method dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n-        18: invokevirtual #30                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+        15: invokevirtual #215                // Method dev/langchain4j/agent/tool/ToolSpecification.name:()Ljava/lang/String;\n+        18: invokevirtual #101                // Method estimateTokenCountInText:(Ljava/lang/String;)I\n         21: iadd\n         22: istore_2\n         23: aload_0\n-        24: invokespecial #48                 // Method isOneOfLatestModels:()Z\n+        24: invokespecial #161                // Method isOneOfLatestModels:()Z\n         27: ifeq          33\n         30: iinc          2, 3\n         33: iload_2\n         34: ireturn\n       LineNumberTable:\n         line 222: 0\n         line 223: 9\n@@ -1335,100 +1324,100 @@\n \n   public java.util.List<java.lang.Integer> encode(java.lang.String);\n     descriptor: (Ljava/lang/String;)Ljava/util/List;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #7                  // Field encoding:Ljava/util/Optional;\n+         1: getfield      #32                 // Field encoding:Ljava/util/Optional;\n          4: aload_0\n-         5: invokespecial #8                  // Method unknownModelException:()Ljava/util/function/Supplier;\n-         8: invokevirtual #9                  // Method java/util/Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        11: checkcast     #10                 // class com/knuddels/jtokkit/api/Encoding\n+         5: invokespecial #36                 // Method unknownModelException:()Ljava/util/function/Supplier;\n+         8: invokevirtual #40                 // Method java/util/Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        11: checkcast     #46                 // class com/knuddels/jtokkit/api/Encoding\n         14: aload_1\n-        15: invokeinterface #86,  2           // InterfaceMethod com/knuddels/jtokkit/api/Encoding.encodeOrdinary:(Ljava/lang/String;)Ljava/util/List;\n+        15: invokeinterface #265,  2          // InterfaceMethod com/knuddels/jtokkit/api/Encoding.encodeOrdinary:(Ljava/lang/String;)Ljava/util/List;\n         20: areturn\n       LineNumberTable:\n         line 232: 0\n         line 233: 15\n         line 232: 20\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      21     0  this   Ldev/langchain4j/model/openai/OpenAiTokenizer;\n             0      21     1  text   Ljava/lang/String;\n-    Signature: #193                         // (Ljava/lang/String;)Ljava/util/List<Ljava/lang/Integer;>;\n+    Signature: #372                         // (Ljava/lang/String;)Ljava/util/List<Ljava/lang/Integer;>;\n \n   public java.util.List<java.lang.Integer> encode(java.lang.String, int);\n     descriptor: (Ljava/lang/String;I)Ljava/util/List;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=3, args_size=3\n          0: aload_0\n-         1: getfield      #7                  // Field encoding:Ljava/util/Optional;\n+         1: getfield      #32                 // Field encoding:Ljava/util/Optional;\n          4: aload_0\n-         5: invokespecial #8                  // Method unknownModelException:()Ljava/util/function/Supplier;\n-         8: invokevirtual #9                  // Method java/util/Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        11: checkcast     #10                 // class com/knuddels/jtokkit/api/Encoding\n+         5: invokespecial #36                 // Method unknownModelException:()Ljava/util/function/Supplier;\n+         8: invokevirtual #40                 // Method java/util/Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        11: checkcast     #46                 // class com/knuddels/jtokkit/api/Encoding\n         14: aload_1\n         15: iload_2\n-        16: invokeinterface #87,  3           // InterfaceMethod com/knuddels/jtokkit/api/Encoding.encodeOrdinary:(Ljava/lang/String;I)Lcom/knuddels/jtokkit/api/EncodingResult;\n-        21: invokevirtual #88                 // Method com/knuddels/jtokkit/api/EncodingResult.getTokens:()Ljava/util/List;\n+        16: invokeinterface #269,  3          // InterfaceMethod com/knuddels/jtokkit/api/Encoding.encodeOrdinary:(Ljava/lang/String;I)Lcom/knuddels/jtokkit/api/EncodingResult;\n+        21: invokevirtual #272                // Method com/knuddels/jtokkit/api/EncodingResult.getTokens:()Ljava/util/List;\n         24: areturn\n       LineNumberTable:\n         line 237: 0\n         line 238: 16\n         line 237: 24\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      25     0  this   Ldev/langchain4j/model/openai/OpenAiTokenizer;\n             0      25     1  text   Ljava/lang/String;\n             0      25     2 maxTokensToEncode   I\n-    Signature: #196                         // (Ljava/lang/String;I)Ljava/util/List<Ljava/lang/Integer;>;\n+    Signature: #375                         // (Ljava/lang/String;I)Ljava/util/List<Ljava/lang/Integer;>;\n \n   public java.lang.String decode(java.util.List<java.lang.Integer>);\n     descriptor: (Ljava/util/List;)Ljava/lang/String;\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=2, locals=2, args_size=2\n          0: aload_0\n-         1: getfield      #7                  // Field encoding:Ljava/util/Optional;\n+         1: getfield      #32                 // Field encoding:Ljava/util/Optional;\n          4: aload_0\n-         5: invokespecial #8                  // Method unknownModelException:()Ljava/util/function/Supplier;\n-         8: invokevirtual #9                  // Method java/util/Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;\n-        11: checkcast     #10                 // class com/knuddels/jtokkit/api/Encoding\n+         5: invokespecial #36                 // Method unknownModelException:()Ljava/util/function/Supplier;\n+         8: invokevirtual #40                 // Method java/util/Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;\n+        11: checkcast     #46                 // class com/knuddels/jtokkit/api/Encoding\n         14: aload_1\n-        15: invokeinterface #89,  2           // InterfaceMethod com/knuddels/jtokkit/api/Encoding.decode:(Ljava/util/List;)Ljava/lang/String;\n+        15: invokeinterface #277,  2          // InterfaceMethod com/knuddels/jtokkit/api/Encoding.decode:(Ljava/util/List;)Ljava/lang/String;\n         20: areturn\n       LineNumberTable:\n         line 242: 0\n         line 243: 15\n         line 242: 20\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0      21     0  this   Ldev/langchain4j/model/openai/OpenAiTokenizer;\n             0      21     1 tokens   Ljava/util/List;\n       LocalVariableTypeTable:\n         Start  Length  Slot  Name   Signature\n             0      21     1 tokens   Ljava/util/List<Ljava/lang/Integer;>;\n-    Signature: #202                         // (Ljava/util/List<Ljava/lang/Integer;>;)Ljava/lang/String;\n+    Signature: #379                         // (Ljava/util/List<Ljava/lang/Integer;>;)Ljava/lang/String;\n \n   private java.util.function.Supplier<java.lang.IllegalArgumentException> unknownModelException();\n     descriptor: ()Ljava/util/function/Supplier;\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokedynamic #90,  0             // InvokeDynamic #0:get:(Ldev/langchain4j/model/openai/OpenAiTokenizer;)Ljava/util/function/Supplier;\n+         1: invokedynamic #281,  0            // InvokeDynamic #0:get:(Ldev/langchain4j/model/openai/OpenAiTokenizer;)Ljava/util/function/Supplier;\n          6: areturn\n       LineNumberTable:\n         line 247: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n             0       7     0  this   Ldev/langchain4j/model/openai/OpenAiTokenizer;\n-    Signature: #205                         // ()Ljava/util/function/Supplier<Ljava/lang/IllegalArgumentException;>;\n+    Signature: #380                         // ()Ljava/util/function/Supplier<Ljava/lang/IllegalArgumentException;>;\n \n   public int estimateTokenCountInToolExecutionRequests(java.lang.Iterable<dev.langchain4j.agent.tool.ToolExecutionRequest>);\n     descriptor: (Ljava/lang/Iterable;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=10, args_size=2\n          0: iconst_0\n@@ -1438,61 +1427,61 @@\n          4: iconst_0\n          5: istore        4\n          7: iconst_0\n          8: istore        5\n         10: iconst_0\n         11: istore        6\n         13: aload_1\n-        14: invokeinterface #64,  1           // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;\n+        14: invokeinterface #204,  1          // InterfaceMethod java/lang/Iterable.iterator:()Ljava/util/Iterator;\n         19: astore        7\n         21: aload         7\n-        23: invokeinterface #33,  1           // InterfaceMethod java/util/Iterator.hasNext:()Z\n+        23: invokeinterface #114,  1          // InterfaceMethod java/util/Iterator.hasNext:()Z\n         28: ifeq          107\n         31: aload         7\n-        33: invokeinterface #34,  1           // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n-        38: checkcast     #51                 // class dev/langchain4j/agent/tool/ToolExecutionRequest\n+        33: invokeinterface #120,  1          // InterfaceMethod java/util/Iterator.next:()Ljava/lang/Object;\n+        38: checkcast     #171                // class dev/langchain4j/agent/tool/ToolExecutionRequest\n         41: astore        8\n         43: iinc          2, 4\n         46: iload_2\n         47: aload_0\n         48: aload         8\n-        50: invokevirtual #52                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n-        53: invokevirtual #30                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+        50: invokevirtual #173                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n+        53: invokevirtual #101                // Method estimateTokenCountInText:(Ljava/lang/String;)I\n         56: iadd\n         57: istore_2\n         58: iload_2\n         59: aload_0\n         60: aload         8\n-        62: invokevirtual #53                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-        65: invokevirtual #30                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+        62: invokevirtual #174                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+        65: invokevirtual #101                // Method estimateTokenCountInText:(Ljava/lang/String;)I\n         68: iadd\n         69: istore_2\n         70: aload         8\n-        72: invokevirtual #53                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-        75: invokestatic  #91                 // Method countArguments:(Ljava/lang/String;)I\n+        72: invokevirtual #174                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+        75: invokestatic  #284                // Method countArguments:(Ljava/lang/String;)I\n         78: istore        9\n         80: iload         9\n         82: ifne          91\n         85: iinc          5, 1\n         88: goto          94\n         91: iinc          4, 1\n         94: iload         6\n         96: iload         9\n         98: iadd\n         99: istore        6\n        101: iinc          3, 1\n        104: goto          21\n        107: aload_0\n-       108: getfield      #4                  // Field modelName:Ljava/lang/String;\n-       111: getstatic     #92                 // Field dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_1106:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       114: invokevirtual #93                 // Method dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n-       117: invokevirtual #44                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+       108: getfield      #15                 // Field modelName:Ljava/lang/String;\n+       111: getstatic     #287                // Field dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_1106:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+       114: invokevirtual #290                // Method dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n+       117: invokevirtual #148                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n        120: ifne          130\n        123: aload_0\n-       124: invokespecial #94                 // Method isOneOfLatestGpt4Models:()Z\n+       124: invokespecial #291                // Method isOneOfLatestGpt4Models:()Z\n        127: ifeq          170\n        130: iinc          2, 16\n        133: iload_2\n        134: iconst_3\n        135: iload         5\n        137: imul\n        138: iadd\n@@ -1517,18 +1506,18 @@\n        164: iadd\n        165: istore_2\n        166: iload_2\n        167: iload_3\n        168: iadd\n        169: istore_2\n        170: aload_0\n-       171: getfield      #4                  // Field modelName:Ljava/lang/String;\n-       174: getstatic     #95                 // Field dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_1106_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-       177: invokevirtual #93                 // Method dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n-       180: invokevirtual #44                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+       171: getfield      #15                 // Field modelName:Ljava/lang/String;\n+       174: getstatic     #294                // Field dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_1106_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+       177: invokevirtual #290                // Method dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n+       180: invokevirtual #148                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n        183: ifeq          216\n        186: iinc          2, 3\n        189: iload_3\n        190: iconst_1\n        191: if_icmple     216\n        194: iinc          2, 18\n        197: iload_2\n@@ -1607,59 +1596,59 @@\n           locals = [ class dev/langchain4j/agent/tool/ToolExecutionRequest, int ]\n         frame_type = 2 /* same */\n         frame_type = 248 /* chop */\n           offset_delta = 12\n         frame_type = 22 /* same */\n         frame_type = 39 /* same */\n         frame_type = 45 /* same */\n-    Signature: #215                         // (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;)I\n+    Signature: #387                         // (Ljava/lang/Iterable<Ldev/langchain4j/agent/tool/ToolExecutionRequest;>;)I\n \n   public int estimateTokenCountInForcefulToolExecutionRequest(dev.langchain4j.agent.tool.ToolExecutionRequest);\n     descriptor: (Ldev/langchain4j/agent/tool/ToolExecutionRequest;)I\n     flags: (0x0001) ACC_PUBLIC\n     Code:\n       stack=3, locals=4, args_size=2\n          0: aload_0\n-         1: invokespecial #94                 // Method isOneOfLatestGpt4Models:()Z\n+         1: invokespecial #291                // Method isOneOfLatestGpt4Models:()Z\n          4: ifeq          30\n          7: aload_1\n-         8: invokevirtual #53                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-        11: invokestatic  #91                 // Method countArguments:(Ljava/lang/String;)I\n+         8: invokevirtual #174                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+        11: invokestatic  #284                // Method countArguments:(Ljava/lang/String;)I\n         14: istore_2\n         15: iload_2\n         16: ifne          21\n         19: iconst_1\n         20: ireturn\n         21: aload_0\n         22: aload_1\n-        23: invokevirtual #53                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-        26: invokevirtual #30                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+        23: invokevirtual #174                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+        26: invokevirtual #101                // Method estimateTokenCountInText:(Ljava/lang/String;)I\n         29: ireturn\n         30: aload_0\n         31: aload_1\n-        32: invokestatic  #84                 // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n-        35: invokevirtual #96                 // Method estimateTokenCountInToolExecutionRequests:(Ljava/lang/Iterable;)I\n+        32: invokestatic  #255                // Method java/util/Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;\n+        35: invokevirtual #297                // Method estimateTokenCountInToolExecutionRequests:(Ljava/lang/Iterable;)I\n         38: istore_2\n         39: iinc          2, -4\n         42: iload_2\n         43: aload_0\n         44: aload_1\n-        45: invokevirtual #52                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n-        48: invokevirtual #30                 // Method estimateTokenCountInText:(Ljava/lang/String;)I\n+        45: invokevirtual #173                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.name:()Ljava/lang/String;\n+        48: invokevirtual #101                // Method estimateTokenCountInText:(Ljava/lang/String;)I\n         51: isub\n         52: istore_2\n         53: aload_0\n-        54: getfield      #4                  // Field modelName:Ljava/lang/String;\n-        57: getstatic     #92                 // Field dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_1106:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-        60: invokevirtual #93                 // Method dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n-        63: invokevirtual #44                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+        54: getfield      #15                 // Field modelName:Ljava/lang/String;\n+        57: getstatic     #287                // Field dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_1106:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        60: invokevirtual #290                // Method dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n+        63: invokevirtual #148                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n         66: ifeq          92\n         69: aload_1\n-        70: invokevirtual #53                 // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n-        73: invokestatic  #91                 // Method countArguments:(Ljava/lang/String;)I\n+        70: invokevirtual #174                // Method dev/langchain4j/agent/tool/ToolExecutionRequest.arguments:()Ljava/lang/String;\n+        73: invokestatic  #284                // Method countArguments:(Ljava/lang/String;)I\n         76: istore_3\n         77: iload_3\n         78: ifne          83\n         81: iconst_1\n         82: ireturn\n         83: iinc          2, -19\n         86: iload_2\n@@ -1707,25 +1696,25 @@\n \n   static int countArguments(java.lang.String);\n     descriptor: (Ljava/lang/String;)I\n     flags: (0x0008) ACC_STATIC\n     Code:\n       stack=2, locals=2, args_size=1\n          0: aload_0\n-         1: invokestatic  #97                 // Method dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n+         1: invokestatic  #300                // Method dev/langchain4j/internal/Utils.isNullOrBlank:(Ljava/lang/String;)Z\n          4: ifeq          9\n          7: iconst_0\n          8: ireturn\n          9: aload_0\n-        10: ldc           #54                 // class java/util/Map\n-        12: invokestatic  #55                 // Method dev/langchain4j/internal/Json.fromJson:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n-        15: checkcast     #54                 // class java/util/Map\n+        10: ldc           #177                // class java/util/Map\n+        12: invokestatic  #179                // Method dev/langchain4j/internal/Json.fromJson:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;\n+        15: checkcast     #177                // class java/util/Map\n         18: astore_1\n         19: aload_1\n-        20: invokeinterface #73,  1           // InterfaceMethod java/util/Map.size:()I\n+        20: invokeinterface #233,  1          // InterfaceMethod java/util/Map.size:()I\n         25: ireturn\n       LineNumberTable:\n         line 331: 0\n         line 332: 7\n         line 334: 9\n         line 335: 19\n       LocalVariableTable:\n@@ -1740,18 +1729,18 @@\n \n   private boolean isOneOfLatestModels();\n     descriptor: ()Z\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=1, locals=1, args_size=1\n          0: aload_0\n-         1: invokespecial #98                 // Method isOneOfLatestGpt3Models:()Z\n+         1: invokespecial #306                // Method isOneOfLatestGpt3Models:()Z\n          4: ifne          14\n          7: aload_0\n-         8: invokespecial #94                 // Method isOneOfLatestGpt4Models:()Z\n+         8: invokespecial #291                // Method isOneOfLatestGpt4Models:()Z\n         11: ifeq          18\n         14: iconst_1\n         15: goto          19\n         18: iconst_0\n         19: ireturn\n       LineNumberTable:\n         line 339: 0\n@@ -1766,24 +1755,24 @@\n \n   private boolean isOneOfLatestGpt3Models();\n     descriptor: ()Z\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #4                  // Field modelName:Ljava/lang/String;\n-         4: getstatic     #92                 // Field dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_1106:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-         7: invokevirtual #93                 // Method dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n-        10: invokevirtual #44                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+         1: getfield      #15                 // Field modelName:Ljava/lang/String;\n+         4: getstatic     #287                // Field dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_1106:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+         7: invokevirtual #290                // Method dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n+        10: invokevirtual #148                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n         13: ifne          32\n         16: aload_0\n-        17: getfield      #4                  // Field modelName:Ljava/lang/String;\n-        20: getstatic     #99                 // Field dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_0125:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-        23: invokevirtual #93                 // Method dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n-        26: invokevirtual #44                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+        17: getfield      #15                 // Field modelName:Ljava/lang/String;\n+        20: getstatic     #309                // Field dev/langchain4j/model/openai/OpenAiChatModelName.GPT_3_5_TURBO_0125:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        23: invokevirtual #290                // Method dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n+        26: invokevirtual #148                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n         29: ifeq          36\n         32: iconst_1\n         33: goto          37\n         36: iconst_0\n         37: ireturn\n       LineNumberTable:\n         line 344: 0\n@@ -1800,30 +1789,30 @@\n \n   private boolean isOneOfLatestGpt4Models();\n     descriptor: ()Z\n     flags: (0x0002) ACC_PRIVATE\n     Code:\n       stack=2, locals=1, args_size=1\n          0: aload_0\n-         1: getfield      #4                  // Field modelName:Ljava/lang/String;\n-         4: getstatic     #100                // Field dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_TURBO_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-         7: invokevirtual #93                 // Method dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n-        10: invokevirtual #44                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+         1: getfield      #15                 // Field modelName:Ljava/lang/String;\n+         4: getstatic     #312                // Field dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_TURBO_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+         7: invokevirtual #290                // Method dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n+        10: invokevirtual #148                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n         13: ifne          48\n         16: aload_0\n-        17: getfield      #4                  // Field modelName:Ljava/lang/String;\n-        20: getstatic     #95                 // Field dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_1106_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-        23: invokevirtual #93                 // Method dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n-        26: invokevirtual #44                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+        17: getfield      #15                 // Field modelName:Ljava/lang/String;\n+        20: getstatic     #294                // Field dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_1106_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        23: invokevirtual #290                // Method dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n+        26: invokevirtual #148                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n         29: ifne          48\n         32: aload_0\n-        33: getfield      #4                  // Field modelName:Ljava/lang/String;\n-        36: getstatic     #101                // Field dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_0125_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n-        39: invokevirtual #93                 // Method dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n-        42: invokevirtual #44                 // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n+        33: getfield      #15                 // Field modelName:Ljava/lang/String;\n+        36: getstatic     #315                // Field dev/langchain4j/model/openai/OpenAiChatModelName.GPT_4_0125_PREVIEW:Ldev/langchain4j/model/openai/OpenAiChatModelName;\n+        39: invokevirtual #290                // Method dev/langchain4j/model/openai/OpenAiChatModelName.toString:()Ljava/lang/String;\n+        42: invokevirtual #148                // Method java/lang/String.equals:(Ljava/lang/Object;)Z\n         45: ifeq          52\n         48: iconst_1\n         49: goto          53\n         52: iconst_0\n         53: ireturn\n       LineNumberTable:\n         line 349: 0\n@@ -1840,33 +1829,33 @@\n           stack = [ int ]\n \n   private java.lang.IllegalArgumentException lambda$unknownModelException$0();\n     descriptor: ()Ljava/lang/IllegalArgumentException;\n     flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC\n     Code:\n       stack=5, locals=1, args_size=1\n-         0: ldc           #102                // String Model \\'%s\\' is unknown to jtokkit\n-         2: iconst_1\n-         3: anewarray     #40                 // class java/lang/Object\n-         6: dup\n-         7: iconst_0\n-         8: aload_0\n-         9: getfield      #4                  // Field modelName:Ljava/lang/String;\n-        12: aastore\n-        13: invokestatic  #41                 // Method dev/langchain4j/internal/Exceptions.illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n-        16: areturn\n+         0: ldc_w         #318                // String Model \\'%s\\' is unknown to jtokkit\n+         3: iconst_1\n+         4: anewarray     #2                  // class java/lang/Object\n+         7: dup\n+         8: iconst_0\n+         9: aload_0\n+        10: getfield      #15                 // Field modelName:Ljava/lang/String;\n+        13: aastore\n+        14: invokestatic  #133                // Method dev/langchain4j/internal/Exceptions.illegalArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalArgumentException;\n+        17: areturn\n       LineNumberTable:\n         line 247: 0\n       LocalVariableTable:\n         Start  Length  Slot  Name   Signature\n-            0      17     0  this   Ldev/langchain4j/model/openai/OpenAiTokenizer;\n+            0      18     0  this   Ldev/langchain4j/model/openai/OpenAiTokenizer;\n }\n SourceFile: \"OpenAiTokenizer.java\"\n-InnerClasses:\n-  public static #143= #58 of #54;         // Entry=class java/util/Map$Entry of class java/util/Map\n-  public static final #421= #420 of #423; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n BootstrapMethods:\n-  0: #322 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n+  0: #397 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;\n     Method arguments:\n-      #323 ()Ljava/lang/Object;\n-      #324 REF_invokeSpecial dev/langchain4j/model/openai/OpenAiTokenizer.lambda$unknownModelException$0:()Ljava/lang/IllegalArgumentException;\n-      #325 ()Ljava/lang/IllegalArgumentException;\n+      #404 ()Ljava/lang/Object;\n+      #405 REF_invokeSpecial dev/langchain4j/model/openai/OpenAiTokenizer.lambda$unknownModelException$0:()Ljava/lang/IllegalArgumentException;\n+      #408 ()Ljava/lang/IllegalArgumentException;\n+InnerClasses:\n+  public static #410= #192 of #177;       // Entry=class java/util/Map$Entry of class java/util/Map\n+  public static final #415= #411 of #413; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles\n"}]}, {"source1": "dev/langchain4j/model/openai/spi/OpenAiChatModelBuilderFactory.class", "source2": "dev/langchain4j/model/openai/spi/OpenAiChatModelBuilderFactory.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,32 +1,32 @@\n-  SHA-256 checksum 9121ce5004133fdbd80ef6530130c54c4c6622ea922f83bd6481477ec2e35440\n+  SHA-256 checksum 89c2db38db2a59df3bb8c0b9cfde2a32beb2753d3233238b6a5b3d4fbf060ecb\n   Compiled from \"OpenAiChatModelBuilderFactory.java\"\n public interface dev.langchain4j.model.openai.spi.OpenAiChatModelBuilderFactory extends java.util.function.Supplier<dev.langchain4j.model.openai.OpenAiChatModel$OpenAiChatModelBuilder>\n   minor version: 0\n   major version: 52\n   flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT\n   this_class: #1                          // dev/langchain4j/model/openai/spi/OpenAiChatModelBuilderFactory\n-  super_class: #2                         // java/lang/Object\n+  super_class: #3                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 0, attributes: 3\n Constant pool:\n-   #1 = Class              #11            // dev/langchain4j/model/openai/spi/OpenAiChatModelBuilderFactory\n-   #2 = Class              #12            // java/lang/Object\n-   #3 = Class              #13            // java/util/function/Supplier\n-   #4 = Utf8               Signature\n-   #5 = Class              #15            // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder\n-   #6 = Utf8               OpenAiChatModelBuilder\n-   #7 = Utf8               InnerClasses\n+   #1 = Class              #2             // dev/langchain4j/model/openai/spi/OpenAiChatModelBuilderFactory\n+   #2 = Utf8               dev/langchain4j/model/openai/spi/OpenAiChatModelBuilderFactory\n+   #3 = Class              #4             // java/lang/Object\n+   #4 = Utf8               java/lang/Object\n+   #5 = Class              #6             // java/util/function/Supplier\n+   #6 = Utf8               java/util/function/Supplier\n+   #7 = Utf8               Signature\n    #8 = Utf8               Ljava/lang/Object;Ljava/util/function/Supplier<Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;>;\n    #9 = Utf8               SourceFile\n   #10 = Utf8               OpenAiChatModelBuilderFactory.java\n-  #11 = Utf8               dev/langchain4j/model/openai/spi/OpenAiChatModelBuilderFactory\n-  #12 = Utf8               java/lang/Object\n-  #13 = Utf8               java/util/function/Supplier\n-  #14 = Class              #16            // dev/langchain4j/model/openai/OpenAiChatModel\n-  #15 = Utf8               dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder\n-  #16 = Utf8               dev/langchain4j/model/openai/OpenAiChatModel\n+  #11 = Utf8               InnerClasses\n+  #12 = Class              #13            // dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder\n+  #13 = Utf8               dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder\n+  #14 = Class              #15            // dev/langchain4j/model/openai/OpenAiChatModel\n+  #15 = Utf8               dev/langchain4j/model/openai/OpenAiChatModel\n+  #16 = Utf8               OpenAiChatModelBuilder\n {\n }\n Signature: #8                           // Ljava/lang/Object;Ljava/util/function/Supplier<Ldev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder;>;\n SourceFile: \"OpenAiChatModelBuilderFactory.java\"\n InnerClasses:\n-  public static #6= #5 of #14;            // OpenAiChatModelBuilder=class dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder of class dev/langchain4j/model/openai/OpenAiChatModel\n+  public static #16= #12 of #14;          // OpenAiChatModelBuilder=class dev/langchain4j/model/openai/OpenAiChatModel$OpenAiChatModelBuilder of class dev/langchain4j/model/openai/OpenAiChatModel\n"}]}, {"source1": "dev/langchain4j/model/openai/spi/OpenAiEmbeddingModelBuilderFactory.class", "source2": "dev/langchain4j/model/openai/spi/OpenAiEmbeddingModelBuilderFactory.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,32 +1,32 @@\n-  SHA-256 checksum 91464b15f482b4444465f8cf8c53eb0446d0b084c5660f0184dd66b323825278\n+  SHA-256 checksum d1ff32b654f6b4ea036d7d8e82c2d83251323371bd6d0a9325ca1c7820f83d77\n   Compiled from \"OpenAiEmbeddingModelBuilderFactory.java\"\n public interface dev.langchain4j.model.openai.spi.OpenAiEmbeddingModelBuilderFactory extends java.util.function.Supplier<dev.langchain4j.model.openai.OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder>\n   minor version: 0\n   major version: 52\n   flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT\n   this_class: #1                          // dev/langchain4j/model/openai/spi/OpenAiEmbeddingModelBuilderFactory\n-  super_class: #2                         // java/lang/Object\n+  super_class: #3                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 0, attributes: 3\n Constant pool:\n-   #1 = Class              #11            // dev/langchain4j/model/openai/spi/OpenAiEmbeddingModelBuilderFactory\n-   #2 = Class              #12            // java/lang/Object\n-   #3 = Class              #13            // java/util/function/Supplier\n-   #4 = Utf8               Signature\n-   #5 = Class              #15            // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder\n-   #6 = Utf8               OpenAiEmbeddingModelBuilder\n-   #7 = Utf8               InnerClasses\n+   #1 = Class              #2             // dev/langchain4j/model/openai/spi/OpenAiEmbeddingModelBuilderFactory\n+   #2 = Utf8               dev/langchain4j/model/openai/spi/OpenAiEmbeddingModelBuilderFactory\n+   #3 = Class              #4             // java/lang/Object\n+   #4 = Utf8               java/lang/Object\n+   #5 = Class              #6             // java/util/function/Supplier\n+   #6 = Utf8               java/util/function/Supplier\n+   #7 = Utf8               Signature\n    #8 = Utf8               Ljava/lang/Object;Ljava/util/function/Supplier<Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;>;\n    #9 = Utf8               SourceFile\n   #10 = Utf8               OpenAiEmbeddingModelBuilderFactory.java\n-  #11 = Utf8               dev/langchain4j/model/openai/spi/OpenAiEmbeddingModelBuilderFactory\n-  #12 = Utf8               java/lang/Object\n-  #13 = Utf8               java/util/function/Supplier\n-  #14 = Class              #16            // dev/langchain4j/model/openai/OpenAiEmbeddingModel\n-  #15 = Utf8               dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder\n-  #16 = Utf8               dev/langchain4j/model/openai/OpenAiEmbeddingModel\n+  #11 = Utf8               InnerClasses\n+  #12 = Class              #13            // dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder\n+  #13 = Utf8               dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder\n+  #14 = Class              #15            // dev/langchain4j/model/openai/OpenAiEmbeddingModel\n+  #15 = Utf8               dev/langchain4j/model/openai/OpenAiEmbeddingModel\n+  #16 = Utf8               OpenAiEmbeddingModelBuilder\n {\n }\n Signature: #8                           // Ljava/lang/Object;Ljava/util/function/Supplier<Ldev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder;>;\n SourceFile: \"OpenAiEmbeddingModelBuilderFactory.java\"\n InnerClasses:\n-  public static #6= #5 of #14;            // OpenAiEmbeddingModelBuilder=class dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder of class dev/langchain4j/model/openai/OpenAiEmbeddingModel\n+  public static #16= #12 of #14;          // OpenAiEmbeddingModelBuilder=class dev/langchain4j/model/openai/OpenAiEmbeddingModel$OpenAiEmbeddingModelBuilder of class dev/langchain4j/model/openai/OpenAiEmbeddingModel\n"}]}, {"source1": "dev/langchain4j/model/openai/spi/OpenAiImageModelBuilderFactory.class", "source2": "dev/langchain4j/model/openai/spi/OpenAiImageModelBuilderFactory.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,32 +1,32 @@\n-  SHA-256 checksum f865befba551a0fde8c947421193ba07f9755cfec44172d430ca85ed66f88e7d\n+  SHA-256 checksum c2d17770099b8eb9e7ee771bfdc7d26233fcf1fefb2ee152bac04715cec664e5\n   Compiled from \"OpenAiImageModelBuilderFactory.java\"\n public interface dev.langchain4j.model.openai.spi.OpenAiImageModelBuilderFactory extends java.util.function.Supplier<dev.langchain4j.model.openai.OpenAiImageModel$OpenAiImageModelBuilder>\n   minor version: 0\n   major version: 52\n   flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT\n   this_class: #1                          // dev/langchain4j/model/openai/spi/OpenAiImageModelBuilderFactory\n-  super_class: #2                         // java/lang/Object\n+  super_class: #3                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 0, attributes: 3\n Constant pool:\n-   #1 = Class              #11            // dev/langchain4j/model/openai/spi/OpenAiImageModelBuilderFactory\n-   #2 = Class              #12            // java/lang/Object\n-   #3 = Class              #13            // java/util/function/Supplier\n-   #4 = Utf8               Signature\n-   #5 = Class              #15            // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder\n-   #6 = Utf8               OpenAiImageModelBuilder\n-   #7 = Utf8               InnerClasses\n+   #1 = Class              #2             // dev/langchain4j/model/openai/spi/OpenAiImageModelBuilderFactory\n+   #2 = Utf8               dev/langchain4j/model/openai/spi/OpenAiImageModelBuilderFactory\n+   #3 = Class              #4             // java/lang/Object\n+   #4 = Utf8               java/lang/Object\n+   #5 = Class              #6             // java/util/function/Supplier\n+   #6 = Utf8               java/util/function/Supplier\n+   #7 = Utf8               Signature\n    #8 = Utf8               Ljava/lang/Object;Ljava/util/function/Supplier<Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;>;\n    #9 = Utf8               SourceFile\n   #10 = Utf8               OpenAiImageModelBuilderFactory.java\n-  #11 = Utf8               dev/langchain4j/model/openai/spi/OpenAiImageModelBuilderFactory\n-  #12 = Utf8               java/lang/Object\n-  #13 = Utf8               java/util/function/Supplier\n-  #14 = Class              #16            // dev/langchain4j/model/openai/OpenAiImageModel\n-  #15 = Utf8               dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder\n-  #16 = Utf8               dev/langchain4j/model/openai/OpenAiImageModel\n+  #11 = Utf8               InnerClasses\n+  #12 = Class              #13            // dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder\n+  #13 = Utf8               dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder\n+  #14 = Class              #15            // dev/langchain4j/model/openai/OpenAiImageModel\n+  #15 = Utf8               dev/langchain4j/model/openai/OpenAiImageModel\n+  #16 = Utf8               OpenAiImageModelBuilder\n {\n }\n Signature: #8                           // Ljava/lang/Object;Ljava/util/function/Supplier<Ldev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder;>;\n SourceFile: \"OpenAiImageModelBuilderFactory.java\"\n InnerClasses:\n-  public static #6= #5 of #14;            // OpenAiImageModelBuilder=class dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder of class dev/langchain4j/model/openai/OpenAiImageModel\n+  public static #16= #12 of #14;          // OpenAiImageModelBuilder=class dev/langchain4j/model/openai/OpenAiImageModel$OpenAiImageModelBuilder of class dev/langchain4j/model/openai/OpenAiImageModel\n"}]}, {"source1": "dev/langchain4j/model/openai/spi/OpenAiLanguageModelBuilderFactory.class", "source2": "dev/langchain4j/model/openai/spi/OpenAiLanguageModelBuilderFactory.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,32 +1,32 @@\n-  SHA-256 checksum 8a6d544ae5ec53f8c0f4e24406784b406b93ab7633050e95b1ee2a8be979cf84\n+  SHA-256 checksum 36e1a875d28c5e6b75a6f461a94e54b8c43c91822f11af8afdba3d5c60925d4f\n   Compiled from \"OpenAiLanguageModelBuilderFactory.java\"\n public interface dev.langchain4j.model.openai.spi.OpenAiLanguageModelBuilderFactory extends java.util.function.Supplier<dev.langchain4j.model.openai.OpenAiLanguageModel$OpenAiLanguageModelBuilder>\n   minor version: 0\n   major version: 52\n   flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT\n   this_class: #1                          // dev/langchain4j/model/openai/spi/OpenAiLanguageModelBuilderFactory\n-  super_class: #2                         // java/lang/Object\n+  super_class: #3                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 0, attributes: 3\n Constant pool:\n-   #1 = Class              #11            // dev/langchain4j/model/openai/spi/OpenAiLanguageModelBuilderFactory\n-   #2 = Class              #12            // java/lang/Object\n-   #3 = Class              #13            // java/util/function/Supplier\n-   #4 = Utf8               Signature\n-   #5 = Class              #15            // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder\n-   #6 = Utf8               OpenAiLanguageModelBuilder\n-   #7 = Utf8               InnerClasses\n+   #1 = Class              #2             // dev/langchain4j/model/openai/spi/OpenAiLanguageModelBuilderFactory\n+   #2 = Utf8               dev/langchain4j/model/openai/spi/OpenAiLanguageModelBuilderFactory\n+   #3 = Class              #4             // java/lang/Object\n+   #4 = Utf8               java/lang/Object\n+   #5 = Class              #6             // java/util/function/Supplier\n+   #6 = Utf8               java/util/function/Supplier\n+   #7 = Utf8               Signature\n    #8 = Utf8               Ljava/lang/Object;Ljava/util/function/Supplier<Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;>;\n    #9 = Utf8               SourceFile\n   #10 = Utf8               OpenAiLanguageModelBuilderFactory.java\n-  #11 = Utf8               dev/langchain4j/model/openai/spi/OpenAiLanguageModelBuilderFactory\n-  #12 = Utf8               java/lang/Object\n-  #13 = Utf8               java/util/function/Supplier\n-  #14 = Class              #16            // dev/langchain4j/model/openai/OpenAiLanguageModel\n-  #15 = Utf8               dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder\n-  #16 = Utf8               dev/langchain4j/model/openai/OpenAiLanguageModel\n+  #11 = Utf8               InnerClasses\n+  #12 = Class              #13            // dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder\n+  #13 = Utf8               dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder\n+  #14 = Class              #15            // dev/langchain4j/model/openai/OpenAiLanguageModel\n+  #15 = Utf8               dev/langchain4j/model/openai/OpenAiLanguageModel\n+  #16 = Utf8               OpenAiLanguageModelBuilder\n {\n }\n Signature: #8                           // Ljava/lang/Object;Ljava/util/function/Supplier<Ldev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder;>;\n SourceFile: \"OpenAiLanguageModelBuilderFactory.java\"\n InnerClasses:\n-  public static #6= #5 of #14;            // OpenAiLanguageModelBuilder=class dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder of class dev/langchain4j/model/openai/OpenAiLanguageModel\n+  public static #16= #12 of #14;          // OpenAiLanguageModelBuilder=class dev/langchain4j/model/openai/OpenAiLanguageModel$OpenAiLanguageModelBuilder of class dev/langchain4j/model/openai/OpenAiLanguageModel\n"}]}, {"source1": "dev/langchain4j/model/openai/spi/OpenAiModerationModelBuilderFactory.class", "source2": "dev/langchain4j/model/openai/spi/OpenAiModerationModelBuilderFactory.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,32 +1,32 @@\n-  SHA-256 checksum dc49e5a3fc9d67407bd50455a91e4bcc97f0fce7da776fa045842a8e7f73a539\n+  SHA-256 checksum 2b730106793fb6102b92c8c1ca669c4d256f3d34719d9262027ea9de26f81aab\n   Compiled from \"OpenAiModerationModelBuilderFactory.java\"\n public interface dev.langchain4j.model.openai.spi.OpenAiModerationModelBuilderFactory extends java.util.function.Supplier<dev.langchain4j.model.openai.OpenAiModerationModel$OpenAiModerationModelBuilder>\n   minor version: 0\n   major version: 52\n   flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT\n   this_class: #1                          // dev/langchain4j/model/openai/spi/OpenAiModerationModelBuilderFactory\n-  super_class: #2                         // java/lang/Object\n+  super_class: #3                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 0, attributes: 3\n Constant pool:\n-   #1 = Class              #11            // dev/langchain4j/model/openai/spi/OpenAiModerationModelBuilderFactory\n-   #2 = Class              #12            // java/lang/Object\n-   #3 = Class              #13            // java/util/function/Supplier\n-   #4 = Utf8               Signature\n-   #5 = Class              #15            // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder\n-   #6 = Utf8               OpenAiModerationModelBuilder\n-   #7 = Utf8               InnerClasses\n+   #1 = Class              #2             // dev/langchain4j/model/openai/spi/OpenAiModerationModelBuilderFactory\n+   #2 = Utf8               dev/langchain4j/model/openai/spi/OpenAiModerationModelBuilderFactory\n+   #3 = Class              #4             // java/lang/Object\n+   #4 = Utf8               java/lang/Object\n+   #5 = Class              #6             // java/util/function/Supplier\n+   #6 = Utf8               java/util/function/Supplier\n+   #7 = Utf8               Signature\n    #8 = Utf8               Ljava/lang/Object;Ljava/util/function/Supplier<Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;>;\n    #9 = Utf8               SourceFile\n   #10 = Utf8               OpenAiModerationModelBuilderFactory.java\n-  #11 = Utf8               dev/langchain4j/model/openai/spi/OpenAiModerationModelBuilderFactory\n-  #12 = Utf8               java/lang/Object\n-  #13 = Utf8               java/util/function/Supplier\n-  #14 = Class              #16            // dev/langchain4j/model/openai/OpenAiModerationModel\n-  #15 = Utf8               dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder\n-  #16 = Utf8               dev/langchain4j/model/openai/OpenAiModerationModel\n+  #11 = Utf8               InnerClasses\n+  #12 = Class              #13            // dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder\n+  #13 = Utf8               dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder\n+  #14 = Class              #15            // dev/langchain4j/model/openai/OpenAiModerationModel\n+  #15 = Utf8               dev/langchain4j/model/openai/OpenAiModerationModel\n+  #16 = Utf8               OpenAiModerationModelBuilder\n {\n }\n Signature: #8                           // Ljava/lang/Object;Ljava/util/function/Supplier<Ldev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder;>;\n SourceFile: \"OpenAiModerationModelBuilderFactory.java\"\n InnerClasses:\n-  public static #6= #5 of #14;            // OpenAiModerationModelBuilder=class dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder of class dev/langchain4j/model/openai/OpenAiModerationModel\n+  public static #16= #12 of #14;          // OpenAiModerationModelBuilder=class dev/langchain4j/model/openai/OpenAiModerationModel$OpenAiModerationModelBuilder of class dev/langchain4j/model/openai/OpenAiModerationModel\n"}]}, {"source1": "dev/langchain4j/model/openai/spi/OpenAiStreamingChatModelBuilderFactory.class", "source2": "dev/langchain4j/model/openai/spi/OpenAiStreamingChatModelBuilderFactory.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,32 +1,32 @@\n-  SHA-256 checksum 66e809c949fb96299343b99a9700125d1780201e19c892c7befe7a18c2b868ca\n+  SHA-256 checksum 3f697ff50693396becbc72073c646a8078ae030f9d7a3a0efb9e72266a294508\n   Compiled from \"OpenAiStreamingChatModelBuilderFactory.java\"\n public interface dev.langchain4j.model.openai.spi.OpenAiStreamingChatModelBuilderFactory extends java.util.function.Supplier<dev.langchain4j.model.openai.OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder>\n   minor version: 0\n   major version: 52\n   flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT\n   this_class: #1                          // dev/langchain4j/model/openai/spi/OpenAiStreamingChatModelBuilderFactory\n-  super_class: #2                         // java/lang/Object\n+  super_class: #3                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 0, attributes: 3\n Constant pool:\n-   #1 = Class              #11            // dev/langchain4j/model/openai/spi/OpenAiStreamingChatModelBuilderFactory\n-   #2 = Class              #12            // java/lang/Object\n-   #3 = Class              #13            // java/util/function/Supplier\n-   #4 = Utf8               Signature\n-   #5 = Class              #15            // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder\n-   #6 = Utf8               OpenAiStreamingChatModelBuilder\n-   #7 = Utf8               InnerClasses\n+   #1 = Class              #2             // dev/langchain4j/model/openai/spi/OpenAiStreamingChatModelBuilderFactory\n+   #2 = Utf8               dev/langchain4j/model/openai/spi/OpenAiStreamingChatModelBuilderFactory\n+   #3 = Class              #4             // java/lang/Object\n+   #4 = Utf8               java/lang/Object\n+   #5 = Class              #6             // java/util/function/Supplier\n+   #6 = Utf8               java/util/function/Supplier\n+   #7 = Utf8               Signature\n    #8 = Utf8               Ljava/lang/Object;Ljava/util/function/Supplier<Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;>;\n    #9 = Utf8               SourceFile\n   #10 = Utf8               OpenAiStreamingChatModelBuilderFactory.java\n-  #11 = Utf8               dev/langchain4j/model/openai/spi/OpenAiStreamingChatModelBuilderFactory\n-  #12 = Utf8               java/lang/Object\n-  #13 = Utf8               java/util/function/Supplier\n-  #14 = Class              #16            // dev/langchain4j/model/openai/OpenAiStreamingChatModel\n-  #15 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder\n-  #16 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingChatModel\n+  #11 = Utf8               InnerClasses\n+  #12 = Class              #13            // dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder\n+  #13 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder\n+  #14 = Class              #15            // dev/langchain4j/model/openai/OpenAiStreamingChatModel\n+  #15 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingChatModel\n+  #16 = Utf8               OpenAiStreamingChatModelBuilder\n {\n }\n Signature: #8                           // Ljava/lang/Object;Ljava/util/function/Supplier<Ldev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder;>;\n SourceFile: \"OpenAiStreamingChatModelBuilderFactory.java\"\n InnerClasses:\n-  public static #6= #5 of #14;            // OpenAiStreamingChatModelBuilder=class dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder of class dev/langchain4j/model/openai/OpenAiStreamingChatModel\n+  public static #16= #12 of #14;          // OpenAiStreamingChatModelBuilder=class dev/langchain4j/model/openai/OpenAiStreamingChatModel$OpenAiStreamingChatModelBuilder of class dev/langchain4j/model/openai/OpenAiStreamingChatModel\n"}]}, {"source1": "dev/langchain4j/model/openai/spi/OpenAiStreamingLanguageModelBuilderFactory.class", "source2": "dev/langchain4j/model/openai/spi/OpenAiStreamingLanguageModelBuilderFactory.class", "unified_diff": null, "details": [{"source1": "javap -verbose -constants -s -l -private {}", "source2": "javap -verbose -constants -s -l -private {}", "unified_diff": "@@ -1,32 +1,32 @@\n-  SHA-256 checksum ca76082b9bfb048eedc978efd0b1b34bcec1bdd7cac5dc4bcb1ad75f956d322f\n+  SHA-256 checksum 412e19cafe81fc76d23d611b0d0df3d7f47777a204859a58307495b057a8e0b0\n   Compiled from \"OpenAiStreamingLanguageModelBuilderFactory.java\"\n public interface dev.langchain4j.model.openai.spi.OpenAiStreamingLanguageModelBuilderFactory extends java.util.function.Supplier<dev.langchain4j.model.openai.OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder>\n   minor version: 0\n   major version: 52\n   flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT\n   this_class: #1                          // dev/langchain4j/model/openai/spi/OpenAiStreamingLanguageModelBuilderFactory\n-  super_class: #2                         // java/lang/Object\n+  super_class: #3                         // java/lang/Object\n   interfaces: 1, fields: 0, methods: 0, attributes: 3\n Constant pool:\n-   #1 = Class              #11            // dev/langchain4j/model/openai/spi/OpenAiStreamingLanguageModelBuilderFactory\n-   #2 = Class              #12            // java/lang/Object\n-   #3 = Class              #13            // java/util/function/Supplier\n-   #4 = Utf8               Signature\n-   #5 = Class              #15            // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder\n-   #6 = Utf8               OpenAiStreamingLanguageModelBuilder\n-   #7 = Utf8               InnerClasses\n+   #1 = Class              #2             // dev/langchain4j/model/openai/spi/OpenAiStreamingLanguageModelBuilderFactory\n+   #2 = Utf8               dev/langchain4j/model/openai/spi/OpenAiStreamingLanguageModelBuilderFactory\n+   #3 = Class              #4             // java/lang/Object\n+   #4 = Utf8               java/lang/Object\n+   #5 = Class              #6             // java/util/function/Supplier\n+   #6 = Utf8               java/util/function/Supplier\n+   #7 = Utf8               Signature\n    #8 = Utf8               Ljava/lang/Object;Ljava/util/function/Supplier<Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;>;\n    #9 = Utf8               SourceFile\n   #10 = Utf8               OpenAiStreamingLanguageModelBuilderFactory.java\n-  #11 = Utf8               dev/langchain4j/model/openai/spi/OpenAiStreamingLanguageModelBuilderFactory\n-  #12 = Utf8               java/lang/Object\n-  #13 = Utf8               java/util/function/Supplier\n-  #14 = Class              #16            // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel\n-  #15 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder\n-  #16 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingLanguageModel\n+  #11 = Utf8               InnerClasses\n+  #12 = Class              #13            // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder\n+  #13 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder\n+  #14 = Class              #15            // dev/langchain4j/model/openai/OpenAiStreamingLanguageModel\n+  #15 = Utf8               dev/langchain4j/model/openai/OpenAiStreamingLanguageModel\n+  #16 = Utf8               OpenAiStreamingLanguageModelBuilder\n {\n }\n Signature: #8                           // Ljava/lang/Object;Ljava/util/function/Supplier<Ldev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder;>;\n SourceFile: \"OpenAiStreamingLanguageModelBuilderFactory.java\"\n InnerClasses:\n-  public static #6= #5 of #14;            // OpenAiStreamingLanguageModelBuilder=class dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder of class dev/langchain4j/model/openai/OpenAiStreamingLanguageModel\n+  public static #16= #12 of #14;          // OpenAiStreamingLanguageModelBuilder=class dev/langchain4j/model/openai/OpenAiStreamingLanguageModel$OpenAiStreamingLanguageModelBuilder of class dev/langchain4j/model/openai/OpenAiStreamingLanguageModel\n"}]}]}
