<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-8914133</atom:id><lastBuildDate>Wed, 12 May 2010 12:20:05 +0000</lastBuildDate><title>marciowb @ blog</title><description>technology, programming, news, tips, articles, opinion, digression</description><link>http://www.marciowb.net/blog/</link><managingEditor>marciowb@gmail.com (Marcio Wesley Borges)</managingEditor><generator>Blogger</generator><openSearch:totalResults>67</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-1312063284553676879</guid><pubDate>Wed, 10 Mar 2010 02:06:00 +0000</pubDate><atom:updated>2010-03-20T10:43:04.050-03:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>projects</category><category domain='http://www.blogger.com/atom/ns#'>gym4us</category><category domain='http://www.blogger.com/atom/ns#'>electronic</category><category domain='http://www.blogger.com/atom/ns#'>development</category><category domain='http://www.blogger.com/atom/ns#'>gadgets</category><title>Amplificando o Sinal Emitido pela Cinta de Monitoramento</title><description>&lt;h3&gt;Capitação do Sinal Transmitido pela Cinta de Monitoramento Cardíaco&lt;/h3&gt;
&lt;div&gt;&lt;a href="http://picasaweb.google.com/lh/photo/F-bfjdIVL94Yv1dm3BUfUg?feat=embedwebsite"&gt;&lt;img src="http://lh5.ggpht.com/_mNzuLGT4yf0/S5v74k3z_zI/AAAAAAAAAOw/U4XIwHCgrR0/s144/01032010008.jpg" alt="BOBINA AO REDOR DO TRANSMISSOR" target="viewImg" style="float:left"/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Como &lt;a href="#bobina_deteccao_campo_magnetico"&gt;mencionado anteriormente&lt;/a&gt;, na versão 1.0 do Gym4Us, utilizo uma bobina para detectar o campo magnético oscilante que é criado pelo transmissor da cinta de monitoramento quando de uma batida do coração. A bobina deve estar o mais próxima possível do transmissor da cinta. Da forma como fiz, optei por construir a bobina em volta do próprio transmissor da cinta e para manter os fios presos, usei uma fita adesiva. Use um fio esmaltado e dê vinte ou trinta voltas ao redor da parte onde fica o transmissor da cinta. Lembre-se que as duas extremidades do fio deverão ser ligadas a um par de fio encapado e flexível.&lt;/p&gt;
&lt;p&gt;Para saber se está funcionando, é necessário usar a cinta como se faria normalmente. Já tendo vestido a cinta, use um oscilóscopio para monitorar o sinal. Ajuste o nível do oscilóscopio para 100mV e o tempo para algo entre 0.1ms a 1ms. Como abaixo:&lt;/p&gt;
&lt;div&gt;&lt;a href="http://picasaweb.google.com/lh/photo/PrsHGrPtK9Pj1yx6YsBp5Q?feat=embedwebsite"&gt;&lt;img style="max-width:99%" src="http://lh3.ggpht.com/_mNzuLGT4yf0/S6QfiRMN3NI/AAAAAAAAAa8/auXQvLh3Q8A/s800/pulses02.jpg" alt="REGULAGEM DO OSCILÓSCOPIO e visualização do sinal transmitido pela cinta"/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Com a cinta que estou usando, obtenho um sinal de até 500mVpp. A frequência da sequência de pulsos é de aproximadamente 5.4KHz e sua duração é de aproximadamente 5ms a 7ms. Veja:&lt;/p&gt;
&lt;div&gt;&lt;a href="http://picasaweb.google.com/lh/photo/L03TuX0ZgNGYgJw8ecLVZA?feat=embedwebsite"&gt;&lt;img style="max-width:99%" src="http://lh3.ggpht.com/_mNzuLGT4yf0/S6QjhUXhUXI/AAAAAAAAAcA/XN72hmBjcDg/s800/pulses03.jpg" alt="PROPRIEDADES DO SINAL - tensão, frequência e duração"/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Fiz testes com uma bobina externa a cinta, ou seja, que havia sido enrolada em um eixo externo, mas que ficava próxima ao transmissor, e notei que a intensidade do sinal era de no máximo 30mV. Ainda assim, isso é suficiente para excitar o amplificador que descrevo a seguir.&lt;/p&gt;
&lt;div&gt;&lt;a href="http://picasaweb.google.com/lh/photo/g1g8w4a9wVCPZyTO5DZYIg?feat=embedwebsite"&gt;&lt;img style="max-width:99%" src="http://lh5.ggpht.com/_mNzuLGT4yf0/S5v781VSKMI/AAAAAAAAAcM/-ijb5ejfAJg/s800/06022010106.jpg" alt="BOBINA EXTERNA À CINTA"/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h3&gt;Amplificando o Sinal Emitido pela Cinta de Monitoramento&lt;/h3&gt;
&lt;div&gt;&lt;img style="float:left" src="http://lh5.ggpht.com/_mNzuLGT4yf0/S6Q2QvgmL5I/AAAAAAAAAd0/0wdhCy8R1WI/s800/Module_AmpOp-Sensor.jpg" alt="The signal amplifier board" /&gt;&lt;/div&gt;
&lt;p&gt;Mesmo enrolando a bobina diretamente ao redor do transmissor da cinta, ainda assim o sinal detectado será muito fraco para qualquer aplicação direta. Seja, para acender um led, ou ser processado por um microcontrolador, ou mesmo, dependendo de seu multímetro, até para ser visualizado sem a ajuda de um oscilóscopio. O sinal deve ser amplificado para que tenha utilidade.&lt;/p&gt;
&lt;p&gt;Para amplificar o sinal, utilizei um simples amplificador operacional de baixa voltagem, o LM358, usando um único estágio. A tensão enduzida na bobina- cerca de 30mVpp a 500mVpp - é amplificada para 5V - mesma tensão de alimentação do PIC. Provavelmente deve ter como fazer a amplificação utilizando uns poucos transistores, talvez até um único transistor.&lt;/p&gt;
&lt;p&gt;No entanto, foi esse circuito abaixo que usei no Gym4Us 1.0. Se precisar regular o amplificador para um sinal inferior a 50mVpp, diminua o valor de R3. Lembro que a bobina L1 não tem um valor especifico e pode-se desconsiderar o valor dela descrito no circuito. Eu mesmo enrolei umas vinte ou trinta voltas de fio esmaltado ao redor do transmissor da cinta e isto bastou.&lt;/p&gt;
&lt;div style="clear:both"&gt;&lt;a href="http://picasaweb.google.com/lh/photo/prSFJ8tokYuWdU48wsFoAQ?feat=embedwebsite"&gt;&lt;img style="max-width:99%" src="http://lh6.ggpht.com/_mNzuLGT4yf0/S6Q0_2vGb9I/AAAAAAAAAdg/s-d6pZNTnTc/s800/ModuleAmpOp-Sensor.jpg" alt="Signal amplifier module of the Gym4Us 1.0 box"/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Este circuito tem a característica de transformar a onda senoidal de entrada para uma onda quadrada em sua saída. O sinal de entrada cuja intensidade varia entre 30mVpp a 500mVpp é amplificado para uma amplitude de 4000V~5000mVpp quando em nível alto. Para se ter uma ideia de como amplificador atua sobre o sinal, veja as figuras abaixo.&lt;/p&gt;
&lt;div&gt;&lt;a href="http://picasaweb.google.com/lh/photo/ardSAbNzwVoL7HgFDvzVhg?feat=embedwebsite"&gt;&lt;img style="max-width:99%" src="http://lh4.ggpht.com/_mNzuLGT4yf0/S6TGtHZbFBI/AAAAAAAAAfQ/g4-a3rQGC4s/s800/pulses_2c_02.jpg" alt="The channel #1 has the signal (a sine wave) catched by the coil before any amplification. The channel #2 shows the signal after amplification. Also, the amplifier modify the signal to a square wave."/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;a href="http://picasaweb.google.com/lh/photo/HNQFgULAYbQO5W6buX2G-g?feat=embedwebsite"&gt;&lt;img style="max-width:99%" src="http://lh5.ggpht.com/_mNzuLGT4yf0/S6TMpFxw-tI/AAAAAAAAAfs/2emBgngcz_k/s800/pulses_2c_01.jpg" alt="The signal received from the HRM belt transmiter is indicated at channel #1 - it has 500mVpp of amplitude and its wave is a sine. The channel #2 shows the signal after the amplification. The signal is amplificated to 4~5Vpp and its wave is changed to square."/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;Depois deste processo de amplificação e adequação do formato de onda, o sinal está pronto para ser levado ao microcontrolador.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-1312063284553676879?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2010/03/amplificando-o-sinal-emitido-pela-cinta</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_mNzuLGT4yf0/S5v74k3z_zI/AAAAAAAAAOw/U4XIwHCgrR0/s72-c/01032010008.jpg' height='72' width='72'/><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-1985684274409563544</guid><pubDate>Tue, 09 Mar 2010 01:08:00 +0000</pubDate><atom:updated>2010-03-10T19:40:09.645-03:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>projects</category><category domain='http://www.blogger.com/atom/ns#'>gym4us</category><category domain='http://www.blogger.com/atom/ns#'>electronic</category><category domain='http://www.blogger.com/atom/ns#'>development</category><category domain='http://www.blogger.com/atom/ns#'>tips</category><category domain='http://www.blogger.com/atom/ns#'>it</category><category domain='http://www.blogger.com/atom/ns#'>gadgets</category><title>Circuito: O Hardware do Gym4Us 1.0</title><description>&lt;p&gt;O hardware do Gym4Us 1.0 é bastante simples e carece de otimizações. Não o simplifiquei por questões de tempo e dinheiro - queria economizar ambos. A versão que estou apresentando é a primeira que fiz e até o momento em que escrevo este artigo, é também a única. Sendo assim, enquanto montava o circuito, também tinha em mente minimizar problemas e por isso modularizei todo o circuito de modo que pudesse testar cada módulo individualmente. Se algum módulo apresentasse problemas, poderia substituí-lo. A idéia era isolar qualquer problema que ocorrece de modo a não impactar em todo o circuito. Esta ideia de simplificar e modulalizar tudo, se aplica desde o design do circuito, até a montagem.&lt;/p&gt;
&lt;p&gt;Como verão, o circuito pode ser tremendamente melhorada e isso para praticamente todos os aspectos, incluindo: gestão de consumo de energia, tamanho total do circuito, conexões externas, design de caixa para acondionamento do circuito, preço dos componentes, re-design dos módulos etc. Já tenho vários planos para as próximas versões e isso inclui:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Uso de um &lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8550"&gt;módulo Bluetooth&lt;/a&gt; comercial&lt;br /&gt;
No circuito que montei acabei utilizando um módulo Bluetooth de um GPS Bluetooth velho&lt;/li&gt;
&lt;li&gt;Uso do &lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8660"&gt;módulo receptor Polar RMCM01&lt;/a&gt;&lt;br /&gt;
Infelizmente, como não consegui montar um receptor adequado, fui obrigado a enrolar uma próximo do transmissor da cinta. Pelo fato do RMCM01 ser pequeno e relativamente barato, creio ser preferível usá-lo do que tentar criar um receptor equivalente. O maior problema que tive para construir um receptor para as cintas de 5KHz é que, onde moro, aqui em Brasília-DF, não há amplificadores operacionais com as características necessárias para a amplificação e filtragem do sinal.&lt;/li&gt;
&lt;li&gt;Substituição do PIC16F628A&lt;br /&gt;
Eu acabei por usar o PIC16F628A, pois tenho uma centena destes sem uso aqui em meu laboratório. No entanto, é desejável substituí-lo por algum outro microcontrolador de baixo consumo e de poucos requisitos para o circuito de apoio. Talvez algum PIC18 ou mais provavelmente, algum ARM7. Quando já estava testando a firmware para o PIC16F628A, me dei conta que ele necessitava de 5V para que funcionasse adequadamente com um clock de 20MHz. Da forma como idealizei o circuito, para que a amostragem do sinal ocorra, é necessário um clock de 20MHz para este PIC em particular. Dessa forma, acabei, sem me dar conta, o requisito de alimentação para o circuito, já que teria que suprir 5V para o PIC.&lt;/li&gt;
&lt;li&gt;Usar algum gerenciador de carga de bateria e alimentação&lt;br /&gt;
Estou utilizando a bateria e o circuito gereciador do GPS Bluetooth que desmontei. O ideal é usar alguma solução que seja aplicável a qualquer um que for montar o circuito.&lt;/li&gt;
&lt;li&gt;Eliminar o circuito de Step-Up e regulagem para 5V&lt;br /&gt;
Como expliquei antes, por causa do PIC16F628A estar funcionando a 20MHz, é necessário alimentá-lo com 5V. Quando ele for substituído por algum microcontrolador de 3,3V, ou inferior, creio que ficará mais fácil e econômica a alimentação do circuito. Ainda assim, pode ser que seja necessário manter o circuito de Step-Up ou algum equivalente, e ainda manter alguma regulagem de voltagem para o microcontrolador, mas provavelmente isto será mais fácil do que fazendo da forma como está atualmente. De qualquer forma, mesmo que continuasse necessário produzir os 5V, isto poderia ser realizado com algum IC comercial e de preferência que fizesse o Step-Up e a regulagem tudo num único circuito. Há vários ICs com esse propósito que podem ser utilizados. Na solução que eu fiz para o Gym4Us 1.0, acabei por criar três circuitos que juntos forma o step-up e a regulagem que provê os 5V. Obviamente isto pode e deve ser simplificado!&lt;/li&gt;
&lt;li&gt;Adicionar suporte a cartão de memória&lt;br /&gt;
A ideia é gravar o percurso usando um GPS e juntamente gravar o monitoramento do coração. Tenho visto que o NST não é tão estável quanto gostaria e por isso é interessante manter o tracklog e o HRM gravado por hardware para recuperação em caso de pane do NST.&lt;/li&gt;
&lt;li&gt;ECG&lt;br /&gt;
Criar um hardware para realizar o ECG e enviar esses dados no mesmo pacote do NST. Outras aplicações poderão mostrar diretamente o ECG, sua forma de onda, batimento por minuto e até prever arritimias, bem como, outras anormalidades. Isto também substituirá, com precisão, a cinta de monitoramento cardíaco de 5KHz.&lt;/li&gt;
&lt;li&gt;Sensor de temperatura&lt;/li&gt;
&lt;li&gt;Sensor de umidade&lt;/li&gt;
&lt;li&gt;Sensor de nível de CO2&lt;/li&gt;
&lt;li&gt;Conta giros para a bike&lt;/li&gt;
&lt;li&gt;Sensor de cadência para a bike&lt;/li&gt;
&lt;li&gt;Display&lt;br /&gt;
Dependendo do uso que se destinatar, um display pode ser interessante. Hoje há muitos displays gráficos de celulares que são baratos e eficientes.&lt;/li&gt;
&lt;li&gt;Utilização de energia solar para carga de bateria&lt;/li&gt;
&lt;li&gt;Transmissão dos dados também por outros meios, como:
  &lt;ul&gt;
    &lt;li&gt;RS-232&lt;/li&gt;
    &lt;li&gt;Infravermelho&lt;/li&gt;
    &lt;li&gt;Ultra-som&lt;/li&gt;
    &lt;li&gt;Zigbee&lt;/li&gt;
    &lt;li&gt;Wifi&lt;/li&gt;
    &lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Uma das vantagens no frame de dados que é enviado ao NST, é que, ao que observei, ele é redimensionável. Dessa forma é possível aumentar seu tamanho e enviar outros dados que somente aqueles usados pelo NST.&lt;/p&gt;
&lt;p&gt;O circuito do Gym4Us 1.0 é composto dos seguintes módulos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Circuito de Recepção e Amplificação de Sinal emitido pela cinta transmissora;&lt;/li&gt;
&lt;li&gt;Módulo de Microcontrole para amostragem de sinal, detecção de sinal, cálculo de batimento do coração e empacotamento dos dados no formato do Nokia Sports Tracker para transmissão via Bluetooth;&lt;/li&gt;
&lt;li&gt;Módulo Bluetooth para transmissão dos dados para o celular;&lt;/li&gt;
&lt;li&gt;Módulo de Energia&lt;br /&gt;
Com base numa bateria recarregável, um gerenciador de recarga e circuito para step-up e regulagem, temos a energia necessária para o módulo bluetooth, o microcontrolador e o módulo de recepção do sinal emitido pela cinta transmissora. No circuito que fiz, acabei por criar um módulo de step-up e regulagem para 5V. Dessa forma, o módulo de energia final, ficou dividido em:
&lt;ul&gt;
&lt;li&gt;Partes obtidas do GPS Bluetooth que utilizei
&lt;ul&gt;
&lt;li&gt;Bateria recarregável de íons de lítio;&lt;/li&gt;
&lt;li&gt;Módulo de gerenciamento e recarga da bateria de íons de lítio;&lt;/li&gt;
&lt;li&gt;Módulo de alimentação para o módulo Bluetooth (3,3V);&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Circuitos que criei para a alimentação do Gym4Us 1.0
- composto de um step-up e regulador de voltagem
&lt;ul&gt;
&lt;li&gt;Módulo oscilador&lt;br /&gt;
Baseado num 555 gera um sinal quadrado para o circuito de step-up&lt;/li&gt;
&lt;li&gt;Módulo de chaveamento, indução de sobre-voltagem e retificação&lt;br /&gt;
Baseado num transistor de potência BD139, um indutor de 3.3mH para elevação de voltagem, diodo schottky para retificação e acumuladores. Um transistor de uso geral e um diodo comum também funcionariam. O valor do inductor não é crítico e indutores entre 20uH a 30mH podem ser usados, desde que a frequência do oscilador seja ajustada. Utilize um multímetro para ajustar o oscilador de modo a obter a maior tensão possível e assim, o melhor rendimento.&lt;br /&gt;
Junto com o módulo oscilador, compõe o circuito de step-up.&lt;/li&gt;
&lt;li&gt;Módulo regulador de voltagem&lt;br /&gt;
Baseado num 7805&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-1985684274409563544?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2010/03/circuito-o-hardware-do-gym4us-10</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-6961722093772561590</guid><pubDate>Sat, 06 Mar 2010 01:04:00 +0000</pubDate><atom:updated>2010-03-08T10:37:50.514-03:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>projects</category><category domain='http://www.blogger.com/atom/ns#'>gym4us</category><category domain='http://www.blogger.com/atom/ns#'>electronic</category><category domain='http://www.blogger.com/atom/ns#'>development</category><category domain='http://www.blogger.com/atom/ns#'>tips</category><category domain='http://www.blogger.com/atom/ns#'>it</category><category domain='http://www.blogger.com/atom/ns#'>gadgets</category><title>Gym4Us 1.0 - O Que Você Precisa Para Fazê-lo</title><description>&lt;p&gt;Se quer já começar a correr atrás dos componentes necessários para o projeto, segue uma lista parcial:&lt;/p&gt;
&lt;ul&gt;
   &lt;li&gt;&lt;b&gt;Osciloscópio&lt;/b&gt;&lt;br /&gt;
   Pode ser qualquer.&lt;br /&gt;
   Eu mesmo uso um equipamento de baixo custo que funciona via USB. Trata-se do DSO-2150 USB que me custou USD$ 150,00 no eBay.&lt;/li&gt;
   &lt;li&gt;&lt;b&gt;Multímetro&lt;/b&gt;&lt;br /&gt;
   Novamente pode ser qualquer aparelho - até mesmo aqueles de R$ 15,00 que se encontra nos camelôs.&lt;/li&gt;
   &lt;li&gt;&lt;b&gt;Cinta transmissora de monitoramento cardíaco compatível com o padrão de 5KHz ou 5.4KHz&lt;/b&gt;&lt;br /&gt;
   Eu uso a Polar T31 &lt;i&gt;non-coded&lt;/i&gt;&lt;/li&gt;
   &lt;li&gt;&lt;b&gt;Opcional: Relógio ou equipamento receptor para a cinta transmissora de modo que você possa conferir a recepção e transmissão&lt;/b&gt;&lt;br /&gt;
   Estou sem relógio para a cinta Polar T31. Inicialmente tinha a cinta e o relógio do Polar RS300X, mas foi vendido e não tenho mais.&lt;br /&gt;
   O que sobrou foi um sistema de monitoramento Timex com o relógio e a cinta, mas a cinta é incompatível com o Gym4Us, pois transmite seus dados num sistema RF digital que é totalmente diferente do que foi utilizado no projeto do Gym4Us 1.0. Dessa forma, só utilzei o Timex para conferir se o batimento cardíaco que calculei estava correto (e está!). Obviamente usei as duas cintas simultâneamente para poder conferir o resultado. Mas se você já tiver o relógio para sua cinta, com certeza será melhor até mesmo para o uso prático/diário, pois poderá olhar no relógio quando precisar, sem ter que ficar dependendo unicamente do celular para conferir seus batimentos.&lt;/li&gt;
   &lt;li&gt;&lt;b&gt;&lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8550"&gt;Módulo Bluetooth para Perfil de Porta Serial com UART&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
   Eu desativei o módulo GPS de um GPS Bluetooth e estou usando somente o módulo Bluetooth dele para transmitir os dados&lt;/li&gt;
   &lt;li&gt;&lt;b&gt;Opcional: Dongle USB Bluetooth&lt;/b&gt;&lt;br /&gt;
   Se seu desktop ou notebook já tiver suporte a Bluetooth, não é necessário. Qualquer adaptador serve. De qualquer forma, é opcional se você não for depurar pelo PC. Se você for comprar um adaptador Bluetooth, compre algum que tenha o gerenciado da BlueSoleil ou Widcomm/Broadcomm, pois o gerenciador do Windows é quase inútil!&lt;br /&gt;
   No meu caso foi extremamente útil no desenvolvimento do Gym4Us, desde a fase de testes, até a fase de descoberta do protocolo aceito pelo Nokia Sports Tracker.&lt;/li&gt;
   &lt;li&gt;&lt;b&gt;&lt;a href="http://www.trilha21.com.br/TrilhaStore/faces/ShowProduct.jsp?id=1000336"&gt;Microcontrolador PIC16F628A&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
   Futuramente irei usar outro microcontrolador. Provavelmente um &lt;a href="http://www.trilha21.com.br/TrilhaStore/faces/ShowProduct.jsp?id=1000333"&gt;ARM7 da família LPC2000 da NXP&lt;/a&gt; que consome pouca energia, é barato e pequeno.&lt;/li&gt;
   &lt;li&gt;&lt;b&gt;&lt;a href="http://www.labtools.com.br/index.asp?area=21&amp;amp;subarea=a&amp;amp;idioma=por&amp;amp;script=produtos&amp;amp;prod=1216"&gt;Programador para o PIC16F628A&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;
   Eu tenho um &lt;a href="http://www.labtools.com.br/index.asp?area=21&amp;amp;subarea=a&amp;amp;idioma=por&amp;amp;script=produtos&amp;amp;prod=681"&gt;ICD2&lt;/a&gt; da &lt;a href="http://www.labtools.com.br/"&gt;Labtools&lt;/a&gt;. Você pode até mesmo fazer o seu, há vários projetos na Internet que ensinam a montar programadores para PIC. No Mercado Livre também pode-se encontrar soluções prontas de baixo custo.&lt;/li&gt;
 &lt;/ul&gt;
 &lt;h2&gt;Reaproveitando Componentes de Sucata para o Projeto Gym4Us&lt;/h2&gt;
&lt;p&gt;Durante toda a pesquisa e desenvolvimento do que me levou ao Gym4Us, tive em mente minha atual falta de grana e por isso evitei ao máximo adquirir qualquer componente eletrônico. Me limitei aos que já possuo em meu laboratório - que também é meu escritório e quarto de visitas. Tenho 99.9% de coisas entulhadas em meu laboratório que nunca utilizo e dessa vez quis dar uso a algumas delas. &lt;/p&gt;
 &lt;h3&gt;Do Monitor CRT: Fios Esmaltados&lt;/h3&gt;
&lt;p&gt;Como exemplo, cito o monitor CRT que não funcionava mais e que já estava sem uso há mais de um ano e que o desmontei para retirar os fios esmaltados que necessitava. Preferi retirar os fios do monitor, do que de transformadores velhos que tenho de montes - dá muito trabalho retirar estes fios de transformadores velhos e corre-se sempre o risco de machucar-se com as placas de ferro de seu núcleo e carcaça; eu sempre acabo por me cortar quando tento retirá-las.&lt;/p&gt;
 &lt;h3&gt;Do MODEM: Indutores&lt;/h3&gt;
&lt;p&gt;Além do monitor e dos transformadores, também ao longo de duas décadas, acumulei uma série de outros aparelhos que já não funcionam mais, mas que acabo guardando para que justamente possa reaproveitar seus componentes e assim, mesmo a custa de tempo, tentar economizar algum dinheiro.&lt;/p&gt;
 &lt;p&gt;Tinha alguns MODEMs e switches velhos e vi que eles tinham indutores que poderiam ser úteis posteriormente no projeto.&lt;/p&gt;
 &lt;h3&gt;Do Rádio AM/FM: Bobina com Núcleo de Ferrite para Ondas Curtas&lt;/h3&gt;
&lt;p&gt;Do rádio velho que não funcionava, tirei a bobina com núcleo de ferrite. Ela poderia ser útil no caso de eu desenvolver uma bobina para a captação a distância (uns 30cm a 1m) do campo magnético oscilatório gerado pelo transmissor da cinta de monitoramento cardíaco.&lt;/p&gt;
 &lt;h3&gt;GPS Bluetooth: Energia e Módulo Bluetooth&lt;/h3&gt;
&lt;p&gt;Há alguns anos atrás, por meados de 2006/2007, ao notar que naquela época havia um nicho - que já não há mais - de mercado, comecei a vender GPSs Bluetooth. Naquela época a qualidade dos equipamentos era outra, bem como as marcas que comercializava e o preço era coisa importante em tempos de dólar alto e tecnologia nova. Dessa forma, naquela época, optei por equipamentos que fossem mais baratos para que pudesse vendê-los - diferentemente de hoje que a marca dos equipamentos que vendo são de qualidade e os produtos também o são e apesar do preço ser superior, a qualidade também o é e não tenho problema. Como resultado da tecnologia ser nova e o equipamento ser de baixo custo, acabei por receber um ou outro equipamento com defeito. Ao longo do tempo, conforme ia identificado os equipamentos defeituosos, após providenciar outro equipamento ao cliente ou a devolução do valor pago, os separava de modo a devolvé-los ao fabricante numa futura oportunidade. A questão é que devolver equipamentos que não são fabricados no Brasil para o fabricante no exterior, é coisa complicada, cara e burocrática. Dessa forma, tive que assumir o prejuízo e ficar com as unidades defeituosas. Não as joguei fora, simplesmente anotei o problema e as deixei separadas para que pudesse usá-los como sucata. Devo ter uma dúzia de GPS Bluetooth com problemas.&lt;/p&gt;
 &lt;p&gt;A cinta de monitoramento utilizada pelo Nokia Sports Tracker transmite seus dados via Bluetooth e logo de início imaginei que o protocolo utilizado era o SPP &lt;i&gt;(SPP - Serial Port Profile)&lt;/i&gt;. Para ter certeza, fiz alguns testes utilizando um adaptador Bluetooth plugado ao meu computador e realizei o pareamento com o Nokia Sports Tracker. O NST buscava justamente pelo serviço de porta serial. Após eu indicar ao NST que ele deveria se conectar ao computador, ele o fazia conectando-se ao serviço de SPP que havia habilitado no computador. O gerenciador WidComm me indicava a conexão e o NST ficava aguardando dados do dispositivo Bluetooth, no caso, o computador. Dessa forma, tive certeza que realmente era necessário um módulo Bluetooth com o perfil de porta serial.&lt;/p&gt;
&lt;p&gt;Como sabia que iria precisar de um módulo bluetooth para poder transmitir a informação do batimento cardíaco ao celular, logo após desconsiderar o gasto de dinheiro com aquisição de um módulo bluetooth no exterior, acabei por me lembrar deste monte de GPS Bluetooth com problema. Para quem não sabe, os GPS Bluetooth utilizam o perfil de porta serial. O próprio protocolo NMEA 0183 foi criado pensando-se numa comunicação serial e geralmente os GPS Bluetooth trabalham com o protocolo NMEA 0183. Dessa forma, tem-se um módulo Bluetooth com suporte ao perfil de porta serial em cada um dos GPS Bluetooth. Pensei que a chance conseguir reaproveitar algum módulo bluetooth dos GPS Bluetooth seria pequena, mas mesmo assim, devia tentar.&lt;/p&gt;
&lt;p&gt;Como justamente iria usar um GPS Bluetooth com problemas, tinha que ter certeza que o problema não estaria na parte bluetooth, ou do contrário, não me teria utilidade. Comecei escolhendo algum GPS Bluetooth que eu tivesse certeza que o bluetooth funcionava. Para tanto, liguei o GPS Bluetooth e realizei o pareamento do GPS Bluetooth com o computador e capturei as sentenças NMEA utilizando um programa de comunicação serial. Se você não tem experiência com dispositivos seriais com os GPS Bluetooth, saiba que qualquer programa de comunicação serial serve. Incluindo: Hyperterminal, Putty, screen, gtkterm e outros. Então usando o programa de comunicação serial, vi que as sentenças estavam sendo recebidas corretamente. O problema do GPS Bluetooth parecia estar no próprio módulo GPS que nunca conseguia estabelecer sua posição, mesmo quando em condições de recepção excelentes. Ótimo! Consegui um módulo Bluetooth.&lt;/p&gt;
&lt;p&gt;Identificado um aparelho que tivesse o módulo Bluetooth funcionando, após abri-lo, podia-se ver claramente o que era o módulo GPS e o que era o módulo Bluetooth. O próximo trabalho seria identificar qual o pino onde se encontra a saída UART (TX - saída da porta serial) do módulo GPS. O conceito é simples: o GPS envia os dados de suas sentenças utilizando-se de uma saída serial; esta saída serial deve estar ligada a uma porta serial de entrada (RX - recepção) da UART do módulo Bluetooth. Assim, o GPS transmite os dados das sentenças para o módulo Bluetooth e o módulo Bluetooth as recebe. Então bastava-se encontrar o pino de saída do GPS ou o pino de recepção do módulo Bluetooth. Para isso, sabia previamente de algumas características do sinal que deveria identificar, sendo:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;A comunicação típica de qualquer GPS é 4800 bauds, nenhuma paridade, um bit de parada e sem controle de fluxo.&lt;br /&gt;
  As vezes o baudrate é outro, mas isto é incomum. Tenho visto módulos GPS com baud rates de 4800, 9600 e 38400.&lt;/li&gt;
  &lt;li&gt;O nível do sinal da UART seria LVTTL. No caso, poderia estar entre 1,8V a 3,6V quando em nível alto e abaixo de 0,6V quando em nível baixo;&lt;/li&gt;
  &lt;li&gt;As sentenças NMEA são enviadas todas de uma vez e após serem enviadas, há uma pequena pausa na transmissão do GPS, ou seja, após uma atividade, há um pequno período onde não há atividade alguma na UART do GPS. Este padrão se repete a cada segundo.&lt;/li&gt;
  &lt;li&gt;Por fim, tendo sorte, haveria um pino do lado do módulo GPS que teria um pino com os mesmos sinais do lado do módulo Bluetooth, ou seja, um pino com a TX do GPS e do lado do Bluetooth, haveria uma RX.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Com o GPS Bluetooth ligado e transmitindo para o bluetooth do computador (se não estiver transmitindo, geralmente o GPS é desligado para economizar energia e seria impossível identificar atividade), após inspecionar, com ajuda de um multímetro (não cheguei a usar o oscilóscopio até aqui) vários pinos do lado do GPS e do lado Bluetooth, encontrei um padrão de sinal que parecia ser o característico de uma UART transmitindo dados típicos de GPS (sentenças NMEA). Para ter certeza, aí então, usei o oscilóscopio para &amp;quot;ver&amp;quot; se realmente o sinal estava dentro do que seria uma UART. Pelo oscilóscopio, mesmo sem fazer uma análise dos dados à nível digital, vi que realmente era uma UART e que a transmissão estava se dando no que parecia ser 4800 bauds.&lt;/p&gt;
&lt;p&gt;Identificado os pinos de transmissão do GPS e recepção do Bluetooth, o próximo passo foi desativar o pino de transmissão do GPS. Isto deu um pouquinho de trabalho pois se trata de componentes muito pequenos e com alta densidade de integração. Tentei simplesmente queimar com o ferro de solda o pino TX do módulo GPS, mas ainda assim, mesmo sem o pino RX do Bluetooth apresentar atividade aparente, todas as vezes que ligava o GPS Bluetooth, era transmitido alguns dados contendo a identificação da firmware do módulo GPS e após isso, nada mais era transmitido - naturalmente via isso com o programação de comunicação serial no computador. Então, presumi que talvez houvesse alguma outra saída que ainda estivesse se comunicando com o módulo Bluetooth, derrepente alguma saída de depuração ou mesmo algum outro tipo de saída, como: SPI ou I2C. Num ato de loucura, resolvi ir queimando pino-a-pino do módulo GPS até que nada fosse apresentado no programa de comunicação serial que usava no computador ao ligar o GPS Bluetooth. Após queimar alguns pinos, como eram muitos, já estava um tanto entediado com aquilo. Então, resolvi mesmo foi tentar remover na base da força bruta o módulo GPS do circuito. Peguei um alicate e tentei remover o módulo GPS, sem sucesso - estava muito bem preso ao resto do circuito. Insanamente, com o próprio alicate, comecei a &amp;quot;raspar&amp;quot; aquele monte de capacitores e resistores SMD em miniatura que haviam no módulo GPS (e somente no módulo GPS). Após isso, vi que ao ligar o GPS Bluetooth, nada mais era transmitido ao computador, apesar do Bluetooth ainda estar funcionando. Restava então saber, se seria capaz de transmitir dados para o módulo Bluetooth usando daquele pino de recepção que havia identificado previamente.&lt;/p&gt;

