<?php
namespace Claromentis\Core\Ai\Controller;

$GLOBALS["__65da1b1" . "ec2d6653e" . "8a0ab7848" . "e536215"] = (@$GLOBALS["__65da1b1ec2d6653e8a0" . "ab7848e536215"] ?: array()) + array("_8dacf526543365460ea3a88a3a0904" . "a1" => base64_decode("JzsgdmFsaWQgbW9kdW" . "xlcyBhcmUg"), "_b2ffc45fa7bfe7aac72914a57d0f916" . "2" => base64_decode("SW52YWxpZ" . "CBtb2R1bG" . "UgJw=="), "_e956b2bd945b591c54805c958" . "2d15a3b" => base64_decode("b3B0aW" . "9uc1td"), "_f73dab606" . "630b388645" . "c4f7d3fbb1" . "3bb" => base64_decode("YXJyYXlfbWVyZ" . "2U="), "te" . "xt" => base64_decode("dG" . "V4" . "dA" . "=="), "_4c7c6c6c634d1678" . "518c0a4321bc3d76" => base64_decode("Y2hhdA=" . "="), "_5159b3572969eca46acd1b2e14184" . "59c" => base64_decode("aW1wbG9kZQ" . "=="), "_1128df9" . "5be7b7ba" . "48e931c0" . "662b158c" . "1" => base64_decode("Zm" . "x1" . "c2" . "g="), "_9a122dd9" . "e0255ca41" . "8d473b4ba" . "68f14b" => base64_decode("bWV0YWRhdGF" . "bXQ=="), "_a7442cd7a" . "4d3c557bf6" . "b6b4b0d724" . "559" => base64_decode("cHJ" . "vbX" . "B0"), "_4d707fab93bebb00bb" . "e69e8159697c90" => base64_decode(""), "d" . "a" . "t" . "a" => base64_decode("ZGF" . "0YQ" . "=="), "sta" . "tus" => base64_decode("c3R" . "hdH" . "Vz"), "_839809c6beb4465bd21" . "e037814ee4683" => base64_decode("Y29tbW9uLmFpLmludmFsaWRfc" . "HJvbXB0"), "_d1071a032215f0eb5c4a8e" . "f175f7049d" => base64_decode("cm9" . "sZQ" . "=="), "_e05e0022a2e5ad" . "344b9c4a0d3f64e" . "1a5" => base64_decode("bWVzc2F" . "nZQ=="), "_d962cfd1735adb2df" . "ba46f69c7f15cb8" => base64_decode("cGF" . "ydA" . "=="), "_cfab5a4a68" . "04604f4998a" . "7244eba86bd" => base64_decode("C" . "g" . "o" . "="), "_792a339ad0d1fe818084474ec06e" . "4cc1" => base64_decode("Y2hhd" . "HM="), "_321258308ef09879cd" . "184188c6cd2744" => base64_decode("dGVy" . "bWlu" . "YXRl" . "ZA=="), "_475c4ddf7873ea4e9044df10a" . "e31d01e" => base64_decode("QUkgaW1hZ2UgZ2VuZXJ" . "hdGlvbiBpcyBkaXNhYm" . "xlZA=="), "_38f12d8b8c719a8ce0fc2fae" . "fc225f35" => base64_decode("YXJyYXlfbW" . "Fw"), "_c862508fd8" . "0f2ba2b8ecb" . "2b75ac53467" => base64_decode("YWkuaW52YWxpZF9jaGF0" . "LmVycm9y"), "mo" . "du" . "le" => base64_decode("bW9kd" . "Wxl"), "_bd71c3b5c2" . "01fc11db82e" . "d14ce424de5" => base64_decode("aW5fYXJ" . "yYXk="), "_e608e5b5" . "c4c34a67b" . "a97ef84c1" . "e16199" => base64_decode("Jw=" . "="), "_54faabe694dfa8d" . "05dc6c0827a214f8" . "2" => base64_decode("aW1h" . "Z2U="), "_24ca62b4d01c" . "c6d515dfd0bea" . "4c9d59a" => base64_decode("Y29udGVudA" . "=="), "langu" . "age" => base64_decode("bGFuZ3" . "VhZ2U="), "_df34c069de43011ade22c72" . "0a3318f60" => base64_decode("aGlzd" . "G9yeV" . "td"), "_c2900f14e63513f0" . "0ce80edbb045506c" => base64_decode("b2Jf" . "Zmx1" . "c2g="), "_eac6791b" . "be0decdc5" . "761307838" . "b277de" => base64_decode("Y29tbW9uLmFpLnVuZXhwZWN0ZWRfcmVzcG" . "9uc2U="), "_ea8229a121285ee6" . "49a72fd880bac39b" => base64_decode("YXJyYXlfZmlsdG" . "Vy"), "_7669a8431d2368b1dc095" . "81496aea68e" => base64_decode("ZmluaXN" . "o"), "_1ab2691b0149e6c0f5bef2e03" . "4d68c11" => base64_decode("Jy" . "wg" . "Jw" . "=="), "_7aefd482de7885f4293c2" . "926df28c235" => base64_decode("anNvbl9lbmNvZG" . "U="), "_4ab3bd4d" . "edba72e68" . "b590ded0d" . "6473ed" => base64_decode("ZmlsZV91cm" . "k="), "_967e161ed500fcf" . "11d56175ec79897d" . "c" => base64_decode("QUkgaXMgbm90IGVuYWJsZWQgZm9yIGFueSB" . "tb2R1bGVz"), "_a1b32522d3c9" . "a793e0e430746" . "6b172d9" => base64_decode("ZGF" . "0YT" . "og"), "_f083878fb61180fb" . "f68ba3a77b8d7de3" => base64_decode("aW1" . "hZ2" . "Vz"), "_655a561f4e34bbdfa" . "745dc13393471b3" => base64_decode("bWltZV90" . "eXBl"));
use Claromentis\Core\Ai\Adapters\Vertex\Responses\Text\VertexAiGenerateTextResponse;
use Claromentis\Core\Ai\Ai;
use Claromentis\Core\Ai\AiImageConfiguration;
use Claromentis\Core\Ai\AiPluginInterface;
use Claromentis\Core\Ai\AiResponseInterface;
use Claromentis\Core\Ai\Exceptions\AiInvalidRequestException;
use Claromentis\Core\Ai\Exceptions\AiInvalidResponseException;
use Claromentis\Core\Ai\Exceptions\AiServerResponseException;
use Claromentis\Core\Ai\Format\ChatFormatter;
use Claromentis\Core\Ai\Parts\FilePart;
use Claromentis\Core\Ai\Parts\FileUriPart;
use Claromentis\Core\Ai\Parts\InlineFilePart;
use Claromentis\Core\Ai\Parts\PartInterface;
use Claromentis\Core\Ai\Parts\TextPart;
use Claromentis\Core\Ai\Repository\AiChatRepository;
use Claromentis\Core\Config\Config;
use Claromentis\Core\Http\JsonPrettyResponse;
use Claromentis\Core\Http\RequestData;
use Claromentis\Core\Http\ResponseFactory;
use Claromentis\Core\Localization\Lmsg;
use Claromentis\Core\Security\SecurityContext;
use Claromentis\Core\TextUtil\ClaText;
use Parsedown;
use RestExBadRequest;
use RestExError;
use Symfony\Component\HttpFoundation\Response;
use Throwable;




