Descomplicando Problemas Complexos com Decomposição de Otimização
Saiba como a decomposição de otimização simplifica a resolução de problemas complexos em várias áreas.
― 7 min ler
Índice
- O Básico da Otimização
- Tipos de Problemas de Otimização
- Estrutura do Problema e Decomposição
- Por Que Decompor Problemas?
- Exemplo de Estrutura Composicional
- Representação Matemática
- Função Objetivo
- Restrições
- Métodos de Decomposição
- Implementando Decomposição
- Vantagens da Decomposição
- Desafios na Decomposição
- Conclusão
- Fonte original
- Ligações de referência
A Otimização é uma área importante na matemática e na ciência da computação. Ela lida com encontrar a melhor solução a partir de um conjunto de possíveis soluções. Essas soluções podem ser usadas em muitos campos, como aprendizado de máquina, economia e engenharia. Em muitas situações da vida real, os problemas que queremos resolver podem ser bem grandes e complexos, tornando difícil encontrar a melhor solução diretamente. É aí que entra a decomposição de otimização.
Os Métodos de Decomposição de otimização quebram problemas grandes em subproblemas menores e mais simples. Ao resolver esses subproblemas, podemos juntar as soluções para chegar a uma resposta para o problema original. Essa abordagem é especialmente útil para problemas que podem ser entendidos como combinações de questões menores, que chamamos de "estrutura composicional".
Neste artigo, vamos explorar as ideias básicas por trás da decomposição de otimização, como representar esses problemas matematicamente e como desenvolver algoritmos que possam ajudar a resolvê-los de maneira mais eficiente.
O Básico da Otimização
Pra começar, vamos entender o que significa otimização. Otimização é sobre fazer algo o mais eficaz ou funcional possível. Isso pode significar maximizar lucros, minimizar custos ou encontrar o caminho mais curto em uma rede. O objetivo é encontrar o melhor resultado possível dadas certas Restrições ou limitações.
Um problema de otimização geralmente consiste em uma Função Objetivo, que é o que queremos otimizar, e restrições que limitam o conjunto de possíveis soluções. O processo de resolver esses problemas muitas vezes envolve métodos de cálculo, álgebra linear e análise numérica.
Tipos de Problemas de Otimização
Existem diferentes tipos de problemas de otimização baseados nas propriedades da função objetivo e nas restrições. Aqui estão alguns tipos comuns:
Otimização Linear: Problemas lineares têm funções objetivo e restrições lineares. Eles podem ser resolvidos de forma eficiente usando métodos como o algoritmo Simplex.
Otimização Não-Linear: Problemas não-lineares envolvem pelo menos uma função não-linear. Esses são geralmente mais desafiadores de resolver do que os problemas lineares.
Otimização Inteira: Esses problemas exigem que algumas ou todas as variáveis de decisão assumam valores inteiros.
Otimização Convexa: Em problemas convexos, a função objetivo é convexa, o que significa que tem um único mínimo global. Essa propriedade permite soluções mais eficientes.
Otimização Combinatória: Esses problemas lidam com encontrar um objeto ótimo a partir de um conjunto finito de objetos, muitas vezes relacionados à teoria dos grafos.
Estrutura do Problema e Decomposição
A estrutura de um problema é crucial para determinar como abordá-lo. Quando um problema pode ser dividido em componentes menores, dizemos que ele tem uma estrutura composicional. Isso significa que podemos ver o problema como uma composição de subproblemas mais simples.
Por Que Decompor Problemas?
Decompor problemas pode torná-los mais fáceis de resolver por várias razões:
- Simplificação: Ao quebrar um problema grande em partes menores, cada subproblema pode ser mais simples e mais fácil de gerenciar.
- Paralelismo: Diferentes subproblemas podem muitas vezes ser resolvidos de forma independente ou em paralelo, o que pode economizar tempo.
- Flexibilidade: Métodos diferentes podem ser aplicados a diferentes subproblemas, com base em suas características específicas.
- Escalabilidade: À medida que os problemas crescem, a decomposição permite lidar melhor com a complexidade.
Exemplo de Estrutura Composicional
Imagine uma rede de ruas onde queremos encontrar a rota mais rápida de uma cidade para outra. Esse problema pode ser dividido em segmentos menores, onde cada segmento representa uma conexão entre duas cidades. Ao otimizar a rota para cada segmento separadamente, podemos então combinar essas rotas para encontrar o caminho geral mais rápido.
Representação Matemática
Para representar matematicamente os problemas de otimização, frequentemente usamos funções e equações. Cada problema de otimização pode ser expresso como:
- Uma função objetivo, que queremos minimizar ou maximizar.
- Um conjunto de restrições, que definem os limites dentro dos quais devemos encontrar nossa solução.
Função Objetivo
Uma função objetivo é uma expressão matemática que calcula o valor que queremos otimizar. Por exemplo, em um contexto de negócios, o objetivo pode ser maximizar lucros com base no número de produtos vendidos, que pode ser representado por uma função que considera custos, vendas e preços.
Restrições
Restrições são as limitações que restringem os valores das variáveis em nossa função objetivo. Elas podem vir de várias fontes, como limitações orçamentárias, disponibilidade de recursos ou leis físicas que regem o sistema que estamos analisando.
Métodos de Decomposição
Existem vários métodos populares usados para a decomposição de otimização. Alguns deles incluem:
Decomposição Primal: Este método envolve quebrar o problema original em subproblemas mais simples, resolvê-los individualmente e depois combinar suas soluções.
Decomposição Dual: Nesta abordagem, focamos na dual do problema original. Ao resolver os problemas duais, podemos derivar soluções para o problema primal.
Gradiente Descendente: Este é um método iterativo usado para encontrar o mínimo de uma função. Envolve se mover na direção do maior descenso com base no gradiente da função.
Algoritmo de Uzawa: Este é um método especificamente projetado para resolver problemas de otimização restrita, alternando entre resolver os problemas primal e dual.
Implementando Decomposição
Para implementar efetivamente esses métodos de decomposição, é essencial ter uma abordagem estruturada. Isso geralmente envolve os seguintes passos:
Identificar a Estrutura: Determinar se o problema tem uma estrutura composicional que pode ser explorada.
Definir Subproblemas: Quebrar o problema original em subproblemas menores e manejáveis que possam ser resolvidos individualmente.
Resolver Subproblemas: Usar algoritmos apropriados para encontrar soluções para cada um dos subproblemas.
Combinar Soluções: Finalmente, juntar as soluções dos subproblemas para encontrar a solução geral do problema original.
Vantagens da Decomposição
Ao empregar métodos de decomposição de otimização, várias vantagens podem ser obtidas:
- Eficiência: Subproblemas menores podem muitas vezes ser resolvidos mais rapidamente do que enfrentar um grande problema diretamente.
- Clareza: Trabalhar em subproblemas mais simples pode levar a uma melhor compreensão do problema como um todo.
- Flexibilidade nos Algoritmos: Diferentes algoritmos podem ser adaptados para subproblemas específicos com base em sua natureza, o que pode levar a um desempenho melhor.
Desafios na Decomposição
Apesar das vantagens da decomposição, vários desafios podem surgir:
- Interações Complexas: Quando os subproblemas não são completamente independentes, as interações entre eles podem complicar o processo de solução.
- Qualidade da Solução: Existe o risco de que a solução combinada não seja ótima se os subproblemas não forem resolvidos com cuidado.
- Sobrecarga Adicional: O processo de decompor e combinar soluções pode introduzir uma sobrecarga que pode anular parte da eficiência ganha.
Conclusão
A otimização é uma ferramenta poderosa que desempenha um papel crucial em muitos campos. Entender os métodos de decomposição e como aplicá-los de forma eficaz pode nos ajudar a enfrentar problemas complexos de maneira estruturada e eficiente. A capacidade de quebrar grandes desafios em partes menores e mais manejáveis pode levar a melhores soluções e uma compreensão mais clara do sistema com o qual estamos trabalhando.
À medida que continuamos a explorar as várias facetas da otimização, é importante estar ciente das técnicas disponíveis e dos desafios que podem surgir, permitindo-nos aprimorar nossas abordagens e melhorar nossas capacidades de resolução de problemas.
Título: A Compositional Framework for First-Order Optimization
Resumo: Optimization decomposition methods are a fundamental tool to develop distributed solution algorithms for large scale optimization problems arising in fields such as machine learning and optimal control. In this paper, we present an algebraic framework for hierarchically composing optimization problems defined on hypergraphs and automatically generating distributed solution algorithms that respect the given hierarchical structure. The central abstractions of our framework are operads, operad algebras, and algebra morphisms, which formalize notions of syntax, semantics, and structure preserving semantic transformations respectively. These abstractions allow us to formally relate composite optimization problems to the distributed algorithms that solve them. Specifically, we show that certain classes of optimization problems form operad algebras, and a collection of first-order solution methods, namely gradient descent, Uzawa's algorithm (also called gradient ascent-descent), and their subgradient variants, yield algebra morphisms from these problem algebras to algebras of dynamical systems. Primal and dual decomposition methods are then recovered by applying these morphisms to certain classes of composite problems. Using this framework, we also derive a novel sufficient condition for when a problem defined by compositional data is solvable by a decomposition method. We show that the minimum cost network flow problem satisfies this condition, thereby allowing us to automatically derive a hierarchical dual decomposition algorithm for finding minimum cost flows on composite flow networks. We implement our operads, algebras, and algebra morphisms in a Julia package called AlgebraicOptimization.jl and use our implementation to empirically demonstrate that hierarchical dual decomposition outperforms standard dual decomposition on classes of flow networks with hierarchical structure.
Autores: Tyler Hanks, Matthew Klawonn, Evan Patterson, Matthew Hale, James Fairbanks
Última atualização: 2024-03-08 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2403.05711
Fonte PDF: https://arxiv.org/pdf/2403.05711
Licença: https://creativecommons.org/licenses/by/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.
Ligações de referência
- https://q.uiver.app/#q=WzAsNCxbMCwwLCJcXHRleHR7U3VicHJvYmxlbXN9Il0sWzIsMCwiXFx0ZXh0e1Byb2JsZW19Il0sWzAsMiwiXFx0ZXh0e1N1YnN5c3RlbXN9Il0sWzIsMiwiXFx0ZXh0e1N5c3RlbX0iXSxbMCwxLCJcXHRleHR7Y29tcG9zZX0iXSxbMiwzLCJcXHRleHR7Y29tcG9zZX0iLDJdLFswLDIsIlxcdGV4dHtncmFkaWVudCBmbG93fSIsMV0sWzEsMywiXFx0ZXh0e2dyYWRpZW50IGZsb3d9IiwxXV0=
- https://q.uiver.app/#q=WzAsMixbMCwwLCJcXG1hdGhjYWx7Q30iXSxbMCwyLCJcXG1hdGhjYWx7RH0iXSxbMCwxLCJGIl1d
- https://q.uiver.app/#q=WzAsNSxbMCwwLCJcXHRleHRiZntDb3NwYW59Il0sWzAsMiwiXFx0ZXh0YmZ7Q29zcGFufSJdLFsyLDAsIlxcdGV4dGJme1NldH0iXSxbMiwyLCJcXHRleHRiZntTZXR9Il0sWzEsMV0sWzAsMiwiQyJdLFsxLDMsIkQiLDJdLFs1LDYsIlxccGhpIiwyLHsic2hvcnRlbiI6eyJzb3VyY2UiOjQwLCJ0YXJnZXQiOjQwfX1dXQ==
- https://q.uiver.app/#q=WzAsOSxbMSwwLCJcXE9wdCJdLFsxLDEsIlxcRGlmZlNhZGRsZSJdLFswLDIsIlxcRGlmZkNvbnYiXSxbMiwyLCJcXERpZmZDb25jIl0sWzMsMiwiXFxEeW5hbV9EIl0sWzQsMiwiXFxDb252Il0sWzQsMCwiXFxDb25jIl0sWzYsMSwiXFxORERfRCJdLFs0LDEsIlxcU2FkZGxlIl0sWzEsMCwiIiwwLHsic3R5bGUiOnsidGFpbCI6eyJuYW1lIjoiaG9vayIsInNpZGUiOiJ0b3AifX19XSxbMiwxLCIiLDAseyJzdHlsZSI6eyJ0YWlsIjp7Im5hbWUiOiJob29rIiwic2lkZSI6InRvcCJ9fX1dLFszLDEsIiIsMCx7InN0eWxlIjp7InRhaWwiOnsibmFtZSI6Imhvb2siLCJzaWRlIjoidG9wIn19fV0sWzIsNCwiXFx0ZXh0e2dkfSIsMCx7ImN1cnZlIjo1fV0sWzMsNCwiXFx0ZXh0e2dhfSIsMl0sWzEsNCwiXFx0ZXh0e2dhLWR9IiwwLHsiY3VydmUiOi0xfV0sWzAsNCwiXFx0ZXh0e2dkfSIsMCx7ImN1cnZlIjotMn1dLFs2LDcsIlxcdGV4dHtzZ2F9Il0sWzgsNywiXFx0ZXh0e3NnYS1kfSIsMl0sWzUsNywiXFx0ZXh0e3NnZH0iLDJdLFs2LDgsIiIsMix7InN0eWxlIjp7InRhaWwiOnsibmFtZSI6Imhvb2siLCJzaWRlIjoidG9wIn19fV0sWzUsOCwiIiwyLHsic3R5bGUiOnsidGFpbCI6eyJuYW1lIjoiaG9vayIsInNpZGUiOiJ0b3AifX19XV0=
- https://q.uiver.app/#q=WzAsOCxbMSwxLCJcXERpZmZTYWRkbGUiXSxbMCwwLCJcXERpZmZDb252Il0sWzIsMiwiXFxEaWZmQ29uYyJdLFszLDAsIlxcRHluYW1fRCJdLFswLDIsIlxcQ29udiJdLFsyLDQsIlxcQ29uYyJdLFszLDIsIlxcTkREX0QiXSxbMSwzLCJcXFNhZGRsZSJdLFsxLDAsIiIsMCx7InN0eWxlIjp7InRhaWwiOnsibmFtZSI6Imhvb2siLCJzaWRlIjoidG9wIn19fV0sWzIsMCwiIiwwLHsic3R5bGUiOnsidGFpbCI6eyJuYW1lIjoiaG9vayIsInNpZGUiOiJ0b3AifX19XSxbNSw3LCIiLDIseyJzdHlsZSI6eyJ0YWlsIjp7Im5hbWUiOiJob29rIiwic2lkZSI6InRvcCJ9fX1dLFs0LDcsIiIsMix7InN0eWxlIjp7InRhaWwiOnsibmFtZSI6Imhvb2siLCJzaWRlIjoidG9wIn19fV0sWzEsNCwiIiwyLHsic3R5bGUiOnsidGFpbCI6eyJuYW1lIjoiaG9vayIsInNpZGUiOiJ0b3AifX19XSxbMCw3LCIiLDIseyJzdHlsZSI6eyJ0YWlsIjp7Im5hbWUiOiJob29rIiwic2lkZSI6InRvcCJ9fX1dLFsyLDUsIiIsMSx7InN0eWxlIjp7InRhaWwiOnsibmFtZSI6Imhvb2siLCJzaWRlIjoidG9wIn19fV0sWzcsNiwiXFx0ZXh0e3NnYS1kfSIsMl0sWzAsMywiXFx0ZXh0e2dhLWR9IiwyXSxbMyw2XV0=
- https://q.uiver.app/#q=WzAsOSxbMSwyLCJcXERpZmZTYWRkbGUiXSxbMCwxLCJcXERpZmZDb252Il0sWzIsMywiXFxEaWZmQ29uYyJdLFszLDEsIlxcRHluYW1fRCJdLFswLDMsIlxcQ29udiJdLFsyLDUsIlxcQ29uYyJdLFszLDMsIlxcTkREX0QiXSxbMSw0LCJcXFNhZGRsZSJdLFsxLDAsIlxcT3B0Il0sWzEsMCwiIiwwLHsic3R5bGUiOnsidGFpbCI6eyJuYW1lIjoiaG9vayIsInNpZGUiOiJ0b3AifX19XSxbMiwwLCIiLDAseyJzdHlsZSI6eyJ0YWlsIjp7Im5hbWUiOiJob29rIiwic2lkZSI6InRvcCJ9fX1dLFs1LDcsIiIsMix7InN0eWxlIjp7InRhaWwiOnsibmFtZSI6Imhvb2siLCJzaWRlIjoidG9wIn19fV0sWzQsNywiIiwyLHsic3R5bGUiOnsidGFpbCI6eyJuYW1lIjoiaG9vayIsInNpZGUiOiJ0b3AifX19XSxbMSw0LCIiLDIseyJzdHlsZSI6eyJ0YWlsIjp7Im5hbWUiOiJob29rIiwic2lkZSI6InRvcCJ9fX1dLFswLDcsIiIsMix7InN0eWxlIjp7InRhaWwiOnsibmFtZSI6Imhvb2siLCJzaWRlIjoidG9wIn19fV0sWzIsNSwiIiwxLHsic3R5bGUiOnsidGFpbCI6eyJuYW1lIjoiaG9vayIsInNpZGUiOiJ0b3AifX19XSxbNyw2LCJcXHRleHR7cGQtc3ViZ30iLDIseyJsYWJlbF9wb3NpdGlvbiI6NzB9XSxbMCwzLCJcXHRleHR7Z2EtZH0iLDJdLFszLDZdLFswLDgsIiIsMCx7InN0eWxlIjp7InRhaWwiOnsibmFtZSI6Imhvb2siLCJzaWRlIjoidG9wIn19fV0sWzgsMywiXFxtYXRocm17Z2R9Il1d
- https://q.uiver.app/#q=WzAsMTIsWzEsMywiXFxEaWZmU2FkZGxlIl0sWzAsMiwiXFxEaWZmQ29udiJdLFsyLDQsIlxcRGlmZkNvbmMiXSxbMywyLCJcXER5bmFtX0QiXSxbMCw0LCJcXENvbnYiXSxbMiw2LCJcXENvbmMiXSxbMyw0LCJcXE5ERF9EIl0sWzEsNSwiXFxTYWRkbGUiXSxbMSwxLCJcXE9wdCJdLFswLDBdLFsyLDJdLFszLDBdLFsxLDAsIiIsMCx7InN0eWxlIjp7InRhaWwiOnsibmFtZSI6Imhvb2siLCJzaWRlIjoidG9wIn19fV0sWzIsMCwiIiwwLHsic3R5bGUiOnsidGFpbCI6eyJuYW1lIjoiaG9vayIsInNpZGUiOiJ0b3AifX19XSxbNSw3LCIiLDIseyJzdHlsZSI6eyJ0YWlsIjp7Im5hbWUiOiJob29rIiwic2lkZSI6InRvcCJ9fX1dLFs0LDcsIiIsMix7InN0eWxlIjp7InRhaWwiOnsibmFtZSI6Imhvb2siLCJzaWRlIjoidG9wIn19fV0sWzEsNCwiIiwyLHsic3R5bGUiOnsidGFpbCI6eyJuYW1lIjoiaG9vayIsInNpZGUiOiJ0b3AifX19XSxbMCw3LCIiLDIseyJzdHlsZSI6eyJ0YWlsIjp7Im5hbWUiOiJob29rIiwic2lkZSI6InRvcCJ9fX1dLFsyLDUsIiIsMSx7InN0eWxlIjp7InRhaWwiOnsibmFtZSI6Imhvb2siLCJzaWRlIjoidG9wIn19fV0sWzcsNiwiXFxwZHN1YmciLDIseyJsYWJlbF9wb3NpdGlvbiI6NzB9XSxbMCwzLCJcXGdhZCIsMix7ImxhYmVsX3Bvc2l0aW9uIjo3MH1dLFszLDYsIiIsMCx7InN0eWxlIjp7InRhaWwiOnsibmFtZSI6Imhvb2siLCJzaWRlIjoidG9wIn19fV0sWzAsOCwiIiwwLHsic3R5bGUiOnsidGFpbCI6eyJuYW1lIjoiaG9vayIsInNpZGUiOiJ0b3AifX19XSxbOCwzLCJcXGdkIiwwLHsibGFiZWxfcG9zaXRpb24iOjcwLCJjdXJ2ZSI6LTJ9XSxbMSw5LCIiLDAseyJzdHlsZSI6eyJib2R5Ijp7Im5hbWUiOiJkYXNoZWQifSwiaGVhZCI6eyJuYW1lIjoibm9uZSJ9fX1dLFs5LDgsIiIsMCx7InN0eWxlIjp7ImJvZHkiOnsibmFtZSI6ImRhc2hlZCJ9LCJoZWFkIjp7Im5hbWUiOiJub25lIn19fV0sWzgsMTAsIiIsMCx7InN0eWxlIjp7ImJvZHkiOnsibmFtZSI6ImRhc2hlZCJ9LCJoZWFkIjp7Im5hbWUiOiJub25lIn19fV0sWzIsMTAsIiIsMCx7InN0eWxlIjp7ImJvZHkiOnsibmFtZSI6ImRhc2hlZCJ9LCJoZWFkIjp7Im5hbWUiOiJub25lIn19fV0sWzgsMTEsIiIsMCx7InN0eWxlIjp7ImJvZHkiOnsibmFtZSI6ImRhc2hlZCJ9LCJoZWFkIjp7Im5hbWUiOiJub25lIn19fV0sWzExLDMsIiIsMCx7InN0eWxlIjp7ImJvZHkiOnsibmFtZSI6ImRhc2hlZCJ9LCJoZWFkIjp7Im5hbWUiOiJub25lIn19fV1d
- https://q.uiver.app/#q=WzAsNixbNCwwLCJaIl0sWzQsMiwiSiciXSxbMiwyLCJcXGJpZ3NxY3VwX3tpXFxpbiBbbl19WV9pIl0sWzIsNCwiXFxiaWdzcWN1cF97aVxcaW5bbl19Sl9pIl0sWzAsNCwiXFxiaWdzcWN1cF97aVxcaW5bbl19XFxiaWdzcWN1cF97alxcaW5bbV9pXX1YX3tpLGp9Il0sWzQsNCwiSicnIl0sWzAsMSwiciciXSxbMiwxLCJsJyJdLFsyLDMsIlxcYmlnc3FjdXBfaXJfaSIsMl0sWzQsMywiXFxiaWdzcWN1cF9pbF9pIiwyXSxbMyw1LCJwIiwyXSxbMSw1LCJxIl0sWzUsMiwiIiwxLHsic3R5bGUiOnsibmFtZSI6ImNvcm5lciJ9fV1d
- https://q.uiver.app/#q=WzAsNCxbMCwwLCJcXFVXRChZXzEsXFxkb3RzLFlfbjtaKVxcdGltZXNcXHByb2Rfe2lcXGluW25dfVxcVVdEKFhfaTtZX2kpIl0sWzAsMiwiXFxTZXRzKEZZXzEsXFxkb3RzLEZZX247RlopXFx0aW1lc1xccHJvZF97aVxcaW5bbl19XFxTZXRzKEZYX2k7RllfaSkiXSxbMSwyLCJcXFNldHMoRlhfMSxcXGRvdHMsRlhfbjtGWikiXSxbMSwwLCJcXFVXRChYXzEsXFxkb3RzLFhfbjtaKSJdLFswLDMsIlxcY2lyYyJdLFsxLDIsIlxcY2lyYyIsMl0sWzAsMSwiRiIsMl0sWzMsMiwiRiJdXQ==
- https://q.uiver.app/#q=WzAsNCxbMCwwLCJcXHByb2Rfe2lcXGluIFtuXX1GKFBfaSkiXSxbMCwxLCJGKFAnKSJdLFsyLDAsIlxccHJvZF97aVxcaW5bbl19RyhQX2kpIl0sWzIsMSwiRyhQJykiXSxbMCwxLCJGKFxcUGhpKSIsMl0sWzIsMywiRyhcXFBoaSkiXSxbMCwyLCJcXHByb2RfaVxccmhvX3tQX2l9Il0sWzEsMywiXFxyaG9fe1AnfSIsMl1d
- https://q.uiver.app/#q=WzAsNSxbMSwwLCJYIl0sWzIsMSwiTiJdLFszLDAsIlkiXSxbMSwyLCJTK19YTiJdLFswLDEsIlMiXSxbMCw0LCJtIl0sWzAsMSwiaSIsMl0sWzIsMSwibyJdLFs0LDMsInBfUyIsMl0sWzEsMywicF9OIl0sWzMsMCwiIiwxLHsic3R5bGUiOnsibmFtZSI6ImNvcm5lciJ9fV1d
- https://q.uiver.app/#q=WzAsNSxbMSwwLCJYIl0sWzIsMSwiTiJdLFszLDAsIlkiXSxbMCwxLCJYIl0sWzEsMiwiTiJdLFswLDEsImkiXSxbMiwxLCJcXGNvbmciLDJdLFswLDMsIlxcaWRfWCIsMl0sWzMsNCwiaSIsMl0sWzEsNCwiXFxpZF9OIl0sWzQsMCwiIiwxLHsic3R5bGUiOnsibmFtZSI6ImNvcm5lciJ9fV1d
- https://q.uiver.app/#q=WzAsNCxbMCwwLCJcXE9wdChYKVxcdGltZXNcXE9wdChZKSJdLFszLDAsIlxcT3B0KE4pXFx0aW1lc1xcT3B0KE0pIl0sWzAsMiwiXFxPcHQoWCtZKSJdLFszLDIsIlxcT3B0KE4rTSkiXSxbMCwxLCJcXE9wdChcXHBoaSlcXHRpbWVzXFxPcHQoXFxwc2kpIl0sWzAsMiwiXFx2YXJwaGlfe1gsWX0iLDJdLFsxLDMsIlxcdmFycGhpX3tOLE19Il0sWzIsMywiXFxPcHQoXFxwaGkrXFxwc2kpIiwyXV0=
- https://q.uiver.app/#q=WzAsOCxbMCwwLCJcXFJeTlxcb3BsdXNcXFJeTSJdLFsyLDAsIlxcUl5YXFxvcGx1cyBcXFJeWSJdLFsyLDEsIlxcUl5YIl0sWzAsMSwiXFxSXk4iXSxbNCwwLCJcXFJeTlxcb3BsdXNcXFJeTSJdLFs2LDAsIlxcUl5YXFxvcGx1c1xcUl5ZIl0sWzQsMSwiXFxSXk0iXSxbNiwxLCJcXFJeWSJdLFswLDEsIlxccGhpXipcXG9wbHVzIFxccHNpXioiXSxbMSwyLCJcXHBpX3tcXFJeWH0iXSxbMCwzLCJcXHBpX3tcXFJeTn0iLDJdLFszLDIsIlxccGhpXioiLDJdLFs0LDUsIlxccGhpXipcXG9wbHVzXFxwc2leKiJdLFs2LDcsIlxccHNpXioiLDJdLFs0LDYsIlxccGlfe1xcUl5NfSIsMl0sWzUsNywiXFxwaV97XFxSXll9Il1d
- https://q.uiver.app/#q=WzAsNCxbMCwwLCJcXHRleHR7T3B0fShOKSJdLFsyLDAsIlxcdGV4dHtPcHR9KE0pIl0sWzIsMiwiXFx0ZXh0e0R5bmFtfShNKSJdLFswLDIsIlxcdGV4dHtEeW5hbX0oTikiXSxbMCwxLCJcXHRleHR7T3B0fShcXHBoaSkiXSxbMCwzLCJmbG93KE4pIiwyXSxbMSwyLCJmbG93KE0pIl0sWzMsMiwiXFx0ZXh0e0R5bmFtfShcXHBoaSkiLDJdXQ==
- https://q.uiver.app/#q=WzAsNCxbMCwwLCJcXHRleHR7T3B0fShOKVxcdGltZXNcXHRleHR7T3B0fShNKSJdLFswLDIsIlxcdGV4dHtPcHR9KE4rTSkiXSxbMywwLCJcXHRleHR7RHluYW19KE4pXFx0aW1lc1xcdGV4dHtEeW5hbX0oTSkiXSxbMywyLCJcXHRleHR7RHluYW19KE4rTSkiXSxbMCwyLCJmbG93KE4pXFx0aW1lcyBmbG93KE0pIl0sWzEsMywiZmxvdyhOK00pIiwyXSxbMCwxLCJcXHZhcnBoaV57XFx0ZXh0e09wdH19X3tOLE19IiwyXSxbMiwzLCJcXHZhcnBoaV57XFx0ZXh0e0R5bmFtfX1fe04sTX0iXV0=
- https://q.uiver.app/#q=WzAsMyxbMCwwLCJcXDEiXSxbMiwwLCJcXHRleHR7T3B0fShcXGVtcHR5KSJdLFsyLDEsIlxcdGV4dHtEeW5hbX0oXFxlbXB0eSkiXSxbMCwxLCJcXHZhcnBoaV8wXlxcT3B0Il0sWzAsMiwiXFx2YXJwaGlfMF5cXER5bmFtIiwyXSxbMSwyLCJcXGZsb3coXFxlbXB0eSkiXV0=
- https://q.uiver.app/#q=WzAsMyxbMCwwLCJ4Il0sWzIsMCwieSJdLFsxLDEsImMiXSxbMCwyLCJmIiwyXSxbMSwyLCJnIl0sWzAsMSwiaCJdXQ==
- https://q.uiver.app/#q=WzAsNCxbMSwyLCJcXFJee05fMX1cXG9wbHVzXFxSXntOXzJ9Il0sWzEsMCwiXFxSXk4iXSxbMCwyLCJcXFJee05fMX0iXSxbMiwyLCJcXFJee05fMn0iXSxbMCwxLCJ1IiwyLHsic3R5bGUiOnsidGFpbCI6eyJuYW1lIjoiaG9vayIsInNpZGUiOiJ0b3AifSwiYm9keSI6eyJuYW1lIjoiZGFzaGVkIn0sImhlYWQiOnsibmFtZSI6ImVwaSJ9fX1dLFsyLDAsIlxcaW90YV97XFxSXntOXzF9fSIsMl0sWzMsMCwiXFxpb3RhX3tcXFJee05fMn19Il0sWzIsMSwiXFx0ZXh0bm9ybWFse2Nudnh9XyoiXSxbMywxLCJcXHRleHRub3JtYWx7Y25jdn1fKiIsMl1d
- https://q.uiver.app/#q=WzAsMyxbMCwwLCJOIl0sWzIsMCwiTSJdLFsxLDEsIlxcdW5kZXJsaW5lezJ9Il0sWzAsMSwiXFxwaGkiXSxbMCwyLCJcXHRhdV8xIiwyXSxbMSwyLCJcXHRhdV8yIl0sWzQsNSwiIiwyLHsib2Zmc2V0IjotMiwic2hvcnRlbiI6eyJzb3VyY2UiOjQwLCJ0YXJnZXQiOjQwfSwic3R5bGUiOnsiaGVhZCI6eyJuYW1lIjoibm9uZSJ9fX1dXQ==
- https://q.uiver.app/#q=WzAsNCxbMCwwLCJcXERpZmZTYWRkbGUoXFx0YXUpIl0sWzIsMCwiXFxEaWZmU2FkZGxlKFxcc2lnbWEpIl0sWzAsMSwiXFxEeW5hbShOKSJdLFsyLDEsIlxcRHluYW0oTSkiXSxbMCwxLCJcXERpZmZTYWRkbGUoXFxwaGkpIl0sWzIsMywiXFxEeW5hbShcXHBoaSkiLDJdLFswLDIsIlxcZmxvd19cXHRhdSIsMl0sWzEsMywiXFxmbG93X1xcc2lnbWEiXV0=
- https://q.uiver.app/#q=WzAsNCxbMCwwLCJcXE5ERChYKVxcdGltZXNcXE5ERChZKSJdLFszLDAsIlxcTkREKE4pXFx0aW1lc1xcTkREKE0pIl0sWzAsMSwiXFxOREQoWCtZKSJdLFszLDEsIlxcTkREKE4rTSkiXSxbMCwxLCJcXE5ERChcXHBoaSlcXHRpbWVzXFxOREQoXFxwc2kpIl0sWzAsMiwiXFx2YXJwaGlfe1gsWX0iLDJdLFsxLDMsIlxcdmFycGhpX3tOLE19Il0sWzIsMywiXFxOREQoXFxwaGkrXFxwc2kpIiwyXV0=
- https://q.uiver.app/#q=WzAsOCxbMCwwLCJcXFJeWCJdLFsyLDAsIlxcUl5OIl0sWzAsMSwiXFxSXlhcXG9wbHVzXFxSXlkiXSxbMiwxLCJcXFJeTlxcb3BsdXNcXFJeTSJdLFs0LDAsIlxcUl5ZIl0sWzYsMCwiXFxSXk0iXSxbNCwxLCJcXFJeWFxcb3BsdXNcXFJeWSJdLFs2LDEsIlxcUl5OXFxvcGx1c1xcUl5NIl0sWzAsMSwiXFxwaGlfKiJdLFswLDIsIlxcaW90YV97WCp9IiwyXSxbMSwzLCJcXGlvdGFfe04qfSJdLFsyLDMsIlxccGhpXypcXG9wbHVzXFxwc2lfKiIsMl0sWzQsNSwiXFxwc2lfKiJdLFs0LDYsIlxcaW90YV97WSp9IiwyXSxbNSw3LCJcXGlvdGFfe00qfSJdLFs2LDcsIlxccGhpXypcXG9wbHVzXFxwc2lfKiIsMl1d
- https://q.uiver.app/#q=WzAsNCxbMCwwLCJcXE5ERChOKSJdLFsyLDAsIlxcTkREKE0pIl0sWzAsMiwiXFxORERfRChOKSJdLFsyLDIsIlxcTkREX0QoTSkiXSxbMCwxLCJcXE5ERChcXHBoaSkiXSxbMCwyLCJcXHRleHRub3JtYWx7RXVsZXJ9XlxcYWxwaGFfTiIsMl0sWzEsMywiXFx0ZXh0bm9ybWFse0V1bGVyfV5cXGFscGhhX00iXSxbMiwzLCJcXE5ERF9EKFxccGhpKSIsMl1d
- https://q.uiver.app/#q=WzAsNCxbMCwwLCJcXE5ERChOKVxcdGltZXNcXE5ERChNKSJdLFszLDAsIlxcTkREX0QoTilcXHRpbWVzXFxORERfRChNKSJdLFswLDIsIlxcTkREKE4rTSkiXSxbMywyLCJcXE5ERF9EKE4rTSkiXSxbMSwzLCJcXHZhcnBoaV57XFxORERfRH1fe04sTX0iXSxbMCwyLCJcXHZhcnBoaV5cXE5ERF97TixNfSIsMl0sWzAsMSwiXFx0ZXh0bm9ybWFse0V1bGVyfV5cXGFscGhhX05cXHRpbWVzXFx0ZXh0bm9ybWFse0V1bGVyfV5cXGFscGhhX00iXSxbMiwzLCJcXHRleHRub3JtYWx7RXVsZXJ9XlxcYWxwaGFfe04rTX0iLDJdXQ==
- https://q.uiver.app/#q=WzAsMyxbMCwwLCIxIl0sWzIsMCwiXFxOREQoXFxlbXB0eXNldCkiXSxbMiwxLCJcXE5ERF9EKFxcZW1wdHlzZXQpIl0sWzEsMiwiXFx0ZXh0bm9ybWFse0V1bGVyfV5cXGFscGhhX1xcZW1wdHlzZXQiXSxbMCwxLCJcXHZhcnBoaV8wXlxcTkREIl0sWzAsMiwiXFx2YXJwaGlfMF57XFxORERfRH0iLDJdXQ==
- https://q.uiver.app/#q=WzAsNCxbMCwwLCJcXE9wdChOKSJdLFsyLDAsIlxcT3B0KE0pIl0sWzAsMiwiXFxOREQoTikiXSxbMiwyLCJcXE5ERChNKSJdLFswLDEsIlxcT3B0KFxccGhpKSJdLFswLDIsIlxcdGV4dG5vcm1hbHtzdWJnfV9OIiwyXSxbMSwzLCJcXHRleHRub3JtYWx7c3ViZ31fTSJdLFsyLDMsIlxcTkREKFxccGhpKSIsMl1d
- https://q.uiver.app/#q=WzAsNCxbMCwwLCJcXEZHKE4pIl0sWzIsMCwiXFxGRyhNKSJdLFswLDIsIlxcQ29uYyhOKSJdLFsyLDIsIlxcQ29uYyhNKSJdLFswLDEsIlxcRkcoXFxwaGkpIl0sWzIsMywiXFxDb25jKFxccGhpKSIsMl0sWzAsMiwiXFx0ZXh0bm9ybWFse25ldGZsb3d9X04iLDFdLFsxLDMsIlxcdGV4dG5vcm1hbHtuZXRmbG93fV9NIiwxXV0=
- https://q.uiver.app/#q=WzAsNSxbMCwwLCJcXEZHKE4pXFx0aW1lc1xcRkcoTSkiXSxbMCwxLCJcXEZHKE4rTSkiXSxbMiwwXSxbMywwLCJcXENvbmMoTilcXHRpbWVzXFxDb25jKE0pIl0sWzMsMSwiXFxDb25jKE4rTSkiXSxbMCwxLCJcXHZhcnBoaV97TixNfV5cXEZHIiwyXSxbMCwzLCJcXG5ldGZsb3dfTlxcdGltZXNcXG5ldGZsb3dfTSJdLFszLDQsIlxcdmFycGhpX3tOLE19XlxcQ29uYyJdLFsxLDQsIlxcbmV0Zmxvd197TitNfSIsMl1d
- https://q.uiver.app/#q=WzAsMyxbMCwwLCIxIl0sWzIsMCwiXFxGRyhcXGVtcHR5c2V0KSJdLFsyLDEsIlxcQ29uYyhcXGVtcHR5c2V0KSJdLFsxLDIsIlxcbmV0Zmxvd19cXGVtcHR5c2V0Il0sWzAsMSwiXFx2YXJwaGlfMF5cXEZHIl0sWzAsMiwiXFx2YXJwaGlfMF5cXENvbmMiLDJdXQ==
- https://q.uiver.app/#q=WzAsNCxbMCwwLCJcXEZHIl0sWzIsMCwiXFxDb25jIl0sWzQsMCwiXFxOREQiXSxbNiwwLCJcXE5ERF9EIl0sWzAsMSwiXFx0ZXh0bm9ybWFse25ldGZsb3d9IiwwLHsibGV2ZWwiOjJ9XSxbMSwyLCJcXHRleHRub3JtYWx7c3VwZXJnfSIsMCx7ImxldmVsIjoyfV0sWzIsMywiXFx0ZXh0bm9ybWFse0V1bGVyfV5cXGFscGhhIiwwLHsibGV2ZWwiOjJ9XV0=
- https://github.com/AlgebraicJulia/AlgebraicOptimization.jl
- https://q.uiver.app/#q=WzAsOCxbMCwwLCJcXFVGRyhbM10pXFx0aW1lc1xcVUZHKFsyXSlcXHRpbWVzXFxVRkcoWzJdKSJdLFszLDAsIlxcVUZHKFxcZW1wdHlzZXQpIl0sWzMsMSwiXFxVRGlmZkNvbmMoXFxlbXB0eXNldCkiXSxbMywyLCJcXFVEeW5hbShcXGVtcHR5c2V0KSJdLFszLDMsIlxcVUR5bmFtX0QoXFxlbXB0eXNldCkiXSxbMCwxLCJcXFVEaWZmQ29uYyhbM10pXFx0aW1lc1xcVURpZmZDb25jKFsyXSlcXHRpbWVzXFxVRGlmZkNvbmMoWzJdKSJdLFswLDIsIlxcVUR5bmFtKFszXSlcXHRpbWVzXFxVRHluYW0oWzJdKVxcdGltZXNcXFVEeW5hbShbMl0pIl0sWzAsMywiXFxVRHluYW0oWzNdKV9EXFx0aW1lc1xcVUR5bmFtKFsyXSlfRFxcdGltZXNcXFVEeW5hbShbMl0pX0QiXSxbMCwxLCJcXFVGRyhcXFBoaSkiXSxbMSwyLCJcXHRleHRub3JtYWx7bmV0Zmxvd30iXSxbMiwzLCJcXGZsb3ciXSxbMyw0LCJcXHRleHRub3JtYWx7RXVsZXJ9XlxcZ2FtbWEiXSxbMCw1LCJcXHRleHRub3JtYWx7bmV0Zmxvd31fe1szXX1cXHRpbWVzXFx0ZXh0e25ldGZsb3d9X3tbMl19XFx0aW1lc1xcdGV4dHtuZXRmbG93fV97WzJdfSIsMl0sWzUsNiwiXFxmbG93X3tbM119XFx0aW1lc1xcZmxvd197WzJdfVxcdGltZXNcXGZsb3dfe1syXX0iLDJdLFs2LDcsIlxcRXVsZXJeXFxnYW1tYV97WzNdfVxcdGltZXNcXEV1bGVyXlxcZ2FtbWFfe1syXX1cXHRpbWVzXFxFdWxlcl5cXGdhbW1hX3tbMl19IiwyXSxbNyw0LCJcXFVEeW5hbShcXFBoaSkiLDJdXQ==
- https://q.uiver.app/#q=WzAsNCxbMCwwLCJGKFgpIl0sWzIsMCwiRihZKSJdLFswLDEsIkcoWCkiXSxbMiwxLCJHKFkpIl0sWzAsMSwiRihmKSJdLFsyLDMsIkcoZikiLDJdLFswLDIsIlxcdGhldGFfWCIsMl0sWzEsMywiXFx0aGV0YV9ZIl1d
- https://q.uiver.app/#q=WzAsOCxbMSwxLCJYXFx0aW1lcyBZIl0sWzAsMCwiWCJdLFswLDIsIlkiXSxbMywxLCJaIl0sWzQsMCwiWCJdLFs0LDIsIlkiXSxbNSwxLCJYK1kiXSxbNywxLCJaIl0sWzAsMSwiXFxwaV9YIl0sWzAsMiwiXFxwaV9ZIiwyXSxbMywxLCJmIiwyLHsiY3VydmUiOjF9XSxbMywyLCJnIiwwLHsiY3VydmUiOi0xfV0sWzMsMCwiXFxleGlzdHMgISIsMix7InN0eWxlIjp7ImJvZHkiOnsibmFtZSI6ImRhc2hlZCJ9fX1dLFs0LDYsIlxcaW90YV9YIiwyXSxbNSw2LCJcXGlvdGFfWSJdLFs2LDcsIlxcZXhpc3RzICEiLDAseyJzdHlsZSI6eyJib2R5Ijp7Im5hbWUiOiJkYXNoZWQifX19XSxbNCw3LCJmIiwwLHsiY3VydmUiOi0xfV0sWzUsNywiZyIsMix7ImN1cnZlIjoxfV0sWzEwLDAsIiIsMix7InNob3J0ZW4iOnsic291cmNlIjoyMCwidGFyZ2V0IjoyMH0sInN0eWxlIjp7ImhlYWQiOnsibmFtZSI6Im5vbmUifX19XSxbMTEsMCwiIiwwLHsic2hvcnRlbiI6eyJzb3VyY2UiOjIwLCJ0YXJnZXQiOjIwfSwic3R5bGUiOnsiaGVhZCI6eyJuYW1lIjoibm9uZSJ9fX1dLFsxNiw2LCIiLDAseyJzaG9ydGVuIjp7InNvdXJjZSI6MjAsInRhcmdldCI6MjB9LCJzdHlsZSI6eyJoZWFkIjp7Im5hbWUiOiJub25lIn19fV0sWzE3LDYsIiIsMix7InNob3J0ZW4iOnsic291cmNlIjoyMCwidGFyZ2V0IjoyMH0sInN0eWxlIjp7ImhlYWQiOnsibmFtZSI6Im5vbmUifX19XV0=
- https://q.uiver.app/#q=WzAsNSxbMSwxLCJQIl0sWzIsMSwiWSJdLFsxLDIsIlgiXSxbMiwyLCJaIl0sWzAsMCwiUSJdLFsyLDMsImYiLDJdLFsxLDMsImciXSxbMCwxLCJwX1kiXSxbMCwyLCJwX1giLDJdLFs0LDAsIlxcZXhpc3RzISIsMix7InN0eWxlIjp7ImJvZHkiOnsibmFtZSI6ImRhc2hlZCJ9fX1dLFs0LDEsInFfWSIsMCx7ImN1cnZlIjotMn1dLFs0LDIsInFfWCIsMix7ImN1cnZlIjoyfV1d
- https://q.uiver.app/#q=WzAsNSxbMSwxLCJQIl0sWzIsMSwiWSJdLFsxLDIsIlgiXSxbMiwyLCJaIl0sWzAsMCwiUSJdLFsyLDMsImYiLDIseyJzdHlsZSI6eyJ0YWlsIjp7Im5hbWUiOiJhcnJvd2hlYWQifSwiaGVhZCI6eyJuYW1lIjoibm9uZSJ9fX1dLFsxLDMsImciLDAseyJzdHlsZSI6eyJ0YWlsIjp7Im5hbWUiOiJhcnJvd2hlYWQifSwiaGVhZCI6eyJuYW1lIjoibm9uZSJ9fX1dLFswLDEsImlfWSIsMCx7InN0eWxlIjp7InRhaWwiOnsibmFtZSI6ImFycm93aGVhZCJ9LCJoZWFkIjp7Im5hbWUiOiJub25lIn19fV0sWzAsMiwiaV9YIiwyLHsic3R5bGUiOnsidGFpbCI6eyJuYW1lIjoiYXJyb3doZWFkIn0sImhlYWQiOnsibmFtZSI6Im5vbmUifX19XSxbNCwwLCJcXGV4aXN0cyEiLDIseyJzdHlsZSI6eyJ0YWlsIjp7Im5hbWUiOiJhcnJvd2hlYWQifSwiYm9keSI6eyJuYW1lIjoiZGFzaGVkIn0sImhlYWQiOnsibmFtZSI6Im5vbmUifX19XSxbNCwxLCJxX1kiLDAseyJjdXJ2ZSI6LTIsInN0eWxlIjp7InRhaWwiOnsibmFtZSI6ImFycm93aGVhZCJ9LCJoZWFkIjp7Im5hbWUiOiJub25lIn19fV0sWzQsMiwicV9YIiwyLHsiY3VydmUiOjIsInN0eWxlIjp7InRhaWwiOnsibmFtZSI6ImFycm93aGVhZCJ9LCJoZWFkIjp7Im5hbWUiOiJub25lIn19fV1d
- https://q.uiver.app/#q=WzAsNixbMCwxLCJYXFx0aW1lcyBXIl0sWzEsMCwiWCJdLFsxLDIsIlciXSxbMiwxLCJZXFx0aW1lcyBaIl0sWzMsMCwiWSJdLFszLDIsIloiXSxbMCwxLCJcXHBpX1giXSxbMCwyLCJcXHBpX1ciLDJdLFszLDQsIlxccGlfWSIsMl0sWzMsNSwiXFxwaV9aIl0sWzEsNCwiZiJdLFsyLDUsImciLDJdLFswLDMsIlxcbGFuZ2xlIGZcXGNpcmNcXHBpX1gsZ1xcY2lyY1xccGlfV1xccmFuZ2xlIiwwLHsic3R5bGUiOnsiYm9keSI6eyJuYW1lIjoiZGFzaGVkIn19fV1d
- https://q.uiver.app/#q=WzAsNixbMSwxLCJYK1ciXSxbMCwwLCJYIl0sWzAsMiwiVyJdLFszLDEsIlkrWiJdLFsyLDAsIlkiXSxbMiwyLCJaIl0sWzEsMCwiXFxpb3RhX1giLDJdLFsyLDAsIlxcaW90YV9XIl0sWzAsMywiW1xcaW90YV9ZXFxjaXJjIGYsXFxpb3RhX1pcXGNpcmMgZ10iLDAseyJzdHlsZSI6eyJib2R5Ijp7Im5hbWUiOiJkYXNoZWQifX19XSxbMSw0LCJmIl0sWzIsNSwiZyIsMl0sWzQsMywiXFxpb3RhX1kiXSxbNSwzLCJcXGlvdGFfWiIsMl1d
- https://q.uiver.app/#q=WzAsNixbMCwwLCIoRihYKVxcYm94dGltZXMgRihZKSlcXGJveHRpbWVzIEYoWikiXSxbMCwxLCJGKFhcXG90aW1lcyBZKVxcYm94dGltZXMgRihaKSJdLFswLDIsIkYoKFhcXG90aW1lcyBZKVxcb3RpbWVzIFopIl0sWzIsMCwiRihYKVxcYm94dGltZXMgKEYoWSlcXGJveHRpbWVzIEYoWikpIl0sWzIsMSwiRihYKVxcYm94dGltZXMgRihZXFxvdGltZXMgWikiXSxbMiwyLCJGKFhcXG90aW1lcyAoWVxcb3RpbWVzIFopKSJdLFswLDMsIlxcYWxwaGFeXFxERF97RlgsRlksRlp9Il0sWzAsMSwiXFx2YXJwaGlfe1gsWX1cXGJveHRpbWVzXFxpZCIsMl0sWzEsMiwiXFx2YXJwaGlfe1hcXG90aW1lcyBZLCBafSIsMl0sWzIsNSwiRihcXGFscGhhXlxcQ0Nfe1gsWSxafSkiLDJdLFszLDQsIlxcaWRcXG90aW1lc1xcdmFycGhpX3tZLFp9Il0sWzQsNSwiXFx2YXJwaGlfe1gsWVxcb3RpbWVzIFp9Il1d
- https://q.uiver.app/#q=WzAsOCxbMCwwLCJlXFxib3h0aW1lcyBGKFgpIl0sWzIsMCwiRigxKVxcYm94dGltZXMgRihYKSJdLFsyLDEsIkYoMVxcb3RpbWVzIFgpIl0sWzAsMSwiRihYKSJdLFs0LDAsIkYoWClcXGJveHRpbWVzIGUiXSxbNiwwLCJGKFgpXFxib3h0aW1lcyBGKDEpIl0sWzQsMSwiRihYKSJdLFs2LDEsIkYoWFxcb3RpbWVzIDEpIl0sWzAsMywiXFxsYW1iZGFfe0YoWCl9XlxcREQiLDJdLFswLDEsIlxcdmFycGhpXzBcXGJveHRpbWVzXFxpZCJdLFsxLDIsIlxcdmFycGhpX3sxLFh9Il0sWzIsMywiRihcXGxhbWJkYV9YXlxcQ0MpIl0sWzQsNSwiXFxpZFxcYm94dGltZXNcXHZhcnBoaV8wIl0sWzQsNiwiXFxyaG9fe0YoWCl9XlxcREQiLDJdLFs1LDcsIlxcdmFycGhpX3tYLDF9Il0sWzcsNiwiRihcXHJob15cXENDX1gpIl1d
- https://q.uiver.app/#q=WzAsNCxbMCwwLCJGKFgpXFxib3h0aW1lcyBGKFkpIl0sWzIsMCwiRihZKVxcYm94dGltZXMgRihYKSJdLFsyLDEsIkYoWVxcb3RpbWVzIFgpIl0sWzAsMSwiRihYXFxvdGltZXMgWSkiXSxbMCwxLCJcXHNpZ21hX3tGWCxGWX1eXFxERCJdLFswLDMsIlxcdmFycGhpX3tYLFl9IiwyXSxbMSwyLCJcXHZhcnBoaV97WSxYfSJdLFszLDIsIkYoXFxzaWdtYV97WCxZfV5cXENDKSIsMl1d
- https://q.uiver.app/#q=WzAsNyxbMCwwLCJGKFgpXFxib3h0aW1lcyBGKFkpIl0sWzIsMCwiRyhYKVxcYm94dGltZXMgRyhZKSJdLFswLDEsIkYoWFxcb3RpbWVzIFkpIl0sWzIsMSwiRyhYXFxvdGltZXMgWSkiXSxbNCwwLCJlIl0sWzYsMCwiRigxKSJdLFs2LDEsIkcoMSkiXSxbMCwyLCJcXHZhcnBoaV5GX3tYLFl9IiwyXSxbMSwzLCJcXHZhcnBoaV5HX3tYLFl9Il0sWzAsMSwiXFx0aGV0YV9YXFxib3h0aW1lc1xcdGhldGFfWSJdLFsyLDMsIlxcdGhldGFfe1hcXG90aW1lcyBZfSIsMl0sWzQsNSwiXFx2YXJwaGleRl8wIl0sWzUsNiwiXFx0aGV0YV8xIl0sWzQsNiwiXFx2YXJwaGleR18wIiwyXV0=