&lt;p&gt;A continuar.... (estou escrevendo)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-6961722093772561590?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2010/03/gym4us-10-o-que-voce-precisa-para-faze</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>3</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-1847629920904152255</guid><pubDate>Thu, 04 Mar 2010 23:07:00 +0000</pubDate><atom:updated>2010-03-04T22:11:20.228-03:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>projects</category><category domain='http://www.blogger.com/atom/ns#'>gym4us</category><category domain='http://www.blogger.com/atom/ns#'>electronic</category><category domain='http://www.blogger.com/atom/ns#'>development</category><category domain='http://www.blogger.com/atom/ns#'>tips</category><category domain='http://www.blogger.com/atom/ns#'>it</category><category domain='http://www.blogger.com/atom/ns#'>gadgets</category><title>Detectando o Batimento do Coração</title><description>&lt;p&gt;Na busca de uma solução, tive antes que entender o funcionamento de uma série de coisas, inclusive como funcionam as cintas de monitoramento cardíaco, seus sistemas de captação, amplificação, filtragem, detecção, codificação e transmissão. Além disso, também estudei um pouco sobre o ECG e as diferentes maneiras de se perceber o batimento do coração. Não sou médico, nem engenheiro, nem cientista; sou um mero programador que gosta de xeretar, portanto, de antemão, peço desculpas pelas tolices que falei e falarei até o fim deste artigo e de futuros artigos correlatos. A seguir, irei expor o que entendi e como isso me direcionou ao longo da pesquisa e desenvolvimento da solução final. Somente ao fim de todos os artigos irei compilar e acrescentar as informações necessárias para se compor o projeto em si, de forma simples, direta e técnica do ponto de vista do hardware e software; antes disso, haverá muito blah-blah-blahh de minha parte.&lt;/p&gt;
&lt;h2&gt;Cintas de Monitoramento Cardíaco&lt;/h2&gt;
&lt;p&gt;O funcionamento das cintas de monitoramento cardíaco, pode ser descrito nos passos abaixo:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;As cintas de monitoramento cardíaco captam a diferença de potencial (voltagem) que ocorre no momento da contração/relaxamento das células cardíacas como um todo.&lt;/li&gt;
  &lt;li&gt;Posteriormente o sinal captado é amplificado e filtrado. Este processo pode-se repetir várias vezes, até que o sinal possa ser utilizado no próximo estágio do circuito.&lt;/li&gt;
  &lt;li&gt;O sinal amplificado pode ser aplicado num microcontrolador ou mesmo enviado para algum circuito analógico de detecção de pico, por exemplo.&lt;/li&gt;
  &lt;li&gt;Dependendo da cinta de monitoramento, a informação sobre o batimento cardíaco poderá ser transmitida para algum monitor (relógio, computador, smartphone ou algum outro equipamento) utilizando-se uma das abordagens abaixo:
    &lt;ul&gt;
      &lt;li&gt; A cada batimento do coração um sinal é transmitido pela cinta de monitoramento para o equipamento receptor que fará a outra parte do monitoramento. Atualmente, vi que esta abordagem é a mais comum, ou seja, o coração bate, a cinta percebe isso e para notificar o equipamento receptor, envia um sinal que é interpretado, como: &amp;quot;o coração bateu&amp;quot;.&lt;/li&gt;
      &lt;li&gt;Outra abordagem é a cinta transmissora perceber e acumular dois ou mais batimentos do coração, de modo que ela calcule a taxa de batimento do coração e já transmita essa informação para o receptor, como: &amp;quot;o coração está batendo a uma taxa de X batidas por minuto&amp;quot;. Nesse caso, pode-se postergar o envio dessa informação de modo a enviá-la de tempos-em-tempos (caso do sistema Timex que envia de dois-em-dois segundos a taxa de batimento por minuto).&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;As vezes a cinta irá realizar a transmissão por algum processo que evite ou minimize a interferência com outros equipamentos, incluindo outras cintas de mesmo modelo. Há várias formas disso poder ser realizado e não irei listá-las aqui.&lt;/p&gt;
&lt;h3&gt;Sistemas de Transmissão&lt;/h3&gt;
&lt;p&gt;A cinta pode transmitir a informação do batimento cardíaco para o equipamento monitor utilizando-se diferentes meios físicos e lógicos, sendo que particularmente dois sistemas é de nosso interesse:&lt;/p&gt;
&lt;h4&gt;RF - radiofrequência, ou seja, ondas eletromagnéticas&lt;/h4&gt;
&lt;p&gt;Há diversas frequências que podem ser utilizadas e algumas vezes o sinal poderá ser ou não modulado, depende do modelo da cinta. Quando estiver modulado, algumas vezes a transmissão poderá ser digital. Sendo alguns deles:&lt;/p&gt;
 &lt;ol&gt;
   &lt;li&gt;Modulação FM para envio de dados digitais (não sei a faixa de frequência)&lt;br /&gt;
     &lt;a href="http://www.sportsrun.co.za/hr2.htm"&gt;Caso do Timex&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href="http://www.heartratemonitor.co.uk/bluetooth_heartratemonitor.html"&gt;Bluetooth (2.4GHz)&lt;/a&gt;&lt;br /&gt;
     Usado pela cinta Polar for Nokia, &lt;a href="http://www.zephyr-technology.com/bioharness-research.html"&gt;BioHarness da Zephyr&lt;/a&gt;, &lt;a href="http://www.mobimotion.com/brustgurt+M52087573ab0.html"&gt;Spurty Chest Strap&lt;/a&gt; e &lt;a href="http://www.frwd.fi/index.php?71"&gt;FRWD B&lt;/a&gt;, por exemplo.&lt;/li&gt;
   &lt;li&gt;&lt;a href="http://www.thisisant.com/ant/ant-interoperability"&gt;ANT+ (2.4GHz)&lt;/a&gt;&lt;br /&gt;
   Usado pela Garmin e Timex, dentre outras.&lt;/li&gt;
   &lt;li&gt;Demais sistemas de transmissão de alta-frequência&lt;br /&gt;
     Caso dos Garmin, alguns da Polar e outros muitas vezes utilizando a faixa de 2.4GHz, mas usando protocolos proprietários de cada fabricante e modelo de equipamento.&lt;/li&gt;
 &lt;/ol&gt;
&lt;p&gt;Vale ressaltar que a lista acima não tende a esgotar os sistemas RF em uso por monitores cardíacos, mas somente exemplificar o que é na verdade uma gigante variedade possível. E além da frequência de 2.4GHz, que é bastante utilizada por ser uma faixa para uso livre internacionalmente, outras faixas de frequências também são utilizadas.&lt;/p&gt;
 &lt;p&gt;O sistema de recepção para cintas que transmitam via rádiofrequência, são os convencionais para RF, mas variando desde simples receptores FM a sofisticados mecanismos de divisão de frequência. Ressaltando que posteriormente ao receptor RF, se encontra etapas decodificadoras características de cada solução.&lt;/p&gt;
 &lt;h4&gt;Modulação de campo magnético&lt;/h4&gt;
&lt;p&gt; Este meio de transmissão cria um campo magnético e o modula de modo a transmitir a informação da cinta para o equipamento monitor. Com certeza, é a forma mais popular e ainda em uso existente, apesar de estar sendo substituída pela transmissão em RF, principalmente dados os atuais avanços dos últimos anos em relação a transmissão de dados via RF utilizando-se pouca energia.&lt;/p&gt;
 &lt;p&gt;Os equipamentos que utilizam a  modulação de campo magnético, geralmente o fazem numa frequência de 5KHz ou 5,4KHz. A sequência de pulsos é breve e ocorre a cada batida do coração - para cada batida do coração, uma sequência de pulsos é enviada. A frequência da sequência de pulsos é de 5KHz e terá duração de 7ms a 13ms, mas isso poderá variar conforme o equipamento. Os equipamentos de ginástica de acadêmia que dão suporte ao uso da cinta de monitoramento cardíaco, geralmente exigem que a cinta utilize este esquema de transmissão, incluindo a frequência de 5KHz. Procurei saber se existe alguma norma ou especificação que padronize isto para os diferentes &lt;a href="http://www.heartratemonitor.co.uk/gym_equipment_heart.html"&gt;equipamentos de ginástica e cintas&lt;/a&gt;, mas não pesquisei o suficiente para concluir se há ou não normas sobre isto. o certo é que as cintas comerciais que utilizam este esquema de transmissão são compatíveis com esses equipamentos.&lt;/p&gt;
&lt;p&gt;No caso das cintas da Polar com transmissores do tipo &lt;i&gt;coded&lt;/i&gt; (codificado), estes, além de enviar um pulso a cada batida do coração, também, nos milissegundos posteriores, enviam duas outras sequências de pulsos. A ideia dos transmissores Polar coded é que a diferença de tempo entre a emissão das três sequências de pulsos para cada batida de coração deve ser variável em relação a diferentes transmissores, ou seja, cada transmissor coded enviará suas três sequências em tempos diferentes um do outro. Dessa forma, poderá um equipamento receptor de monitoramento poderá reconhecer que um dado conjunto de sinais é de uma determinada cinta e descartar os que não forem. Para isso, é necessário que inicialmente se utilize a cinta de monitoramento com o equipamento receptor de modo a estar longe de outras cintas transmissores, dessa forma o equipamento monitor poderá calcular a diferença de tempos entre as três sequências de pulsos do equipamento que se está utilizando e memorizar estes tempos para que posteriormente, quando se utilizar a cinta em ambiente onde haja outras cintas transmitindo, se possa identificar quais sequências de pulsos devem ser consideradas e quais não pelo equipamento receptor (relógio de monitoramento).&lt;/p&gt;
 &lt;p&gt;A vantagem deste sistema de campo magnético modulado, é que, na prática, ele não sofre interferência considerável dos sistemas de RF. Além disso, qualquer material não-metálico é praticamente transparente para o campo magnético e isto inclui o corpo humano e a água.&lt;/p&gt;
 &lt;p&gt;Eu fiquei de certa forma surpreso quando descobri que havia este sistema de transmissão. Note que se a transmissão fosse realizada via RF, o comprimento da onda de rádio seria de 60Km!!! Para quem conhece de eletrônica ou mesmo física básica, tem noção que isso é totalmente fora da faixa de rádio frequência comumente utilizado. Além disso, no caso de RF, quanto maior a onda, maior a energia necessária para criá-la. Também no caso de uma onda de comprimento de 60Km, a antena transmissora, por mais engenhosa que fosse, seria um tanto grande - eu creio. A bateria dessas cintas de monitoramento, duram entre meses a alguns anos, ou seja, essas cintas consomem pouca energia. Logo, quando se diz que a transmissão dessas cintas é realizada a 5KHz, se percebe que a transmissão não é via RF, mas nesse caso, via um simples campo magnético - no caso, que se faz oscilar a 5KHz, ou seja, se &amp;quot;liga&amp;quot; e &amp;quot;desliga&amp;quot; um campo magnético eletricamente formado.&lt;/p&gt;
 &lt;h5&gt;Detectando o Campo Magnético Oscilante&lt;/h5&gt;
 &lt;p&gt;É possível observar o sinal que a cinta de monitoramento emite para o aparelho receptor. Para tanto, será necessário o uso de uma cinta transmissora que realize a transmissão a 5KHz. Se for usar uma cinta Polar, opte por alguma que seja do tipo &lt;i&gt;uncoded&lt;/i&gt;, ou seja, o tipo mais simples que tem. Caso utilize uma cinta Polar do tipo &lt;i&gt;coded&lt;/i&gt;, deve-se levar em conta que esta transmite três sequências de pulsos ao invés de somente uma única sequência por batida do coração.&lt;/p&gt;
 &lt;p&gt;Para meus testes, inicialmente eu utilizei a cinta Polar &lt;i&gt;coded &lt;/i&gt;que acompanha o RS300X e posteriormente, a vendemos e acabei conseguindo comprar uma &lt;a href="http://www.amazon.com/gp/product/B0015RWZQ4?ie=UTF8&amp;amp;tag=sondaletra-20&amp;amp;linkCode=xm2&amp;amp;camp=1789&amp;amp;creativeASIN=B0015RWZQ4"&gt;Polar T31&lt;/a&gt; &lt;i&gt;uncoded &lt;/i&gt;usada, mas em bom estado e por um bom preço - custou R$ 78,00 no ML, já com o frete - e ainda veio com um conta giros do Polar S150 para a bike. Aqui em Brasília, numa feira que é conhecida como &amp;quot;Feira do Paraguay&amp;quot;, mas que rebatizada - hipocritamente - para &amp;quot;Feira dos Importados&amp;quot;, pode-se comprar a cinta transmissora &lt;a href="http://www.amazon.com/gp/product/B0015RWZQ4?ie=UTF8&amp;amp;tag=sondaletra-20&amp;amp;linkCode=xm2&amp;amp;camp=1789&amp;amp;creativeASIN=B0015RWZQ4"&gt;Polar T31 &lt;i&gt;non-coded&lt;/i&gt;&lt;/a&gt; por preços que variam entre R$ 85 a R$ 130. Mas como mencionei antes, qualquer cinta compatível de 5KHz, serve.&lt;/p&gt;
 &lt;p&gt;Para se perceber um campo magnético oscilante, pode-se utilizar uma simples bobina feita com fios. O campo magnético oscilante irá induzir uma pequena corrente elétrica na bobina. Para se ter ideia, dez voltas de fio comum encapado ou esmaltado enrolados numa caneta, já é suficiente para se detectar o campo magnético que é produzido pelas cintas de monitoramento cardíaco que utilizam este meio de transmissão. Faça o teste, enrole dez ou vinte voltas de fio encapado numa caneta ou lapis, ligue as duas extremidades do fio a um osciloscópio ou multímetro e aproxime ao máximo a bobina da cinta de monitoramento cardíaco. Lembre-se que a cinta só irá sinalizar o batimento do coração, ou seja, gerar o campo magnético oscilante a 5KHz durante um período de 5ms a 13ms, se você estiver usando essa cinta no peito, como normalmente faria. Na dúvida, utilize seu aparelho monitor (relógio usado com a cinta) para te indicar se a cinta está realmente transmitindo. Quando a cinta transmitir, você verá no osciloscópio um padrão senoidal de ondas com as características já mencionadas. No multímetro, verá uma pequena variação de tensão para cada batida do coração. Nota: se estiver usando uma cinta como as da Polar do tipo &lt;i&gt;coded&lt;/i&gt;, poderá ver três sequências de pulsos no osciloscópio, ao invés de uma única por batida. As cintas codificadas da Polar irão atrapalhar a visualização do funcionamento do conceito de indução aqui descrito se usar um multímetro ao invés do osciloscópio - preferencialmente, use algum osciloscópio.&lt;/p&gt;
 &lt;p&gt;Se acaso não estiver detectando nada no osciloscópio, mesmo tendo certeza que a cinta está transmitindo, tente reposicionar a bobina ao longo do transmissor. Deixe a bobina o mais próximo possível do transmissor. Se mesmo assim não detectar nada, enrole o fio esmaltado ao redor do próprio transmissor da cinta e utilize uma fita adesiva para manter o fio devidamente enrolado - 20 a 30 espiras são suficientes. Comigo, de ambas as formas funcionaram, mas no fim, para não ter problema com a recepção quando estivesse usando a cinta e também para não aumentar o volume da cinta, preferi enrolar o fio diretamente em torno do transmissor da cinta.&lt;/p&gt;
 &lt;p&gt;Se for experiente com eletrônica analógica, amplificadores operacionais e filtros, com certeza ficará feliz em saber que poderá montar um receptor para sua cinta de monitoramento utilizando &lt;i&gt;ampop&lt;/i&gt; ou preferencialmente, amplificadores de instrumentação ou mesmo tentando utilizar alguns JFET com amplificadores operacionais.&lt;/p&gt;
 &lt;p&gt;Também há vários projetos para recepção do sinal emitido pelas cinta de monitoramento que podem ser encontrados na web, veja alguns:&lt;/p&gt;
 &lt;ul&gt;
   &lt;li&gt;&lt;a href="http://www.maxim-ic.com/app-notes/index.mvp/id/3845"&gt;The MAXQ Microcontroller in Action: Designing a Bicycle Computer with the MAXQ2000&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt; &lt;a href="http://rick.mollprojects.com/hrm/"&gt;HRM Receiver&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href="http://teal.gmu.edu/~ppach/fl06/2006-DesignDocument1.pdf"&gt;Intelligent Heart Rate Monitor&lt;/a&gt;&lt;/li&gt;
   &lt;li&gt;&lt;a href="http://dexfr.com/hrr/index.html"&gt;Heart Rate Recorder&lt;/a&gt;&lt;/li&gt;
 &lt;/ul&gt;
 &lt;h5&gt;Polar Heart Rate Module - RMCM01&lt;/h5&gt;
 &lt;p&gt;De todos os circuitos de recepção, com certeza, o mais fácil de se fazer, é utilizando o &lt;a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8660"&gt;módulo RMCM01&lt;/a&gt; da própria Polar. Este módulo receptor é um SOC - ele contém tudo o que é necessário para se captar o sinal transmitido por uma cinta de monitoramento cardíaco da Polar que transmita em 5KHz. O único componente externo que é requerido, é um cristal de 32KHz. Este módulo funciona tanto com as cintas &lt;i&gt;coded&lt;/i&gt; como com as &lt;i&gt;non-coded&lt;/i&gt;.&lt;/p&gt;
 &lt;p&gt;Quero muito testar este chip, mas não tive oportunidade (dinheiro) para fazê-lo. Este tipo de componente eletrônico não se encontra no Brasil e deve ser importado. Se acaso houver alguém que queira gentilmente ceder uma ou duas amostras deste chip, ficarei feliz de testá-lo e publicar o resultado dos testes aqui :)&lt;/p&gt;
 &lt;h5&gt;Outras Formas de Detecção do Campo Magnético&lt;/h5&gt;
 &lt;p&gt;Não cheguei a testar, mas creio ser possível utilizar um transistor de efeito hall com o objetivo de detectar o campo magnético.&lt;/p&gt;

&lt;p&gt;A continuar.... (estou escrevendo)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-1847629920904152255?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2010/03/detectando-o-batimento-do-coracao</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-4284418081863121744</guid><pubDate>Wed, 03 Mar 2010 22:27:00 +0000</pubDate><atom:updated>2010-03-19T19:11:26.338-03:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>projects</category><category domain='http://www.blogger.com/atom/ns#'>gym4us</category><category domain='http://www.blogger.com/atom/ns#'>electronic</category><category domain='http://www.blogger.com/atom/ns#'>development</category><category domain='http://www.blogger.com/atom/ns#'>it</category><category domain='http://www.blogger.com/atom/ns#'>gadgets</category><title>Meu Desejo: Monitoramento Cardíaco com o Nokia Sports Tracker</title><description>&lt;h1&gt;Introdução - O Início da Coisa (causa)&lt;/h1&gt;
&lt;p&gt;De tempos-em-tempos resolvo tomar atitude, ainda que temporariamente, e realizar exercícios físicos.
&lt;/p&gt;
&lt;p&gt;Não tenho problemas cardíacos e confirmei isso em recente bateria de exames. Já meu pai, teve muito problema com o coração, junto a muitas outras complicações de saúde. Como não sou tão jovem e sou sedentário, é prudente acompanhar meu desempenho cardíaco nos momentos de esforços físicos - coisa rara até meses atrás, momento em que percebi minha esposa participar de corridas de rua e concluí ser desejável acopanhá-la.&lt;/p&gt;
&lt;p&gt;Há alguns anos atrás eu comprei um relógio com função de &lt;a href="http://www.amazon.com/gp/search/ref=sr_kk_1?rh=i%3Ahpc%2Ck%3Atimex+ironman&amp;amp;amp;amp;keywords=timex+ironman&amp;amp;amp;amp;ie=UTF8&amp;amp;amp;amp;qid=1267573601&amp;amp;amp;amp;tag=sibprovider-20"&gt;monitor cardíaco da Timex&lt;/a&gt;. Pouco usei e acabei por perder a cinta com o transmissor e isto ficou perdido até mês passado - de tão bem guardada, não me lembrava onde a havia deixado - por puro desuso. Já o relógio, esse ficava guardado na gaveta e todas as manhãs tocava o alarme às 07h00, mas não chegava a despertar ninguém, haja visto que ficava guardado no escritório. Quando a bateria acabava, eu a substituia, mesmo sem usá-lo, pois sempre me vinha a mente a cinta de monitoramento que havia perdido. E quando pensava em fazer exercício físico, novamente, me lembrava da cinta que devia estar guardada em algum lugar. &lt;/p&gt;
&lt;p&gt;Recentemente, após recomeçar a realizar alguma atividade física com maior frequência, a necessidade de acompanhar meu desempenho, aumentou. Minha esposa que já praticava atividade física há mais tempo, acabou por decidir-se adquirir, para seu próprio uso, o &lt;a href="http://www.amazon.com/b/ref=dp_brlad_entry?ie=UTF8&amp;amp;amp;amp;node=3777191&amp;amp;amp;amp;tag=sibprovider-20"&gt;relógio de monitoramento cardíaco da Polar&lt;/a&gt; - que pretenciosamente a Polar chama de &amp;amp;amp;quot;computador de treino&amp;amp;amp;quot; - de modelo &lt;a href="http://www.amazon.com/gp/product/B001W93Z82?ie=UTF8&amp;amp;amp;amp;tag=sibprovider-20&amp;amp;amp;amp;linkCode=xm2&amp;amp;amp;amp;camp=1789&amp;amp;amp;amp;creativeASIN=B001W93Z82"&gt;RS300X G1&lt;/a&gt;. Fiquei intrigado com esse monitor da Polar, pois, apesar do preço salgado, não fazia muita coisa; o GPS que o acompanhava apenas servia para cálculo de velocidade e distância percorrida e nada mais fazia - se quer gravava o trajeto.&lt;/p&gt;
&lt;p&gt;Desde o ano de 2008, quando ainda usava um &lt;a href="http://www.amazon.com/gp/product/B000NGRVGW?ie=UTF8&amp;amp;amp;amp;tag=sibprovider-20&amp;amp;amp;amp;linkCode=xm2&amp;amp;amp;amp;camp=1789&amp;amp;amp;amp;creativeASIN=B000NGRVGW"&gt;Nokia N80&lt;/a&gt;, já conhecia o &lt;a href="http://sportstracker.nokia.com/"&gt;Nokia Sports Tracker&lt;/a&gt; e nos testes que havia realizado, o tinha considerado um brinquedo interessante e que se desenvolvido, poderia vir a ter utilidade. Três meses atrás, já retomado meu interesse em exercícios e acompanhar meu progresso, pesquisei e instalei a versão 1.83 do Nokia Sports Tracker para o Nokia 5800 XM. Fiquei gratamente surpreendido por ele estar com suporte a monitor cardíaco, ainda que proprietário. Ele requer um hardware que é fabricado pela Polar; no presente momento só é vendido conjuntamente ao smartphone &lt;a href="http://sportstracker.nokia.com/nts/main/n79_polar.do"&gt;Nokia N79 Active&lt;/a&gt; - e com mais nenhum outro produto e nem avulso como um acessório separado. Alguns dizem que esse hardware é na verdade o Polar Wearlink Bluetooth e que este é vendido unicamente em regime de OEM pela Polar; alguns outros chegaram a dizer que conseguiram comprar uma unidade de algum site que não vende mais; e o certo, é que isto ainda não é vendido pela Nokia e nem pela Polar para o cliente final. Se quiser ver a resposta &lt;b&gt;ridícula&lt;/b&gt; que obtive da Nokia Brasil quando a questionei sobre se e quando o Nokia N79 Active seria vendido no Brasil ou se eles chegariam a comercializar a cinta de monitoramento compatível com o Nokia Sports Tracker (de agora em diante o chamarei de NST), leia o &lt;a href="http://www.marciowb.net/blog/2010/01/nokia-n79-active-carta-aberta-para"&gt;artigo Nokia N79 Active: Carta aberta para Nokia&lt;/a&gt;. Pesquisei soluções comerciais alternativas ao N79 e não encontrei nada satisfatório.&lt;/p&gt;
&lt;p&gt;Cheguei a conclusão que seria muito legal ter um único eletrônico cumprindo a tarefa de vários outros, ou seja, falo de um smartphone que tivesse &lt;a href="http://www.trilha21.com.br/TrilhaStore/faces/ShowProduct.jsp?id=1000605"&gt;GPS&lt;/a&gt;, tocasse MP3, rodasse aplicações para acompanhamento de atividades fisícas, mostrasse mapinhas, armazenasse as informações para relatórios posteriores e extrações de dados, além de realizar o monitoramento cardíaco e permitisse o uso de serviços utilitários via web. Dito isto, o Nokia N79 Active ou qualquer solução semelhante, cai como uma luva. Consegui convencer minha esposa a vender o Polar RS300X G1 (e a $%$!#ria do &lt;i&gt;&lt;a href="http://www.amazon.com/gp/product/B001EO6YS8?ie=UTF8&amp;amp;amp;amp;tag=sibprovider-20&amp;amp;amp;amp;linkCode=xm2&amp;amp;amp;amp;camp=1789&amp;amp;amp;amp;creativeASIN=B001EO6YS8"&gt;Polar Flowlink&lt;/a&gt;&lt;/i&gt;) para comprar um &lt;a href="http://cgi.ebay.com.au/ws/eBayISAPI.dll?ViewItem&amp;amp;amp;amp;item=250565920766&amp;amp;amp;amp;ssPageName=ADME:X:AAQ:AU:1123"&gt;N79 Active que encontrei a venda no ebay&lt;/a&gt;. História a parte, foi difícil encontrar um N79 Active para comprar. Só havia um único a venda em todo o ebay e até onde pesquisei na época, o N79 Active só era vendido em quatro países. Até hoje, passado mais de um mês, não recebemos o produto que compramos pelo ebay de um vendedor australiano que afirmou tê-lo ganhado num concurso por lá e, segundo ele, nunca chegou a ter usado o celular. Como disse, ainda estamos com esperanças desse equipamento chegar por aqui, apesar do vendedor não nos ter informado o código de postagem e ao contrário, ainda ter solicitado que nós enviássemos mais dinheiro, pois, segundo ele, o frete que o ebay calculou foi metade do valor que ele pagou para enviar o celular, lá da Austrália, para cá, Brasil. Ainda não consegui colocar minhas mãos nesse celular e o aguardo anciosamente para ver se foi bom negócio - e espero que seja, haja visto que minha esposa estava satisfeita com a solução da Polar, ainda que tivesse que carregar, ipod, celular, fones de ouvido com fio, &lt;a href="http://www.amazon.com/gp/product/B001EO6YSI?ie=UTF8&amp;amp;amp;amp;tag=sibprovider-20&amp;amp;amp;amp;linkCode=xm2&amp;amp;amp;amp;camp=1789&amp;amp;amp;amp;creativeASIN=B001EO6YSI"&gt;G1&lt;/a&gt; preso ao braço, &lt;a href="http://www.amazon.com/gp/product/B001W93YDS?ie=UTF8&amp;amp;amp;amp;tag=sibprovider-20&amp;amp;amp;amp;linkCode=xm2&amp;amp;amp;amp;camp=1789&amp;amp;amp;amp;creativeASIN=B001W93YDS"&gt;relógio RS300X&lt;/a&gt; e cinta de monitoramento cardíaco.&lt;/p&gt;
&lt;p&gt;Eu, sem perspectivas de encontrar minha cinta de monitoramento do meu Timex e ainda muito frustrado com a resposta da Nokia, sendo que queria mesmo era usar o Nokia Sports Tracker para o meu monitoramento cardíaco e evolução física, comecei a pesquisar soluções alternativas ao N79 Active. Isto começou após eu escrever o &lt;a href="http://www.marciowb.net/blog/2010/01/nokia-n79-active-carta-aberta-para"&gt;artigo Nokia N79 Active: Carta aberta para Nokia&lt;/a&gt;. Neste ponto, começa, o que acredito ser, uma série de novos artigos, onde descreverei minha busca e a solução que desenvolvi como resultado do meu desejo em monitorar minha atividade física com o auxílio de GPS (pode ser do próprio celular) e de um monitor cardíaco, preferencialmente, acoplados (entenda acoplado com algo que pode ser wireless...) a um smartphone.&lt;/p&gt;
&lt;h2&gt;Sobre o Projeto Gym4Us&lt;/h2&gt;
&lt;center&gt;
&lt;embed type="application/x-shockwave-flash" src="http://picasaweb.google.com/s/c/bin/slideshow.swf" width="600" height="400" flashvars="host=picasaweb.google.com&amp;amp;captions=1&amp;amp;hl=en_US&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=http%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2Fmarciowb%2Falbumid%2F5448225087872546449%3Falt%3Drss%26kind%3Dphoto%26hl%3Den_US" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;
&lt;/center&gt;
&lt;p&gt;Tentarei postar - e se necessário for, atualizar este artigo - conforme for escrevendo. Sendo assim, peço um pouco de paciência daqueles que porventura estiverem interessados em minhas desaventuras e dou minha palavra que publicarei tudo até o fim com a solução final e funcionando no Nokia 5800 Xpress Music com o Nokia Sports Tracker v.2.06 e alguma cinta de monitoramento cardíaco, como a Polar T31 que é a que estou utilizando. Para quem não aguentar esperar, podem ver alguma coisa, em:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://sportstracker.nokia.com/nts/user/profile.do?u=marciowb"&gt;Minhas atividades físicas no Nokia Sports Tracker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Capturas de tela do Nokia Sports Tracker usando o Gym4Us&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://picasaweb.google.com/marciowb/ProjectGym4Us10#"&gt;Algumas fotografias do Gym4Us que no momento utilizo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Adianto que diversas melhorias já estão programadas, incluindo modificação no tamanho do circuito, substituição do módulo de alimentação e do microcontrolador, além de um sistema que elimine a fiação externa. Também é possível integrar novos sensores e equipamentos, incluindo: sensores de temperatura, umidade, radiação solar, poluição atmosférica, giro de roda da bike, display para bike etc.&lt;/p&gt;
&lt;p&gt;O uso do Gym4Us não está restrito ao Nokia Sports Tracker e facilmente pode-se usá-lo com outras soluções atuais e futuras. Desenvolvi aplicação J2ME que possibilita seu uso em qualquer celular com interpretador Java (J2ME) com suporte a API JSR-82 para uso do Bluetooth.&lt;/p&gt;
&lt;h1&gt;Detectando o Batimento do Coração&lt;/h1&gt;
&lt;p&gt;Na busca de uma solução, tive antes que entender o funcionamento de uma série de coisas, inclusive como funcionam as cintas de monitoramento cardíaco, seus sistemas de captação, amplificação, filtragem, detecção, codificação e transmissão. Além disso, também estudei um pouco sobre o ECG e as diferentes maneiras de se perceber o batimento do coração. Não sou médico, nem engenheiro, nem cientista; sou um mero programador que gosta de xeretar, portanto, de antemão, peço desculpas pelas tolices que falei e falarei até o fim deste artigo e de futuros artigos correlatos. A seguir, irei expor o que entendi e como isso me direcionou ao longo da pesquisa e desenvolvimento da solução final. Somente ao fim de todos os artigos irei compilar e acrescentar as informações necessárias para se compor o projeto em si, de forma simples, direta e técnica do ponto de vista do hardware e software; antes disso, haverá muito blah-blah-blahh de minha parte.&lt;/p&gt;

&lt;p&gt;Nota: estou realizando novos posts em continuação a este artigo. &lt;a href="http://www.marciowb.net/blog/labels/gym4us"&gt;Acompanhe no blog marciowb @ blog a tag Gym4Us&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-4284418081863121744?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2010/03/meu-desejo-monitoramento-cardiaco-com-o</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-5499621935896818836</guid><pubDate>Tue, 02 Feb 2010 01:36:00 +0000</pubDate><atom:updated>2010-02-02T21:30:14.521-02:00</atom:updated><title>Em Brasília, Bombeiros apagam fogo de carro em chamas</title><description>Hoje, ao sair do trabalho e já entrando no carro para ir para casa, me deparo com um carro em chamas bem em frente aonde estava. Curioso com o que ocorria, e vendo muitos carros pararem para tentar ajudar, resolvi filmar com meu &lt;a href="http://www.submarino.com.br/produto/11/21528172?franq=128292"&gt;smartphone Nokia 5800 XpressMusic&lt;/a&gt; e disponibilizar na web. As imagens são impressionantes.&lt;br /&gt;
&lt;img src="http://www.marciowb.net/blog/2010/02/img/carro_pegando_fogo.jpg" width="598" height="267" alt="Em Brasília, na 712 Sul, carro pega fogo" /&gt;
&lt;p&gt;Comuniquei ao &lt;a href="http://video.globo.com/Videos/Player/Noticias/0,,GIM1202953-7823-RADAR+DF,00.html"&gt;DFTV&lt;/a&gt; que tinha feito as imagens e eles as usaram no &lt;a href="http://video.globo.com/Videos/Player/Noticias/0,,GIM1202953-7823-RADAR+DF,00.html"&gt;Radar DF de 02/02/2010&lt;/a&gt;. A reportagem pode ser vista nas páginas do website do &lt;a href="http://video.globo.com/Videos/Player/Noticias/0,,GIM1202953-7823-RADAR+DF,00.html"&gt;Radar DF do DFTV&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;O fato ocorreu na 712 Sul, aqui em Brasília, por volta das 18h43 do dia 01/02/2010, quando o carro pega fogo e bombeiros rapidamente chegam para apagar as chamas. Antes dos bombeiros chegarem, pode-se ver várias pessoas tentando ajudar a apaguer o incêndio com seus próprios extintores. Felizmente, o motorista do veículo escapou ileso, mas o carro foi completamente destruído em poucos minutos.&lt;/p&gt;
&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/DkKFiTnHAD0&amp;hl=en_US&amp;fs=1&amp;color1=0x3a3a3a&amp;color2=0x999999"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/DkKFiTnHAD0&amp;hl=en_US&amp;fs=1&amp;color1=0x3a3a3a&amp;color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;p&gt;Esta é a segunda vez que vejo os bombeiros de Brasília em ação e como da outra vez, quando chegaram a fazer um resgate de helicoptero - pousando em plena L2 Norte em horário de rush - de forma a mostrarem destreza e preparo para esta gloriosa função, novamente, merecem meu mais profundo respeito e admiração. &lt;b&gt;Parabéns a todos os bombeiros!!&lt;/b&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-5499621935896818836?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2010/02/em-brasilia-bombeiros-apagam-fogo-de</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-9209430653374093543</guid><pubDate>Sun, 31 Jan 2010 00:50:00 +0000</pubDate><atom:updated>2010-01-31T16:31:24.766-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>tips</category><category domain='http://www.blogger.com/atom/ns#'>it</category><category domain='http://www.blogger.com/atom/ns#'>web</category><category domain='http://www.blogger.com/atom/ns#'>cdc</category><title>TIM 3G Ilimitado: EhLimitado, mesmo!!!</title><description>&lt;p&gt;Abaixo, resposta oficial da TIM à reclamação que fiz via web pela seção de atendimento no website da própria TIM. Trata-se da picaretagem de venderem um plano que dizem ser ilimitado, mas que na verdade eles limitam a velocidade. Pior: como eu não sabia, acabei-me fidelizando num pacote de dados de 1Mbs!!!! Só agora, quando precisei, é que soube que eles limitavam. Quando fui realizar a comprar, apesar de ter questionado se havia algum tipo de limitação tráfego, a atendente da TIM (loja da TIM do ParkShopping de Brasília) disse que não havia nenhum tipo de limitação..&lt;/p&gt;
&lt;h2&gt;Meu Questionamento&lt;/h2&gt;
&lt;pre class="wrap"&gt;Prezados(as),
   Até cerca de duas semanas atrás, estava muito satisfeito com plano Infinity 160 + 1Mbs de dados **** I LI M I T A D O ***. Uso a conexão de dados constantemente no trabalho, mas apenas para realizar pequenos acessos a e-mail e notícias - fazendo pouco download de arquivos. No entanto, este mês fiquei sem provedor em minha residência e fui obrigado a usar internet utilizando meu plano da TIM (meu celular é o Nokia 5800 XPM que adquiri num plano fidelidade com a TIM); fiz muitos downloads, possivelmente alguns gigabytes fora baixados. Neste fim de semana, me dei conta que minha conexão de dados 3G, que sempre funcionou muito bem, como eu já disse antes, agora não funciona a velocidade plena. Estou nos mesmos lugares que sempre estive, ou seja, nos mesmos lugares que sempre tiveram cobertura UMTS 3G e que antes alcança com facilidade velocidades de até 139Kbytes/s, mas que agora não passa de 23Kbytes/s com raros (menos de 0.01% do tempo) picos de exceção.
Dessa forma, gostaria que a TIM me informasse se ela impõe algum tipo de limite de velocidade quando o cliente ultrapasse alguma quantidade de dados trafegados (download ou upload). A TIM impõe essa limitação? Se faz, a partir de quantos GB (Gigabytes) trafegados? Se não impõe limite, por que não consigo mais obter as mesmas velocidades de antes se meu plano é de 1Mbs?!!!
Aguardo retorno.

Grato,
Marcio Wesley Borges
marciowb[*]gmail.com
(61) 8211-5400 / (61) 3xxx-xxxx

--------------------------------

Protocolo da TIM (auto atendimento via web)

Obrigado por entrar em contato com a TIM.
Sua mensagem foi enviada com sucesso e você receberá uma resposta em no máximo 2 dias úteis. Por favor, anote o número do seu chamado:

2010014653061&lt;/pre&gt;

&lt;h2&gt;Resposta da TIM&lt;/h2&gt;
&lt;pre class="wrap"&gt;Protocolo 2010014653061

Prezado Sr. Marcio

Conforme clausula 17 do termo de compromisso: Para todos os Pacotes após o consumo de 1GB, a TIM poderá, a seu exclusivo critério, reduzir a velocidade até o período de faturamento subseqüente.

Atenciosamente,      
Maria Ester
Central de Relacionamento com Clientes  
www.tim.com.br                                                     
Por favor, não responda esta mensagem. Caso necessário, envie uma nova mensagem através de nosso site TIM.

================================================================================

Cliente - Consumidor
Nome: MARCIO WESLEY BORGES
CPF/CNPJ: XXXXXXXXXXXXX
Administrador de contrato: não
Telefone: 06182115400
E-Mail: marciowb[*]9mail.com
Estado: DF
Tipo: Informação
Assunto: Serviços Avançados
&lt;/pre&gt;

&lt;h2&gt;Anatel e Ministério Público&lt;/h2&gt;
&lt;p&gt;Cadê a Anatel nessas horas?! Cadê o ministério público? A realidade é que já faz tempo que estamos desamparados. No Brasil, falou em telecoms, bancos e consumidor, somente os dois primeiros exercem (e usurpam!!!) seus direitos. Vamos protestar!!&lt;/p&gt;
&lt;p&gt;Ainda nesta semana, após o ministério público resolver trabalhar, a &lt;a href="http://www.estadao.com.br/noticias/economia,justica-condena-claro-a-indenizar-clientes-do-servico-3g,503792,0.htm"&gt;Claro foi condenada&lt;/a&gt; por não entregar o devido serviço 3G que se contrata.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-9209430653374093543?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2010/01/tim-3g-ilimitado-ehlimitado-mesmo</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-9168126055745194945</guid><pubDate>Wed, 20 Jan 2010 12:25:00 +0000</pubDate><atom:updated>2010-03-03T20:55:01.748-03:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>gym4us</category><category domain='http://www.blogger.com/atom/ns#'>gadgets</category><category domain='http://www.blogger.com/atom/ns#'>cdc</category><title>Nokia N79 Active: Carta aberta para Nokia</title><description>&lt;a href="http://www.submarino.com.br/produto/11/21528172/nokia+5800+comes+with+music+touchscreen+3g+wi-fi+cam+3.2mp+gps+8gb&amp;franq=128292"&gt;&lt;img src="http://www.marciowb.net/blog/2010/01/img/Nokia5800XPM.jpg" style="float:left" alt="Nokia 5800 XPM" /&gt;&lt;/a&gt;
Voltei a fazer atividade física e estou utilizando o &lt;a href="http://sportstracker.nokia.com/nts/workoutdetail/index.do?id=1986142"&gt;Nokia SportTracker&lt;/a&gt; para registrar e monitorar minha ativdade; Rodo-o num &lt;a href="http://www.submarino.com.br/produto/11/21528172/nokia+5800+comes+with+music+touchscreen+3g+wi-fi+cam+3.2mp+gps+8gb&amp;franq=128292"&gt;Nokia 5800 XPressMusic&lt;/a&gt; - que por sinal, recomendo-o a todos - um excelente smartphone. Estou muito satisfeito com o software e sua funcionalidade. No entanto, é interessante ter um monitor de batimento cardíaco sendo usado com este celular, pois o Nokia Sport Tracker permite isso.
&lt;p&gt;A Nokia lançou um único celular, o &lt;a href="http://sportstracker.nokia.com/nts/main/n79_polar.do"&gt;Nokia N79 Active&lt;/a&gt;, que tem uma cinta de monitoramento cardíaco. A cinta é a &lt;i&gt;Polar Wearlink for Nokia&lt;/i&gt; - funciona via Bluetooth - e já acompanha o &lt;a href="http://www.gsmarena.com/the_new_nokia_n79_active_pack_just_screams_sports-news-737.php"&gt;Nokia N79 Active&lt;/a&gt;. Mas nem a &lt;a href="http://betalabs.nokia.com/apps/sports-tracker/discussion/v205-polar-for-nokia-accessory-compatibility"&gt;Nokia&lt;/a&gt;, nem a &lt;a href="http://forum.polar.fi/showthread.php?t=4323"&gt;Polar&lt;/a&gt; vendem a cinta separadamente. A Polar vende em regime OEM para a Nokia e a Nokia, por sua vez, nem vende essa cinta, nem qualquer outra compatível. Também, não há notícia de nenhuma outra compatível com o &lt;a href="http://sportstracker.nokia.com"&gt;Nokia SportTracker&lt;/a&gt;. E, para piorar, o Nokia N79 Active não é vendido no Brasil e nem tem previsão de quando será vendido, nem, ao menos, se será vendido ou não. Ainda que pese o fato dele ter sido lançado em Janeiro de 2009, ou seja, já datando de um ano atrás.&lt;/p&gt;
&lt;object style="height: 344px; width: 425px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/VKGmiGqLZ9s"/&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://www.youtube.com/v/VKGmiGqLZ9s" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344" &gt;&lt;/embed&gt;&lt;/object&gt;
&lt;p&gt;Lá fora o aparelho só é vendido na &lt;a href="http://www.virginmobile.com.au/Shop/ProductSummary/2967/Nokia-N79-Rollover-Cap-19"&gt;Austrália&lt;/a&gt;, &lt;a href="http://shop.nokia.co.uk/nokia-uk/product.aspx?sku=5098116"&gt;Grá-Betanha&lt;/a&gt;, Noruega e &lt;a href="http://kauppa.nokia.fi/nokia-fi/product.aspx?sku=3974568&amp;culture=fi-FI"&gt;Finlândia&lt;/a&gt;. Mesmo no ebay, &lt;a href="http://www.amazon.com/b?_encoding=UTF8&amp;site-redirect=&amp;node=301185&amp;tag=sondaletra-20&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325"&gt;Amazon &lt;/a&gt;e assemelhados, é raro encontrar algum anúncio vendendo este celular. E, por fim, o website oficial da Nokia nestes países, apesar de venderem este celular, não permite exportar - ou importar para o Brasil - o aparelho.&lt;/p&gt;

&lt;h2&gt;Respostas que desejo da Nokia&lt;/h2&gt;
&lt;p&gt;Procurei a Nokia do Brasil, liguei para três telefones: vendas, pós-vendas e, por fim, para o SAC - telefone (11) 4003-2525 - deles e me foi dito muito pouco: me disseram que não há previsão de quando venderão o aparelho no Brasil ou mesmo se venderão - o número de meu protocolo de atendimento, foi 110472987615. Dessa forma, resolvi uma carta - que já encaminhei à Nokia, via &lt;a href="http://www.nokia.com.br/suporte-e-software/fale-conosco/formulario-de-contato"&gt;formulário próprio no website da Nokia&lt;/a&gt; - para pedir alguma solução que me permita usar o Nokia SportTracker com algum monitor de batimento cardíaco. Abaixo, reproduzo abertamente a carta que encaminhei à Nokia Brasil:&lt;/p&gt;
&lt;pre class="wrap"&gt;Saudações,

   Estou muito interessado em adquirir o Nokia N79 Active (que acompanha a cinta de monitoramento cardíaco da Polar, a Polar Wearlink for Nokia) para uso com o Nokia Sport Tracker. Já procurei na web brasileira e não encontro o aparelho para comprar. Só encontrei o aparelho na Grã-Bretanha e Australia. Gostaria muito de adquirir o N79 Active ou senão adquirir a Ploar Wearlink for Nokia separadamente. Dessa forma, pergunto:
a) A Nokia planeja vender o N79 Active (com a cinta de monitoramento cardíaco) no Brasil? Se, sim, quando?
b) A Nokia vende separadamento a cinta de monitoramento cardíaco, aquela que acompanha o Nokia N79 Active ou outra equivalente que funcione com o Nokia Sporttracker?
c) O Nokia Sporttracker é compatível com alguma outra cinta ou hardware de monitoramento cardíaco que não o Polar Wearlink for Nokia?
d) A Polar vende a referida cinta separadamente?
e) A Nokia me oferece alguma forma de importar o N79 Active, no caso dela não ter planos de vender este aparelho no Brasil?

  Grato,
  Marcio Wesley Borges
  marciowb[*arroba*]gmail.com