class RestAiController
{
    
    
    
    
    private Ai $ai;
    
    
    
    
    protected Config $config;
    
    
    
    
    private ResponseFactory $responseFactory;
    
    
    
    
    private ClaText $claText;
    
    
    
    
    private Lmsg $lmsg;
    
    
    
    
    
    
    
    
    public function __construct(Ai $ai, Config $config, ResponseFactory $responseFactory, ClaText $cla_text, Lmsg $lmsg)
    {
        $this->ai = $ai;
        $this->config = $config;
        $this->responseFactory = $responseFactory;
        $this->claText = $cla_text;
        $this->lmsg = $lmsg;
    }
    
    
    
    
    
    
    
    public function generateTextStream(RequestData $requestData) : Response
    {
        $_a7442cd7a4d3c557bf6b6b4b0d724559 = $requestData->get($GLOBALS["__65da1b1ec2d6653e8a0ab7" . "848e536215"]["_a7442cd7a4" . "d3c557bf6b6" . "b4b0d724559"]);
        $module = $requestData->get($GLOBALS["__65da1b1ec2d6653e8a0ab" . "7848e536215"]["modul" . "e"], $GLOBALS["__65da1b1ec2d6653e8a" . "0ab7848e536215"]["_4d707fab93bebb00bbe69e81" . "59697c90"]);
        $language = $requestData->get($GLOBALS["__65da1b1ec2d" . "6653e8a0ab784" . "8e536215"]["la" . "ng" . "ua" . "ge"]);
        $this->validateModule($module);
        $module = $this->ai->getModule($module, AiPluginInterface::TYPE_TEXT_GENERATION);
        if ($module) {
            $_a7442cd7a4d3c557bf6b6b4b0d724559 = $this->initializeParts($module, $language, $_a7442cd7a4d3c557bf6b6b4b0d724559);
        }
        $_f9aef021fb8e50005cc6aa3a9d7e2117 = $this->responseFactory->GetEventStreamResponse(function () use($_a7442cd7a4d3c557bf6b6b4b0d724559) {
            $_e696d5598f94156853fd8b977b8c344c = new Parsedown();
            $_77ab044ee5ed2012c760c0fbb7bd34f9 = $GLOBALS["__65da1b1ec2d6653e8a0ab7848e53621" . "5"]["_4d707fab93bebb00b" . "be69e8159697c90"];
            $this->ai->generateTextStream(function (AiResponseInterface $_fd5a3a643834299cbdadfc3540ba0bcb) use($_e696d5598f94156853fd8b977b8c344c, &$_77ab044ee5ed2012c760c0fbb7bd34f9) {
                if ($_fd5a3a643834299cbdadfc3540ba0bcb->hasTerminated()) {
                    $this->flush($GLOBALS["__65da1b1ec2d6653e8a0ab7848e5" . "36215"]["_321258308ef098" . "79cd184188c6cd2" . "744"]);
                } else {
                    try {
                        $_77ab044ee5ed2012c760c0fbb7bd34f9 .= $_fd5a3a643834299cbdadfc3540ba0bcb->getResponse();
                    } catch (Throwable $throwable) {
                        $this->handleException($throwable);
                    }
                    $this->flush($GLOBALS["__65da1b1e" . "c2d6653e8a" . "0ab7848e53" . "6215"]["_e05e0022a2e" . "5ad344b9c4a0" . "d3f64e1a5"], $this->claText->SanitizeHtml($_e696d5598f94156853fd8b977b8c344c->text($_77ab044ee5ed2012c760c0fbb7bd34f9)));
                }
            }, $_a7442cd7a4d3c557bf6b6b4b0d724559);
            $this->flush($GLOBALS["__65da1b1ec2d6653e8a0ab7848e5" . "36215"]["_7669a8431d23" . "68b1dc0958149" . "6aea68e"]);
        });
        return $_f9aef021fb8e50005cc6aa3a9d7e2117;
    }
    
    
    
    
    
    
    
    
    