&lt;/pre&gt;
&lt;object style="height: 344px; width: 425px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/WphBADlPXw8" /&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed src="http://www.youtube.com/v/WphBADlPXw8" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344" &gt;&lt;/embed&gt;&lt;/object&gt;

&lt;h2&gt;A Resposta da Nokia&lt;/h2&gt;
Para minha surpresa, menos de duas horas depois de enviar a carta acima, recebo a resposta:
&lt;pre class="wrap"&gt;
[THREAD ID:1-4T8SNZS]

Prezado Márcio,

Obrigada por contatar a Nokia Brasil.

No momento não temos uma data definida para o lançamento do aparelho e acessório em questão no Brasil.
Tão logo isso ocorra você tomará conhecimento, pois será amplamente divulgado na mídia nacional e nos pontos-de-venda.

A Nokia busca a melhoria contínua de seus produtos e serviços. Para isso, peço que participe da Pesquisa de Satisfação e avalie o atendimento prestado neste e-mail. Basta acessar o link abaixo:

http://digiumenterprise.com/answer/?inv=xxx&amp;chk=xxx

Para outras informações, entre em contato com a Central de Relacionamento Nokia pelos telefones 4003-2525, para Capitais e Grandes cidades ou 0800 886 6542 para outras localidades.

Atenciosamente,

Cláudia Barboza
CONSULTORA DE RELACIONAMENTO NOKIA

Protocolo de Atendimento: 1-10475423151

* Por favor, não responda esse e-mail.

Mantenha o software do seu celular atualizado com o Nokia Software Updater. Encontre respostas para perguntas mais freqüentes e veja como funciona através do site www.nokia.com.br/softwareupdate.
&lt;/pre&gt;
&lt;p&gt;Resumo: não me forneceram nenhuma resposta e ainda me pedem para ficar de prontidão, aguardando por um lançamento, de um produto que nem mesmo eles sabem se vai ou quando será lançado no Brasil.&lt;/p&gt;
&lt;p&gt;Bem, diante disto, surge a possibilidade de terceiros criarem sua própria solução de hardware e se necessário, de software. Vou levar isso em consideração.&lt;/p&gt;

&lt;p&gt;Atualização em 2010-03-03, leia:&lt;br /&gt;
&lt;a href="http://www.marciowb.net/blog/2010/03/meu-desejo-monitoramento-cardiaco-com-o"&gt;Meu Desejo: Monitoramento Cardíaco com o Nokia Sports Tracker&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-9168126055745194945?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2010/01/nokia-n79-active-carta-aberta-para</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-7248803217467050450</guid><pubDate>Sat, 07 Nov 2009 18:02:00 +0000</pubDate><atom:updated>2009-11-07T18:27:26.486-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>java</category><category domain='http://www.blogger.com/atom/ns#'>facelets</category><category domain='http://www.blogger.com/atom/ns#'>tips</category><category domain='http://www.blogger.com/atom/ns#'>it</category><category domain='http://www.blogger.com/atom/ns#'>icefaces</category><category domain='http://www.blogger.com/atom/ns#'>web</category><category domain='http://www.blogger.com/atom/ns#'>jsf</category><title>Icefaces+Facelets: Customizing the basic html (XHTML) tags using a simple Render Kit extension</title><description>Alright, the life, at least my life, isn't easy. But after fourteen hours, finally, I know how to do a simple task: &lt;span style="color:#b00000"&gt;insert the &lt;code&gt;xmlns&lt;/code&gt; attribute into the final code of the &lt;code&gt;html&lt;/code&gt; tag generated by Icefaces+Facelets couple.&lt;/span&gt;
&lt;p&gt;I know that are several ways to insert this attribute, but I just want to play it using the &lt;a href="http://java.sun.com/javaee/javaserverfaces/reference/docs/customRenderKit.html#register"&gt;JSF Render Kit&lt;/a&gt;. I don't want to filter the stream, or output the tag, or anything else. The render kit should be the way.&lt;/p&gt;
I just want to write:
&lt;pre class="code"&gt;&lt;font color="#000000"&gt;&lt;font color="#000000"&gt;   1:&lt;/font&gt;&lt;font color="#0099ff"&gt;&lt;strong&gt;&amp;lt;?&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0099ff"&gt;&lt;strong&gt;xml&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0099ff"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color="#0099ff"&gt;&lt;strong&gt;version='1.0'&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0099ff"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color="#0099ff"&gt;&lt;strong&gt;encoding='UTF-8'&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0099ff"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color="#0099ff"&gt;&lt;strong&gt;?&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0099ff"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/font&gt; 
&lt;font color="#000000"&gt;   2:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;&amp;lt;!&lt;/strong&gt;&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;DOCTYPE&lt;/strong&gt;&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;html&lt;/strong&gt;&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;PUBLIC&lt;/strong&gt;&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;-//W3C//DTD&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;XHTML&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;1.0&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Transitional//EN&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/font&gt;
&lt;span style="border:1px dotted red"&gt;&lt;font color="#000000"&gt;   3:&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;html&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;xmlns&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;http://www.w3.org/1999/xhtml&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;
&lt;font color="#000000"&gt;   4:&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#02b902"&gt;xmlns&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;ui&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;http://java.sun.com/jsf/facelets&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;
&lt;font color="#990066"&gt;   5:&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#02b902"&gt;xmlns&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;c&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;http://java.sun.com/jstl/core&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;
&lt;font color="#000000"&gt;   6:&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#02b902"&gt;xmlns&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;h&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;http://java.sun.com/jsf/html&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;
&lt;font color="#000000"&gt;   7:&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#02b902"&gt;xmlns&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;ice&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;http://www.icesoft.com/icefaces/component&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;
&lt;font color="#000000"&gt;   8:&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   9:&lt;/font&gt;    &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;body&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  10:&lt;/font&gt;
&lt;font color="#000000"&gt;  11:&lt;/font&gt;        &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#02b902"&gt;ui&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;composition&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;template&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;/WEB-INF/tmp/template.xhtml&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  12:&lt;/font&gt;
&lt;font color="#000000"&gt;  13:&lt;/font&gt;            &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#02b902"&gt;ui&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;param&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;hasLeftSection&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;value&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;false&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  14:&lt;/font&gt;            &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#02b902"&gt;ui&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;param&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;pageDescription&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;value&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;${ArtistPage.pageDescription}&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  15:&lt;/font&gt;
&lt;font color="#000000"&gt;  16:&lt;/font&gt;            &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#02b902"&gt;ui&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;define&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;pageTitle&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;${ArtistPage.pageTitle}&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#02b902"&gt;ui&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;define&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  17:&lt;/font&gt;            &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#02b902"&gt;ui&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;define&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;extraHeader&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  18:&lt;/font&gt;                &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;link&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;rel&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;canonical&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;href&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;${ArtistPage.canonicalUrl}&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  19:&lt;/font&gt;            &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#02b902"&gt;ui&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;define&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  20:&lt;/font&gt;
&lt;font color="#000000"&gt;  21:&lt;/font&gt;            &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#02b902"&gt;ui&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;define&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;body&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;/font&gt;&lt;/pre&gt;

But the &lt;code&gt;xmlns="http://www.w3.org/1999/xhtml"&lt;/code&gt; attribute is always trimmed by &lt;a href="http://facestutorials.icefaces.org/tutorial/facelets-tutorial.html"&gt;icefaces/facelets&lt;/a&gt; (maybe it's a simple thing to configure using &lt;code&gt;com.icesoft.faces.facelets.D2DFaceletViewHandler&lt;/code&gt; or &lt;code&gt;com.sun.facelets.compiler.Compiler&lt;/code&gt; - But I didn't investigate them to know).
&lt;p&gt;I inspected the Icefaces code and I saw that it uses the renderer from &lt;code&gt;com.icesoft.faces.renderkit.dom_html_basic.XMLRenderer&lt;/code&gt; to write out (to render) the most xhtml tags, like &lt;code&gt;html&lt;/code&gt;, &lt;code&gt;body&lt;/code&gt;, &lt;code&gt;head&lt;/code&gt;, &lt;code&gt;title&lt;/code&gt; etc. So, after a little test, was easy to write my own render to add the attribute that I need (or any other, also). The render code is:

&lt;pre class="code"&gt;&lt;font color="#000000"&gt;&lt;font color="#000000"&gt;   1:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;package&lt;/strong&gt;&lt;/font&gt; com.solvoj.sondaletra.faces;
&lt;font color="#000000"&gt;   2:&lt;/font&gt;
&lt;font color="#000000"&gt;   3:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; com.icesoft.faces.component.UIXhtmlComponent;
&lt;font color="#000000"&gt;   4:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; com.icesoft.faces.renderkit.dom_html_basic.XMLRenderer;
&lt;font color="#990066"&gt;   5:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; java.io.IOException;
&lt;font color="#000000"&gt;   6:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; java.util.Iterator;
&lt;font color="#000000"&gt;   7:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; java.util.Map;
&lt;font color="#000000"&gt;   8:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; javax.faces.component.UIComponent;
&lt;font color="#000000"&gt;   9:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; javax.faces.context.FacesContext;
&lt;font color="#990066"&gt;  10:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; javax.faces.context.ResponseWriter;
&lt;font color="#000000"&gt;  11:&lt;/font&gt;
&lt;font color="#000000"&gt;  12:&lt;/font&gt;&lt;font color="#6600cc"&gt;/**&lt;/font&gt;
&lt;font color="#000000"&gt;  13:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;
&lt;font color="#000000"&gt;  14:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#02b902"&gt;@author&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;Marcio&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;Wesley&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;Borges&lt;/font&gt;
&lt;font color="#990066"&gt;  15:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*/&lt;/font&gt;
&lt;font color="#000000"&gt;  16:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;class&lt;/strong&gt;&lt;/font&gt; MyXMLRenderer &lt;font color="#006699"&gt;&lt;strong&gt;extends&lt;/strong&gt;&lt;/font&gt; XMLRenderer &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  17:&lt;/font&gt;
&lt;font color="#000000"&gt;  18:&lt;/font&gt;    &lt;font color="#66ccff"&gt;&lt;strong&gt;@&lt;/strong&gt;&lt;/font&gt;&lt;font color="#66ccff"&gt;&lt;strong&gt;Override&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  19:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;encodeBegin&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;FacesContext facesContext, UIComponent uiComponent&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;throws&lt;/strong&gt;&lt;/font&gt; IOException &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  20:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; UIXhtmlComponent xhtmlComponent &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;UIXhtmlComponent&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; uiComponent;
&lt;font color="#000000"&gt;  21:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; ResponseWriter writer &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; facesContext.&lt;font color="#9966ff"&gt;getResponseWriter&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  22:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; String tag &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; xhtmlComponent.&lt;font color="#9966ff"&gt;getTag&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  23:&lt;/font&gt;        writer.&lt;font color="#9966ff"&gt;startElement&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;tag, xhtmlComponent&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  24:&lt;/font&gt;
&lt;div style="border:1px solid red"&gt;&lt;font color="#990066"&gt;  25:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;html&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;.&lt;font color="#9966ff"&gt;equals&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;tag&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  26:&lt;/font&gt;            writer.&lt;font color="#9966ff"&gt;writeAttribute&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;xmlns&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;, &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;http://www.w3.org/1999/xhtml&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;, &lt;font color="#cc00cc"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  27:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;/div&gt;
&lt;font color="#000000"&gt;  28:&lt;/font&gt;
&lt;font color="#000000"&gt;  29:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; Iterator attributeIterator &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; xhtmlComponent.&lt;font color="#9966ff"&gt;getTagAttributes&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;.&lt;font color="#9966ff"&gt;entrySet&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;.&lt;font color="#9966ff"&gt;iterator&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#990066"&gt;  30:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;while&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;attributeIterator.&lt;font color="#9966ff"&gt;hasNext&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  31:&lt;/font&gt;            Map.Entry attribute &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;Map.Entry&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; attributeIterator.&lt;font color="#9966ff"&gt;next&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  32:&lt;/font&gt;            writer.&lt;font color="#9966ff"&gt;writeAttribute&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;String&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; attribute.&lt;font color="#9966ff"&gt;getKey&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;, attribute.&lt;font color="#9966ff"&gt;getValue&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;, &lt;font color="#cc00cc"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  33:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  34:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  35:&lt;/font&gt;    
&lt;font color="#000000"&gt;  36:&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  37:&lt;/font&gt;
&lt;/font&gt;&lt;/pre&gt;

Also, we need to configure the application to use this render above while Icefaces will be playing with xhtml tags, so just add the following lines at the &lt;code&gt;faces-config.xml&lt;/code&gt; file of your web application:
&lt;pre class="code"&gt;&lt;font color="#000000"&gt;&lt;font color="#000000"&gt;   1:&lt;/font&gt;&lt;font color="#0099ff"&gt;&lt;strong&gt;&amp;lt;?&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0099ff"&gt;&lt;strong&gt;xml&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0099ff"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color="#0099ff"&gt;&lt;strong&gt;version='1.0'&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0099ff"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color="#0099ff"&gt;&lt;strong&gt;encoding='UTF-8'?&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0099ff"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   2:&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;faces-config&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;version&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;1.2&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;xmlns&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;http://java.sun.com/xml/ns/javaee&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;
&lt;font color="#000000"&gt;   3:&lt;/font&gt;&lt;font color="#02b902"&gt;xmlns&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;xsi&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#02b902"&gt;xsi&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;schemaLocation&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;http://java.sun.com/xml/ns/javaee&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   4:&lt;/font&gt;    &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;application&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#990066"&gt;   5:&lt;/font&gt;        &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;locale-config&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   6:&lt;/font&gt;            &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;default-locale&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;pt_BR&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;default-locale&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   7:&lt;/font&gt;            &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;supported-locale&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;pt_BR&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;supported-locale&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   8:&lt;/font&gt;            &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;supported-locale&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;en&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;supported-locale&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   9:&lt;/font&gt;        &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;locale-config&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  10:&lt;/font&gt;        &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;message-bundle&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;com.solvoj.sondaletra.web.Bundle&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;message-bundle&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  11:&lt;/font&gt;        &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;view-handler&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;com.icesoft.faces.facelets.D2DFaceletViewHandler&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;view-handler&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  12:&lt;/font&gt;    &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;application&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;div style="border:1px dotted navy"&gt;&lt;font color="#000000"&gt;  13:&lt;/font&gt;    &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;render-kit&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  14:&lt;/font&gt;        &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;render-kit-id&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;ICEfacesRenderKit&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;render-kit-id&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  15:&lt;/font&gt;        &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;render-kit-class&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;com.icesoft.faces.renderkit.D2DRenderKit&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;render-kit-class&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  16:&lt;/font&gt;        &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;renderer&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  17:&lt;/font&gt;            &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;component-family&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;com.icesoft.faces.XhtmlComponent&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;component-family&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  18:&lt;/font&gt;            &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;renderer-type&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;com.icesoft.domXhtml&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;renderer-type&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  19:&lt;/font&gt;            &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;renderer-class&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;com.solvoj.sondaletra.faces.MyXMLRenderer&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;renderer-class&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  20:&lt;/font&gt;        &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;renderer&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  21:&lt;/font&gt;        &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;renderer&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  22:&lt;/font&gt;            &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;component-family&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;com.icesoft.faces.XhtmlComponent&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;component-family&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  23:&lt;/font&gt;            &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;renderer-type&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;com.icesoft.faces.Xhtml&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;renderer-type&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  24:&lt;/font&gt;            &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;renderer-class&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;com.solvoj.sondaletra.faces.MyXMLRenderer&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;renderer-class&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  25:&lt;/font&gt;        &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;renderer&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  26:&lt;/font&gt;    &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;render-kit&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;/div&gt;
&lt;/font&gt;&lt;/pre&gt;

It's enough to produce the resultant html page that I expect:
&lt;pre class="code"&gt;&lt;font color="#000000"&gt;&lt;font color="#000000"&gt;   1:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;&amp;lt;!&lt;/strong&gt;&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;DOCTYPE&lt;/strong&gt;&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;html&lt;/strong&gt;&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;PUBLIC&lt;/strong&gt;&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;-//W3C//DTD&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;XHTML&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;1.0&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Transitional//EN&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt; &lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   2:&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;html&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;id&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;document:html&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;lang&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;en&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;font color="#02b902"&gt;xml&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;lang&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;en&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;/font&gt;&lt;span style="border:1px dotted navy"&gt;&lt;font color="#0000ff"&gt;xmlns&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;http://www.w3.org/1999/xhtml&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   3:&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;head&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;/font&gt;&lt;/pre&gt;

The same principe can be used to add or change any attribute that you need to any xhtml tag using Icefaces/Facelets.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-7248803217467050450?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2009/11/icefacesfacelets-customizing-basic-html</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-7243880403266552413</guid><pubDate>Tue, 07 Jul 2009 23:52:00 +0000</pubDate><atom:updated>2009-07-22T13:59:40.335-03:00</atom:updated><title>Procuro trabalho com boa remuneração</title><description>&lt;p&gt;Em abril de 2008 saí da B2Br depois de passar um ano mantendo o sistema do "PAC Emergencial" - o predecessor do sistema definitivo que foi desenvolvido pelo SERPRO. É engraçado que quando dizia que por meus códigos passaram mais de 30 bilhões de reais, muitos achavam exagero. De fato, não é. Pois inicialmente o orçamento do PAC era de mais de 500 bilhões para quatro anos. Dessa forma, deduz-se que no primeiro ano somente gastou-se 24% do valor esperado de 125 bi para o ano. O curioso é que depois de falar tanto em bilhões de reais, cá estou eu individado, cabisbaixo, puto da vida e sem moral algum.&lt;/p&gt;
&lt;p&gt;Após largar o trampo na B2Br, investi, novamente, em meus próprios projetos. A idéia era desenvolver meu lado de hobbysta eletrônico e torná-lo lucrativo a ponto de suplantar o &lt;span style="font-style:italic;"&gt;Marcio Desenvolvedor de Software&lt;/span&gt;, &lt;span style="font-style:italic;"&gt;O Programador&lt;/span&gt;! A razão disso, era querer ganhar dinheiro e pensava que como programador, por gostar muito, muito, muito, muito mesmo, do que faço, jamais pensaria na coisa como um ofício de onde deve vir meu ganha pão (e minha aposentadoria). Não que não tenha trabalhado por dinheiro toda a minha vida como programador, mas me contentava com pouco dinheiro e muito trabalho difícil. Na verdade, quanto mais difícil, se possível único e sobre-humano, melhor. É como um brinquedo: meu brinquedo é programar. Adoro programar!!! Minha própria filha de apenas sete anos de idade me diz que devo pegar trabalhos que paguem mais e que sejam mais fáceis - além de dizer que devo "trocar de empresário", em referência a meu atual sócio (é um par, na verdade).&lt;/p&gt;
&lt;p&gt;Bem, trabalhei muito em um ano e adquiri mais experiência com sistemas de rastreamento baseados em GPS e GSM/GPRS, além de outras parafernálias eletrônicas. Para cada mês deste último ano, envelheci outros cinco. Adquiri mais responsabilidades e tive a proesa de dobrar minha dívida com bancos - que agora já passa dos seis digitos. No momento, meu escritório mais parece uma loja de eletrônica cujos proprietários surtaram, pois está tudo bagunçado, um monte de coisas a serem vendidas ou destinadas a projetos que nunca se concretizam, muitas idéias, muitas pendências, muito trabalho, pouco dinheiro, pouco tempo, pouca alegria no labor.&lt;/p&gt;
&lt;p&gt;No momento, sou obrigado a deixar os atuais projetos e minha participação na Trilha21 de lado e paralelamente assumir um outro trabalho que se torne minha principal fonte de renda, visto que o "entusiasmo" de meus "anjos" se esgotou. A verdade é que há um mês mando currículos diariamente e arrisco a dizer que estou com uma média diária de uns 10 currículos enviados. Mas, meu perfil pouco me ajuda... tenho dois cursos incompletos de graduação e meu inglês é fraco! Tão fraco que já coleciono diversos &lt;span style="font-style:italic;"&gt;micos&lt;/span&gt; que passei em entrevistas por telefone/voip ou conversas com fornecedores dos quatro cantos do mundo. Mencionado isso, me fez lembrar uma boa oportunidade que me foi trazida por um &lt;span style="font-style:italic;"&gt;headhunter&lt;/span&gt; para trabalhar na Unisys como evangelizador, o cara teve duas conversas comigo no telefone (e nem sei porque ou como consegui chegar até a segunda), em inglês, claro, e no meio da conversa, só compreendi, algo do tipo:&lt;br /&gt;
- Desculpe, mas não temos como levar isso adiante, pois para o cargo que pretendia para você, o mínimo que esperava era que tivesse inglês fluente e com boa capacidade de argumentação, pois deveria conversar com CEOs, representantes de governo e equipe técnica de modo a convencê-los de que a solução da Unysis é a melhor.&lt;br /&gt;
O trampo era para viajar o mundo todo e ganhar um bom punhado de tostão...&lt;/p&gt;
&lt;p&gt;Agora, sem inglês que valha a pena ser falado, sem graduação, sem pós-graduação, sem moral e depois de ter queimado meu filme trabalhando em todas as grandes empresas de TI de BSB e ter saído/voltado delas um par de vezes, tô eu de novo tentando algum trampo, que pague até menos do que ganhava há um ano atrás quando saí do projeto do PAC. Se alguém souber de algo, me avisa, por favor!&lt;/p&gt;

&lt;h2&gt;Onde Postar seu CV e Onde Encontrar Vagas de TI&lt;/h2&gt;
&lt;p&gt;Para o caso de alguém mais passar por esta triste situação de procurar emprego e ficar no cabide esperando uma contratação, abaixo deixo algumas dicas de onde postar currículo e encontrar vagas de TI online.&lt;/p&gt;

&lt;!-- 
=================================================================================
 --&gt;
&lt;h3&gt;&lt;a name="findjobs"&gt;Bancos de Currículos e Quadros de Vagas&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.apinfo.com/"&gt;APInfo&lt;/a&gt; - Gratuito&lt;br/&gt;
Não se engane pela aparência, pois apesar do site da APInfo ser muito simples em sua estética, há dezenas de vagas atualizadas várias vezes ao dia, para todo o Brasil e sempre e somente da área de TI. Além disso o site tem planilha para cálculo e comparação de salário PJ x CLT, por exemplo, dentre outras informações úteis.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.catho.com.br/"&gt;Catho&lt;/a&gt; - Pago&lt;br /&gt;
Já foi um grande site de recrutamento online, mas apesar de ainda ser importante, atualmente perde espaço para outros concorrentes.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.empregos.com.br/"&gt;Empregos&lt;/a&gt; - Pago&lt;br /&gt;
  Banco de currículos e vagas online.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.elancers.net"&gt;Elancers&lt;/a&gt; - Pago&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt; &lt;a href="http://zeus.e-hunter.com.br/"&gt;e-Hunter&lt;/a&gt; - Gratuito&lt;br /&gt;
  Disponibiliza a plataforma de recrutamento a várias empresas de médio e grande porte. Se não encontrar nada no site principal, busque por links, como:&lt;br /&gt;
    &lt;a href="http://zeus.e-hunter.com.br/brq/"&gt;http://zeus.e-hunter.com.br/brq/&lt;/a&gt;&lt;br /&gt;
    &lt;a href="http://zeus.e-hunter.com.br/csa"&gt;http://zeus.e-hunter.com.br/csa&lt;/a&gt;&lt;br /&gt;
    &lt;a href="http://zeus.e-hunter.com.br/redeglobo/"&gt;http://zeus.e-hunter.com.br/redeglobo/&lt;/a&gt;&lt;br /&gt;
    &lt;a href="http://zeus.e-hunter.com.br/redeglobo_estagio/"&gt;http://zeus.e-hunter.com.br/redeglobo_estagio/&lt;/a&gt;&lt;br /&gt;
    &lt;a href="http://zeus.e-hunter.com.br/redeglobo_estagio_sup/"&gt;http://zeus.e-hunter.com.br/redeglobo_estagio_sup/&lt;/a&gt;&lt;br /&gt;
    &lt;a href="http://zeus.e-hunter.com.br/globocom/"&gt;http://zeus.e-hunter.com.br/globocom/&lt;/a&gt;&lt;br /&gt;
    &lt;a href="http://zeus.e-hunter.com.br/santander/"&gt;http://zeus.e-hunter.com.br/santander/&lt;/a&gt;&lt;br /&gt;
  &lt;a href="http://zeus.e-hunter.com.br/infoglobo/"&gt;http://zeus.e-hunter.com.br/infoglobo/&lt;/a&gt;&lt;br /&gt;
  &lt;a href="http://zeus.e-hunter.com.br/brastemp/"&gt;http://zeus.e-hunter.com.br/brastemp/&lt;/a&gt;&lt;br /&gt;
  &lt;a href="http://zeus.e-hunter.com.br/whirlpool/"&gt;http://zeus.e-hunter.com.br/whirlpool/&lt;/a&gt;&lt;br /&gt;
  &lt;a href="http://zeus.e-hunter.com.br/culturainglesa/"&gt;http://zeus.e-hunter.com.br/culturainglesa/&lt;/a&gt;&lt;br /&gt;
  &lt;a href="http://zeus.e-hunter.com.br/sulamerica_candidato/"&gt;http://zeus.e-hunter.com.br/sulamerica_candidato/&lt;/a&gt;&lt;br /&gt;
  &lt;a href="http://zeus.e-hunter.com.br/rjz/"&gt;http://zeus.e-hunter.com.br/rjz/&lt;/a&gt;&lt;br /&gt;
  &lt;a href="http://zeus.e-hunter.com.br/wtcclub/"&gt;http://zeus.e-hunter.com.br/wtcclub/&lt;/a&gt;&lt;br /&gt;
  &lt;a href="http://zeus.e-hunter.com.br/clariant_br/"&gt;http://zeus.e-hunter.com.br/clariant_br/&lt;/a&gt;&lt;br /&gt;
  &lt;a href="http://zeus.e-hunter.com.br/abn/"&gt;http://zeus.e-hunter.com.br/abn/&lt;/a&gt;&lt;br /&gt;
  &lt;a href="http://zeus.e-hunter.com.br/cocacola/"&gt;http://zeus.e-hunter.com.br/cocacola/&lt;/a&gt;&lt;br /&gt;
  &lt;a href="http://zeus.e-hunter.com.br/rjrefrescos/"&gt;http://zeus.e-hunter.com.br/rjrefrescos/&lt;/a&gt;&lt;br /&gt;
  &lt;a href="http://zeus.e-hunter.com.br/consul/"&gt;http://zeus.e-hunter.com.br/consul/&lt;/a&gt;&lt;br /&gt;
  &lt;a href="http://zeus.e-hunter.com.br/aeita/"&gt;http://zeus.e-hunter.com.br/aeita/&lt;/a&gt;&lt;br /&gt;
  &lt;a href="http://zeus.e-hunter.com.br/embraer_pee/"&gt;http://zeus.e-hunter.com.br/embraer_pee/&lt;/a&gt;&lt;br /&gt;
  &lt;a href="http://zeus.e-hunter.com.br/staut/"&gt;http://zeus.e-hunter.com.br/staut/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.3way.com.br/curriculo.php"&gt;3Way&lt;/a&gt; - Gratuito&lt;br /&gt;
  Banco de currículos e vagas  voltadas para tecnologias Java&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.vagas.com.br"&gt;Vagas.com&lt;/a&gt; - Gratuito&lt;br /&gt;
  Site com plataforma centralizada utilizada por várias empresas de TI
  e telecomunicações&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.monsterbrasil.com.br"&gt;Monster Brasil&lt;/a&gt;  - Gratuito&lt;br /&gt;
Franquia da Monster internacional de recrutamento online.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.curriex.com.br/default.asp?codigo=447"&gt;Curriex&lt;/a&gt; - Pago&lt;br /&gt;
Banco de currículos e vagas&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.roberthalf.com.br"&gt;Robert Half&lt;/a&gt; - Gratuito&lt;br /&gt;
Tradicional empresa de RH com banco de currículos e vagas online.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.x25.com.br/empregos"&gt;X25&lt;/a&gt; - Gratuito&lt;br /&gt;
  Empresa de Brasília especializada em cursos de TI com quadro de vagas online.&lt;/li&gt;
&lt;li&gt;  &lt;a href="http://www.novintec.com.br/informacoes_oportunidades.php"&gt;&lt;s&gt;Novintec&lt;/s&gt;&lt;/a&gt; - Gratuito&lt;br /&gt;
  &lt;s&gt;Empresa de BSB também no ramo de cursos de TI, mas com quadro de vagas desatualizado!&lt;/s&gt;&lt;/li&gt;
&lt;li&gt; &lt;a href="http://www.ceviu.com.br/"&gt;CEVIU&lt;/a&gt; - Parcialmente Gratuito&lt;br /&gt;
Banco de currículos e vagas online.&lt;/li&gt;
&lt;li&gt; &lt;a href="http://www.hrsmart.com/"&gt;HRsmart&lt;/a&gt; - Gratuito&lt;br /&gt;
Plataforma online de recrutamento utilizada por várias empresas internacionais/multinacionais. Procure por links, como:&lt;br /&gt;
&lt;a href="http://cpmbraxis.ats.hrsmart.com/cgi-bin/a/mycenter.cgi"&gt;http://cpmbraxis.ats.hrsmart.com/cgi-bin/a/mycenter.cgi&lt;/a&gt;&lt;br /&gt;
Ou simplesmente, use o Google de modo a buscar por:&lt;br /&gt;
&lt;a href="http://www.google.com/search?q=inurl%3Ahrsmart.com/cgi-bin/a/mycenter.cgi&amp;amp;sourceid=navclient-ff&amp;amp;ie=UTF-8&amp;amp;rlz=1B3GGGL_pt-BRBR262BR262"&gt;inurl:hrsmart.com/cgi-bin/a/mycenter.cgi&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Boletins, Foruns, Grupos e Comunidades&lt;/h3&gt;
&lt;p&gt;Esqueça o Tweeter, ninguém (sim, sei que tem muita gente que leva) leva realmente a sério aquilo.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.dfjug.com.br/"&gt;DFJUG&lt;/a&gt;&lt;br /&gt;
    &lt;i&gt;Grupo de Usuários Java do Distrito Federal&lt;/i&gt; com boletins periódicos contendo vagas geralmente relacionadas à Java&lt;br/&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Empresas com Vagas em TI&lt;/h3&gt;
&lt;p&gt;A lista que reuní abaixo é de empresas com atuação direta ou indireta no Distrito Federal aqui do Brasil que atuam no mercado de TI ou oferecem vagas para o setor.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.b2br.com.br/"&gt;B2Br&lt;/a&gt; - Empresa do &lt;a href="http://www.grupotba.com.br/"&gt;Grupo TBA&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.grupotba.com.br/"&gt;NFedoBrasil&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.trueaccess.com.br"&gt;True Access&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.br-tcs.com/"&gt;TCS Brasil&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.astsconsulting.com.br/"&gt;ASTS Consulting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="www.politec.com.br"&gt;Politec&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.poliedro.com.br/"&gt;Poliedro&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ctis.com.br/"&gt;CTIS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cadmus.com.br"&gt;Cadmus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://careers3.accenture.com/taleo/taleo.asp?countryname=Brazil"&gt;Accenture&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cesar.org.br/node/382"&gt;CESAR&lt;br/&gt;
&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Governo, PNUD, Editais e Licitações Simplificadas&lt;/h3&gt;
&lt;p&gt;Frequentemente o governo ou entidades relacionadas contratam diretamente profissionais usando licitações simplificadas para projetos específicos. Para quem nunca passou pelo processo, funciona como um processo seletivo normal e o melhor (ao menos deveria) selecionado.&lt;/p&gt;
&lt;p&gt;As entidades abaixo costumam publicar com certa constância vagas para seus projetos.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.saude.gov.br/svs"&gt;Ministério da Saúde&lt;/a&gt;&lt;br /&gt;
Clicar no link &amp;quot;&lt;a href="http://portal.saude.gov.br/portal/saude/Gestor/area.cfm?id_area=977"&gt;Editais e Licitações&lt;/a&gt;&amp;quot;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://portal.saude.gov.br/portal/saude/Gestor/area.cfm?id_area=977"&gt;PNUD&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fao.org.br"&gt;FAO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.fnde.gov.br/"&gt;FNDE&lt;/a&gt;&lt;br /&gt;Procure o link "Editais"&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.oei.org.br"&gt;OEI&lt;/a&gt;&lt;br /&gt;
Procure o link &amp;quot;Licitações&amp;quot;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Mineirando Oportunidades no Google&lt;/h3&gt;
No Google, procure por expressões, como:
&lt;ul&gt;
  &lt;li&gt;&lt;a href="http://www.google.com/search?q=&amp;quot;trabalhe+conosco&amp;quot;&amp;amp;sourceid=navclient-ff&amp;amp;ie=UTF-8&amp;amp;rlz=1B3GGGL_pt-BRBR262BR262"&gt;"trabalhe conosco"&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://www.google.com/search?q=&amp;quot;vagas+em+aberto&amp;quot;&amp;amp;sourceid=navclient-ff&amp;amp;ie=UTF-8&amp;amp;rlz=1B3GGGL_pt-BRBR262BR262&amp;amp;aq=t"&gt;"vagas em aberto"&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://www.google.com/search?q=site%3Abr+Oportunidades&amp;amp;sourceid=navclient-ff&amp;amp;ie=UTF-8&amp;amp;rlz=1B3GGGL_pt-BRBR262BR262"&gt;site:br
    Oportunidades&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://www.google.com/search?q=&amp;quot;Banco+de+Talentos&amp;quot;&amp;amp;sourceid=navclient-ff&amp;amp;ie=UTF-8&amp;amp;rlz=1B3GGGL_pt-BRBR262BR262"&gt;&amp;quot;Banco de Talentos&amp;quot;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://www.google.com/search?q=&amp;quot;Banco+de+Oportunidades&amp;quot;&amp;amp;sourceid=navclient-ff&amp;amp;ie=UTF-8&amp;amp;rlz=1B3GGGL_pt-BRBR262BR262"&gt;&amp;quot;Banco de Oportunidades&amp;quot;&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://www.google.com/search?q=&amp;quot;trabalhe+com+a+gente&amp;quot;&amp;amp;sourceid=navclient-ff&amp;amp;ie=UTF-8&amp;amp;rlz=1B3GGGL_pt-BRBR262BR262"&gt;"trabalhe com a gente"&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="http://www.google.com/search?q=&amp;quot;jobs/career&amp;quot;&amp;amp;sourceid=navclient-ff&amp;amp;ie=UTF-8&amp;amp;rlz=1B3GGGL_pt-BRBR262BR262"&gt;"jobs/career"&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;procure e-mails, com: &lt;i&gt;careers@&lt;/i&gt; como em: &lt;i&gt;careers@tcs.com &lt;/i&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Outras Dicas&lt;/h3&gt;