    public function generateText(RequestData $requestData) : Response
    {
        $_a7442cd7a4d3c557bf6b6b4b0d724559 = $requestData->get($GLOBALS["__65da1b1ec2d6653e8a" . "0ab7848e536215"]["_a7442cd7a4d3c557bf6b6b4b0d72455" . "9"]);
        $module = $requestData->get($GLOBALS["__65da1b1ec2d6653e8a0" . "ab7848e536215"]["mo" . "du" . "le"], $GLOBALS["__65da1b1ec2d6" . "653e8a0ab7848e" . "536215"]["_4d707fab93bebb00bbe69e81" . "59697c90"]);
        $language = $requestData->get($GLOBALS["__65da1b1ec2d6653" . "e8a0ab7848e536215"]["langu" . "age"]);
        $metadata = $requestData->get($GLOBALS["__65da1b1" . "ec2d6653e" . "8a0ab7848" . "e536215"]["_9a122dd9e0255ca418d473" . "b4ba68f14b"], []);
        $this->validateModule($module);
        $module = $this->ai->getModule($module, AiPluginInterface::TYPE_TEXT_GENERATION);
        if ($module) {
            $_a7442cd7a4d3c557bf6b6b4b0d724559 = $this->initializeParts($module, $language, $_a7442cd7a4d3c557bf6b6b4b0d724559, $metadata);
        }
        try {
            $_fd5a3a643834299cbdadfc3540ba0bcb = $this->ai->generateText($_a7442cd7a4d3c557bf6b6b4b0d724559, $module ? $module->getConfiguration() : null);
        } catch (Throwable $throwable) {
            $this->handleException($throwable);
        }
        return $this->responseFactory->GetJsonPrettyResponse([$GLOBALS["__65da1b1ec2" . "d6653e8a0ab7" . "848e536215"]["te" . "xt"] => $module ? $module->transformResponse($_fd5a3a643834299cbdadfc3540ba0bcb) : $_fd5a3a643834299cbdadfc3540ba0bcb]);
    }
    
    
    
    
    
    
    