Em todos os sites que tiver cadastrado seu currículo, procure atualizá-lo com frequência, mesmo que não mude nada e só coloque um ponto ou traço a mais. Isso é para forçá-lo a aparecer primeiro nas buscas dos sites onde a classificação inicia-se pelo atualizado mais recentemente. Quando for alterá-lo, aproveite para reler tudo e verificar se há erros de ortografia e se seu currículo está bom o suficiente. Aproveite para aperfeiçoá-lo.
&lt;p&gt;Boa sorte!!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-7243880403266552413?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2009/07/procuro-trabalho-com-boa-remuneracao</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-4865917594800345736</guid><pubDate>Sun, 05 Apr 2009 01:37:00 +0000</pubDate><atom:updated>2009-04-06T15:29:52.012-03:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>java</category><category domain='http://www.blogger.com/atom/ns#'>tips</category><category domain='http://www.blogger.com/atom/ns#'>it</category><category domain='http://www.blogger.com/atom/ns#'>web</category><title>woodstock.xhr.post: Do you see Google? See?!</title><description>&lt;h1&gt;How to post a &lt;a href="http://www.json.org/"&gt;JSON&lt;/a&gt; data via &lt;a href="http://www.marciowb.net/blog/2009/files/woodstock/jsdocs/woodstock4_3.xhr.html"&gt;woodstock.xhr.post&lt;/a&gt;?&lt;/h1&gt;
&lt;img src="http://upload.wikimedia.org/wikipedia/en/thumb/b/b7/Woodstock_poster.jpg/250px-Woodstock_poster.jpg" alt="Woodstock Festival" title="Yeah! Just and only three days...!" style="float:left"/&gt;
&lt;p&gt;Sometimes simple things may be hard to do... but I'm one of 'the last &lt;a href="https://woodstock.dev.java.net/index.html"&gt;Woodstock&lt;/a&gt; survives&lt;br /&gt;
- No, I wasn't at &lt;a href="http://en.wikipedia.org/wiki/Woodstock_Festival"&gt;Woodstock Festival &lt;/a&gt;- but, I wanted to.&lt;/p&gt;
&lt;p&gt;I learned the &lt;a href="http://webdev2.sun.com/example/faces/index.jsp"&gt;Woodstock JSF Components&lt;/a&gt; (now &lt;a href="https://woodstock.dev.java.net/index.html"&gt;officially abandoned by Sun&lt;/a&gt;) and I'm using it in at least two projects. Damn! I love &lt;a href="http://www.dojotoolkit.org/"&gt;Dojo&lt;/a&gt;! And Woodstock was all built with Dojo. But, now, after a long time learning (reading, trying, testing, experiencing and going mad), after finally to know what and how to do with Woodstock, the project was buried. I'm desolated!
&lt;p&gt;I did a good work using Woodstock, but now I should migrate to &lt;a href="http://www.icefaces.org/"&gt;Icefaces&lt;/a&gt; (acording Sun), but I don't want and I can't rewrite all my work to another technology.&lt;/p&gt;
&lt;p&gt;Several troubles I had using Woodstock and nearly ten times, several troubles I solved with it.&lt;/p&gt;
&lt;h2&gt;AJAX using Woodstock&lt;/h2&gt;
&lt;p&gt;When I need to use AJAX with Woodstock pages, I don't use &lt;a href="https://jsf-extensions.dev.java.net/"&gt;Dynafaces&lt;/a&gt;. Instead, I used submit or refresh standard Woodstock component feature to do a postback or I use AJAX request with servlet.&lt;/p&gt;
&lt;p&gt;To do a AJAX request using the methdo GET is easy and well documented by Woodstock. Bellow, see example showing how to get customer data via AJAX using only the first and last customer names:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;font color="#000000"&gt;&lt;font color="#000000"&gt;   1:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;function&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;getCustomerByNames&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;lastName&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; firstName&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   2:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; props &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   3:&lt;/font&gt;        &lt;font color="#02b902"&gt;async&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;true&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   4:&lt;/font&gt;
&lt;font color="#990066"&gt;   5:&lt;/font&gt;        &lt;font color="#02b902"&gt;onError&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;function&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;xhr&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   6:&lt;/font&gt;            window&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;alert&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;An&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;error&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;occurs&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;while&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;sending&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;an&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;AJAX&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;request.&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;See:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; xhr&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   7:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   8:&lt;/font&gt;
&lt;font color="#000000"&gt;   9:&lt;/font&gt;        &lt;font color="#02b902"&gt;onReady&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;function&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;xhr&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  10:&lt;/font&gt;            &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; resp &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;eval&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt;(&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; xhr&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;responseText &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt;)&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  11:&lt;/font&gt;            window&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;alert&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;Customer&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;is&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; resp&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;name &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; resp&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;email &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;  
&lt;font color="#000000"&gt;  12:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  13:&lt;/font&gt;
&lt;font color="#000000"&gt;  14:&lt;/font&gt;        &lt;font color="#02b902"&gt;url&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;/AjaxBridge?a=Customer&amp;amp;t=getCustomerByCode&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;
&lt;font color="#990066"&gt;  15:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  16:&lt;/font&gt;
&lt;font color="#000000"&gt;  17:&lt;/font&gt;    props&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;url &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;amp;lastName=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; lastName&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  18:&lt;/font&gt;    props&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;url &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;amp;firstName=&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; firstName&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  19:&lt;/font&gt;
&lt;font color="#990066"&gt;  20:&lt;/font&gt;    woodstock&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;xhr&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;get&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;props&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  21:&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  22:&lt;/font&gt;
&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;From the server-side, each AJAX "Agent" is a subclass of:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;font color="#000000"&gt;&lt;font color="#000000"&gt;   1:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;package&lt;/strong&gt;&lt;/font&gt; br.com.trilha21.web.store.ajax;
&lt;font color="#000000"&gt;   2:&lt;/font&gt;
&lt;font color="#000000"&gt;   3:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; java.io.IOException;
&lt;font color="#000000"&gt;   4:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; java.io.PrintWriter; 
&lt;font color="#990066"&gt;   5:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; java.lang.reflect.Method;
&lt;font color="#000000"&gt;   6:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; java.util.logging.Level;
&lt;font color="#000000"&gt;   7:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; java.util.logging.Logger;
&lt;font color="#000000"&gt;   8:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; javax.servlet.ServletException;
&lt;font color="#000000"&gt;   9:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; javax.servlet.http.HttpServletRequest;
&lt;font color="#990066"&gt;  10:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; javax.servlet.http.HttpServletResponse;
&lt;font color="#000000"&gt;  11:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; net.marciowb.poison.web.jsf.JSFUtil;
&lt;font color="#000000"&gt;  12:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; org.json.JSONException;
&lt;font color="#000000"&gt;  13:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; org.json.JSONObject;
&lt;font color="#000000"&gt;  14:&lt;/font&gt;
&lt;font color="#990066"&gt;  15:&lt;/font&gt;&lt;font color="#6600cc"&gt;/**&lt;/font&gt;
&lt;font color="#000000"&gt;  16:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;
&lt;font color="#000000"&gt;  17:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#02b902"&gt;@author&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;Marcio&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;Wesley&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;Borges&lt;/font&gt;
&lt;font color="#000000"&gt;  18:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*/&lt;/font&gt;
&lt;font color="#000000"&gt;  19:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;class&lt;/strong&gt;&lt;/font&gt; AjaxAgent &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  20:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; Logger logger &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; Logger.&lt;font color="#9966ff"&gt;getLogger&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;AjaxAgent.&lt;font color="#0099ff"&gt;&lt;strong&gt;class&lt;/strong&gt;&lt;/font&gt;.&lt;font color="#9966ff"&gt;getName&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  21:&lt;/font&gt;    
&lt;font color="#000000"&gt;  22:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; String task;  
&lt;font color="#000000"&gt;  23:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;protected&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; HttpServletRequest request;
&lt;font color="#000000"&gt;  24:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;protected&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; HttpServletResponse response;
&lt;font color="#990066"&gt;  25:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;protected&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; JSONObject mainObj;
&lt;font color="#000000"&gt;  26:&lt;/font&gt;    
&lt;font color="#000000"&gt;  27:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;protected&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;AjaxAgent&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;HttpServletRequest request, HttpServletResponse response&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;throws&lt;/strong&gt;&lt;/font&gt; ServletException, IOException &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  28:&lt;/font&gt;        &lt;font color="#cc00cc"&gt;this&lt;/font&gt;.request &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; request;
&lt;font color="#000000"&gt;  29:&lt;/font&gt;        &lt;font color="#cc00cc"&gt;this&lt;/font&gt;.response &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; response;
&lt;font color="#990066"&gt;  30:&lt;/font&gt;        response.&lt;font color="#9966ff"&gt;setBufferSize&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;16384&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  31:&lt;/font&gt;        task &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;getParam&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;t&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  32:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;try&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  33:&lt;/font&gt;            mainObj &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;JSONObject&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;        
&lt;font color="#000000"&gt;  34:&lt;/font&gt;            mainObj.&lt;font color="#9966ff"&gt;put&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;agent&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;, &lt;font color="#9966ff"&gt;getClass&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;.&lt;font color="#9966ff"&gt;getSimpleName&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#990066"&gt;  35:&lt;/font&gt;            mainObj.&lt;font color="#9966ff"&gt;put&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;by&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;, task&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  36:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;catch&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;JSONException ex&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  37:&lt;/font&gt;            &lt;font color="#006699"&gt;&lt;strong&gt;throw&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;ServletException&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;ex&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  38:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  39:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  40:&lt;/font&gt;    
&lt;font color="#000000"&gt;  41:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; String &lt;font color="#9966ff"&gt;getTask&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  42:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; task;
&lt;font color="#000000"&gt;  43:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  44:&lt;/font&gt;    
&lt;font color="#990066"&gt;  45:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;protected&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/font&gt; JSONObject &lt;font color="#9966ff"&gt;toJSONObject&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;Object bean&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  46:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;try&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  47:&lt;/font&gt;            &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; JSFUtil.&lt;font color="#9966ff"&gt;buildJSONObject&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;bean&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  48:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;catch&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;Exception ex&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  49:&lt;/font&gt;            logger.&lt;font color="#9966ff"&gt;log&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;Level.SEVERE, &lt;font color="#cc00cc"&gt;null&lt;/font&gt;, ex&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#990066"&gt;  50:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  51:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;null&lt;/font&gt;;
&lt;font color="#000000"&gt;  52:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  53:&lt;/font&gt;    
&lt;font color="#000000"&gt;  54:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;outputJson&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;throws&lt;/strong&gt;&lt;/font&gt; IOException, JSONException &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  55:&lt;/font&gt;        response.&lt;font color="#9966ff"&gt;setContentType&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;text/json;charset=UTF-8&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  56:&lt;/font&gt;        response.&lt;font color="#9966ff"&gt;setHeader&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;Cache-Control&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;, &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;no-cache&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;        
&lt;font color="#000000"&gt;  57:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; PrintWriter writer &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; response.&lt;font color="#9966ff"&gt;getWriter&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  58:&lt;/font&gt;        writer.&lt;font color="#9966ff"&gt;print&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;mainObj.&lt;font color="#9966ff"&gt;toString&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  59:&lt;/font&gt;        writer.&lt;font color="#9966ff"&gt;close&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#990066"&gt;  60:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt; 
&lt;font color="#000000"&gt;  61:&lt;/font&gt;    
&lt;font color="#000000"&gt;  62:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;protected&lt;/strong&gt;&lt;/font&gt; String &lt;font color="#9966ff"&gt;getParam&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;String name&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  63:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; request.&lt;font color="#9966ff"&gt;getParameter&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;name&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  64:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  65:&lt;/font&gt;
&lt;font color="#000000"&gt;  66:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;protected&lt;/strong&gt;&lt;/font&gt; Long &lt;font color="#9966ff"&gt;getParamAsLong&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;String name&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  67:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; String p &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;getParam&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;name&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  68:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; Long.&lt;font color="#9966ff"&gt;valueOf&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;p&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  69:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  70:&lt;/font&gt;
&lt;font color="#000000"&gt;  71:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;exec&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;throws&lt;/strong&gt;&lt;/font&gt; ServletException, IOException &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  72:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;try&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  73:&lt;/font&gt;            &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; Method m &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;getClass&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;.&lt;font color="#9966ff"&gt;getMethod&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;task&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  74:&lt;/font&gt;            &lt;font color="#ff8400"&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  75:&lt;/font&gt;            m.&lt;font color="#9966ff"&gt;invoke&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#cc00cc"&gt;this&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  76:&lt;/font&gt;            &lt;font color="#9966ff"&gt;outputJson&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  77:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;catch&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;NoSuchMethodException ex&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  78:&lt;/font&gt;            response.&lt;font color="#9966ff"&gt;sendError&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt; HttpServletResponse.SC_NOT_IMPLEMENTED &lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  79:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;catch&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;Exception ex&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  80:&lt;/font&gt;            logger.&lt;font color="#9966ff"&gt;log&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;Level.SEVERE, &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;Error&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;while&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;executing&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;an&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;AJAX&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;request.&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;, ex&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  81:&lt;/font&gt;            response.&lt;font color="#9966ff"&gt;sendError&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt; HttpServletResponse.SC_INTERNAL_SERVER_ERROR, ex.&lt;font color="#9966ff"&gt;toString&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  82:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  83:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  84:&lt;/font&gt;
&lt;font color="#990066"&gt;  85:&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  86:&lt;/font&gt;
&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;The servlet to attend AJAX request is like:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;font color="#000000"&gt;&lt;font color="#000000"&gt;   1:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;package&lt;/strong&gt;&lt;/font&gt; br.com.trilha21.web.store.ajax;
&lt;font color="#000000"&gt;   2:&lt;/font&gt;
&lt;font color="#000000"&gt;   3:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; java.io.IOException;
&lt;font color="#000000"&gt;   4:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; java.lang.reflect.Constructor;
&lt;font color="#990066"&gt;   5:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; java.util.Map;
&lt;font color="#000000"&gt;   6:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; java.util.WeakHashMap;
&lt;font color="#000000"&gt;   7:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; java.util.logging.Level;
&lt;font color="#000000"&gt;   8:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; java.util.logging.Logger;
&lt;font color="#000000"&gt;   9:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; javax.servlet.ServletException;
&lt;font color="#990066"&gt;  10:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; javax.servlet.http.HttpServlet;
&lt;font color="#000000"&gt;  11:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; javax.servlet.http.HttpServletRequest;
&lt;font color="#000000"&gt;  12:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; javax.servlet.http.HttpServletResponse;
&lt;font color="#000000"&gt;  13:&lt;/font&gt;
&lt;font color="#000000"&gt;  14:&lt;/font&gt;&lt;font color="#6600cc"&gt;/**&lt;/font&gt;
&lt;font color="#990066"&gt;  15:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#02b902"&gt;@author&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;Marcio&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;Wesley&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;Borges&lt;/font&gt;
&lt;font color="#000000"&gt;  16:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*/&lt;/font&gt;
&lt;font color="#000000"&gt;  17:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;class&lt;/strong&gt;&lt;/font&gt; AjaxBridgeServlet &lt;font color="#006699"&gt;&lt;strong&gt;extends&lt;/strong&gt;&lt;/font&gt; HttpServlet &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  18:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; Logger logger &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; Logger.&lt;font color="#9966ff"&gt;getLogger&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;AjaxBridgeServlet.&lt;font color="#0099ff"&gt;&lt;strong&gt;class&lt;/strong&gt;&lt;/font&gt;.&lt;font color="#9966ff"&gt;getName&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  19:&lt;/font&gt;    
&lt;font color="#990066"&gt;  20:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; String PCKG &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; AjaxBridgeServlet.&lt;font color="#0099ff"&gt;&lt;strong&gt;class&lt;/strong&gt;&lt;/font&gt;.&lt;font color="#9966ff"&gt;getPackage&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;.&lt;font color="#9966ff"&gt;getName&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;.agents.&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;;
&lt;font color="#000000"&gt;  21:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; Map&lt;font color="#000000"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/font&gt;String, Class&lt;font color="#000000"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/font&gt;? &lt;font color="#006699"&gt;&lt;strong&gt;extends&lt;/strong&gt;&lt;/font&gt; AjaxAgent&lt;font color="#000000"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/font&gt; agents &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/font&gt; WeakHashMap&lt;font color="#000000"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/font&gt;String, Class&lt;font color="#000000"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/font&gt;? &lt;font color="#006699"&gt;&lt;strong&gt;extends&lt;/strong&gt;&lt;/font&gt; AjaxAgent&lt;font color="#000000"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  22:&lt;/font&gt;
&lt;font color="#000000"&gt;  23:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;static&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; String AGENT_NAME_SUFIX &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;Agent&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;;
&lt;font color="#000000"&gt;  24:&lt;/font&gt;   
&lt;font color="#990066"&gt;  25:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;private&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/font&gt;T &lt;font color="#006699"&gt;&lt;strong&gt;extends&lt;/strong&gt;&lt;/font&gt; AjaxAgent&lt;font color="#000000"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/font&gt; Class&lt;font color="#000000"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/font&gt;T&lt;font color="#000000"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;getAgent&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;String agentName&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  26:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;!&lt;/strong&gt;&lt;/font&gt;agentName.&lt;font color="#9966ff"&gt;endsWith&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;AGENT_NAME_SUFIX&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  27:&lt;/font&gt;            agentName&lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;AGENT_NAME_SUFIX;
&lt;font color="#000000"&gt;  28:&lt;/font&gt;
&lt;font color="#000000"&gt;  29:&lt;/font&gt;        Class&lt;font color="#000000"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/font&gt;T&lt;font color="#000000"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/font&gt; agentClass &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;Class&lt;font color="#000000"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/font&gt;T&lt;font color="#000000"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;agents.&lt;font color="#9966ff"&gt;get&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;agentName&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#990066"&gt;  30:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;agentClass&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#cc00cc"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  31:&lt;/font&gt;            &lt;font color="#006699"&gt;&lt;strong&gt;try&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  32:&lt;/font&gt;                agentClass &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;Class&lt;font color="#000000"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/font&gt;T&lt;font color="#000000"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; Class.&lt;font color="#9966ff"&gt;forName&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt; PCKG &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; agentName &lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  33:&lt;/font&gt;            &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;catch&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;ClassNotFoundException ex&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  34:&lt;/font&gt;                &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;null&lt;/font&gt;;
&lt;font color="#990066"&gt;  35:&lt;/font&gt;            &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  36:&lt;/font&gt;            agents.&lt;font color="#9966ff"&gt;put&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;agentName, agentClass&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  37:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  38:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; agentClass;
&lt;font color="#000000"&gt;  39:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  40:&lt;/font&gt;    
&lt;font color="#000000"&gt;  41:&lt;/font&gt;    &lt;font color="#6600cc"&gt;/**&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;
&lt;font color="#000000"&gt;  42:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;Processes&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;requests&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;for&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;both&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;HTTP&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;code&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#6600cc"&gt;GET&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;code&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;and&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;code&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#6600cc"&gt;POST&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;code&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;methods&lt;/font&gt;&lt;font color="#6600cc"&gt;.&lt;/font&gt;
&lt;font color="#000000"&gt;  43:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#02b902"&gt;@param&lt;/font&gt;&lt;font color="#02b902"&gt; &lt;/font&gt;&lt;font color="#cc6600"&gt;request&lt;/font&gt;&lt;font color="#02b902"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;servlet&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;request&lt;/font&gt;
&lt;font color="#000000"&gt;  44:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#02b902"&gt;@param&lt;/font&gt;&lt;font color="#02b902"&gt; &lt;/font&gt;&lt;font color="#cc6600"&gt;response&lt;/font&gt;&lt;font color="#02b902"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;servlet&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;response&lt;/font&gt;
&lt;font color="#990066"&gt;  45:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*/&lt;/font&gt;
&lt;font color="#000000"&gt;  46:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;protected&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;processRequest&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;HttpServletRequest request, HttpServletResponse response&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  47:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;throws&lt;/strong&gt;&lt;/font&gt; ServletException, IOException &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  48:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;try&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  49:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;response.setContentType(&amp;quot;text/html;charset=UTF-8&amp;quot;);&lt;/font&gt;
&lt;font color="#990066"&gt;  50:&lt;/font&gt;            &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; String agentName &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; request.&lt;font color="#9966ff"&gt;getParameter&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;a&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  51:&lt;/font&gt;            &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; Class&lt;font color="#000000"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/font&gt;? &lt;font color="#006699"&gt;&lt;strong&gt;extends&lt;/strong&gt;&lt;/font&gt; AjaxAgent&lt;font color="#000000"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/font&gt; agentClass &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;getAgent&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;agentName&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  52:&lt;/font&gt;            &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;agentClass &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  53:&lt;/font&gt;                response.&lt;font color="#9966ff"&gt;sendError&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;HttpServletResponse.SC_NOT_IMPLEMENTED&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  54:&lt;/font&gt;                &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#990066"&gt;  55:&lt;/font&gt;            &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  56:&lt;/font&gt;
&lt;font color="#000000"&gt;  57:&lt;/font&gt;            &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; Constructor agentConstructor &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; agentClass.&lt;font color="#9966ff"&gt;getConstructors&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;[&lt;font color="#ff0000"&gt;0&lt;/font&gt;];
&lt;font color="#000000"&gt;  58:&lt;/font&gt;            &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; AjaxAgent agent &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;AjaxAgent&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;agentConstructor.&lt;font color="#9966ff"&gt;newInstance&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;request, response&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  59:&lt;/font&gt;            agent.&lt;font color="#9966ff"&gt;exec&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#990066"&gt;  60:&lt;/font&gt;            &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  61:&lt;/font&gt;            
&lt;font color="#000000"&gt;  62:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;catch&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;Throwable ex&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  63:&lt;/font&gt;            logger.&lt;font color="#9966ff"&gt;log&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;Level.SEVERE, &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;Error&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;in&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;AjaxBridgeServlet&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;while&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;processing&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;the&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;request:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; request, ex&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  64:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  65:&lt;/font&gt;        
&lt;font color="#000000"&gt;  66:&lt;/font&gt;        response.&lt;font color="#9966ff"&gt;sendError&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;HttpServletResponse.SC_INTERNAL_SERVER_ERROR&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  67:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt; 
&lt;font color="#000000"&gt;  68:&lt;/font&gt;
&lt;font color="#000000"&gt;  69:&lt;/font&gt;    &lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;&amp;lt;editor-fold&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;defaultstate=&amp;quot;collapsed&amp;quot;&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;desc=&amp;quot;HttpServlet&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;methods.&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;Click&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;on&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;the&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;+&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;sign&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;on&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;the&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;left&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;to&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;edit&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;the&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;code.&amp;quot;&amp;gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  70:&lt;/font&gt;    &lt;font color="#6600cc"&gt;/**&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;
&lt;font color="#000000"&gt;  71:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;Handles&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;the&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;HTTP&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;code&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#6600cc"&gt;GET&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;code&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;method&lt;/font&gt;&lt;font color="#6600cc"&gt;.&lt;/font&gt;
&lt;font color="#000000"&gt;  72:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#02b902"&gt;@param&lt;/font&gt;&lt;font color="#02b902"&gt; &lt;/font&gt;&lt;font color="#cc6600"&gt;request&lt;/font&gt;&lt;font color="#02b902"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;servlet&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;request&lt;/font&gt;
&lt;font color="#000000"&gt;  73:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#02b902"&gt;@param&lt;/font&gt;&lt;font color="#02b902"&gt; &lt;/font&gt;&lt;font color="#cc6600"&gt;response&lt;/font&gt;&lt;font color="#02b902"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;servlet&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;response&lt;/font&gt;
&lt;font color="#000000"&gt;  74:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*/&lt;/font&gt;
&lt;font color="#990066"&gt;  75:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;protected&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;doGet&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;HttpServletRequest request, HttpServletResponse response&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  76:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;throws&lt;/strong&gt;&lt;/font&gt; ServletException, IOException &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  77:&lt;/font&gt;        &lt;font color="#9966ff"&gt;processRequest&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;request, response&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  78:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt; 
&lt;font color="#000000"&gt;  79:&lt;/font&gt;
&lt;font color="#990066"&gt;  80:&lt;/font&gt;    &lt;font color="#6600cc"&gt;/**&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;
&lt;font color="#000000"&gt;  81:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;Handles&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;the&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;HTTP&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;code&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#6600cc"&gt;POST&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;code&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;method&lt;/font&gt;&lt;font color="#6600cc"&gt;.&lt;/font&gt;
&lt;font color="#000000"&gt;  82:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#02b902"&gt;@param&lt;/font&gt;&lt;font color="#02b902"&gt; &lt;/font&gt;&lt;font color="#cc6600"&gt;request&lt;/font&gt;&lt;font color="#02b902"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;servlet&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;request&lt;/font&gt;
&lt;font color="#000000"&gt;  83:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#02b902"&gt;@param&lt;/font&gt;&lt;font color="#02b902"&gt; &lt;/font&gt;&lt;font color="#cc6600"&gt;response&lt;/font&gt;&lt;font color="#02b902"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;servlet&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;response&lt;/font&gt;
&lt;font color="#000000"&gt;  84:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*/&lt;/font&gt;
&lt;font color="#990066"&gt;  85:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;protected&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;doPost&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;HttpServletRequest request, HttpServletResponse response&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  86:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;throws&lt;/strong&gt;&lt;/font&gt; ServletException, IOException &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  87:&lt;/font&gt;        &lt;font color="#9966ff"&gt;processRequest&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;request, response&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  88:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  89:&lt;/font&gt;
&lt;font color="#990066"&gt;  90:&lt;/font&gt;    &lt;font color="#6600cc"&gt;/**&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;
&lt;font color="#000000"&gt;  91:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;Returns&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;a&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;short&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;description&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;of&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;the&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;servlet&lt;/font&gt;&lt;font color="#6600cc"&gt;.&lt;/font&gt;
&lt;font color="#000000"&gt;  92:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*/&lt;/font&gt;
&lt;font color="#000000"&gt;  93:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; String &lt;font color="#9966ff"&gt;getServletInfo&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  94:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;Short&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;description&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;;
&lt;font color="#990066"&gt;  95:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;&amp;lt;/editor-fold&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  96:&lt;/font&gt;
&lt;font color="#000000"&gt;  97:&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  98:&lt;/font&gt;
&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;And, finally, the implementantion of the AJAX Agent (who is attending the AJAX requests) is like:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;font color="#000000"&gt;&lt;font color="#000000"&gt;   1:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;package&lt;/strong&gt;&lt;/font&gt; br.com.trilha21.web.store.ajax.agents;
&lt;font color="#000000"&gt;   2:&lt;/font&gt;
&lt;font color="#000000"&gt;   3:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; br.com.trilha21.web.store.ajax.AjaxAgent;
&lt;font color="#000000"&gt;   4:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; br.com.trilha21.web.store.dao.Customer;
&lt;font color="#990066"&gt;   5:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; br.com.trilha21.web.store.ejb.CustomerLocal;
&lt;font color="#000000"&gt;   6:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; java.io.IOException;
&lt;font color="#000000"&gt;   7:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; javax.servlet.ServletException;
&lt;font color="#000000"&gt;   8:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; javax.servlet.http.HttpServletRequest;
&lt;font color="#000000"&gt;   9:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; javax.servlet.http.HttpServletResponse;
&lt;font color="#990066"&gt;  10:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; net.marciowb.poison.ejb.EJBUtil;
&lt;font color="#000000"&gt;  11:&lt;/font&gt;&lt;font color="#009966"&gt;&lt;strong&gt;import&lt;/strong&gt;&lt;/font&gt; org.json.JSONException;
&lt;font color="#000000"&gt;  12:&lt;/font&gt;
&lt;font color="#000000"&gt;  13:&lt;/font&gt;&lt;font color="#6600cc"&gt;/**&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;
&lt;font color="#000000"&gt;  14:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#02b902"&gt;@author&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;Marcio&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;Wesley&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;Borges&lt;/font&gt;
&lt;font color="#990066"&gt;  15:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*/&lt;/font&gt;
&lt;font color="#000000"&gt;  16:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;class&lt;/strong&gt;&lt;/font&gt; CustomerAgent &lt;font color="#006699"&gt;&lt;strong&gt;extends&lt;/strong&gt;&lt;/font&gt; AjaxAgent &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  17:&lt;/font&gt;    
&lt;font color="#000000"&gt;  18:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; CustomerLocal customerBean &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; EJBUtil.&lt;font color="#9966ff"&gt;lookupLocalBean&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;CustomerLocal.&lt;font color="#0099ff"&gt;&lt;strong&gt;class&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  19:&lt;/font&gt;    
&lt;font color="#990066"&gt;  20:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;CustomerAgent&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;HttpServletRequest request, HttpServletResponse response&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;throws&lt;/strong&gt;&lt;/font&gt; ServletException, IOException &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  21:&lt;/font&gt;        &lt;font color="#cc00cc"&gt;super&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;request,response&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  22:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  23:&lt;/font&gt;    
&lt;font color="#000000"&gt;  24:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;getCustomerByDoc&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;throws&lt;/strong&gt;&lt;/font&gt; ServletException, IOException, JSONException &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  25:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; String customerDoc &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;getParam&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;customerDoc&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  26:&lt;/font&gt;        
&lt;font color="#000000"&gt;  27:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; Customer customer &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; customerBean.&lt;font color="#9966ff"&gt;get&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;customerDoc&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  28:&lt;/font&gt;        mainObj.&lt;font color="#9966ff"&gt;put&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;customer&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;, &lt;font color="#9966ff"&gt;toJSONObject&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;customer&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  29:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  30:&lt;/font&gt;    
&lt;font color="#000000"&gt;  31:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;getCustomerByNames&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;throws&lt;/strong&gt;&lt;/font&gt; ServletException, IOException, JSONException &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  32:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; String last &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;getParam&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;lastName&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  33:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; String first &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;getParam&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;firstName&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  34:&lt;/font&gt;        
&lt;font color="#990066"&gt;  35:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; Customer customer &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; customerBean.&lt;font color="#9966ff"&gt;getCustomerByNames&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;last,first&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  36:&lt;/font&gt;        mainObj.&lt;font color="#9966ff"&gt;put&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;customer&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;, &lt;font color="#9966ff"&gt;toJSONObject&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;customer&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  37:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  38:&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  39:&lt;/font&gt;
&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;The code above, works to HTTP requests (via GET method), but it doesn't works to post data (via POST method). To post data using &lt;code&gt;woodstock.xhr&lt;/code&gt;, you must use &lt;code&gt;woodstock.xhr.post&lt;/code&gt; instead of &lt;code&gt;woodstock.xhr.get&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Posting: woodstock.xhr.post&lt;/h2&gt;
&lt;p&gt;After quickly googling for "woodstock.xhr.post", I cried, 'cause nothing was returned! So, how to post (and recover) data via "woodstock.xhr.post" stuff?&lt;/p&gt;
&lt;p&gt;Seeing the woodstock JS documentation, you will find the mention to the parameter &lt;code&gt;content&lt;/code&gt;. All post data must be 'posted' via this parameter. So, the idea to pass complex data (as objects with several kinds of properties) is to encode the data in client side and decode in server side. As example, you can pass a object using &lt;a href="http://en.wikipedia.org/wiki/JSON"&gt;JSON&lt;/a&gt; and decoding it using Java &lt;a href="http://www.json.org/java/index.html"&gt;JSON&lt;/a&gt; library at server side.&lt;/p&gt;
&lt;p&gt;Bellow you see (&lt;code&gt;Object.toJSON&lt;/code&gt; is a &lt;a href="http://www.prototypejs.org/api/object"&gt;Prototype&lt;/a&gt; utility method) the equivalent post data of the previous client side code supplied:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;font color="#000000"&gt;&lt;font color="#000000"&gt;   1:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;function&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;getCustomerByNames&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;lastName&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; firstName&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   2:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; props &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   3:&lt;/font&gt;        &lt;font color="#02b902"&gt;async&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;true&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   4:&lt;/font&gt;
&lt;font color="#990066"&gt;   5:&lt;/font&gt;        &lt;font color="#02b902"&gt;onError&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;function&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;xhr&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   6:&lt;/font&gt;            window&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;alert&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;An&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;error&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;occurs&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;while&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;sending&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;an&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;AJAX&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;request.&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;See:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; xhr&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   7:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   8:&lt;/font&gt;
&lt;font color="#000000"&gt;   9:&lt;/font&gt;        &lt;font color="#02b902"&gt;onReady&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;function&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;xhr&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  10:&lt;/font&gt;            &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; resp &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;eval&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt;(&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; xhr&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;responseText &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt;)&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  11:&lt;/font&gt;            window&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;alert&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;Customer&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;is&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; resp&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;name &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; resp&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;email &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;  
&lt;font color="#000000"&gt;  12:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  13:&lt;/font&gt;
&lt;font color="#000000"&gt;  14:&lt;/font&gt;        &lt;font color="#02b902"&gt;url&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;/AjaxBridge?a=Customer&amp;amp;t=getCustomerByCode&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt;
&lt;div style="display:block;border: 1px dotted red"&gt;
&lt;font color="#990066"&gt;  15:&lt;/font&gt;        &lt;font color="#02b902"&gt;content&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;Object&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;toJSON&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  16:&lt;/font&gt;            &lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt;lastName&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt; lastName&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  17:&lt;/font&gt;            &lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt;firstName&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt; firstName
&lt;font color="#000000"&gt;  18:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;font color="#000000"&gt;  19:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  20:&lt;/font&gt;
&lt;font color="#000000"&gt;  21:&lt;/font&gt;    woodstock&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;xhr&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;post&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;props&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  22:&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  23:&lt;/font&gt;
&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;To read the &lt;code style="color:green"&gt;content&lt;/code&gt; parameter passed above in the servlet, you can do:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;font color="#000000"&gt;&lt;font color="#000000"&gt;   1:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;class&lt;/strong&gt;&lt;/font&gt; CustomerAgent &lt;font color="#006699"&gt;&lt;strong&gt;extends&lt;/strong&gt;&lt;/font&gt; AjaxAgent &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   2:&lt;/font&gt;    
&lt;font color="#000000"&gt;   3:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; CustomerLocal customerBean &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; EJBUtil.&lt;font color="#9966ff"&gt;lookupLocalBean&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;CustomerLocal.&lt;font color="#0099ff"&gt;&lt;strong&gt;class&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;   4:&lt;/font&gt;    
&lt;font color="#990066"&gt;   5:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;CustomerAgent&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;HttpServletRequest request, HttpServletResponse response&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;throws&lt;/strong&gt;&lt;/font&gt; ServletException, IOException &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   6:&lt;/font&gt;        &lt;font color="#cc00cc"&gt;super&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;request,response&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;   7:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   8:&lt;/font&gt;    
&lt;font color="#000000"&gt;   9:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;getCustomerByDoc&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;throws&lt;/strong&gt;&lt;/font&gt; ServletException, IOException, JSONException &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  10:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; String customerDoc &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;getParam&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;customerDoc&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  11:&lt;/font&gt;        
&lt;font color="#000000"&gt;  12:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; Customer customer &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; customerBean.&lt;font color="#9966ff"&gt;get&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;customerDoc&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  13:&lt;/font&gt;        mainObj.&lt;font color="#9966ff"&gt;put&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;customer&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;, &lt;font color="#9966ff"&gt;toJSONObject&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;customer&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  14:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  15:&lt;/font&gt;
&lt;div style="border:1px dashed blue"&gt;
&lt;font color="#000000"&gt;  16:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;void&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;getCustomerByNames&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;throws&lt;/strong&gt;&lt;/font&gt; ServletException, IOException, JSONException &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  17:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; String data &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; IOUtil.&lt;font color="#9966ff"&gt;readText&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;request.&lt;font color="#9966ff"&gt;getInputStream&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt;Reads&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;the&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;'content'&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;parameter&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;-&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;it's&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;equivalent&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;to&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;the&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;post&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;body.&lt;/font&gt;
&lt;font color="#000000"&gt;  18:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; JSONObject json &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;JSONObject&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;data&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  19:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; String lastName &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; json.&lt;font color="#9966ff"&gt;getString&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;lastName&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#990066"&gt;  20:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; String firstName &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; json.&lt;font color="#9966ff"&gt;getString&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;firstName&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  21:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; Customer customer &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; customerBean.&lt;font color="#9966ff"&gt;getCustomerByNames&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;lastName,firstName&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  22:&lt;/font&gt;        mainObj.&lt;font color="#9966ff"&gt;put&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;customer&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;, &lt;font color="#9966ff"&gt;toJSONObject&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;customer&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  23:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;font color="#000000"&gt;  24:&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  25:&lt;/font&gt;
&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;Good Icefaces look! I'll still with Woodstock for now.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-4865917594800345736?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2009/04/woodstockxhrpost-do-you-see-google-see</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-5835495376167042069</guid><pubDate>Tue, 24 Mar 2009 20:42:00 +0000</pubDate><atom:updated>2009-03-24T17:51:51.380-03:00</atom:updated><title>Gilmar Mendes em Oferta</title><description>&lt;p&gt;Hoje li no site da &lt;a href="http://www1.folha.uol.com.br/folha/brasil/ult96u539655.shtml"&gt;Folha a matéria "Estudantes protestam contra Gilmar Mendes em sabatina"&lt;/a&gt;, li e resolvi compartilhar no Google Reader e anotar um comentário &lt;a href="http://www.marciowb.net/blog/2008/07/satyagraha-o-bom-agente-e-o-paciente"&gt;linkando para umas besteiras que escrevi aqui no blog&lt;/a&gt;.&lt;/p&gt;
Neste blog, ao fazer a pesquisa por "Gilmar Mendes", fiquei surpreso ao ver o anúncio abaixo:&lt;br&gt;
&lt;img src="http://www.marciowb.net/blog/2009/03/img/gilmar_mendes_no_ml.jpg" alt="Gilmar Mendes em até 18x sem Juros no Mercado Livre"&gt;&lt;br&gt;
Agora a pergunta: Alguém se interessa em comprar? Quanto vale? Que serventia tem isso?!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-5835495376167042069?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2009/03/gilmar-mendes-em-oferta</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-2636868288204928243</guid><pubDate>Thu, 12 Mar 2009 22:07:00 +0000</pubDate><atom:updated>2009-03-13T10:13:07.682-03:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>java</category><category domain='http://www.blogger.com/atom/ns#'>tips</category><category domain='http://www.blogger.com/atom/ns#'>it</category><title>Coding: Avoiding unnecessary locking</title><description>The code bellow, extracted from &lt;code&gt;java.util.regex.Pattern&lt;/code&gt;, avoids unnecessary locking. Look the statement &lt;code&gt;if (!compiled) {&lt;/code&gt;, it appears twice times because in the first time, we don't need to create a lock point, but if the code isn't "compiled" (&lt;code&gt;!compiled&lt;/code&gt; evaluates true), so it creates a lock point and because the condition of variable &lt;code&gt;compiled&lt;/code&gt; can be changed from the first time that it was evaluated (eg.: now &lt;code&gt;!compiled&lt;/code&gt; can be evaluated to false, because it was "compiled" by another thread, between the first evaluation and the lock point). It avoids unnecessary retention in the case of the first evaluation was &lt;code&gt;false&lt;/code&gt;, because in the entire lifecicly of the object there is only a transition of the variable &lt;code&gt;compiled&lt;/code&gt;, from &lt;code&gt;false&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt;, so only one time in the entire lifecicly, the lock point will be reached. It's a good technique! Think about it!
&lt;pre class="code"&gt;&lt;font color="#000000"&gt;&lt;font color="#000000"&gt;   1:&lt;/font&gt;    &lt;font color="#6600cc"&gt;/**&lt;/font&gt;
&lt;font color="#000000"&gt;   2:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;Creates&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;a&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;matcher&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;that&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;will&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;match&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;the&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;given&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;input&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;against&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;this&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;pattern&lt;/font&gt;&lt;font color="#6600cc"&gt;.&lt;/font&gt;
&lt;font color="#000000"&gt;   3:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&lt;/font&gt;&lt;font color="#0000ff"&gt;p&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   4:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;
&lt;font color="#990066"&gt;   5:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#02b902"&gt;@param&lt;/font&gt;&lt;font color="#02b902"&gt; &lt;/font&gt;&lt;font color="#02b902"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;input&lt;/font&gt;
&lt;font color="#000000"&gt;   6:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;The&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;character&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;sequence&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;to&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;be&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;matched&lt;/font&gt;
&lt;font color="#000000"&gt;   7:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;
&lt;font color="#000000"&gt;   8:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#02b902"&gt;@return&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;A&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;new&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;matcher&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;for&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;this&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;pattern&lt;/font&gt;
&lt;font color="#000000"&gt;   9:&lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt; &lt;/font&gt;&lt;font color="#6600cc"&gt;*/&lt;/font&gt;
&lt;font color="#990066"&gt;  10:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; Matcher &lt;font color="#9966ff"&gt;matcher&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;CharSequence input&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;div style="border:thin solid green"&gt;&lt;font color="#000000"&gt;  11:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;!&lt;/strong&gt;&lt;/font&gt;compiled&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  12:&lt;/font&gt;            &lt;font color="#006699"&gt;&lt;strong&gt;synchronized&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#cc00cc"&gt;this&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  13:&lt;/font&gt;                &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;!&lt;/strong&gt;&lt;/font&gt;compiled&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  14:&lt;/font&gt;                    &lt;font color="#9966ff"&gt;compile&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#990066"&gt;  15:&lt;/font&gt;            &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  16:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;/div&gt;
&lt;font color="#000000"&gt;  17:&lt;/font&gt;        Matcher m &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;Matcher&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#cc00cc"&gt;this&lt;/font&gt;, input&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  18:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; m;
&lt;font color="#000000"&gt;  19:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  20:&lt;/font&gt;
&lt;/font&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-2636868288204928243?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2009/03/coding-avoiding-unecessary-locking</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-7574963988772395264</guid><pubDate>Sat, 07 Mar 2009 03:56:00 +0000</pubDate><atom:updated>2009-03-12T19:30:40.906-03:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>tips</category><category domain='http://www.blogger.com/atom/ns#'>it</category><title>Poor Coding</title><description>It'snt a joke - the source code below was extracted from the website &lt;a href="http://www.mercadolivre.com.br/"&gt;Mercado Livre&lt;/a&gt;.
&lt;pre class="code"&gt;&lt;font color="#000000"&gt;&lt;font color="#000000"&gt;   1:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt;document.form1.as_observaciones.innerText&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;=&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;'';&lt;/font&gt;
&lt;font color="#000000"&gt;   2:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt;N&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt;Y&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   3:&lt;/font&gt;document&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;form1&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;as_retiro&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;0&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;checked &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;true&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   4:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;else&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;document&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;form1&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;as_retiro&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;checked &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;true&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;   5:&lt;/font&gt;
&lt;/font&gt;&lt;/pre&gt;
Do you believe?!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-7574963988772395264?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2009/03/poor-coding</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-2519620017403611596</guid><pubDate>Fri, 06 Mar 2009 17:49:00 +0000</pubDate><atom:updated>2009-03-06T17:25:46.088-03:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>electronic</category><category domain='http://www.blogger.com/atom/ns#'>tips</category><title>Instalando permanentemente um GPS Bluetooth no carro</title><description>&lt;p&gt;Uso muito GPSs em meus testes de desenvolvimento e por isso os tenho por perto para essas horas programadas, mas já não os uso tanto para me localizar, pois aqui no Plano Piloto de Brasília, tudo é de fácil localização. Por isso, não é a todo momento que eu preciso de auxílio de algum sistema de navegação por GPS, mas quando se precisa, muitas vezes não tenho o GPS em mão, naquela hora, naquele momento - mesmo tendo à disposição uma dezena de diferentes modelos... Uma coisa que eu sempre ando, é com meus celulares: &lt;a href="http://pmstrk.mercadolivre.com.br/jm/PmsTrk?tool=5515879&amp;go=http://celulares.mercadolivre.com.br/Nokia-N80_Qshow_30"&gt;Nokia N80&lt;/a&gt; e &lt;a href="http://pmstrk.mercadolivre.com.br/jm/PmsTrk?tool=5515879&amp;go=http://celulares.mercadolivre.com.br/HTC-TOUCH-P3451"&gt;HTC Touch P3451&lt;/a&gt; (Windows Mobile 6), mas eles não tem GPS interno e por isso, preciso de um &lt;a href="http://lista.mercadolivre.com.br/_CustId_28374838"&gt;GPS Bluetooth&lt;/a&gt; para usar com estes celulares. Poderia usar o sistema do Google Maps das células da rede GSM, mas a margem de erro frequentemente é maior que 900 metros e isso nem sempre é tolerável. Também poderia deixar meu &lt;a href="http://pmstrk.mercadolivre.com.br/jm/PmsTrk?tool=5515879&amp;go=http://lista.mercadolivre.com.br/GPS-Garmin-60CSX"&gt;GPS Garmin 60CSX&lt;/a&gt; no carro ou usar um &lt;a href="http://pmstrk.mercadolivre.com.br/jm/PmsTrk?tool=5515879&amp;go=http://lista.mercadolivre.com.br/navegador"&gt;navegador veicular&lt;/a&gt;, mas sempre corro o risco de deixá-los no carro e quando voltar ao veículo, vê-lo arrombado e sem o GPS...&lt;/p&gt;
&lt;p&gt;Para quem não sabe, desde outubro de 2005, tenho trabalhando intensivamente com projetos relacionados a GIS e GPS. Além disso, tenho vendido GPS e componentes eletrônicos. Devido às vendas, já faz tempo que acumulei alguns produtos defeituosos por aqui, principalmente GPS Bluetooth.&lt;/p&gt;
&lt;img src="http://www.marciowb.net/blog/2009/03/img/gps_bluetooth_pcb.jpg" alt="PCI do GPS"&gt;
&lt;p&gt;Testando alguns dos GPS Bluetooth que foram devolvidos pelos clientes e que acumulo por aqui, verifiquei alguns casos onde o GPS Bluetooth funcionava somente quando estava sendo alimentado externamente - nesse caso, constatei que o problema era no minúsculo CI MAX1555 que faz a carga da bateria de íons de lítio e ainda cuida de alimentar o resto do circuito. Resolvi, então, usar um deles no carro, mas não de forma temporária, e, sim, permanente.&lt;/p&gt;
&lt;h3&gt;Instalação Fixa do GPS Bluetooth&lt;/h3&gt;
&lt;p&gt;A idéia é bem simples: utilizo o próprio adaptador veicular que veio com o GPS para alimentá-lo, mas ao invés de ligar no socket (antigo acendedor de cigarros) do alimentador do veículo, ligo o alimentador do GPS à bateria do carro. Fiz isso de modo que somente quando a ignição do veículo estiver acionada é que o GPS é alimentado. Para essa ligação, utilizei o próprio chicote de som do veículo, visto que o chicote já estava lá com tudo pronto e era só conectar os fios nele, sem necessidade de mexer em qualquer outra coisa no resto da parte elétrica do veículo.&lt;/p&gt;
&lt;img src="http://www.marciowb.net/blog/2009/03/img/dc_car_adapter_install.jpg" alt="Instalação do Alimentador Veicular"&gt;
&lt;p&gt;Tive que fazer uma pequena adaptação no GPS Bluetooth para que ele fosse ligado automaticamente assim que fosse alimentado (ignição ativada), mas foi bem simples, só tive que fazer uma ponte no switch de on/off do GPS. Para uma melhor segurança, mas ainda assim possibilitando a recepção, o coloquei sob o painel do veículo de modo que ficasse logo abaixo da parte plástica do painel (parte mais fina onde não há nenhum outro obstáculo acima do GPS exceto o próprio painel).&lt;/p&gt;
&lt;img src="http://www.marciowb.net/blog/2009/03/img/gps_bluetooth_switch_bridge.jpg" alt="Ponte Necessária para Ligar Automaticamente o GPS"&gt;
&lt;p&gt;Testado tudo, funcionou direitinho. O GPS fica totalmente escondido e agora não tenho mais que me preocupar em levar/tirar o GPS para o carro. Além de dar uso para um GPS que ficaria encostado, sem serventia alguma, tido como prejuízo, fiquei feliz por ter um GPS Bluetooth lá no veículo para quando eu precisar.&lt;/p&gt;
&lt;a href="http://www.trilha21.com.br/TrilhaStore/faces/ShowProduct.jsp?id=1000605"&gt;&lt;img style="float:right" src="http://www.marciowb.net/imgs/ml039/holux_m-1000c_box.jpg" alt="Holux M-1000C"&gt;&lt;/a&gt;
&lt;h2&gt;&lt;a href="http://www.trilha21.com.br/TrilhaStore/faces/ShowProduct.jsp?id=1000605"&gt;Holux M-1000C&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;E por falar em &lt;a href="http://www.trilha21.com.br/TrilhaStore/faces/ShowProduct.jsp?id=1000605"&gt;GPS Bluetooth&lt;/a&gt;, se você procura o melhor GPS Bluetooth que há, por um preço bem camarada, com nota fiscal, garantia, tudo certinho, dê uma olhada no &lt;a href="http://www.trilha21.com.br/TrilhaStore/faces/ShowProduct.jsp?id=1000605"&gt;Holux M-1000C&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;O &lt;a href="http://www.trilha21.com.br/TrilhaStore/faces/ShowProduct.jsp?id=1000605"&gt;Holux M-1000&lt;/a&gt; tem características inigualáveis no que tange a sua sensibilidade, precisão e principalmente o cold start - é ultra-rápido. Ele também é um datalogger e grava até 200 mil pontos e sua bateria é recarregável, compatível com a de vários celulares da Nokia e de longa duração. Ele acompanha o software ezTour para Geotag de fotos e download do tracklog.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-2519620017403611596?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2009/03/instalando-permanentemente-um-gps</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-6633132715595996097</guid><pubDate>Thu, 05 Mar 2009 02:05:00 +0000</pubDate><atom:updated>2009-03-06T20:30:42.618-03:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>tips</category><category domain='http://www.blogger.com/atom/ns#'>it</category><category domain='http://www.blogger.com/atom/ns#'>web</category><title>Easy XSS/AJAX using Greasemonkey</title><description>Did you have tried to use &lt;a href="https://addons.mozilla.org/pt-BR/firefox/addon/748" title="Adds Greasemonkey to your Firefox"&gt;Greasemonkey&lt;/a&gt;? Try it! It's great!
&lt;p&gt;&lt;a href="https://addons.mozilla.org/pt-BR/firefox/addon/748" title="Adds Greasemonkey to your Firefox"&gt;Greasemonkey&lt;/a&gt; is a simple but extremely powerful &lt;a href="https://addons.mozilla.org/pt-BR/firefox/addon/748"&gt;addon to Mozilla Firefox&lt;/a&gt;. There are more than a thousand of &lt;a href="http://userscripts.org/"&gt;user scripts&lt;/a&gt; to it. With Greasemonkey, you can develop your own script to (aka user script) customize, modify, extract data, insert and whatever you need to do with *any* page!&lt;/p&gt;

&lt;h2&gt;Easy &lt;a href="http://en.wikipedia.org/wiki/Cross-site_scripting"&gt;XSS &lt;/a&gt;- Cross-Site Scripting&lt;/h2&gt;
&lt;img src="http://www.marciowb.net/blog/2009/03/img/greasemonkey.jpg" width="240" height="240" style="float:right"&gt;
&lt;p&gt;Recently I need to integrate a website from a customer with external data from another website, but it must occurs when the employee uses the customer website and without more requirements, except: Firefox, Greasemonkey and one little user script to do &lt;a href="http://en.wikipedia.org/wiki/Cross-site_scripting"&gt;XSS&lt;/a&gt;. I need to do &lt;a href="http://en.wikipedia.org/wiki/Cross-site_scripting"&gt;XSS &lt;/a&gt;because some part of the application data is extracted from another website (and domain). If you don't know nothing about what's &lt;a href="http://en.wikipedia.org/wiki/Cross-site_scripting"&gt;XSS&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/Same_origin_policy#Overcoming_access_restriction"&gt;Same Origin Police&lt;/a&gt;, take a read at &lt;a href="http://en.wikipedia.org/wiki/Same_origin_policy#Overcoming_access_restriction"&gt;Wikipedia&lt;/a&gt; and you'll know that isn't so easy to do XSS...&lt;/p&gt;
&lt;p&gt;Along the rest of this article you will read the acronym XSS, but, please, understand XSS don't as &lt;span style="font-style:italic;"&gt;"injection code"&lt;/span&gt;, but as &lt;span style="font-style:italic;"&gt;"The term "cross-site scripting" originated from the fact that a malicious web site could load another web site into another frame or window, then use Javascript to read/write data on the other web site."&lt;/span&gt; (or something near its).
&lt;p&gt;When I need to do XSS, I have a couple of options, like: &lt;a href="http://diveintogreasemonkey.org/"&gt;Greasemonkey&lt;/a&gt;, &lt;a href="http://seleniumhq.org"&gt;Selenium&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/XUL"&gt;Firefox Chrome&lt;/a&gt;, &lt;a href="http://www.microsoft.com/technet/scriptcenter/hubs/htas.mspx"&gt;HTA&lt;/a&gt;, &lt;a href="http://httpunit.sourceforge.net/"&gt;Httpunit&lt;/a&gt;, customized http clients via TCP sockets, customized browser version, proxy servers, fake dns/ip (eg.: editing system host file to resolve DNS to another IP and changing the &lt;code&gt;document.domain&lt;/code&gt; to correspond to the same base domain) and some hacks. For my last application I choose to use Greasemonkey.&lt;/p&gt;
&lt;p&gt;Greasemonkey has a javascript function called &lt;a class="code" href="http://diveintogreasemonkey.org/api/gm_xmlhttprequest.html"&gt;GM_xmlhttpRequest&lt;/a&gt; to be used for AJAX requests; but it, also, can be used to XSS because it runs as a &lt;a href="https://developer.mozilla.org/en/XUL_Tutorial/The_Chrome_URL"&gt;Mozzilla Chrome&lt;/a&gt; context. It's amazing! 'cause to do XSS nowadays is so difficulty...&lt;/p&gt;
&lt;p&gt;I've created a smaller user script to grease monkey allow me to do AJAX request between diferent domains. See bellow (click to automatically greasemonkey install it):&lt;/p&gt;
&lt;a href="http://www.marciowb.net/blog/2009/files/greasemonkey/unlockxss.user.js" title="Click to download the user script"&gt;&lt;pre class="code"&gt;&lt;font color="#000000"&gt;&lt;font color="#000000"&gt;   1:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;==UserScript==&lt;/font&gt;
&lt;font color="#000000"&gt;   2:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;@name&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;UnlockXss&lt;/font&gt;
&lt;font color="#000000"&gt;   3:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;@namespace&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;net.marciowb.unlock.xss&lt;/font&gt;
&lt;font color="#000000"&gt;   4:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;@include&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;http://127.0.0.1:8080/&lt;/font&gt;
&lt;font color="#990066"&gt;   5:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;@include&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;http://www.trilha21.com.br/&lt;/font&gt;
&lt;font color="#000000"&gt;   6:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;==/UserScript==&lt;/font&gt;
&lt;font color="#000000"&gt;   7:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;Copyright&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;Marcio&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;Wesley&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;Borges&amp;lt;marciowb@gmail.com&amp;gt;,&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;Created:&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;2009/03/05&lt;/font&gt;
&lt;font color="#000000"&gt;   8:&lt;/font&gt;
&lt;font color="#000000"&gt;   9:&lt;/font&gt;unsafeWindow&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;xss &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  10:&lt;/font&gt;unsafeWindow&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;xss&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;_requests &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;Array&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  11:&lt;/font&gt;
&lt;font color="#000000"&gt;  12:&lt;/font&gt;unsafeWindow&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;xss&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;call &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;function&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;req&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  13:&lt;/font&gt;        unsafeWindow&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;xss&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;_requests&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;push&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;req&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  14:&lt;/font&gt;        window&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;setTimeout&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt; xssExecutor&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff0000"&gt;1&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  15:&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  16:&lt;/font&gt;
&lt;font color="#000000"&gt;  17:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;function&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;_xssExecutor&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  18:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; reqs &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; unsafeWindow&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;xss&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;_requests&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  19:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;reqs&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;length&lt;font color="#000000"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  20:&lt;/font&gt;                &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  21:&lt;/font&gt;                        
&lt;font color="#000000"&gt;  22:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; req &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; reqs&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;reqs&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;length&lt;font color="#000000"&gt;&lt;strong&gt;-&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  23:&lt;/font&gt;        reqs&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;pop&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  24:&lt;/font&gt;        
&lt;font color="#990066"&gt;  25:&lt;/font&gt;        &lt;font color="#9966ff"&gt;GM_xmlhttpRequest&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;req&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  26:&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  27:&lt;/font&gt;
&lt;font color="#000000"&gt;  28:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;function&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;xssExecutor&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  29:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;try&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  30:&lt;/font&gt;                &lt;font color="#9966ff"&gt;_xssExecutor&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  31:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;catch&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;ex&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  32:&lt;/font&gt;                &lt;font color="#9966ff"&gt;GM_log&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;ex&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  33:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;       
&lt;font color="#000000"&gt;  34:&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  35:&lt;/font&gt;
&lt;font color="#000000"&gt;  36:&lt;/font&gt;unsafeWindow&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;GM_xmlhttpRequest &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; unsafeWindow&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;xss&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;call&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  37:&lt;/font&gt;
&lt;/font&gt;&lt;/pre&gt;
&lt;/a&gt;
&lt;p&gt;To use it, take a look in the &lt;a href="http://diveintogreasemonkey.org/api/gm_xmlhttprequest.html"&gt;GM_xmlhttpRequest documentation&lt;/a&gt;. The example code, from Greasemonkey website, remains valid and works with the UnlockXss script:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;font color="#000000"&gt;&lt;font color="#000000"&gt;   1:&lt;/font&gt;&lt;font color="#9966ff"&gt;GM_xmlhttpRequest&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   2:&lt;/font&gt;    &lt;font color="#02b902"&gt;method&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt;GET&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   3:&lt;/font&gt;    &lt;font color="#02b902"&gt;url&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt;http://greaseblog.blogspot.com/atom.xml&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   4:&lt;/font&gt;    &lt;font color="#02b902"&gt;headers&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;   5:&lt;/font&gt;        &lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt;User-agent&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt;Mozilla/4.0&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;(compatible)&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Greasemonkey&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   6:&lt;/font&gt;        &lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt;Accept&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt;application/atom+xml,application/xml,text/xml&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   7:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   8:&lt;/font&gt;    &lt;font color="#02b902"&gt;onload&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;function&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;responseDetails&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   9:&lt;/font&gt;        &lt;font color="#9966ff"&gt;alert&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt;Request&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;for&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Atom&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;feed&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;returned&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; responseDetails&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;status &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  10:&lt;/font&gt;              &lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; responseDetails&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;statusText &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt;\n\n&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  11:&lt;/font&gt;              &lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt;Feed&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;data:\n&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; responseDetails&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;responseText&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  12:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  13:&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;Remember: Now, you can embbending &lt;code&gt;GM_xmlhttpRequest&lt;/code&gt; in your code, but, also, you must tell to greasemonkey where you run your user script. Do it, adding an entry as the above &lt;code&gt;@include&lt;/code&gt; for each domain where you want to enable the XSS/Ajax request.&lt;/p&gt;
&lt;h2&gt;Assorted Greasemonkey Tips&lt;/h2&gt;
&lt;p&gt;Do you want compile your Greasemonkey User Script into a XPI extension to Firefox? Okay, you can! See the &lt;a href="http://arantius.com/misc/greasemonkey/script-compiler"&gt;Greasemonkey Compiler&lt;/a&gt;.
&lt;p&gt;Do you need to &lt;a href="http://dustint.com/archives/4"&gt;inject Dojo into a page via Greasemonkey&lt;/a&gt;? Don't know how? Do, it:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;font color="#000000"&gt;&lt;font color="#000000"&gt;   1:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;==UserScript==&lt;/font&gt;
&lt;font color="#000000"&gt;   2:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;@name&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;ML&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;-&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;Copiar&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;dados&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;da&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;Lista&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;de&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;Envios&lt;/font&gt;
&lt;font color="#000000"&gt;   3:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;@namespace&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;net.marciowb.ml.lista.envios&lt;/font&gt;
&lt;font color="#000000"&gt;   4:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;@description&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;Copia&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;os&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;dados&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;da&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;lista&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;de&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;envios&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;do&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;ML&lt;/font&gt;
&lt;font color="#990066"&gt;   5:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;@include&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;http://www.mercadolivre.com.br/jm/impressionList&lt;/font&gt;
&lt;font color="#000000"&gt;   6:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;==/UserScript==&lt;/font&gt;
&lt;font color="#000000"&gt;   7:&lt;/font&gt;
&lt;font color="#000000"&gt;   8:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; script &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; document&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;createElement&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;script&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   9:&lt;/font&gt;script&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;id&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;scriptInjectedDojo&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  10:&lt;/font&gt;script&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;src&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;http://www.trilha21.com.br/Webs/js/dojo/dojo.js&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  11:&lt;/font&gt;document&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;getElementsByTagName&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;head&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;0&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;appendChild&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;script&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  12:&lt;/font&gt;
&lt;font color="#000000"&gt;  13:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; link &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; document&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;createElement&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;link&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  14:&lt;/font&gt;link&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;id &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;linkInjectedTundra&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt; 
&lt;font color="#990066"&gt;  15:&lt;/font&gt;link&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;rel &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;stylesheet&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  16:&lt;/font&gt;link&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;type&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;text/css&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  17:&lt;/font&gt;link&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;href&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;http://www.trilha21.com.br/Webs/js/dijit/themes/tundra/tundra.css&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  18:&lt;/font&gt;document&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;getElementsByTagName&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;head&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;0&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;appendChild&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;link&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  19:&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;
&lt;/font&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-6633132715595996097?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2009/03/easy-xssajax-using-greasemonkey</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-8987898218796832666</guid><pubDate>Sat, 28 Feb 2009 20:31:00 +0000</pubDate><atom:updated>2009-02-28T18:58:28.421-03:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>tips</category><category domain='http://www.blogger.com/atom/ns#'>it</category><category domain='http://www.blogger.com/atom/ns#'>windows</category><title>An old 'new newbie learning how to hack (again!)</title><description>I'm trying to crack an application related a consultancy job, but I'm newbie (a long, long, long time ago I knew more, but it was in DOS age) and I haven't many time to learning many things about it. So, after a quickly search, I found &lt;a href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx"&gt;Windbg&lt;/a&gt;, but, sinceraly, it's piece of bullshit. I wasted my entire day trying to break the key checking mechanism using the Windbg, but it doesn't help me much.
&lt;a href="http://www.ollydbg.de/"&gt;&lt;h2&gt;OllyDbg&lt;/h2&gt;
&lt;img src="http://www.marciowb.net/blog/2009/02/imgs/ollydbg_small.jpg" alt="OllyDbg"&gt;&lt;/a&gt;
&lt;p&gt;If you need a good (excelent!!!) software to crack (or to do reverse engineering), try the &lt;a href="http://www.ollydbg.de/"&gt;OllyDbg&lt;/a&gt; - it's fantastic: easy to use, intuitive, useful, and powerful! OllyDbg is shareware, but you can use it without paying nothing, if you want (or need).&lt;/p&gt;
&lt;h3&gt;Using &lt;a title="Win32 Software Development Kit" href="http://www.marciowb.net/blog/2009/files/ollydbg/win32hlp_big.zip"&gt;Win32SDK Help&lt;/a&gt; and Windows Symbols with OllyDbg&lt;/h3&gt;
OllyDbg automatically recognizes symbols and when you want, it launchs the Win32Help to the specific topic of the symbol!
&lt;p&gt;If you need the Win32SDK help files, download it, here: &lt;a title="Win32 Software Development Kit" href="http://www.marciowb.net/blog/2009/files/ollydbg/win32hlp_big.zip"&gt;win32hlp&lt;/a&gt;. If you use the Windows Vista, you need to download the &lt;a title="Windows Help program (WinHlp32.exe) for Windows Vista" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=6EBCFAD9-D3F5-4365-8070-334CD175D4BB&amp;displaylang=en"&gt;Win32Hlp.exe from Microsoft&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Also, the Microsoft Windows Symbolic Information can be found at &lt;a href="http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx"&gt;Download Windows Symbol Packages from Microsofot&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-8987898218796832666?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2009/02/old-new-newbie-learning-how-to-hack</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-2992526417090738520</guid><pubDate>Wed, 11 Feb 2009 17:50:00 +0000</pubDate><atom:updated>2009-02-12T00:12:18.361-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>java</category><category domain='http://www.blogger.com/atom/ns#'>tips</category><category domain='http://www.blogger.com/atom/ns#'>it</category><title>EJB3: Workarounding Non XA Database/JDBC Driver</title><description>Sometimes we need to access more than one database to do some task. Eg.: Syncing data between two differents databases or when the data is physically sparse. But if you use Session Beans to do the job and your database(s) is a Non-XA (in simple terms: non prepared to work with distribute transaction), you was trapped. The Session EJBs doesn't works with more than a one Non-XA database (or XA defective JDBC driver...) in the same container managed transaction. When the Session Bean tries to open a second non-XA database (resource), the following (see the red contour) error raises:
&lt;pre class="code" style="height:720px"&gt;
init:
deps-module-jar:
deps-ear-jar:
deps-jar:
library-inclusion-in-archive:
library-inclusion-in-manifest:
compile:
compile-test-single:
Testsuite: br.com.trilha21.web.store.IndexPageUITest
        java.rmi.RemoteException: null; nested exception is: 
        javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 9998 Maybe; nested exception is: 
        org.omg.CORBA.TRANSACTION_ROLLEDBACK: ----------BEGIN server-side stack trace----------
org.omg.CORBA.TRANSACTION_ROLLEDBACK:   vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:231)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy157.forceDeleteCustomer(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:183)
        at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
        at net.marciowb.trilha.ejb.__CustomerRemote_Remote_DynamicStub.forceDeleteCustomer(net/marciowb/trilha/ejb/__CustomerRemote_Remote_DynamicStub.java)
        at net.marciowb.trilha.ejb._CustomerRemote_Wrapper.forceDeleteCustomer(net/marciowb/trilha/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.ejb.CustomerBean.forceDelete(CustomerBean.java:217)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
        at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
        at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy128.forceDelete(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
        at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
Caused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DatabaseException
&lt;span style="border:1px solid red"&gt;Internal Exception: java.sql.SQLException: Error in allocating a connection. Cause: java.lang.IllegalStateException: Local transaction already has 1 non-XA Resource: cannot add more resources.&lt;/span&gt;
Error Code: 0
        at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:3728)
        at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3576)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354)
        ... 46 more