    public function generateImages(RequestData $requestData) : Response
    {
        $_a7442cd7a4d3c557bf6b6b4b0d724559 = $requestData->get($GLOBALS["__65da1b1ec2d6653e8a0ab784" . "8e536215"]["_a7442cd7a4d3c557bf6b" . "6b4b0d724559"]);
        $options = $requestData->get($GLOBALS["__65da1b1ec2d6653e8a0ab7848e53" . "6215"]["_e956b2bd945b591c54805c9582d15a" . "3b"]);
        if (!$this->ai->isModuleEnabled($GLOBALS["__65da1b1ec2d6653e8a0ab7848e5362" . "15"]["_54faabe694dfa" . "8d05dc6c0827a2" . "14f82"])) {
            throw new RestExBadRequest($GLOBALS["__65da1b1ec2d6653e8a0ab7848e53621" . "5"]["_475c4ddf7873ea4e9044df10" . "ae31d01e"]);
        }
        try {
            $_f083878fb61180fbf68ba3a77b8d7de3 = $this->ai->generateImages($_a7442cd7a4d3c557bf6b6b4b0d724559, new AiImageConfiguration($options ?? []));
        } catch (Throwable $throwable) {
            $this->handleException($throwable);
        }
        return $this->responseFactory->GetJsonPrettyResponse([$GLOBALS["__65da1b1ec2d6653e8a0ab" . "7848e536215"]["_f083878fb61180fbf6" . "8ba3a77b8d7de3"] => $GLOBALS["__65da1b1ec2d6653e8a0ab784" . "8e536215"]["_38f12d8b8c719a8ce0fc2faefc225f3" . "5"](function ($_54faabe694dfa8d05dc6c0827a214f82) {
            return [$GLOBALS["__65da1b1ec2d665" . "3e8a0ab7848e5362" . "15"]["_655a561f4e34bbdfa745d" . "c13393471b3"] => $_54faabe694dfa8d05dc6c0827a214f82->getMimeType(), $GLOBALS["__65da1b1ec2d6653e8a0ab78" . "48e536215"]["dat" . "a"] => $_54faabe694dfa8d05dc6c0827a214f82->getValue()];
        }, $_f083878fb61180fbf68ba3a77b8d7de3)]);
    }
    
    
    
    
    
    
    
    public function generateChat(?string $id, RequestData $requestData) : JsonPrettyResponse
    {
        $_a82e7c9cba13670954fbe01d604c242a = $requestData->get($GLOBALS["__65da1b1ec2d66" . "53e8a0ab7848e53" . "6215"]["_df34c069d" . "e43011ade2" . "2c720a3318" . "f60"], []);
        $module = $requestData->get($GLOBALS["__65da1b1ec2d6653e8a0a" . "b7848e536215"]["modul" . "e"], $GLOBALS["__65da1b1ec" . "2d6653e8a0a" . "b7848e53621" . "5"]["_4d707fab93bebb00bbe69e8" . "159697c90"]);
        $language = $requestData->get($GLOBALS["__65da1b1ec2d6653e8a0ab784" . "8e536215"]["lang" . "uage"]);
        $metadata = $requestData->get($GLOBALS["__65da1b1ec2d6653e8a0ab78" . "48e536215"]["_9a122dd9e0255ca418d47" . "3b4ba68f14b"], []);
        $this->validateModule($module);
        $module = $this->ai->getModule($module, AiPluginInterface::TYPE_CHAT_GENERATION);
        if ($module) {
            $_a7442cd7a4d3c557bf6b6b4b0d724559 = $this->initializeParts($module, $language, null, $metadata);
        }
        $_9961f986823b4be7f5c4cc8379c6b228 = $GLOBALS["__65da1b1ec" . "2d6653e8a0a" . "b7848e53621" . "5"]["_38f12d8b8c719a8ce0fc" . "2faefc225f35"](function ($_9258ac851c9bc3180b251966de4a02bc) {
            if (isset($_9258ac851c9bc3180b251966de4a02bc[$GLOBALS["__65da1b1ec2d6" . "653e8a0ab7848e" . "536215"]["_655a561f4e34bbdfa745dc13393" . "471b3"]], $_9258ac851c9bc3180b251966de4a02bc[$GLOBALS["__65da1b1ec2d6653e" . "8a0ab7848e536215"]["_d1071a032215f0eb5c4a8ef175f704" . "9d"]])) {
                if (isset($_9258ac851c9bc3180b251966de4a02bc[$GLOBALS["__65da1b1ec2d6653e8" . "a0ab7848e536215"]["d" . "a" . "t" . "a"]])) {
                    return new InlineFilePart($_9258ac851c9bc3180b251966de4a02bc[$GLOBALS["__65da1b1ec2d6653e8a0ab7848e53" . "6215"]["d" . "a" . "t" . "a"]], $_9258ac851c9bc3180b251966de4a02bc[$GLOBALS["__65da1b1ec2d66" . "53e8a0ab7848e53" . "6215"]["_655a561f4e34bbdfa745d" . "c13393471b3"]], $_9258ac851c9bc3180b251966de4a02bc[$GLOBALS["__65da1b1ec2d6653e8a0ab7848e5" . "36215"]["_d1071a032215f0eb5c4a" . "8ef175f7049d"]]);
                } else {
                    if (isset($_9258ac851c9bc3180b251966de4a02bc[$GLOBALS["__65da1b1ec2d6653e8a0ab" . "7848e536215"]["_4ab3bd4" . "dedba72e" . "68b590de" . "d0d6473e" . "d"]])) {
                        return new FileUriPart($_9258ac851c9bc3180b251966de4a02bc[$GLOBALS["__65da1b1ec2d6653e8a0ab7848e53621" . "5"]["_4ab3bd4dedba72e68" . "b590ded0d6473ed"]], $_9258ac851c9bc3180b251966de4a02bc[$GLOBALS["__65da1b1ec2d6653e8a0ab7848e5" . "36215"]["_655a561f4e34bbdfa" . "745dc13393471b3"]], $_9258ac851c9bc3180b251966de4a02bc[$GLOBALS["__65da1b1e" . "c2d6653e8a" . "0ab7848e53" . "6215"]["_d1071a032215f0eb5c4a8ef175f70" . "49d"]]);
                    }
                }
                return null;
            }
            return new TextPart($_9258ac851c9bc3180b251966de4a02bc[$GLOBALS["__65da1b1" . "ec2d6653e" . "8a0ab7848" . "e536215"]["te" . "xt"]], $_9258ac851c9bc3180b251966de4a02bc[$GLOBALS["__65da1b1ec2d665" . "3e8a0ab7848e5362" . "15"]["_d1071a032215f0e" . "b5c4a8ef175f7049" . "d"]]);
        }, $_a82e7c9cba13670954fbe01d604c242a);
        if ($_a7442cd7a4d3c557bf6b6b4b0d724559) {
            $_9961f986823b4be7f5c4cc8379c6b228 = $GLOBALS["__65da1b1ec2d6" . "653e8a0ab7848e" . "536215"]["_f73dab60663" . "0b388645c4f7" . "d3fbb13bb"]($_a7442cd7a4d3c557bf6b6b4b0d724559, $_9961f986823b4be7f5c4cc8379c6b228);
        }
        try {
            $_fd5a3a643834299cbdadfc3540ba0bcb = $this->ai->generateChat($_9961f986823b4be7f5c4cc8379c6b228, $id, $module ? $module->getConfiguration() : null);
            if ($module) {
                $_fd5a3a643834299cbdadfc3540ba0bcb = $module->transformResponse($_fd5a3a643834299cbdadfc3540ba0bcb);
            }
        } catch (Throwable $throwable) {
            $this->handleException($throwable);
        }
        return $this->responseFactory->GetJsonPrettyResponse([$GLOBALS["__65da1b1ec2d6653e8" . "a0ab7848e536215"]["_d962cfd1735adb2dfba46f69c7f" . "15cb8"] => [$GLOBALS["__65da1b1ec2d6653" . "e8a0ab7848e536215"]["_d1071a032215f0eb5c4a8ef17" . "5f7049d"] => PartInterface::PART_ROLE_MODEL, $GLOBALS["__65da1b1ec2d" . "6653e8a0ab784" . "8e536215"]["_24ca62b4d" . "01cc6d515d" . "fd0bea4c9d" . "59a"] => $_fd5a3a643834299cbdadfc3540ba0bcb]]);
    }
    public function chat(string $id, ChatFormatter $formatter, AiChatRepository $repository, SecurityContext $context)
    {
        $_dace5e187fa775d4aabf1747566801d7 = $repository->getChatWithHistory($context, $id);
        if (!$_dace5e187fa775d4aabf1747566801d7) {
            throw new RestExBadRequest(($this->lmsg)($GLOBALS["__65da1b1ec2d6653e8a0ab7848" . "e536215"]["_c862508fd80f2ba" . "2b8ecb2b75ac5346" . "7"]));
        }
        return $this->responseFactory->GetJsonPrettyResponse([$GLOBALS["__65da1b1ec2d6653e8a0ab78" . "48e536215"]["_4c7c6c6c" . "634d16785" . "18c0a4321" . "bc3d76"] => $formatter->FormatChat($_dace5e187fa775d4aabf1747566801d7)]);
    }
    public function newChat(AiChatRepository $repository, ChatFormatter $formatter, SecurityContext $context)
    {
        $_dace5e187fa775d4aabf1747566801d7 = $repository->newChat($context);
        return $this->responseFactory->GetJsonPrettyResponse([$GLOBALS["__65da1b1ec2d6653" . "e8a0ab7848e536215"]["_4c7c6c6c6" . "34d1678518" . "c0a4321bc3" . "d76"] => $formatter->FormatChat($_dace5e187fa775d4aabf1747566801d7)]);
    }
    public function chats(SecurityContext $context, ChatFormatter $formatter, AiChatRepository $repository)
    {
        $_792a339ad0d1fe818084474ec06e4cc1 = $repository->getChats($context);
        return $this->responseFactory->GetJsonPrettyResponse([$GLOBALS["__65da1b1ec2d66" . "53e8a0ab7848e53" . "6215"]["_792a339ad0d1fe818" . "084474ec06e4cc1"] => $formatter->FormatChats($_792a339ad0d1fe818084474ec06e4cc1)]);
    }
    
    
    
    
    
    
    
    
    
    
    private function initializeParts(AiPluginInterface $plugin, ?string $languageCode = null, ?string $userPrompt = null, ?array $metadata = null) : ?array
    {
        $_70b52ce74e40801d2c81b11669a461e6 = $this->ai->getInitializationParts($plugin, $languageCode, $metadata);
        return $GLOBALS["__65da1b1ec2d66" . "53e8a0ab7848e53" . "6215"]["_ea8229a121285ee649a" . "72fd880bac39b"]($GLOBALS["__65da1b1ec2d6653e8a0ab7848e" . "536215"]["_f73dab606630" . "b388645c4f7d3" . "fbb13bb"]($_70b52ce74e40801d2c81b11669a461e6, [new TextPart($userPrompt ?? $GLOBALS["__65da1b1ec2d6653e8a0a" . "b7848e536215"]["_4d707fab9" . "3bebb00bbe" . "69e8159697" . "c90"])]), function ($_59cdb5ce92fcf760d09d3c6ed5b03aaa) {
            return $_59cdb5ce92fcf760d09d3c6ed5b03aaa !== null && !empty($_59cdb5ce92fcf760d09d3c6ed5b03aaa->getValue());
        });
    }
    
    
    
    
    
    
    
    
    private function flush(string $status, string $text = '')
    {
        echo $GLOBALS["__65da1b1ec2d6653e8a0ab7848e536" . "215"]["_a1b32522d3c9a793e0" . "e4307466b172d9"] . $GLOBALS["__65da1b1ec2d6653e8a0" . "ab7848e536215"]["_7aefd482de7885f4" . "293c2926df28c235"]([$GLOBALS["__65da1b1ec2d6653e8a0ab7848e" . "536215"]["sta" . "tus"] => $status, $GLOBALS["__65da1b1ec" . "2d6653e8a0a" . "b7848e53621" . "5"]["tex" . "t"] => $text]) . $GLOBALS["__65da1b1ec2d6653e8a0ab78" . "48e536215"]["_cfab5a4a6804604f4998a7244eba" . "86bd"];
        $GLOBALS["__65da1b1ec2d6653e8a0ab784" . "8e536215"]["_c2900f14e6" . "3513f00ce80" . "edbb045506c"]();
        $GLOBALS["__65da1b1ec" . "2d6653e8a0a" . "b7848e53621" . "5"]["_1128df95be7b7b" . "a48e931c0662b15" . "8c1"]();
    }
    
    
    
    
    
    
    
    
    
    
    private function handleException($throwable) : void
    {
        if ($throwable instanceof AiInvalidRequestException) {
            throw new RestExBadRequest(($this->lmsg)($GLOBALS["__65da1b1ec2d6653e" . "8a0ab7848e536215"]["_839809c6beb4465bd21e037814ee468" . "3"]), $throwable->getCode(), $throwable);
        } elseif ($throwable instanceof AiInvalidResponseException || $throwable instanceof AiServerResponseException) {
            throw new RestExError(($this->lmsg)($GLOBALS["__65da1b1ec2d6653e8" . "a0ab7848e536215"]["_eac6791" . "bbe0decd" . "c5761307" . "838b277d" . "e"], $throwable->getCode()), $throwable->getCode(), $throwable);
        }
        throw new RestExError($throwable->getMessage(), $throwable->getCode(), $throwable);
    }
    
    
    
    
    
    
    private function validateModule(string $module) : void
    {
        $_7e868a0f1e76721d67a3c57a1406d916 = $this->ai->getModules();
        if (empty($_7e868a0f1e76721d67a3c57a1406d916)) {
            throw new RestExBadRequest($GLOBALS["__65da1b1ec2d6653e8a0ab784" . "8e536215"]["_967e161" . "ed500fcf" . "11d56175" . "ec79897d" . "c"]);
        }
        if (!$GLOBALS["__65da1b1ec2d6653e8a0ab7848e5" . "36215"]["_bd71c3b5c201fc11db82ed14ce424de" . "5"]($module, $_7e868a0f1e76721d67a3c57a1406d916)) {
            $_de3bcb12af58b547f987c780da4b95d3 = $GLOBALS["__65da1b1ec2d6653e8a" . "0ab7848e536215"]["_e608e5b5c4c34a67ba97e" . "f84c1e16199"] . $GLOBALS["__65da1b1ec2d6653e8a0ab7" . "848e536215"]["_5159b3572969eca46" . "acd1b2e1418459c"]($GLOBALS["__65da1b1ec2d6653e8a0ab784" . "8e536215"]["_1ab2691b0149e6c0f5bef2" . "e034d68c11"], $_7e868a0f1e76721d67a3c57a1406d916) . $GLOBALS["__65da1b1ec2d6653e" . "8a0ab7848e536215"]["_e608e5b5c4c34a67ba97ef84c1e161" . "99"];
            throw new RestExBadRequest($GLOBALS["__65da1b1ec2d6653e8a" . "0ab7848e536215"]["_b2ffc45fa7bfe7aac72914a57d0" . "f9162"] . $module . $GLOBALS["__65da1b1ec2d6653e8a0ab7848e53621" . "5"]["_8dacf526543365460ea" . "3a88a3a0904a1"] . $_de3bcb12af58b547f987c780da4b95d3);
        }
    }
}