----------END server-side stack trace----------  vmcid: 0x2000  minor code: 1806 completed: Maybe)
        java.rmi.RemoteException: null; nested exception is: 
        javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 9998 Maybe; nested exception is: 
        org.omg.CORBA.TRANSACTION_ROLLEDBACK: ----------BEGIN server-side stack trace----------
org.omg.CORBA.TRANSACTION_ROLLEDBACK:   vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:231)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy157.forceDeleteCustomer(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:183)
        at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
        at net.marciowb.trilha.ejb.__CustomerRemote_Remote_DynamicStub.forceDeleteCustomer(net/marciowb/trilha/ejb/__CustomerRemote_Remote_DynamicStub.java)
        at net.marciowb.trilha.ejb._CustomerRemote_Wrapper.forceDeleteCustomer(net/marciowb/trilha/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.ejb.CustomerBean.forceDelete(CustomerBean.java:217)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
        at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
        at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy128.forceDelete(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
        at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
Caused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: java.lang.IllegalArgumentException: NamedQuery of name: Customer.byIdentification not found.
        at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:3728)
        at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3576)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354)
        ... 46 more

----------END server-side stack trace----------  vmcid: 0x2000  minor code: 1806 completed: Maybe)
Tests run: 2, Failures: 0, Errors: 2, Time elapsed: 20,375 sec

Testcase: testNewCustomer_PersonalAccount(br.com.trilha21.web.store.IndexPageUITest): Caused an ERROR
nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
        java.rmi.RemoteException: null; nested exception is: 
        javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 9998 Maybe; nested exception is: 
        org.omg.CORBA.TRANSACTION_ROLLEDBACK: ----------BEGIN server-side stack trace----------
org.omg.CORBA.TRANSACTION_ROLLEDBACK:   vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:231)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy157.forceDeleteCustomer(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:183)
        at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
        at net.marciowb.trilha.ejb.__CustomerRemote_Remote_DynamicStub.forceDeleteCustomer(net/marciowb/trilha/ejb/__CustomerRemote_Remote_DynamicStub.java)
        at net.marciowb.trilha.ejb._CustomerRemote_Wrapper.forceDeleteCustomer(net/marciowb/trilha/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.ejb.CustomerBean.forceDelete(CustomerBean.java:217)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
        at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
        at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy128.forceDelete(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
        at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
Caused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Error in allocating a connection. Cause: java.lang.IllegalStateException: Local transaction already has 1 non-XA Resource: cannot add more resources.  
Error Code: 0
        at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:3728)
        at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3576)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354)
        ... 46 more

----------END server-side stack trace----------  vmcid: 0x2000  minor code: 1806 completed: Maybe
javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
        java.rmi.RemoteException: null; nested exception is: 
        javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 9998 Maybe; nested exception is: 
        org.omg.CORBA.TRANSACTION_ROLLEDBACK: ----------BEGIN server-side stack trace----------
org.omg.CORBA.TRANSACTION_ROLLEDBACK:   vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:231)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy157.forceDeleteCustomer(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:183)
        at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
        at net.marciowb.trilha.ejb.__CustomerRemote_Remote_DynamicStub.forceDeleteCustomer(net/marciowb/trilha/ejb/__CustomerRemote_Remote_DynamicStub.java)
        at net.marciowb.trilha.ejb._CustomerRemote_Wrapper.forceDeleteCustomer(net/marciowb/trilha/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.ejb.CustomerBean.forceDelete(CustomerBean.java:217)
        at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
        at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
        at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy128.forceDelete(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
        at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
Caused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DatabaseException
Error Code: 0
        at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:3728)
        at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3576)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354)

----------END server-side stack trace----------  vmcid: 0x2000  minor code: 1806 completed: Maybe
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
        java.rmi.RemoteException: null; nested exception is: 
        javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 9998 Maybe; nested exception is: 
        org.omg.CORBA.TRANSACTION_ROLLEDBACK: ----------BEGIN server-side stack trace----------
org.omg.CORBA.TRANSACTION_ROLLEDBACK:   vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:231)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy157.forceDeleteCustomer(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:183)
        at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
        at net.marciowb.trilha.ejb.__CustomerRemote_Remote_DynamicStub.forceDeleteCustomer(net/marciowb/trilha/ejb/__CustomerRemote_Remote_DynamicStub.java)
        at net.marciowb.trilha.ejb._CustomerRemote_Wrapper.forceDeleteCustomer(net/marciowb/trilha/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.ejb.CustomerBean.forceDelete(CustomerBean.java:217)
        at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
        at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
        at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy128.forceDelete(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
        at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
Caused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DatabaseException
Error Code: 0
        at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:3728)
        at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3576)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354)

----------END server-side stack trace----------  vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:243)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:205)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
        at br.com.trilha21.web.store.ejb.__CustomerRemote_Remote_DynamicStub.forceDelete(br/com/trilha21/web/store/ejb/__CustomerRemote_Remote_DynamicStub.java)
        at br.com.trilha21.web.store.ejb._CustomerRemote_Wrapper.forceDelete(br/com/trilha21/web/store/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.IndexPageUITest.testNewCustomer_PersonalAccount(IndexPageUITest.java:181)
Caused by: java.rmi.RemoteException: null; nested exception is: 
        javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 9998 Maybe; nested exception is: 
        org.omg.CORBA.TRANSACTION_ROLLEDBACK: ----------BEGIN server-side stack trace----------
org.omg.CORBA.TRANSACTION_ROLLEDBACK:   vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:231)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy157.forceDeleteCustomer(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:183)
        at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
        at net.marciowb.trilha.ejb.__CustomerRemote_Remote_DynamicStub.forceDeleteCustomer(net/marciowb/trilha/ejb/__CustomerRemote_Remote_DynamicStub.java)
        at net.marciowb.trilha.ejb._CustomerRemote_Wrapper.forceDeleteCustomer(net/marciowb/trilha/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.ejb.CustomerBean.forceDelete(CustomerBean.java:217)
        at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
        at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
        at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy128.forceDelete(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
        at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
Caused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DatabaseException
Error Code: 0
        at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:3728)
        at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3576)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354)

----------END server-side stack trace----------  vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:251)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy128.forceDelete(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
        at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
Caused by: javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 9998 Maybe; nested exception is: 
        org.omg.CORBA.TRANSACTION_ROLLEDBACK: ----------BEGIN server-side stack trace----------
org.omg.CORBA.TRANSACTION_ROLLEDBACK:   vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:231)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy157.forceDeleteCustomer(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:183)
        at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
        at net.marciowb.trilha.ejb.__CustomerRemote_Remote_DynamicStub.forceDeleteCustomer(net/marciowb/trilha/ejb/__CustomerRemote_Remote_DynamicStub.java)
        at net.marciowb.trilha.ejb._CustomerRemote_Wrapper.forceDeleteCustomer(net/marciowb/trilha/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.ejb.CustomerBean.forceDelete(CustomerBean.java:217)
        at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
        at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
        at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy128.forceDelete(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
        at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
Caused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DatabaseException
Error Code: 0
        at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:3728)
        at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3576)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354)

----------END server-side stack trace----------  vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:289)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:205)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
        at net.marciowb.trilha.ejb.__CustomerRemote_Remote_DynamicStub.forceDeleteCustomer(net/marciowb/trilha/ejb/__CustomerRemote_Remote_DynamicStub.java)
        at net.marciowb.trilha.ejb._CustomerRemote_Wrapper.forceDeleteCustomer(net/marciowb/trilha/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.ejb.CustomerBean.forceDelete(CustomerBean.java:217)
        at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
        at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
        at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
Caused by: org.omg.CORBA.TRANSACTION_ROLLEDBACK: ----------BEGIN server-side stack trace----------
org.omg.CORBA.TRANSACTION_ROLLEDBACK:   vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:231)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy157.forceDeleteCustomer(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:183)
        at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
        at net.marciowb.trilha.ejb.__CustomerRemote_Remote_DynamicStub.forceDeleteCustomer(net/marciowb/trilha/ejb/__CustomerRemote_Remote_DynamicStub.java)
        at net.marciowb.trilha.ejb._CustomerRemote_Wrapper.forceDeleteCustomer(net/marciowb/trilha/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.ejb.CustomerBean.forceDelete(CustomerBean.java:217)
        at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
        at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
        at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy128.forceDelete(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
        at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
Caused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DatabaseException
Error Code: 0
        at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:3728)
        at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3576)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354)

----------END server-side stack trace----------  vmcid: 0x2000  minor code: 1806 completed: Maybe
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.MessageBase.getSystemException(MessageBase.java:913)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.ReplyMessage_1_2.getSystemException(ReplyMessage_1_2.java:131)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.getSystemExceptionReply(CorbaMessageMediatorImpl.java:685)
        at com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.processResponse(CorbaClientRequestDispatcherImpl.java:472)
        at com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:217)
        at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
        java.rmi.RemoteException: null; nested exception is: 
        javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 9998 Maybe; nested exception is: 
        org.omg.CORBA.TRANSACTION_ROLLEDBACK: ----------BEGIN server-side stack trace----------
org.omg.CORBA.TRANSACTION_ROLLEDBACK:   vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:231)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy157.forceDeleteCustomer(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:183)
        at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
        at net.marciowb.trilha.ejb.__CustomerRemote_Remote_DynamicStub.forceDeleteCustomer(net/marciowb/trilha/ejb/__CustomerRemote_Remote_DynamicStub.java)
        at net.marciowb.trilha.ejb._CustomerRemote_Wrapper.forceDeleteCustomer(net/marciowb/trilha/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.ejb.CustomerBean.forceDelete(CustomerBean.java:217)
        at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
        at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
        at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy128.forceDelete(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
        at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
Caused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DatabaseException
Error Code: 0
        at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:3728)
        at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3576)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354)

----------END server-side stack trace----------  vmcid: 0x2000  minor code: 1806 completed: Maybe
        at br.com.trilha21.web.store.ejb._CustomerRemote_Wrapper.forceDelete(br/com/trilha21/web/store/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.IndexPageUITest.testNewCustomer_PersonalAccount(IndexPageUITest.java:181)


Testcase: testNewCustomer_EnterpriseAccount(br.com.trilha21.web.store.IndexPageUITest): Caused an ERROR
nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
        java.rmi.RemoteException: null; nested exception is: 
        javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 9998 Maybe; nested exception is: 
        org.omg.CORBA.TRANSACTION_ROLLEDBACK: ----------BEGIN server-side stack trace----------
org.omg.CORBA.TRANSACTION_ROLLEDBACK:   vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:231)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy157.forceDeleteCustomer(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:183)
        at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
        at net.marciowb.trilha.ejb.__CustomerRemote_Remote_DynamicStub.forceDeleteCustomer(net/marciowb/trilha/ejb/__CustomerRemote_Remote_DynamicStub.java)
        at net.marciowb.trilha.ejb._CustomerRemote_Wrapper.forceDeleteCustomer(net/marciowb/trilha/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.ejb.CustomerBean.forceDelete(CustomerBean.java:217)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
        at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
        at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy128.forceDelete(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
        at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
Caused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: java.lang.IllegalArgumentException: NamedQuery of name: Customer.byIdentification not found.
        at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:3728)
        at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3576)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354)
        ... 46 more

----------END server-side stack trace----------  vmcid: 0x2000  minor code: 1806 completed: Maybe
javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
        java.rmi.RemoteException: null; nested exception is: 
        javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 9998 Maybe; nested exception is: 
        org.omg.CORBA.TRANSACTION_ROLLEDBACK: ----------BEGIN server-side stack trace----------
org.omg.CORBA.TRANSACTION_ROLLEDBACK:   vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:231)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy157.forceDeleteCustomer(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:183)
        at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
        at net.marciowb.trilha.ejb.__CustomerRemote_Remote_DynamicStub.forceDeleteCustomer(net/marciowb/trilha/ejb/__CustomerRemote_Remote_DynamicStub.java)
        at net.marciowb.trilha.ejb._CustomerRemote_Wrapper.forceDeleteCustomer(net/marciowb/trilha/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.ejb.CustomerBean.forceDelete(CustomerBean.java:217)
        at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
        at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
        at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy128.forceDelete(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
        at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
Caused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: java.lang.IllegalArgumentException: NamedQuery of name: Customer.byIdentification not found.
        at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:3728)
        at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3576)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354)

----------END server-side stack trace----------  vmcid: 0x2000  minor code: 1806 completed: Maybe
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
        java.rmi.RemoteException: null; nested exception is: 
        javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 9998 Maybe; nested exception is: 
        org.omg.CORBA.TRANSACTION_ROLLEDBACK: ----------BEGIN server-side stack trace----------
org.omg.CORBA.TRANSACTION_ROLLEDBACK:   vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:231)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy157.forceDeleteCustomer(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:183)
        at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
        at net.marciowb.trilha.ejb.__CustomerRemote_Remote_DynamicStub.forceDeleteCustomer(net/marciowb/trilha/ejb/__CustomerRemote_Remote_DynamicStub.java)
        at net.marciowb.trilha.ejb._CustomerRemote_Wrapper.forceDeleteCustomer(net/marciowb/trilha/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.ejb.CustomerBean.forceDelete(CustomerBean.java:217)
        at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
        at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
        at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy128.forceDelete(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
        at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
Caused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: java.lang.IllegalArgumentException: NamedQuery of name: Customer.byIdentification not found.
        at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:3728)
        at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3576)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354)

----------END server-side stack trace----------  vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:243)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:205)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
        at br.com.trilha21.web.store.ejb.__CustomerRemote_Remote_DynamicStub.forceDelete(br/com/trilha21/web/store/ejb/__CustomerRemote_Remote_DynamicStub.java)
        at br.com.trilha21.web.store.ejb._CustomerRemote_Wrapper.forceDelete(br/com/trilha21/web/store/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.IndexPageUITest.testNewCustomer_EnterpriseAccount(IndexPageUITest.java:261)
Caused by: java.rmi.RemoteException: null; nested exception is: 
        javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 9998 Maybe; nested exception is: 
        org.omg.CORBA.TRANSACTION_ROLLEDBACK: ----------BEGIN server-side stack trace----------
org.omg.CORBA.TRANSACTION_ROLLEDBACK:   vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:231)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy157.forceDeleteCustomer(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:183)
        at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
        at net.marciowb.trilha.ejb.__CustomerRemote_Remote_DynamicStub.forceDeleteCustomer(net/marciowb/trilha/ejb/__CustomerRemote_Remote_DynamicStub.java)
        at net.marciowb.trilha.ejb._CustomerRemote_Wrapper.forceDeleteCustomer(net/marciowb/trilha/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.ejb.CustomerBean.forceDelete(CustomerBean.java:217)
        at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
        at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
        at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy128.forceDelete(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
        at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
Caused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: java.lang.IllegalArgumentException: NamedQuery of name: Customer.byIdentification not found.
        at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:3728)
        at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3576)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354)

----------END server-side stack trace----------  vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:251)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy128.forceDelete(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
        at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
Caused by: javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 9998 Maybe; nested exception is: 
        org.omg.CORBA.TRANSACTION_ROLLEDBACK: ----------BEGIN server-side stack trace----------
org.omg.CORBA.TRANSACTION_ROLLEDBACK:   vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:231)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy157.forceDeleteCustomer(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:183)
        at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
        at net.marciowb.trilha.ejb.__CustomerRemote_Remote_DynamicStub.forceDeleteCustomer(net/marciowb/trilha/ejb/__CustomerRemote_Remote_DynamicStub.java)
        at net.marciowb.trilha.ejb._CustomerRemote_Wrapper.forceDeleteCustomer(net/marciowb/trilha/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.ejb.CustomerBean.forceDelete(CustomerBean.java:217)
        at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
        at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
        at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy128.forceDelete(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
        at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
Caused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: java.lang.IllegalArgumentException: NamedQuery of name: Customer.byIdentification not found.
        at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:3728)
        at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3576)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354)

----------END server-side stack trace----------  vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:289)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:205)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
        at net.marciowb.trilha.ejb.__CustomerRemote_Remote_DynamicStub.forceDeleteCustomer(net/marciowb/trilha/ejb/__CustomerRemote_Remote_DynamicStub.java)
        at net.marciowb.trilha.ejb._CustomerRemote_Wrapper.forceDeleteCustomer(net/marciowb/trilha/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.ejb.CustomerBean.forceDelete(CustomerBean.java:217)
        at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
        at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
        at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
Caused by: org.omg.CORBA.TRANSACTION_ROLLEDBACK: ----------BEGIN server-side stack trace----------
org.omg.CORBA.TRANSACTION_ROLLEDBACK:   vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:231)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy157.forceDeleteCustomer(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:183)
        at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
        at net.marciowb.trilha.ejb.__CustomerRemote_Remote_DynamicStub.forceDeleteCustomer(net/marciowb/trilha/ejb/__CustomerRemote_Remote_DynamicStub.java)
        at net.marciowb.trilha.ejb._CustomerRemote_Wrapper.forceDeleteCustomer(net/marciowb/trilha/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.ejb.CustomerBean.forceDelete(CustomerBean.java:217)
        at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
        at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
        at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy128.forceDelete(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
        at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
Caused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: java.lang.IllegalArgumentException: NamedQuery of name: Customer.byIdentification not found.
        at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:3728)
        at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3576)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354)

----------END server-side stack trace----------  vmcid: 0x2000  minor code: 1806 completed: Maybe
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.MessageBase.getSystemException(MessageBase.java:913)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.ReplyMessage_1_2.getSystemException(ReplyMessage_1_2.java:131)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.getSystemExceptionReply(CorbaMessageMediatorImpl.java:685)
        at com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.processResponse(CorbaClientRequestDispatcherImpl.java:472)
        at com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:217)
        at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
        java.rmi.RemoteException: null; nested exception is: 
        javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 9998 Maybe; nested exception is: 
        org.omg.CORBA.TRANSACTION_ROLLEDBACK: ----------BEGIN server-side stack trace----------
org.omg.CORBA.TRANSACTION_ROLLEDBACK:   vmcid: 0x2000  minor code: 1806 completed: Maybe
        at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:231)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy157.forceDeleteCustomer(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.SharedCDRClientRequestDispatcherImpl.marshalingComplete(SharedCDRClientRequestDispatcherImpl.java:183)
        at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192)
        at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
        at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
        at net.marciowb.trilha.ejb.__CustomerRemote_Remote_DynamicStub.forceDeleteCustomer(net/marciowb/trilha/ejb/__CustomerRemote_Remote_DynamicStub.java)
        at net.marciowb.trilha.ejb._CustomerRemote_Wrapper.forceDeleteCustomer(net/marciowb/trilha/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.ejb.CustomerBean.forceDelete(CustomerBean.java:217)
        at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067)
        at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176)
        at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895)
        at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986)
        at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203)
        at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:117)
        at $Proxy128.forceDelete(Unknown Source)
        at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
        at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
        at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
        at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
        at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
Caused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: java.lang.IllegalArgumentException: NamedQuery of name: Customer.byIdentification not found.
        at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:3728)
        at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3576)
        at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354)

----------END server-side stack trace----------  vmcid: 0x2000  minor code: 1806 completed: Maybe
        at br.com.trilha21.web.store.ejb._CustomerRemote_Wrapper.forceDelete(br/com/trilha21/web/store/ejb/_CustomerRemote_Wrapper.java)
        at br.com.trilha21.web.store.IndexPageUITest.testNewCustomer_EnterpriseAccount(IndexPageUITest.java:261)


Test br.com.trilha21.web.store.IndexPageUITest FAILED
F:\devel\projects\trilha21\e-store\TrilhaStoreEApp\TrilhaStore\nbproject\build-impl.xml:883: Some tests failed; see details above.
BUILD FAILED (total time: 23 seconds)
&lt;/pre&gt;
&lt;p&gt;To workaround it, you can annotate the EJB Session (or its specific method) as a non transaction participant. Do it, as:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;font color="#000000"&gt;&lt;font color="#000000"&gt;   1:&lt;/font&gt;&lt;font color="#66ccff"&gt;&lt;strong&gt;@&lt;/strong&gt;&lt;/font&gt;&lt;font color="#66ccff"&gt;&lt;strong&gt;Stateless&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   2:&lt;/font&gt;&lt;font color="#66ccff"&gt;&lt;strong&gt;@&lt;/strong&gt;&lt;/font&gt;&lt;font color="#66ccff"&gt;&lt;strong&gt;Remote&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;value&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;CustomerRemote.&lt;font color="#0099ff"&gt;&lt;strong&gt;class&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   3:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;class&lt;/strong&gt;&lt;/font&gt; CustomerBean &lt;font color="#006699"&gt;&lt;strong&gt;extends&lt;/strong&gt;&lt;/font&gt; AbstractBean&lt;font color="#000000"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/font&gt;Customer&lt;font color="#000000"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;implements&lt;/strong&gt;&lt;/font&gt; CustomerLocal, CustomerRemote, Serializable &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   4:&lt;/font&gt;
&lt;font color="#990066"&gt;   5:&lt;/font&gt;.....
&lt;font color="#000000"&gt;   6:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; Customer &lt;font color="#9966ff"&gt;saveCustomer&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;Customer customer&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   7:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;customer.&lt;font color="#9966ff"&gt;getReseller&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#cc00cc"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   8:&lt;/font&gt;            customer.&lt;font color="#9966ff"&gt;setReseller&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;resellerBean.&lt;font color="#9966ff"&gt;getDefaultReseller&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;   9:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  10:&lt;/font&gt;        customer &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;save&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;customer&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  11:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; customer;
&lt;font color="#000000"&gt;  12:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  13:&lt;/font&gt;
&lt;font color="#000000"&gt;  14:&lt;/font&gt;    &lt;span style="border:1px dotted blue"&gt;&lt;font color="#66ccff"&gt;&lt;strong&gt;@&lt;/strong&gt;&lt;/font&gt;&lt;font color="#66ccff"&gt;&lt;strong&gt;TransactionAttribute&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;TransactionAttributeType.NOT_SUPPORTED&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;
&lt;font color="#990066"&gt;  15:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;boolean&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;forceDeleteCustomer&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;String identification&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  16:&lt;/font&gt;        &lt;font color="#0099ff"&gt;&lt;strong&gt;boolean&lt;/strong&gt;&lt;/font&gt; deleted &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;false&lt;/font&gt;;
&lt;font color="#000000"&gt;  17:&lt;/font&gt;        identification &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; StrUtil.&lt;font color="#9966ff"&gt;getDigits&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;identification&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  18:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; Customer customer &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;getCustomer&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;identification&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  19:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;customer&lt;font color="#000000"&gt;&lt;strong&gt;!&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#cc00cc"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  20:&lt;/font&gt;            &lt;font color="#9966ff"&gt;delete&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;customer.&lt;font color="#9966ff"&gt;getId&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  21:&lt;/font&gt;            deleted &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;true&lt;/font&gt;;
&lt;font color="#000000"&gt;  22:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  23:&lt;/font&gt;        
&lt;font color="#000000"&gt;  24:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; UserAccount user &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; userAccountBean.&lt;font color="#9966ff"&gt;getUserAccount&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;identification&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#990066"&gt;  25:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;user&lt;font color="#000000"&gt;&lt;strong&gt;!&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#cc00cc"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  26:&lt;/font&gt;            userAccountBean.&lt;font color="#9966ff"&gt;delete&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;user.&lt;font color="#9966ff"&gt;getId&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  27:&lt;/font&gt;            deleted &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;true&lt;/font&gt;;
&lt;font color="#000000"&gt;  28:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  29:&lt;/font&gt;
&lt;font color="#990066"&gt;  30:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; deleted;
&lt;font color="#000000"&gt;  31:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  32:&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  33:&lt;/font&gt;
&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;Some more complicated cases maybe you would have an EJB Session that calls another EJB Session (or another method from itself), but the first Session Bean uses a SGBD and the second uses another SGBD - both aren't XA - and there are several operations to be done for each SGBD, and so, you will need a transaction. If your requirements can tolerate, you can tell to the container to start another transaction to your second EJB. Annotate (see the blue contour) in the second method or EJB:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;font color="#000000"&gt;&lt;font color="#000000"&gt;   1:&lt;/font&gt;
&lt;font color="#000000"&gt;   2:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; Customer &lt;font color="#9966ff"&gt;saveCustomer&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;Customer customer&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   3:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;customer.&lt;font color="#9966ff"&gt;getReseller&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#cc00cc"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   4:&lt;/font&gt;            customer.&lt;font color="#9966ff"&gt;setReseller&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;resellerBean.&lt;font color="#9966ff"&gt;getDefaultReseller&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#990066"&gt;   5:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   6:&lt;/font&gt;        customer &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;save&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;customer&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;   7:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; customer;
&lt;font color="#000000"&gt;   8:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   9:&lt;/font&gt;
&lt;font color="#990066"&gt;  10:&lt;/font&gt;    &lt;span style="border:1px solid blue"&gt;&lt;font color="#66ccff"&gt;&lt;strong&gt;@&lt;/strong&gt;&lt;/font&gt;&lt;font color="#66ccff"&gt;&lt;strong&gt;TransactionAttribute&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;TransactionAttributeType.REQUIRES_NEW&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;
&lt;font color="#000000"&gt;  11:&lt;/font&gt;    &lt;font color="#006699"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;boolean&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;forceDeleteCustomer&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;String identification&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  12:&lt;/font&gt;        &lt;font color="#0099ff"&gt;&lt;strong&gt;boolean&lt;/strong&gt;&lt;/font&gt; deleted &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;false&lt;/font&gt;;
&lt;font color="#000000"&gt;  13:&lt;/font&gt;        identification &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; StrUtil.&lt;font color="#9966ff"&gt;getDigits&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;identification&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  14:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; Customer customer &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;getCustomer&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;identification&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#990066"&gt;  15:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;customer&lt;font color="#000000"&gt;&lt;strong&gt;!&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#cc00cc"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  16:&lt;/font&gt;            &lt;font color="#9966ff"&gt;delete&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;customer.&lt;font color="#9966ff"&gt;getId&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  17:&lt;/font&gt;            deleted &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;true&lt;/font&gt;;
&lt;font color="#000000"&gt;  18:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  19:&lt;/font&gt;        
&lt;font color="#990066"&gt;  20:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;final&lt;/strong&gt;&lt;/font&gt; UserAccount user &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; userAccountBean.&lt;font color="#9966ff"&gt;getUserAccount&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;identification&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  21:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;user&lt;font color="#000000"&gt;&lt;strong&gt;!&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#cc00cc"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  22:&lt;/font&gt;            userAccountBean.&lt;font color="#9966ff"&gt;delete&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;user.&lt;font color="#9966ff"&gt;getId&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;;
&lt;font color="#000000"&gt;  23:&lt;/font&gt;            deleted &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;true&lt;/font&gt;;
&lt;font color="#000000"&gt;  24:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  25:&lt;/font&gt;
&lt;font color="#000000"&gt;  26:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; deleted;
&lt;font color="#000000"&gt;  27:&lt;/font&gt;    &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  28:&lt;/font&gt;
&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;And remember, if you don't need any transaction, don't use it.&lt;/p&gt;
&lt;h3&gt;Read more, at:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://java.sun.com/javaee/5/docs/tutorial/doc/bncij.html"&gt;Container-Managed Transactions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-2992526417090738520?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2009/02/ejb3-workarrounding-non-xa-databasejdbc</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-1998671766744337023</guid><pubDate>Tue, 10 Feb 2009 18:57:00 +0000</pubDate><atom:updated>2009-02-11T08:34:34.742-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>java</category><category domain='http://www.blogger.com/atom/ns#'>tips</category><category domain='http://www.blogger.com/atom/ns#'>it</category><category domain='http://www.blogger.com/atom/ns#'>windows</category><title>Tip: Troubles/Failures when Installing/Uninstalling Applications</title><description>Today I need to update my Sun JDK to the latest release on my desktop machine running Windows Vista 64, but when I tried to install the JRE I got the error:&lt;br&gt;
&lt;code&gt;Error 1723. A DLL required for this install to complete could not be run.&lt;/code&gt;
&lt;p&gt;I saw in the Event Log that the error was about a non existent file named &lt;code&gt;regutils.dll&lt;/code&gt;. I tried to delete some entries in the &lt;code&gt;Registry&lt;/code&gt;, but it doesn't help me. I tried to uninstall all my JDK/JRE versions, but no success. I tried to use one or two &lt;a href="http://en.wikipedia.org/wiki/Registry_cleaner"&gt;Registry Cleaners&lt;/a&gt;, but, again, no success.&lt;/p&gt;

&lt;h3&gt;Windows Installer CleanUp&lt;/h3&gt;
&lt;a href="http://support.microsoft.com/kb/290301"&gt;&lt;img style="float:right" src="http://www.marciowb.net/blog/2009/02/imgs/windows_installer_clean_up.png" width="402" height="399" alt="Windows Install Clean Up" title="Windows Installer CleanUp"&gt;&lt;/a&gt;
&lt;p&gt;So, after to read, to try and to fret my head - two hours later - I found a &lt;a href="http://support.microsoft.com/kb/290301" title="Windows Installer CleanUp"&gt;small utility&lt;/a&gt; from Microsoft to erase (cleanup) the Windows Installer database for a specific application package.&lt;/p&gt;
&lt;p&gt;If you have some application that doesn't install never or desinstall and nothing else help you, and you are thinking to reinstall your OS, try the &lt;a href="http://support.microsoft.com/kb/290301" style="font-style:italic;" title="Description of the Windows Installer CleanUp Utility"&gt;Windows Install Clean Up&lt;/a&gt; before do it... It is simple to use and works (for me) fine.&lt;/p&gt;
&lt;p&gt;The utility works to 32 and 64 bit OSes. It can be used to remove the installer data about &lt;span style="font-weight:bold;"&gt;any&lt;/span&gt; application that uses Microsoft Installer machinery, including, non Microsoft applications. Read more at the &lt;a href="http://support.microsoft.com/kb/290301"&gt;Microsoft Knowledge Base article: kb290301 - Description of the Windows Installer CleanUp Utility&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Needing more help, read &lt;a href="http://www.jackiestewart.co.uk/files/windows%20installer%20problems.htm"&gt;How to resolve Common "Windows Installer" Problems and Error Codes&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-1998671766744337023?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2009/02/tip-troublesfailures-when</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-5460157257894358036</guid><pubDate>Tue, 27 Jan 2009 17:14:00 +0000</pubDate><atom:updated>2009-02-11T08:31:00.858-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>linux</category><category domain='http://www.blogger.com/atom/ns#'>it</category><title>Lixo: Kubuntu Intrepid 8.10 e KDE 4</title><description>Até o presente momento, apesar de diversos problemas, tenho optado por usar KDE por causa de sua interface rica (agradável, amigável e para noobs vindos do Windows como eu) e da biblioteca QT. De todas as distribuições que testei ao longo de quase nove anos, período que trabalho com Linux, a que mais me agradou foi a Ubuntu; razão do que, por gostar do KDE, optei por usar sua variante Kubuntu.
&lt;p&gt;Uso o Kubuntu com meu notebook HP Pavilion zv6000. No início tive muitoooosssss problemas para deixar tudo funcionando, mas após a versão 6 do Ubuntu e a melhora do suporte da ATI ao Linux, as coisas melhoraram bastante. Chegou ao ponto de conseguir deixar tudo funcionando 100% (exceto IR).&lt;/p&gt;
&lt;p&gt;Sempre tive resistência às mudanças de versões, pois, prefiro perder meu tempo com outras coisas que ficar me extressando com os problemas advindos dos upgrades de distribuições. No entanto, um dito conhecedor e colaborador do Linux, com o qual trabalhei no MAPA (Min. Agricultura aqui do Brasil), me conveceu de que era muito seguro os upgrades do Ubuntu e que não teria problemas ao fazê-lo - sempre, enfatizando a estabilidade e conservadorismo do Debian; base do Ubuntu. Desde então (creio que a versão do Kubuntu 6), tenho feito os upgrades regularmente.&lt;/p&gt;
&lt;p&gt;A última versão do Kubuntu que instalei, foi a 8.10, AKA: Intrepid. Nessa versão pude ter a péssima experiência de usar o KDE 4.1.X e 4.2. Que porcaria! Lixo! Desgraça! So aborrecimentos, como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Short cuts globais com diversos problemas ao ponto de não funcionar na prática... além de redesignação de inumeras shortcuts que já estavam estabelecidas anteriormente. E se tentasse redesigná-las, 99.9% das vezes não funcionava...&lt;/li&gt;
&lt;li&gt;Redesign de todo o desktop ao ponto de eu ficar totalmente perdido e sem saber onde fica e como usa um zilhão de coisas - até me fez lembrar a transição Windows XP para Windows Vista, mas acredite: a transição KDE 3 para KDE 4 é muito pior!&lt;/li&gt;
&lt;li&gt;A consagração do Dolphin (que lástima) como gerenciador de arquivos em detrenimento do (bom) Konqueror&lt;/li&gt;
&lt;li&gt;A constante impressão de que todo mudou, que você não sabe de mais nada, que era melhor nem ter feito o upgrade e que tudo ficou pior do que era e a questão que se repete em mente: Por que fizeram isso?!&lt;/li&gt;
&lt;li&gt;Detonaram com o Adept ao ponto de ficar quase imprestável.&lt;/li&gt;
&lt;/ul&gt;
A única coisa que funcionou bem no Kubuntu Intrepid para minha surpresa foi o KDENetworkManager o WiFi do meu notebook. Funcionou de primeira e como nunca antes aconteceu! Fora isso, um completo lixo, perda de tempo e desempenho!
&lt;p&gt;Sim, meu notebook é velho pra caramba! Com o KDE 4 ficou tudo mais lento e consideravelmente irritante para um desenvolvedor impaciente como eu.&lt;/p&gt;

&lt;h2&gt;Downgrade, não, Reinstalação mesmo&lt;/h2&gt;
&lt;p&gt;Após usar a cada do KDE 4 por uns três meses e tentar me enteder com ele, hoje, finalmente, resolvi reinstalar por completo o bom e nem tão velho Kubuntu Hardy 8.04! Ah, que alívio! Mas como nem tudo eram flores, e realmente fiz uma reinstalação do zero, tive que resolver os antigos problemas. Por sorte, alguns deles, cheguei a registrar aqui no blog, mas outros, eram novos.&lt;/p&gt;

&lt;h3&gt;NDISWrapper e Firmware do Wifi do HP Pavilion zv6000&lt;/h3&gt;
&lt;p&gt;Para quem tem um notebook como o meu ou um chipset WiFi como o &lt;i&gt;Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03) de identificador PCI 14E4:4320&lt;/i&gt; ou compatível, deixo aqui a firmware que consegui fazê-lo funcionar. Faço isso, para mim mesmo já que sou extremamente desorganizado e não é a primeira vez que tenho que sair catando uma porção de drivers e sair testando um-por-um. &lt;a href="http://www.marciowb.net/blog/2009/files/sp32158.tar.gz" title="Driver do Controlador de Rede WiFi da Broadcom Corporation BCM4306 802.11b/g Wireless LAN Controller (rev 03) de identificador PCI 14E4:4320"&gt;Download do driver para Windows XP 64 para uso com Ubuntu de 64 bits (e variantes)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Por algum motivo o KDENetworkManager não funciona adequadamente no Hardy. Por isso, pode ser que você tenha problemas com os programas que fazem uso do NetworkManager, incluindo o Konquero e Firefox.&lt;/p&gt;
&lt;h3&gt;Firefox&lt;/h3&gt;
&lt;p&gt;Por falar em Firefox, já estou usando o Firefox 64 bits com o respectivo plugin do Flash. A versão do Firefox 3.0.X para 32 bits não está estável no Hardy 64 bits. Mas a versão 64 bits do Firefox está funcionando plenamente, inclusive, com a instalação padrão realizada no repositório do Ubuntu. Recomendo também a instalação do pacote &lt;code&gt;ubufox&lt;/code&gt;. A instalação do plugin Flash já pode ser feita diretamente pelo próprio Firefox, coisa que antes não acontecia na versão 64 bits.&lt;/p&gt;
&lt;p&gt;Dessa vez foi mais simples resolver os problemas de acentuação do C-Cedilha. Isso, tanto do KDE, quanto da GTK. De qualque forma, ainda assim foi útil o post &lt;a href="http://www.marciowb.net/blog/2008/07/c-acentuado-vs-c-cedilha-no-firefox32"&gt;&lt;span style="font-style:italic;"&gt;Ć (C Acentuado) vs. Ç (C Cedilha) no Firefox32 rodando num AMD64 com Kubuntu 64 Bits&lt;/span&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Por causa do NetworkManager eu tive um problema com o Firefox. Ele sempre iniciava em modo &lt;span style="font-style:italic;"&gt;"off-line"&lt;/span&gt;. Por isso, após pesquisar, descobri que esse era um problema específico do Firefox 3.0.5 com o Hardy (ao menos foi o que li/entendi) conforme reportado no &lt;a href="https://bugs.launchpad.net/ubuntu/+source/firefox-3.0/+bug/232243"&gt;Bug #232243 do Ubuntu&lt;/a&gt;. De nada adianta desabilitar o item de menu "Work Offline", pois ao reiniciar o Firefox, novamente este se encontraria em modo &lt;span style="font-style:italic;"&gt;offline&lt;/span&gt;. Como eficiente paliativo (workarround), nas configurações do Firefox (na barra de endereços digite: &lt;code&gt;about:config&lt;/code&gt;), procure por &lt;code&gt;toolkit.networkmanager.disable&lt;/code&gt; e atribua-o o valor &lt;code&gt;true&lt;/code&gt; para desabilitar o gerenciador de rede e acabar com o problema para o Firefox.&lt;/p&gt;
&lt;p&gt;Outra novidade é que já é possível rodar o plugin 64 bits com a JVM da SUN no Firefox 64 bit. Para mais informações, vide: &lt;a href="http://ubuntuforums.org/showthread.php?t=1011899"&gt;64 bit Sun Java Browser Plugin&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Até o presente momento, de forma geral, o Firefox 64 Bit está se comportado muito bem e com todos os recursos; sinal de amadurecimento da plataforma 64 bit que até pouco tempo atrás colecionava inúmeros programas dependentes de execução em modo 32 bit.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-5460157257894358036?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2009/01/lixo-kubuntu-intrepid-810-e-kde-4</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-6898264772809616470</guid><pubDate>Thu, 20 Nov 2008 01:33:00 +0000</pubDate><atom:updated>2008-11-21T23:34:45.170-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>tips</category><category domain='http://www.blogger.com/atom/ns#'>it</category><title>E-mails com Pedidos do Mercado Livre + GMail * Greasemonkey = Produtividade</title><description>&lt;p&gt;Já faz algum tempinho que acumulei centenas de vendas no Mercado Livre. Em tempos de gloria, chegava a fazer mais de uma dezena de vendas ao dia e isso trouxe a problemática de atender aos clientes de forma ágil e adequada. E a verdade, é que o simples processo (sem falar nos outros) de enviar o e-mail com os dados do pedido ao cliente, me aborrecia pelo tempo perdido.&lt;/p&gt;
&lt;p&gt;O Paulinho, um amigo, me disse que o bom programador, era antes de tudo, um grande preguiçoso. Eis-me: A preguiça personificada! Raramente repito duas tarefas da mesma forma, sempre dou um jeitinho de melhorar (nos meus critérios) o processo, seja o que for... Obviamente, as vezes, decaio na inprodutividade, no perfeccionismo imperfeito e na tolice aguda! Mas mesmo assim, invento e reinvento! Até, no ápice do sucesso, faço funcionar!&lt;/p&gt;
&lt;p&gt;A questão é que, contrariando qualquer instinto (por mais forte que fosse), resisti a tentação de fazer um script, ou até mesmo, simplesmente criar uma regra/filtro que me ajudasse na simples tarefa de responder com os dados da compra de meus clientes. Visto que me despersuadia:&lt;br&gt;
- "Não seja tolo, Marcio. Vai perder ainda mais tempo com isso."&lt;br&gt;
Sinceramente, nem me reconheço com essa atitude, mas é verdade: resisti!&lt;/p&gt; 
&lt;p&gt;A questão, é que depois de fazer a mesma coisa por mais de 800 vezes (real!! foi mais que isso mesmo!), você pára (logo agora que tentava escrever direito, me tiram o tal do acento... &lt;0) e, após xingar toda seus antepassados - se excomungar -, diz:&lt;br&gt;
Devia ter automatizado isso antes...&lt;/p&gt;
&lt;img src="http://www.marciowb.net/blog/2008/11/imgs/gmail-email-pedidos-ml.jpg" alt="EMail com Pedido do Mercado Livre" width="660" title="Típico e-mail que o vendedor recebe com os dados do ML"/&gt;
&lt;p&gt;Eis, logo eu que atualmente me vejo trabalhando nuns trocentos projetos ao mesmo tempo e tentando ser dono de meu próprio narzi, mas ao contrário, cada vez mais preso... me vejo tomado por uma completa indignação por fazer a mesma tarefa por quase 1000 vezes e digo a mim mesmo:&lt;br&gt;
- basta! Vou automatizar isto!&lt;/p&gt;
&lt;p&gt;Chega o momento de ver o que seria melhor. Com certeza o melhor é criar um sistema, baseado em uma base de dados, que concentre todas as informações de compra, inclusive passadas e que fosse integrada com a "maravilha" do ML... até fiz vários progressos nesse sentido, mas parei no ponto onde precisava alimentar a base com os dados que retirava de 5 (sim, cinco!) diferentes páginas do ML e mantê-los de uma forma racional e principalmente utilizável!&lt;/p&gt;
&lt;p&gt;Optei, então, por me concentrar somente no simples problema de responder ao cliente com os dados de sua compra, como: onde pagar, o quanto pagar, onde fazer etc. Isso poderia simplesmente ser feito com um filtro no GMail, por exemplo e até soluções mais elaboradas via VBA, por exemplo, com o Outlook. Mas queria uma coisa que NÃO funcionasse totalmente por si só, que ainda precisasse de minha leitura prévia (e rápida). Por isso, já que atualmente ando trabalhando tanto com AJAX e naturalmente Javascript (como se nunca o tivesse feito antes [8 anos atrás já usava DHTML e AJAX, sem nem saber que o nome desse tipo de coisa era isso]) que fosse simples e perfeitamente integrado à minha rotina.&lt;/p&gt;
&lt;p&gt;Após estudar as opções, resolvi botar o meu velho entusiamo no Greasemonkey para render algo e fui atrás de alguma alguma API do GMAIL que funcionasse bem com ele. Nessas horas, é ótimo descobrir que você é um tolo nada original, vi que já haviam criado tal API - algo simples, mas que resolve o mínimo. Daí então, foi só botar a mão em XPath, RegEx, DTHML/DOM e, claro, não poderia faltar, o &lt;a href="http://getfirebug.com/"&gt;Firebug&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://www.marciowb.net/blog/2008/11/imgs/firebug.jpg" width="660" alt="Firebug" title="Usando Firebug para recuperar a HTML do e-mail em composição." /&gt;
&lt;p&gt;E é esse, meu pequeno legado, e sei que não evitará que ainda assim me chamem de pária ou até mesmo lammer, mas eventualmente, inspirará (nem que seja o desprezo) alguém. Não sei quantos programadores vendem no ML, mas deve ter mais alguém; creio.&lt;/p&gt;
&lt;h1&gt;À Programação&lt;/h1&gt;
&lt;p&gt;O Greasemonkey tem uma variável com um objeto mágico chamado de nome &lt;code&gt;window&lt;/code&gt; que encapsula a &lt;code&gt;window&lt;/code&gt; "real". Se quiser acessar o objeto &lt;code&gt;window&lt;/code&gt; real, na verdade, terá que usar &lt;b&gt;&lt;code&gt;unsafeWindow&lt;/code&gt;&lt;/b&gt;. Isso vale para qualquer variável global, pois ela só estará acessível em &lt;code&gt;unsafeWindow&lt;/code&gt;. Isso é causa de muita dor de cabeça para os iniciantes no Greasemonkey. Por exemplo, a instância do &lt;code&gt;console&lt;/code&gt; do &lt;a href="http://getfirebug.com/"&gt;&lt;/a&gt;Firebug só existe em &lt;code&gt;unsafeWindow&lt;/code&gt;.&lt;/p&gt;
&lt;img src="http://www.marciowb.net/blog/2008/11/imgs/dados-pedido-ml.jpg" alt="EMail já preenchido com os dados do pedido" width="658" title="Em dois cliques o preenchimento é completado"/&gt;
&lt;p&gt;O GMail te disponibiliza o objeto &lt;code&gt;unsafeWindow.gmonkey&lt;/code&gt; e é por meio dele que você interage com o DOM do GMail e particularmente, alguns de seus membros. Antes de avançar no uso de &lt;code&gt;unsafeWindow.gmonkey&lt;/code&gt;, você vai precisar informar ao GMail que deseja (sim o suporte ao Greasemonkey, graças a um funcionário da Google, é da própria Google) carregar o módulo do GMonkey. Para mais informações, leia a:&lt;br&gt;
&lt;a href="http://code.google.com/p/gmail-greasemonkey/wiki/GmailGreasemonkey10API"&gt;API reference for version 1.0 of the experimental Gmail Greasemonkey API&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Após se obter acesso à DOM (DHTML) do GMail, o resto é trivial e atualmente, totalmente dependente da estrutura atual do GMail, ou seja, em futuras modificações do GMail, corre-se o risco do código que funcionava antes parar de funcionar.&lt;/p&gt;
&lt;p&gt;Para flexibilizar e facilitar o acesso à DHTML do GMail, preferi o uso conjunto de XPath e RegEx pelo poder inerente dessas linguagens de consultas.&lt;/p&gt;
&lt;p&gt;O funcionamento é basicamente clicar em "Reply" no e-mail que foi recebido do Mercado Livre (com os dados da compra do cliente) e ir até o Greasemonkey e acionar o comando "Preencher Dados de Compra". Com isso, de forma automática e quase mágica, todos os dados, de todos os campos, serão preenchidos, e, inclui, seguintes recursos:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Preenchimento do Nome/Email do destinatário (o cliente);&lt;/li&gt;
&lt;li&gt;Suporte a uma template de resposta HTML onde todos os campos são preenchidos de forma automática. Os dados são obtidos do email original que foi enviado pelo ML;&lt;/li&gt;
&lt;li&gt;Cálculo automático do total da compra e incluindo o frete (padrão) e quantidade adquirida.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="code"&gt;&lt;font color="#000000"&gt;&lt;font color="#000000"&gt;   1:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;==UserScript==&lt;/font&gt;
&lt;font color="#000000"&gt;   2:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;@name&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;GMail&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;-&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;Pedidos&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;do&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;ML&lt;/font&gt;
&lt;font color="#000000"&gt;   3:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;@namespace&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;net.marciowb.gmail.ml.pedidos&lt;/font&gt;
&lt;font color="#000000"&gt;   4:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;@description&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;Me&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;ajuda&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;a&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;preencher&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;os&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;pedidos&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;do&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;ML&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;-&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;by&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;Marcio&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;Wesley&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;Borges&amp;lt;marciowb@gmail.com&amp;gt;&lt;/font&gt;
&lt;font color="#990066"&gt;   5:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;@include&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;http://mail.google.com/mail/*&lt;/font&gt;
&lt;font color="#000000"&gt;   6:&lt;/font&gt;&lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;==/UserScript==&lt;/font&gt;
&lt;font color="#000000"&gt;   7:&lt;/font&gt;
&lt;font color="#000000"&gt;   8:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;const&lt;/strong&gt;&lt;/font&gt; GMONKEYVER &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;1.0&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;   9:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; gmail &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  10:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; console &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  11:&lt;/font&gt;
&lt;font color="#000000"&gt;  12:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;function&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;evaluateXPath&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;xPath&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; aNode&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  13:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;!&lt;/strong&gt;&lt;/font&gt;aNode&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  14:&lt;/font&gt;                aNode&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;document&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  15:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  16:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; res &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; aNode&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;ownerDocument&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;evaluate&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;xPath&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; aNode&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; XPathResult&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;ANY_TYPE&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  17:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;switch&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;res&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;resultType&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  18:&lt;/font&gt;                &lt;font color="#006699"&gt;&lt;strong&gt;case&lt;/strong&gt;&lt;/font&gt; XPathResult&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;STRING_TYPE&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  19:&lt;/font&gt;                        &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; res&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;stringValue&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  20:&lt;/font&gt;                &lt;font color="#006699"&gt;&lt;strong&gt;case&lt;/strong&gt;&lt;/font&gt; XPathResult&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;NUMBER_TYPE&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  21:&lt;/font&gt;                        &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; res&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;numberValue&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  22:&lt;/font&gt;                &lt;font color="#006699"&gt;&lt;strong&gt;case&lt;/strong&gt;&lt;/font&gt; XPathResult&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;BOOLEAN_TYPE&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  23:&lt;/font&gt;                        &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; res&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;booleanValue&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  24:&lt;/font&gt;                &lt;font color="#006699"&gt;&lt;strong&gt;default&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  25:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  26:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; foundNodes &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#006699"&gt;&lt;strong&gt;new&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;Array&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  27:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; item &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; res&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;iterateNext&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt; 
&lt;font color="#000000"&gt;  28:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;while&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;item&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  29:&lt;/font&gt;                foundNodes&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;push&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;item&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  30:&lt;/font&gt;                item &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; res&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;iterateNext&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  31:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  32:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; foundNodes&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  33:&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  34:&lt;/font&gt;
&lt;font color="#990066"&gt;  35:&lt;/font&gt;&lt;font color="#cc0000"&gt;/*&lt;/font&gt;&lt;font color="#cc0000"&gt;*&lt;/font&gt;
&lt;font color="#000000"&gt;  36:&lt;/font&gt;&lt;font color="#cc0000"&gt;*&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;Obt&amp;eacute;m&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;o&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;elemento&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;BODY&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;do&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;e-mail&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;que&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;est&amp;aacute;&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;sendo&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;composto&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;(criado).&lt;/font&gt;
&lt;font color="#000000"&gt;  37:&lt;/font&gt;&lt;font color="#cc0000"&gt;*/&lt;/font&gt;
&lt;font color="#000000"&gt;  38:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;function&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;getComposingMailBody&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  39:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;!&lt;/strong&gt;&lt;/font&gt;gmail&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  40:&lt;/font&gt;                &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  41:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; el &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; gmail&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;getActiveViewElement&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;  
&lt;font color="#000000"&gt;  42:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;!&lt;/strong&gt;&lt;/font&gt;el&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  43:&lt;/font&gt;                &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  44:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; aa&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;evaluateXPath&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;//iframe[@id!='remote_iframe_0']&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; el&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  45:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;!&lt;/strong&gt;&lt;/font&gt;aa &lt;font color="#000000"&gt;&lt;strong&gt;|&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;|&lt;/strong&gt;&lt;/font&gt; aa&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;length&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;0&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  46:&lt;/font&gt;                &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  47:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; doc &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; aa&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;0&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;contentDocument&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  48:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;!&lt;/strong&gt;&lt;/font&gt;doc&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  49:&lt;/font&gt;                &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; &lt;font color="#cc00cc"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  50:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; body &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; doc&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;body&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  51:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt; body&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  52:&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  53:&lt;/font&gt;
&lt;font color="#000000"&gt;  54:&lt;/font&gt;&lt;font color="#cc0000"&gt;/*&lt;/font&gt;&lt;font color="#cc0000"&gt;*&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;
&lt;font color="#990066"&gt;  55:&lt;/font&gt;&lt;font color="#cc0000"&gt;*&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;Esta&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;fun&amp;ccedil;&amp;atilde;o&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;&amp;eacute;&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;para&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;ser&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;chamada&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;por&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;dadosCompra().&amp;lt;br&amp;gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  56:&lt;/font&gt;&lt;font color="#cc0000"&gt;*&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;@param&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;_gmail&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;&amp;Eacute;&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;fornecido&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;automaticamente&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;pela&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;fun&amp;ccedil;&amp;atilde;o&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;gmonkey.load&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;que&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;chama&lt;/font&gt;&lt;font color="#cc0000"&gt; &lt;/font&gt;&lt;font color="#cc0000"&gt;esta.&lt;/font&gt;
&lt;font color="#000000"&gt;  57:&lt;/font&gt;&lt;font color="#cc0000"&gt;*/&lt;/font&gt;
&lt;font color="#000000"&gt;  58:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;function&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;_dadosCompra&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;_gmail&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  59:&lt;/font&gt;        console &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; unsafeWindow&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;console&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  60:&lt;/font&gt;        gmail &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; _gmail&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  61:&lt;/font&gt;        
&lt;font color="#000000"&gt;  62:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; bodyElem &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;getComposingMailBody&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  63:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;bodyElem&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#cc00cc"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  64:&lt;/font&gt;                window&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;alert&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;Antes,&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;eacute;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;necess&amp;aacute;rio&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;que&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;d&amp;ecirc;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;um&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;reply&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;no&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;e-mail&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;com&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;os&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;dados&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;da&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;compra&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;do&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Mercado&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Livre&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  65:&lt;/font&gt;                &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  66:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  67:&lt;/font&gt;        
&lt;font color="#000000"&gt;  68:&lt;/font&gt;        
&lt;font color="#000000"&gt;  69:&lt;/font&gt;        &lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt;Tenta&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;obter&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;o&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;&amp;quot;quoted&amp;quot;&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;mail&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;que&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;est&amp;aacute;&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;sendo&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;respondido&lt;/font&gt;
&lt;font color="#990066"&gt;  70:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; aQuoted&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;evaluateXPath&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;//div[@class='gmail_quote']&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; bodyElem&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  71:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;!&lt;/strong&gt;&lt;/font&gt;aQuoted &lt;font color="#000000"&gt;&lt;strong&gt;|&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;|&lt;/strong&gt;&lt;/font&gt; aQuoted&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;length&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;0&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  72:&lt;/font&gt;                window&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;alert&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;N&amp;atilde;o&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;se&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;deve&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;apagar&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;o&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;quoted&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;mail&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;ainda.&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  73:&lt;/font&gt;                &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  74:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  75:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; quotedMailBody &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; aQuoted&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;0&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;innerHTML&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  76:&lt;/font&gt;                
&lt;font color="#000000"&gt;  77:&lt;/font&gt;        &lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt;Obt&amp;eacute;m&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;o&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;c&amp;oacute;digo&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;do&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;an&amp;uacute;ncio&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;e&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;nome&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;do&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;produto&lt;/font&gt;
&lt;font color="#000000"&gt;  78:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; rgx &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;/;id=(\d*)[^&amp;gt;]*&amp;gt;([^&amp;lt;]*)/&lt;/font&gt;
&lt;font color="#000000"&gt;  79:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; m &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; rgx&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;exec&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;quotedMailBody&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  80:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;!&lt;/strong&gt;&lt;/font&gt;m &lt;font color="#000000"&gt;&lt;strong&gt;|&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;|&lt;/strong&gt;&lt;/font&gt; m&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;length&lt;font color="#000000"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;3&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  81:&lt;/font&gt;                window&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;alert&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;Isto&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;s&amp;oacute;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;funciona&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;para&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;os&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;e-mails&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;de&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;compra&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;do&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Mercado&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Livre.&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  82:&lt;/font&gt;                &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  83:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  84:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; codAnuncio &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; m&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  85:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; nomeAnuncio &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; m&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;2&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  86:&lt;/font&gt;        
&lt;font color="#000000"&gt;  87:&lt;/font&gt;        &lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt;Obt&amp;eacute;m&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;o&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;nome&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;do&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;comprador&lt;/font&gt;
&lt;font color="#000000"&gt;  88:&lt;/font&gt;        rgx &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;/Nome:\s*&amp;lt;b\b[^&amp;gt;]*&amp;gt;(.*)&amp;lt;\/&lt;/font&gt;b&lt;font color="#000000"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;/&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  89:&lt;/font&gt;        m &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; rgx&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;exec&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;quotedMailBody&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  90:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; nomeComprador &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; m&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  91:&lt;/font&gt;        
&lt;font color="#000000"&gt;  92:&lt;/font&gt;        &lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt;Obt&amp;eacute;m&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;o&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;c&amp;oacute;digo,&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;apelido&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;e&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;pontua&amp;ccedil;&amp;atilde;o&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;do&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;comprador&lt;/font&gt;
&lt;font color="#000000"&gt;  93:&lt;/font&gt;        rgx &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;/&lt;/strong&gt;&lt;/font&gt;Apelido&lt;font color="#000000"&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;*&lt;/strong&gt;&lt;/font&gt;id&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;\d&lt;font color="#000000"&gt;&lt;strong&gt;*&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;.*[^&amp;gt;]&amp;gt;(.*)&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;\((\d*)\)/&lt;/font&gt;
&lt;font color="#000000"&gt;  94:&lt;/font&gt;        m &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; rgx&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;exec&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;quotedMailBody&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt;  95:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; codComprador &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; m&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  96:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; apelidoComprador &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; m&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;2&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  97:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; pontuacaoComprador &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; m&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;3&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt;  98:&lt;/font&gt;        
&lt;font color="#000000"&gt;  99:&lt;/font&gt;        &lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt;Obt&amp;eacute;m&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;a&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;quantidade&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;de&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;produtos&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;comprados&lt;/font&gt;
&lt;font color="#990066"&gt; 100:&lt;/font&gt;        rgx &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;/Quantidade:\s*(\d*)/&lt;/font&gt;
&lt;font color="#000000"&gt; 101:&lt;/font&gt;        m &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; rgx&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;exec&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;quotedMailBody&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 102:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; quantidade &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; m&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 103:&lt;/font&gt;        
&lt;font color="#000000"&gt; 104:&lt;/font&gt;        &lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt;Obt&amp;eacute;m&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;o&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;pre&amp;ccedil;o&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;pelo&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;qual&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;o&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;cliente&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;comprou&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;o&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;produto&lt;/font&gt;
&lt;font color="#990066"&gt; 105:&lt;/font&gt;        rgx &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;/Pre&amp;ccedil;o:\s*([^&amp;lt;]*)/&lt;/font&gt;
&lt;font color="#000000"&gt; 106:&lt;/font&gt;        m &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; rgx&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;exec&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;quotedMailBody&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 107:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; descPreco &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; m&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;replace&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;R$&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;replace&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;unit.&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 108:&lt;/font&gt;        
&lt;font color="#000000"&gt; 109:&lt;/font&gt;        &lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt;Obt&amp;eacute;m&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;o&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;e-mail&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;do&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;comprador&lt;/font&gt;
&lt;font color="#990066"&gt; 110:&lt;/font&gt;        rgx &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;/E-mail:[^&amp;gt;]*&amp;gt;([^&amp;lt;]*)/&lt;/font&gt;i
&lt;font color="#000000"&gt; 111:&lt;/font&gt;        m &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; rgx&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;exec&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;quotedMailBody&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 112:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; emailComprador &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; m&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 113:&lt;/font&gt;        
&lt;font color="#000000"&gt; 114:&lt;/font&gt;        &lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt;Obt&amp;eacute;m&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;o&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;telefone&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;do&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;comprador&lt;/font&gt;
&lt;font color="#990066"&gt; 115:&lt;/font&gt;        rgx &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;/Telefone:\s*([^&amp;lt;]*)/&lt;/font&gt;
&lt;font color="#000000"&gt; 116:&lt;/font&gt;        m &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; rgx&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;exec&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;quotedMailBody&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 117:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; telefoneComprador &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; m&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 118:&lt;/font&gt;        
&lt;font color="#000000"&gt; 119:&lt;/font&gt;        &lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt;Obt&amp;eacute;m&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;a&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;cidade&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;do&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;comprador&lt;/font&gt;
&lt;font color="#990066"&gt; 120:&lt;/font&gt;        rgx &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;/Cidade:\s*([^&amp;lt;]*)/&lt;/font&gt;
&lt;font color="#000000"&gt; 121:&lt;/font&gt;        m &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; rgx&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;exec&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;quotedMailBody&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 122:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; cidadeComprador &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; m&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 123:&lt;/font&gt;        
&lt;font color="#000000"&gt; 124:&lt;/font&gt;        &lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt;Obt&amp;eacute;m&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;o&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;estado&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;do&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;comprador&lt;/font&gt;
&lt;font color="#990066"&gt; 125:&lt;/font&gt;        rgx &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;/Estado:\s*([^&amp;lt;]*)/&lt;/font&gt;
&lt;font color="#000000"&gt; 126:&lt;/font&gt;        m &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; rgx&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;exec&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;quotedMailBody&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 127:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; estadoComprador &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; m&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 128:&lt;/font&gt;        
&lt;font color="#000000"&gt; 129:&lt;/font&gt;        &lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt;Obt&amp;eacute;m&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;o&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;pa&amp;iacute;s&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;do&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;comprador&lt;/font&gt;
&lt;font color="#990066"&gt; 130:&lt;/font&gt;        rgx &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0000ff"&gt;/Pa&amp;iacute;s:\s*([^&amp;lt;]*)/&lt;/font&gt;
&lt;font color="#000000"&gt; 131:&lt;/font&gt;        m &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; rgx&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;exec&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;quotedMailBody&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 132:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; paisComprador &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; m&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 133:&lt;/font&gt;
&lt;font color="#000000"&gt; 134:&lt;/font&gt;        &lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt;////////////////////////////////////&lt;/font&gt;&lt;font color="#ff8400"&gt;  &lt;/font&gt;
&lt;font color="#990066"&gt; 135:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; VLR_MIN &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff0000"&gt;4&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt;Valor&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;m&amp;iacute;nimo&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;da&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;compra.&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;Isto&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;&amp;eacute;&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;realizado&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;por&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;seguran&amp;ccedil;a&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;nossa&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;e&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;o&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;objetivo&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;&amp;eacute;&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;evitar&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;que&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;um&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;erro&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;qualquer&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;nos&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;cause&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;preju&amp;iacute;zo.&lt;/font&gt;
&lt;font color="#000000"&gt; 136:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; TIP_FRETE &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;Frete&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;por&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;SEDEX&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 137:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; VLR_FRETE &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;23.00&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 138:&lt;/font&gt;        
&lt;font color="#000000"&gt; 139:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; vlrTotal &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0099ff"&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;descPreco&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;*&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;quantidade&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; &lt;font color="#0099ff"&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;VLR_FRETE&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt; 140:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;vlrTotal&lt;font color="#000000"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/font&gt;VLR_MIN&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 141:&lt;/font&gt;                window&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;alert&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;Erro:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;o&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;valor&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;total&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;da&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;compra&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;est&amp;aacute;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;sendo&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;computado&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;como:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; vlrTotal&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 142:&lt;/font&gt;                &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 143:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 144:&lt;/font&gt;        
&lt;font color="#990066"&gt; 145:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; TEMPLATE &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;div&amp;gt;Oi,&amp;lt;br&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;br&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;amp;nbsp;&amp;amp;nbsp;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Td&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;blz?&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;span&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;color:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;rgb(0,&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;102,&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;0);&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;Eacute;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;o&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;seguinte,&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;informa&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;a&amp;iacute;:&amp;lt;br&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;&amp;lt;span&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;Nome:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;@NOME_COMPRADOR&amp;lt;/span&amp;gt;&amp;lt;br&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;span&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;Endere&amp;ccedil;o:&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;br&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;&amp;lt;span&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;color:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;rgb(0,&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;102,&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;0);&amp;quot;&amp;gt;&amp;lt;span&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;Bairro:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;/span&amp;gt;&amp;lt;br&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;span&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;Cidade/Estado:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;@CIDADE_COMPRADOR-@ESTADO_COMPRADOR&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;/span&amp;gt;&amp;lt;br&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;&amp;lt;span&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;CEP:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;/span&amp;gt;&amp;lt;br&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;span&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;APELIDO:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;@APELIDO_COMPRADOR&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;/span&amp;gt;&amp;lt;br&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;&amp;lt;span&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;CPF:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;/span&amp;gt;&amp;lt;br&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;span&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;TEL:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;@TELEFONE_COMPRADOR&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;/span&amp;gt;&amp;lt;br&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;&amp;lt;span&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;E-MAIL:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;@EMAIL_COMPRADOR&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;/span&amp;gt;&amp;lt;br&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;span&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;FORMA&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;DE&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;PAGAMENTO:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;E&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;se&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;tu&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;tiv&amp;eacute;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;uma&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;companhia,&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;diz,&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;tamb&amp;eacute;m:&amp;lt;br&amp;gt;&amp;lt;span&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;Nome&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;da&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Empresa:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;/span&amp;gt;&amp;lt;br&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;span&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;CNPJ:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;/span&amp;gt;&amp;lt;br&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;&amp;lt;span&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;&amp;quot;&amp;gt;Inscri&amp;ccedil;&amp;atilde;o&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Estadual:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;b&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;color:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;rgb(0,&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;102,&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;0);&amp;quot;&amp;gt;Importante:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;/b&amp;gt;&amp;lt;span&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;color:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;rgb(0,&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;102,&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;0);&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Nessa,&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;voc&amp;ecirc;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;t&amp;aacute;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;levando:&amp;lt;pre&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;br&amp;gt;&amp;lt;table&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;border=&amp;quot;1&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;cellspacing=&amp;quot;0&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;cols=&amp;quot;3&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;style=&amp;quot;font-family:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;courier&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;new,monospace;font-size:9pt&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;rules=&amp;quot;groups&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;width=&amp;quot;100%&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;frame=&amp;quot;void&amp;quot;&amp;gt;&amp;lt;tbody&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;tr&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;td&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;width=&amp;quot;35&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Qnt.&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;td&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;align=&amp;quot;right&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;width=&amp;quot;94&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Valor&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;td&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;align=&amp;quot;left&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Descri&amp;ccedil;&amp;atilde;o&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;/tr&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;tr&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;td&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;width=&amp;quot;35&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;align=&amp;quot;right&amp;quot;&amp;gt;@QNT_PRODUTO&amp;lt;/td&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;td&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;align=&amp;quot;right&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;gt;@VALOR_PRODUTO&amp;lt;/td&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;td&amp;gt;@NOME_PRODUTO&amp;lt;/td&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;/tr&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;tr&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;td&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;width=&amp;quot;35&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;align=&amp;quot;right&amp;quot;&amp;gt;@QNT_FRETE&amp;lt;/td&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;td&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;align=&amp;quot;right&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;gt;@VALOR_FRETE&amp;lt;/td&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;td&amp;gt;@TIPO_FRETE&amp;lt;/td&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;/tr&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;tr&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;td&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;bgcolor=&amp;quot;#e6e6e6&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;align=&amp;quot;right&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;height=&amp;quot;16&amp;quot;&amp;gt;&amp;lt;b&amp;gt;@QNT_TOTAL&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;td&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;bgcolor=&amp;quot;#e6e6e6&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;align=&amp;quot;right&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;gt;&amp;lt;b&amp;gt;@VALOR_TOTAL&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;td&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;bgcolor=&amp;quot;#e6e6e6&amp;quot;&amp;gt;&amp;lt;font&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;size=&amp;quot;2&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Total&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/td&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;/tr&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;/tbody&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;/table&amp;gt;&amp;lt;font&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;face=&amp;quot;monospace&amp;quot;&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/pre&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;amp;nbsp;&amp;amp;nbsp;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;Eacute;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;isso,&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;a&amp;iacute;.&amp;lt;br&amp;gt;Valeu&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;brother,&amp;lt;br&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Ful.&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;de&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Talz&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 146:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; emailBody &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; TEMPLATE
&lt;font color="#000000"&gt; 147:&lt;/font&gt;                &lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;replace&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;@NOME_PRODUTO&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;nomeAnuncio&lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;#&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt;codAnuncio&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 148:&lt;/font&gt;                &lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;replace&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;@VALOR_PRODUTO&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; descPreco&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 149:&lt;/font&gt;                &lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;replace&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;@QNT_PRODUTO&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; quantidade&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt; 150:&lt;/font&gt;                &lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;replace&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;@QNT_FRETE&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;1&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 151:&lt;/font&gt;                &lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;replace&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;@VALOR_FRETE&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; VLR_FRETE&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 152:&lt;/font&gt;                &lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;replace&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;@TIPO_FRETE&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; TIP_FRETE&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 153:&lt;/font&gt;                &lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;replace&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;@QNT_TOTAL&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#0099ff"&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;quantidade&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 154:&lt;/font&gt;                &lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;replace&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;@VALOR_TOTAL&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; vlrTotal&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt; 155:&lt;/font&gt;                &lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;replace&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;@EMAIL_COMPRADOR&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; emailComprador&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 156:&lt;/font&gt;                &lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;replace&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;@TELEFONE_COMPRADOR&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; telefoneComprador&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 157:&lt;/font&gt;                &lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;replace&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;@APELIDO_COMPRADOR&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; apelidoComprador&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 158:&lt;/font&gt;                &lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;replace&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;@CIDADE_COMPRADOR&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; cidadeComprador&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 159:&lt;/font&gt;                &lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;replace&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;@ESTADO_COMPRADOR&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; estadoComprador&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt; 160:&lt;/font&gt;                &lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;replace&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;@NOME_COMPRADOR&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; nomeComprador&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 161:&lt;/font&gt;                
&lt;font color="#000000"&gt; 162:&lt;/font&gt;        bodyElem&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;innerHTML &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; emailBody&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 163:&lt;/font&gt;        
&lt;font color="#000000"&gt; 164:&lt;/font&gt;        &lt;font color="#ff8400"&gt;//&lt;/font&gt;&lt;font color="#ff8400"&gt;Tenta&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;obter&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;o&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;campo&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;de&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;listagens&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;dos&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;e-mails&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;dos&lt;/font&gt;&lt;font color="#ff8400"&gt; &lt;/font&gt;&lt;font color="#ff8400"&gt;destinat&amp;aacute;rios&lt;/font&gt;
&lt;font color="#990066"&gt; 165:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; el &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; gmail&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;getActiveViewElement&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 166:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; aTos&lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;evaluateXPath&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt;//textarea[@name=&amp;quot;to&amp;quot;]&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; el&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 167:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;if&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;!&lt;/strong&gt;&lt;/font&gt;aTos &lt;font color="#000000"&gt;&lt;strong&gt;|&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;|&lt;/strong&gt;&lt;/font&gt; aTos&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;length&lt;font color="#000000"&gt;&lt;strong&gt;&amp;lt;&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;1&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 168:&lt;/font&gt;                window&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;alert&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;Erro:&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;n&amp;atilde;o&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;foi&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;poss&amp;iacute;vel&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;determinar&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;onde&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;est&amp;aacute;&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;o&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;campo&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;relativo&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;aos&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;emails&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;do&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;destinat&amp;aacute;rio.&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Isso&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;pode&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;ocorrer&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;no&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;caso&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;do&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;GMail&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;mudar&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;sua&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;estrutura&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;DHTML.&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 169:&lt;/font&gt;                &lt;font color="#006699"&gt;&lt;strong&gt;return&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt; 170:&lt;/font&gt;        &lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 171:&lt;/font&gt;        &lt;font color="#006699"&gt;&lt;strong&gt;var&lt;/strong&gt;&lt;/font&gt; to &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; aTos&lt;font color="#000000"&gt;&lt;strong&gt;[&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt;0&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;]&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 172:&lt;/font&gt;        to&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;value &lt;font color="#000000"&gt;&lt;strong&gt;=&lt;/strong&gt;&lt;/font&gt; nomeComprador &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; emailComprador &lt;font color="#000000"&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;/font&gt; &lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 173:&lt;/font&gt;        
&lt;font color="#000000"&gt; 174:&lt;/font&gt;        console&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;log&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#ff00cc"&gt;Viva&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Java!&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Viva&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;a&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Liberdade!&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Reviva&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;a&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;SUN!&lt;/font&gt;&lt;font color="#ff00cc"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt; 175:&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 176:&lt;/font&gt;
&lt;font color="#000000"&gt; 177:&lt;/font&gt;&lt;font color="#006699"&gt;&lt;strong&gt;function&lt;/strong&gt;&lt;/font&gt; &lt;font color="#9966ff"&gt;dadosCompra&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt; &lt;font color="#000000"&gt;&lt;strong&gt;{&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 178:&lt;/font&gt;        unsafeWindow&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;gmonkey&lt;font color="#000000"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font color="#9966ff"&gt;load&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;GMONKEYVER&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; _dadosCompra&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#000000"&gt; 179:&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;}&lt;/strong&gt;&lt;/font&gt;
&lt;font color="#990066"&gt; 180:&lt;/font&gt;
&lt;font color="#000000"&gt; 181:&lt;/font&gt;&lt;font color="#9966ff"&gt;GM_registerMenuCommand&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;(&lt;/strong&gt;&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#ff00cc"&gt;Preencher&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Dados&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;de&lt;/font&gt;&lt;font color="#ff00cc"&gt; &lt;/font&gt;&lt;font color="#ff00cc"&gt;Compra&lt;/font&gt;&lt;font color="#ff00cc"&gt;'&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;,&lt;/strong&gt;&lt;/font&gt; dadosCompra&lt;font color="#000000"&gt;&lt;strong&gt;)&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&lt;strong&gt;;&lt;/strong&gt;&lt;/font&gt; 
&lt;font color="#000000"&gt; 182:&lt;/font&gt;
&lt;/font&gt;&lt;/pre&gt;
&lt;p&gt;Caso alguém queira o script acima para o Greasemonkey, pode pegá-lo aqui:&lt;br&gt;
&lt;a href="http://www.marciowb.net/blog/2008/11/files/gmail_-_pedidos_do_ml.user.js" title="Preenchimento automático de e-mail com os dados da compra do cliente"&gt;Preenchimento automático de e-mail com os dados da compra do cliente do Mercado Livre.&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Referências&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://diveintogreasemonkey.org/toc/"&gt;Dive Into Greasemonkey&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://googlesystem.blogspot.com/2007/11/gmail-api-for-greasemonkey.html"&gt;Gmail API for Greasemonkey&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/gmail-greasemonkey/wiki/GmailGreasemonkey10API"&gt;gmail-greasemonkey: Gmail Greasemonkey Scripts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.mozilla.org/En/DOM/Document.evaluate"&gt;Gecko DOM Reference: document.evaluate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://wiki.tcl.tk/989"&gt;Regular Expression Examples: Negated string: Donal Fellows&lt;/a&gt; (Special Thanks! I was breaking my head.. before to find your snippet regex)&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-6898264772809616470?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2008/11/e-mails-com-pedidos-do-mercado-livre</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-8122376607814088430</guid><pubDate>Thu, 13 Nov 2008 22:29:00 +0000</pubDate><atom:updated>2009-11-05T10:30:07.559-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>music</category><title>Gotan Project - La Viguela</title><description>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/HtmygppNjyQ&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/HtmygppNjyQ&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;pre&gt;
aquí me pongo a cantar
al compás de la vigüela
que al hombre que lo desvela
una pena extraordinaria
como el ave solitaria
con el cantar se consuela

vengan santos milagrosos
vengan todos en mi ayuda
que la lengua se me añuda
y se me turba la vista
pido a mi dios que me asista
y en esta ocasión me ayuda

aquí me pongo a cantar
al compás de la vigüela
que al hombre que lo desvela
una pena extraordinaria
como el ave solitaria
con el cantar se consuela
&lt;/pre&gt;

Gracias Daniel por &lt;a title="Outras letras de músicas de Gotan Project" href="http://pt.sondaletra.info/SondaLetraWeb/Art.jspx?id=35191"&gt;la letra&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-8122376607814088430?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2008/11/gotan-project-la-viguela</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-6975924299254492662</guid><pubDate>Fri, 03 Oct 2008 11:14:00 +0000</pubDate><atom:updated>2008-10-04T14:16:16.212-03:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>tips</category><category domain='http://www.blogger.com/atom/ns#'>it</category><title>NoSerialMouse: Ao Plugar Dispositivo Serial, Windows fica "maluco" e reconhece como Mouse</title><description>&lt;p&gt;Algumas vezes quando se pluga algum dispositivo serial - e isso vale para dispositivos seriais que funcionam via USB, ou seja, aqueles que criam uma porta COM virtual no computador -, o Windows aparentemente fica maluco, um monte de coisas começam a acontecer na tela e se tem a impressão de que alguém ou alguma coisa tomou o controle do computador. Isso pode acontecer com qualquer dispositivo serial, apesar de frequentemente acontecer mais com certos tipos, como: qualquer GPS NMEA 0183, seja plugado na USB ou na porta serial.&lt;/p&gt;

&lt;p&gt;O problema acontece porque ao se plugar o dispositivo, o Windows verifica que ele é serial e durante um pequeno período de tempo ele amostrará os dados que estão sendo transmitidos pelo dispositivo, por coincidência, no momento da amostragem o Windows poderá detectar alguma sequência de dados que caracterize um Mouse, nesse caso, graças a magia do plug-and-play, ele irá automaticamente adicionar um Mouse de acordo com o dispositivo que ele (o Windows) pensa se tratar à lista de dispositivos do computador. Após isso, ocorre o comportamente aparentemente aleatório e inesperado na tela.&lt;/p&gt;

&lt;p&gt;Para resolver esse problema, é bastante simples: basta desativar o Mouse que foi criado no Gerenciador de Dispositivos. No caso do meu GPS, o WIndows o reconheceu como sendo o "Microsoft Serial Ballpoint" - então, foi só desativá-lo para resolver o problema.&lt;/p&gt;

No vídeo abaixo, mostro como reconhecer esse falso Mouse e como desabilitá-lo:
&lt;object width="425" height="350"&gt; &lt;param name="movie" value="http://www.youtube.com/v/BemuMFAjEGQ"&gt; &lt;/param&gt; &lt;embed src="http://www.youtube.com/v/BemuMFAjEGQ" type="application/x-shockwave-flash" width="425" height="350"&gt; &lt;/embed&gt; &lt;/object&gt;

&lt;p&gt;Apesar do procedimento acima ser simples, nem sempre é fácil executá-lo pois o ponteiro do mouse fica pulando na tela e clicando em tudo que é lugar, então, até que se possa executar todos os passos e desativar o "falso mouse", muito trabalho será necessário. Pensando nisso, resolvi pesquisar melhores soluções para o problema, já que muita gente passa e passará por isso. Veja o que encontrei:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;q283063"&gt;Serial Device May Be Detected as a Serial Mouse in Windows 2000&lt;/a&gt; - A Microsoft reconhece o problema e apesar do artigo ao lado mencionar o Windows 2000, na verdade ocorre em todas as versões do Windows, inclusive o Vista.&lt;br&gt;
No &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;q283063"&gt;artigo 283063&lt;/a&gt; há informação detalhada de como resolver o problema.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.pcmaritime.co.uk/leisure/support/jumpingmouse.html"&gt;"Jumping Mouse" bug in Windows 2000/XP&lt;/a&gt; - Informam uma solução alternativa, mas só vale para versões do Windows anteriores ao Vista.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;&lt;a title="Download Gratuito do NoSerialMouse" href="http://www.marciowb.net/soft/pro/3/f/NoSerialMouse.exe"&gt;NoSerialMouse&lt;/a&gt;&lt;/h2&gt;
&lt;a title="Download Gratuito do NoSerialMouse" href="http://www.marciowb.net/soft/pro/3/f/NoSerialMouse.exe"&gt;&lt;img alt="NoSerialMouse" style="float:right" src="http://www.marciowb.net/soft/pro/3/i/NoSerialMouse.jpg" width=251 height=305&gt;&lt;/a&gt;
&lt;p&gt;Pensando no bem coletivo e aproveitando um pequeno programinha que fiz anteriormente, acabei por automatizar a solução descrita pelo &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;q283063"&gt;artigo 283063&lt;/a&gt; da Microsoft. A idéia foi criar algo bem simples, mas que fosse eficaz. Você deixa ele rodando antes de plugar o dispositivo e quando o dispositivo é plugado, ele automaticamente desativa o mecanismo que faria o Windows reconhecê-lo como um Mouse. O programa funciona particularmente bem com dispositivos USB e foi testado no Windows XP, Vista 64 e 2000. O NoSerialMouse pode listar todas as portas COM do computador ou somente as COM que estejam efetivamente disponíveis.&lt;/p&gt;

&lt;p&gt;O &lt;a title="Download Gratuito do NoSerialMouse" href="http://www.marciowb.net/soft/pro/3/f/NoSerialMouse.exe"&gt;NoSerialMouse&lt;/a&gt; é gratuito. No entanto, pode ser que alguém se interesse pelos fontes, já que o mecanismo de reconhecimento das portas seriais é particularmente sofisticado e reconhece com excelente precisão os mais diversos tipos de portas seriais - onde, inclusive, outros mecanismos de enumeração do hardware, falham (isso vale para Win2k, XP, Vista32/64). Os fontes do programa estão em Delphi 6 (com código e comentários em inglês) e posso, eventualmente, responder alguma questão por e-mail. Para adquirir os fontes, acesse:&lt;/p&gt;

Referências:
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;q283063"&gt;Serial Device May Be Detected as a Serial Mouse in Windows 2000&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.pcmaritime.co.uk/leisure/support/jumpingmouse.html"&gt;"Jumping Mouse" bug in Windows 2000/XP&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://vlaurie.com/computers2/Articles/bootini.htm"&gt;How to Use and Edit Boot.ini in Windows XP&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-6975924299254492662?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2008/10/rapidinha-dispositivo-serial-windows</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-1092370230096717421</guid><pubDate>Mon, 22 Sep 2008 15:23:00 +0000</pubDate><atom:updated>2008-11-21T23:35:06.934-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>politics</category><title>Sobre: "PF não consegue decifrar criptografia dos arquivos de Daniel Dantas" da Folha Online</title><description>Saiu na Folha Online:&lt;br&gt;
&lt;i&gt;
22/09/2008 - 04h56&lt;br&gt;
PF não consegue decifrar criptografia dos arquivos de Daniel Dantas&lt;br&gt;
da Folha Online&lt;br&gt;
&lt;p&gt;Hoje na Folha Dois meses e meio depois de apreender cinco discos rígidos no apartamento do banqueiro Daniel Dantas, durante a Operação Satiagraha, a Polícia Federal ainda não conseguiu decifrar a criptografia que protege os dados, informa nesta segunda-feira reportagem de Rubens Valente e Mario Cesar Carvalho, publicada pela Folha ...&lt;/p&gt;
&lt;p&gt;Segundo a reportagem, até a última sexta-feira a polícia não havia conseguido desvendar as senhas.&lt;/p&gt;
&lt;p&gt;Numa análise inicial, peritos da Polícia Federal disseram que precisariam de um ano para quebrar os códigos. Um dos peritos disse que nunca havia visto um sistema de proteção tão sofisticado no Brasil. O delegado Protógenes Queiroz, que coordenou a Satiagraha, diz que os HDs "guardam segredos da República".&lt;/p&gt;
&lt;p&gt;Os cinco discos rígidos são unidades externas de memória, e estavam guardados dentro de um armário no apartamento do banqueiro em Ipanema, na zona sul do Rio.&lt;/p&gt;
&lt;p&gt;O impasse levou os investigadores da PF a estudar uma alternativa jurídica para o rompimento do sigilo. Em conjunto com o juiz federal Fausto De Sanctis, informado há mais de um mês sobre os problemas nos HDs, os policiais discutem a possibilidade de obrigar, por ordem judicial, a empresa norte-americana que criou o software a fornecer as chaves eletrônicas que abrem os arquivos. É também aguardada a chegada de um grupo de peritos da PF de Brasília.&lt;/p&gt;
&lt;/i&gt;

&lt;h1&gt;Minha opinião&lt;/h1&gt;
&lt;p&gt;A ridícula atitude da PF demonstra que esta está cercada de brutamontes sem cérebros, ou de nem tão brutamontes assim, mas de barriga grande. Provavelmente, a última vez que esses caras estudaram, foi quando sentaram a bunda para passarem nesses concursos de peritos da PF. Hoje com um salário gordo, se ocupam em engordar a pança e ostentar o status de perito da PF.&lt;/p&gt;
&lt;p&gt;Para quem entende o mínimo de criptografia - coisa que parece não ser o caso dos incompetentes peritos da PF - sabe que os melhores algoritmos criptográficos, são aqueles que todos tem conhecimento, mas que é impossível revertê-los sem a(s) chave(s) apropriada(s)... Ou seja, mesmo que a empresa revelasse a criptografia utilizada, precisariam que o próprio Dantas informasse a chave criptográfica... Coisa que a não ser que ele queira, é impossível pela lei brasileira, já que não se pode obrigá-lo a revelar. Basta lembrar que de acordo com a Carta, ninguém é obrigado a produzir prova contra si mesmo. Dito isso, é lamentável ver publicado na imprensa uma notícia como essa, pois mostra alguns atributos de uma polícia mal preparada, como: ignorância, incompetência técnica, incompetência administrativa, incompetência da assessoria de imprensa, ingenuidade e por último, até desespero.&lt;/p&gt;
&lt;p&gt;Quero saber como a PF pretende obrigar uma empresa especializada em segurança eletrônica, que provavelmente vive disso, e que está fora da jurisdição brasileira, a revelar seu ganha pão. Vão ligar para os caras lá nos EUA e pedir:&lt;br&gt;
- Por favor, quebrem essa criptografia que desenvolveram, pois nós da PF do Brasil, não conseguimos...&lt;/p&gt;
&lt;p&gt;Para quem não sabe, os EUA até - sob pena de prisão - impedem a exportação de qualquer mecanismo criptográfico que seja considerado forte. Quanto mais a revelação ou quebra do algoritmo em si. Daí, deduz-se: ou o algoritmo não é forte o bastante, e por isso foi exportado, ou não saiu dos EUA. Se for o caso do algoritmo não ser tão forte ao ponto de que sua saída dos EUA tenha sido permitida, significaria que um departamento de inteligência competente, deveria ser capaz de quebrá-la. Já pensaram em pedir ajudar para algum &lt;i&gt;hacker&lt;/i&gt;, um autêntico code-breaker? Senão, quem sabe, um competente cripto-analista. Acho que teriam mais sucesso que simplesmente tentar a força bruta...&lt;/p&gt;
&lt;p&gt;A total falta de respeito à instituição privada no Brasil, à propriedade intelectual e aos diretos básicos de uma democrácia, em um sistema capitalista, é vergonhosa! Imaginem que uma grande empresa no Brasil tivesse desenvolvido um novo sistema criptográfico, algo inovador, eficaz e que isso fosse sua única e principal fonte de negócio; digamos que ela ganhasse um bom dinheiro com isso, vendendo principalmente para grandes empresas que desejam preservar sua informação - coisa até incentivada pela ABIN. Como ficaria a situação dessa empresa, seus sócios, empregados e todos os seus clientes? Pois neste momento a PF alega intensionar obrigar uma empresa de outro país a quebrar o código criptográfico - seu negócio, fruto de investimento de capital financeiro e intelectual e fonte de renda - em favor de obterem acesso aos dados que desejam no computador de um empresário? Quem estará a salvo da PF em nosso país se nem mesmo as fontes mais altas dos poderes executivos, legislativos e judiciário, estão? Se a empresa fosse brasileira, todos os seus clientes, seus sócios e empregados, estariam agora esmurrando em paredes, já que pela bestialidade característica da conjunção judiciário/polícia, provavelmente obrigariam a empresa a quebrar a criptografia que desenvolveram e a revelar, automaticamente, os segredos de inúmeros terceiros, por que a PF é incompetente o suficiente para não conseguir fazer isso por conta própria. E, pior, se não fosse possível quebrar a criptografia (o próprio engenho criptográfico de um bom algoritmo, em geral, não permite), de nada adiantaria chegar ao excelentíssimo juiz e tentar explicar, pois esse último, rapidamente expediria a ordem de prisão contra os responsáveis pela empresa, sob alegação de descumprimento de mandado judicial.&lt;/p&gt;
&lt;p&gt;Depois dessa e de muitas outras manifestações de desrespeito com a propriedade intelectual privada e às regras de um sistema capitalista saudável, que empresa séria irá investir em segurança da informação neste país? Ou a empresa se dobra ao governo e trabalha a margem da legalidade, ou não trabalha. O que será que andam fazendo lá na Módulo neste momento? Isso me faz perguntar como chegaram até aqui... Pensem, bem: se vocês estão trabalhando corretamente, um dia pode ser a hora de vocês. Coisa arriscada, essa de se trabalhar honestamente neste país.&lt;/p&gt;
&lt;p&gt;Não sou a favor da impunidade, não. Sou, sim, a favor do cumprimento da lei, da moral e da justiça. Se a lei e a moral estiverem caducas, então que as corrigimos - eu mesmo tenho algumas propostas a fazer. O que não pode é a polícia burra, num senso muito estúpido de cumprimento do dever, passar por cima de tudo e de todos, com o objetivo final de se fazer justiça, mas infringindo a lei em seus meios. Ou será que pensam serem "vingadores"? Estará a PF se rebeliando contra o estado de direito democrático brasileiro? Ou são mero produto da idiotia coletiva desta nação?&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-1092370230096717421?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2008/09/sobre-pf-no-consegue-decifrar</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-8914133.post-437139522673819762</guid><pubDate>Fri, 19 Sep 2008 23:26:00 +0000</pubDate><atom:updated>2009-11-05T10:32:53.206-02:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>music</category><title>Pink Floyd - Time</title><description>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/BfBoUQxA7o0&amp;hl=en&amp;fs=1&amp;color1=0x3a3a3a&amp;color2=0x999999"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/BfBoUQxA7o0&amp;hl=en&amp;fs=1&amp;color1=0x3a3a3a&amp;color2=0x999999" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;a href="http://pt.sondaletra.info/SondaLetraWeb/Art.jspx?id=191" title="Acesse o SondaLetra.Info para baixar a música e outras letras do Pink Floyd"&gt;
&lt;pre&gt;
Ticking away the moments that make up a dull day
You fritter and waste the hours in an off hand way
Kicking around on a piece of ground in your home town
Waiting for someone or something to show you the way

Tired of lying in the sunshine staying home to watch the rain
You are young and life is long and there is time to kill today
And then one day you find ten years have got behind you
No one told you when to run, you missed the starting gun

And you run and you run to catch up with the sun, but its sinking
And racing around to come up behind you again
The sun is the same in the relative way, but youre older
Shorter of breath and one day closer to death

Every year is getting shorter, never seem to find the time
Plans that either come to naught or half a page of scribbled lines
Hanging on in quiet desperation is the english way
The time is gone, the song is over, thought Id something more to say
&lt;/pre&gt;
&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8914133-437139522673819762?l=www.marciowb.net%2Fblog' alt='' /&gt;&lt;/div&gt;</description><link>http://www.marciowb.net/blog/2008/09/pink-floyd-time</link><author>marciowb@gmail.com (Marcio Wesley Borges)</author><thr:total>0</thr:total></item></channel></rss>