Netlify
tcp/443 tcp/80
The following URL (usually /.git/config) is publicly accessible and is leaking source code and repository configuration.
Severity: high
Fingerprint: 2580fa947178c88602b1737db148c044baa2727ab8135b5bbc521bbbd0dea5a1
[core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true symlinks = false ignorecase = true [remote "origin"] url = https://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@github.com/Zora123456/pwa_aceite.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "main"] remote = origin merge = refs/heads/main vscode-merge-base = origin/main vscode-merge-base = origin/main
Open service 35.157.26.135:443 · termo.mrsdeveloper.pro.br
2026-01-09 21:00
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 3
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; hit
Content-Length: 11210
Content-Type: text/html; charset=UTF-8
Date: Fri, 09 Jan 2026 21:00:38 GMT
Etag: "0395e4d7de081b5c3b3b817852cf7010-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Nf-Request-Id: 01KEJ8ZBS0A43DY38W6V3KDBED
Connection: close
Page title: Termo de Aceite - Protest
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Termo de Aceite - Protest</title>
<link rel="manifest" href="manifest.json">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
padding: 20px;
}
input[type="text"], input[type="email"], input[type="number"] {
width: 80%;
padding: 10px;
margin: 10px 0;
}
button {
background-color: #7a1129;
color: white;
padding: 10px 20px;
border: none;
cursor: pointer;
}
button:hover {
background-color: #61061b;
}
p {
max-width: 800px;
margin: 0 auto;
text-align: justify;
}
.logo-container {
text-align: center;
margin-bottom: 20px;
}
.logo-container img {
max-width: 50px;
width: 100%;
}
canvas {
border: 1px solid #000;
margin-top: 10px;
display: block;
margin-left: auto;
margin-right: auto;
max-width: 100%;
}
</style>
</head>
<body>
<div class="logo-container">
<img src="logo_protest-32X57.png" alt="Logo" />
</div>
<h1>Termo de Aceite</h1>
<p id="descricao-termo">Carregando termo...</p>
<form id="formulario">
<input type="text" id="nome" placeholder="Seu nome completo" required><br>
<input type="email" id="email" placeholder="Seu e-mail" required><br>
<input type="number" id="cpf" placeholder="Seu CPF ou CNPJ" required><br>
<label>Assinatura:</label><br>
<canvas id="assinatura" width="600" height="150" style="border:1px solid #000;"></canvas>
<!-- <canvas id="assinatura" width="650" height="100"></canvas><br> -->
<button type="button" onclick="limparAssinatura()">Limpar Assinatura</button><br><br>
<input type="checkbox" id="termo_aceite"> Aceito os termos<br><br>
<button type="button" onclick="gerarPDF()">Gerar PDF</button>
</form>
<p id="mensagem" style="color:red; display:none;"></p>
<p id="sucesso" style="color:green; display:none;"></p>
<!-- Assinatura JS -->
<script>
const canvas = document.getElementById('assinatura');
const ctx = canvas.getContext('2d');
let desenhando = false;
function getPos(e) {
const rect = canvas.getBoundingClientRect();
if (e.touches) {
return {
x: e.touches[0].clientX - rect.left,
y: e.touches[0].clientY - rect.top
};
}
return {
x: e.clientX - rect.left,
y: e.clientY - rect.top
};
}
function desenhar(e) {
if (!desenhando) return;
const pos = getPos(e);
ctx.lineTo(pos.x, pos.y);
ctx.stroke();
}
canvas.addEventListener('mousedown', e => {
desenhando = true;
const pos = getPos(e);
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
});
canvas.addEventListener('mouseup', () => desenhando = false);
canvas.addEventListener('mouseout', () => desenhando = false);
canvas.addEventListener('mousemove', desenhar);
canvas.addEventListener('touchstart', e => {
e.preventDefault();
desenhando = true;
const pos = getPos(e);
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
});
canvas.addEventListener('touchend', e => {
e.preventDefault();
desenhando = false;
});
canvas.addEventListener('touchmove', e => {
e.preventDefault();
desenhar(e);
});
function limparAssinatura() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
}
function assinaturaEstaVazia(canvas) {
const ctx = canvas.getContext('2d');
const pixels = ctx.getImageData(0, 0, canvas.width, canvas.height).data;
for (let i = 0; i < pixels.length; i += 4) {
// Verifica se há pixel "não branco" (RGBA diferent
Open service 2a05:d014:58f:6200::258:443 · termo.mrsdeveloper.pro.br
2026-01-05 15:43
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 0
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; fwd=miss
Content-Length: 11210
Content-Type: text/html; charset=UTF-8
Date: Mon, 05 Jan 2026 15:43:48 GMT
Etag: "0395e4d7de081b5c3b3b817852cf7010-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Nf-Request-Id: 01KE7D8BMF7DHDSTJP4E7G3BQ3
Connection: close
Page title: Termo de Aceite - Protest
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Termo de Aceite - Protest</title>
<link rel="manifest" href="manifest.json">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
padding: 20px;
}
input[type="text"], input[type="email"], input[type="number"] {
width: 80%;
padding: 10px;
margin: 10px 0;
}
button {
background-color: #7a1129;
color: white;
padding: 10px 20px;
border: none;
cursor: pointer;
}
button:hover {
background-color: #61061b;
}
p {
max-width: 800px;
margin: 0 auto;
text-align: justify;
}
.logo-container {
text-align: center;
margin-bottom: 20px;
}
.logo-container img {
max-width: 50px;
width: 100%;
}
canvas {
border: 1px solid #000;
margin-top: 10px;
display: block;
margin-left: auto;
margin-right: auto;
max-width: 100%;
}
</style>
</head>
<body>
<div class="logo-container">
<img src="logo_protest-32X57.png" alt="Logo" />
</div>
<h1>Termo de Aceite</h1>
<p id="descricao-termo">Carregando termo...</p>
<form id="formulario">
<input type="text" id="nome" placeholder="Seu nome completo" required><br>
<input type="email" id="email" placeholder="Seu e-mail" required><br>
<input type="number" id="cpf" placeholder="Seu CPF ou CNPJ" required><br>
<label>Assinatura:</label><br>
<canvas id="assinatura" width="600" height="150" style="border:1px solid #000;"></canvas>
<!-- <canvas id="assinatura" width="650" height="100"></canvas><br> -->
<button type="button" onclick="limparAssinatura()">Limpar Assinatura</button><br><br>
<input type="checkbox" id="termo_aceite"> Aceito os termos<br><br>
<button type="button" onclick="gerarPDF()">Gerar PDF</button>
</form>
<p id="mensagem" style="color:red; display:none;"></p>
<p id="sucesso" style="color:green; display:none;"></p>
<!-- Assinatura JS -->
<script>
const canvas = document.getElementById('assinatura');
const ctx = canvas.getContext('2d');
let desenhando = false;
function getPos(e) {
const rect = canvas.getBoundingClientRect();
if (e.touches) {
return {
x: e.touches[0].clientX - rect.left,
y: e.touches[0].clientY - rect.top
};
}
return {
x: e.clientX - rect.left,
y: e.clientY - rect.top
};
}
function desenhar(e) {
if (!desenhando) return;
const pos = getPos(e);
ctx.lineTo(pos.x, pos.y);
ctx.stroke();
}
canvas.addEventListener('mousedown', e => {
desenhando = true;
const pos = getPos(e);
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
});
canvas.addEventListener('mouseup', () => desenhando = false);
canvas.addEventListener('mouseout', () => desenhando = false);
canvas.addEventListener('mousemove', desenhar);
canvas.addEventListener('touchstart', e => {
e.preventDefault();
desenhando = true;
const pos = getPos(e);
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
});
canvas.addEventListener('touchend', e => {
e.preventDefault();
desenhando = false;
});
canvas.addEventListener('touchmove', e => {
e.preventDefault();
desenhar(e);
});
function limparAssinatura() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
}
function assinaturaEstaVazia(canvas) {
const ctx = canvas.getContext('2d');
const pixels = ctx.getImageData(0, 0, canvas.width, canvas.height).data;
for (let i = 0; i < pixels.length; i += 4) {
// Verifica se há pixel "não branco" (RGBA diferent
Open service 35.157.26.135:80 · termo.mrsdeveloper.pro.br
2026-01-05 15:43
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Mon, 05 Jan 2026 15:43:48 GMT Location: https://termo.mrsdeveloper.pro.br/ Server: Netlify X-Nf-Request-Id: 01KE7D8BEETP4RWV4NY8P17G1C Content-Length: 49 Connection: close Redirecting to https://termo.mrsdeveloper.pro.br/
Open service 63.176.8.218:80 · termo.mrsdeveloper.pro.br
2026-01-05 15:43
HTTP/1.1 301 Moved Permanently Content-Type: text/plain; charset=utf-8 Date: Mon, 05 Jan 2026 15:43:49 GMT Location: https://termo.mrsdeveloper.pro.br/ Server: Netlify X-Nf-Request-Id: 01KE7D8BW6GDQPRA93J04N6RR9 Content-Length: 49 Connection: close Redirecting to https://termo.mrsdeveloper.pro.br/
Open service 35.157.26.135:443 · termo.mrsdeveloper.pro.br
2026-01-05 15:43
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 1
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; hit
Content-Length: 11210
Content-Type: text/html; charset=UTF-8
Date: Mon, 05 Jan 2026 15:43:49 GMT
Etag: "0395e4d7de081b5c3b3b817852cf7010-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Nf-Request-Id: 01KE7D8C5TJFF00PK6QQA1WEG3
Connection: close
Page title: Termo de Aceite - Protest
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Termo de Aceite - Protest</title>
<link rel="manifest" href="manifest.json">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
padding: 20px;
}
input[type="text"], input[type="email"], input[type="number"] {
width: 80%;
padding: 10px;
margin: 10px 0;
}
button {
background-color: #7a1129;
color: white;
padding: 10px 20px;
border: none;
cursor: pointer;
}
button:hover {
background-color: #61061b;
}
p {
max-width: 800px;
margin: 0 auto;
text-align: justify;
}
.logo-container {
text-align: center;
margin-bottom: 20px;
}
.logo-container img {
max-width: 50px;
width: 100%;
}
canvas {
border: 1px solid #000;
margin-top: 10px;
display: block;
margin-left: auto;
margin-right: auto;
max-width: 100%;
}
</style>
</head>
<body>
<div class="logo-container">
<img src="logo_protest-32X57.png" alt="Logo" />
</div>
<h1>Termo de Aceite</h1>
<p id="descricao-termo">Carregando termo...</p>
<form id="formulario">
<input type="text" id="nome" placeholder="Seu nome completo" required><br>
<input type="email" id="email" placeholder="Seu e-mail" required><br>
<input type="number" id="cpf" placeholder="Seu CPF ou CNPJ" required><br>
<label>Assinatura:</label><br>
<canvas id="assinatura" width="600" height="150" style="border:1px solid #000;"></canvas>
<!-- <canvas id="assinatura" width="650" height="100"></canvas><br> -->
<button type="button" onclick="limparAssinatura()">Limpar Assinatura</button><br><br>
<input type="checkbox" id="termo_aceite"> Aceito os termos<br><br>
<button type="button" onclick="gerarPDF()">Gerar PDF</button>
</form>
<p id="mensagem" style="color:red; display:none;"></p>
<p id="sucesso" style="color:green; display:none;"></p>
<!-- Assinatura JS -->
<script>
const canvas = document.getElementById('assinatura');
const ctx = canvas.getContext('2d');
let desenhando = false;
function getPos(e) {
const rect = canvas.getBoundingClientRect();
if (e.touches) {
return {
x: e.touches[0].clientX - rect.left,
y: e.touches[0].clientY - rect.top
};
}
return {
x: e.clientX - rect.left,
y: e.clientY - rect.top
};
}
function desenhar(e) {
if (!desenhando) return;
const pos = getPos(e);
ctx.lineTo(pos.x, pos.y);
ctx.stroke();
}
canvas.addEventListener('mousedown', e => {
desenhando = true;
const pos = getPos(e);
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
});
canvas.addEventListener('mouseup', () => desenhando = false);
canvas.addEventListener('mouseout', () => desenhando = false);
canvas.addEventListener('mousemove', desenhar);
canvas.addEventListener('touchstart', e => {
e.preventDefault();
desenhando = true;
const pos = getPos(e);
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
});
canvas.addEventListener('touchend', e => {
e.preventDefault();
desenhando = false;
});
canvas.addEventListener('touchmove', e => {
e.preventDefault();
desenhar(e);
});
function limparAssinatura() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
}
function assinaturaEstaVazia(canvas) {
const ctx = canvas.getContext('2d');
const pixels = ctx.getImageData(0, 0, canvas.width, canvas.height).data;
for (let i = 0; i < pixels.length; i += 4) {
// Verifica se há pixel "não branco" (RGBA diferent
Open service 63.176.8.218:443 · termo.mrsdeveloper.pro.br
2026-01-05 15:43
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 1
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; hit
Content-Length: 11210
Content-Type: text/html; charset=UTF-8
Date: Mon, 05 Jan 2026 15:43:49 GMT
Etag: "0395e4d7de081b5c3b3b817852cf7010-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Nf-Request-Id: 01KE7D8C0EDRWN0YPZAAA804R1
Connection: close
Page title: Termo de Aceite - Protest
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Termo de Aceite - Protest</title>
<link rel="manifest" href="manifest.json">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
padding: 20px;
}
input[type="text"], input[type="email"], input[type="number"] {
width: 80%;
padding: 10px;
margin: 10px 0;
}
button {
background-color: #7a1129;
color: white;
padding: 10px 20px;
border: none;
cursor: pointer;
}
button:hover {
background-color: #61061b;
}
p {
max-width: 800px;
margin: 0 auto;
text-align: justify;
}
.logo-container {
text-align: center;
margin-bottom: 20px;
}
.logo-container img {
max-width: 50px;
width: 100%;
}
canvas {
border: 1px solid #000;
margin-top: 10px;
display: block;
margin-left: auto;
margin-right: auto;
max-width: 100%;
}
</style>
</head>
<body>
<div class="logo-container">
<img src="logo_protest-32X57.png" alt="Logo" />
</div>
<h1>Termo de Aceite</h1>
<p id="descricao-termo">Carregando termo...</p>
<form id="formulario">
<input type="text" id="nome" placeholder="Seu nome completo" required><br>
<input type="email" id="email" placeholder="Seu e-mail" required><br>
<input type="number" id="cpf" placeholder="Seu CPF ou CNPJ" required><br>
<label>Assinatura:</label><br>
<canvas id="assinatura" width="600" height="150" style="border:1px solid #000;"></canvas>
<!-- <canvas id="assinatura" width="650" height="100"></canvas><br> -->
<button type="button" onclick="limparAssinatura()">Limpar Assinatura</button><br><br>
<input type="checkbox" id="termo_aceite"> Aceito os termos<br><br>
<button type="button" onclick="gerarPDF()">Gerar PDF</button>
</form>
<p id="mensagem" style="color:red; display:none;"></p>
<p id="sucesso" style="color:green; display:none;"></p>
<!-- Assinatura JS -->
<script>
const canvas = document.getElementById('assinatura');
const ctx = canvas.getContext('2d');
let desenhando = false;
function getPos(e) {
const rect = canvas.getBoundingClientRect();
if (e.touches) {
return {
x: e.touches[0].clientX - rect.left,
y: e.touches[0].clientY - rect.top
};
}
return {
x: e.clientX - rect.left,
y: e.clientY - rect.top
};
}
function desenhar(e) {
if (!desenhando) return;
const pos = getPos(e);
ctx.lineTo(pos.x, pos.y);
ctx.stroke();
}
canvas.addEventListener('mousedown', e => {
desenhando = true;
const pos = getPos(e);
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
});
canvas.addEventListener('mouseup', () => desenhando = false);
canvas.addEventListener('mouseout', () => desenhando = false);
canvas.addEventListener('mousemove', desenhar);
canvas.addEventListener('touchstart', e => {
e.preventDefault();
desenhando = true;
const pos = getPos(e);
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
});
canvas.addEventListener('touchend', e => {
e.preventDefault();
desenhando = false;
});
canvas.addEventListener('touchmove', e => {
e.preventDefault();
desenhar(e);
});
function limparAssinatura() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
}
function assinaturaEstaVazia(canvas) {
const ctx = canvas.getContext('2d');
const pixels = ctx.getImageData(0, 0, canvas.width, canvas.height).data;
for (let i = 0; i < pixels.length; i += 4) {
// Verifica se há pixel "não branco" (RGBA diferent
Open service 2a05:d014:58f:6200::259:443 · termo.mrsdeveloper.pro.br
2026-01-05 15:43
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 0
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; fwd=miss
Content-Length: 11210
Content-Type: text/html; charset=UTF-8
Date: Mon, 05 Jan 2026 15:43:48 GMT
Etag: "0395e4d7de081b5c3b3b817852cf7010-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Nf-Request-Id: 01KE7D8BKG33P7YGRFKBZ01C6Q
Connection: close
Page title: Termo de Aceite - Protest
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Termo de Aceite - Protest</title>
<link rel="manifest" href="manifest.json">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
padding: 20px;
}
input[type="text"], input[type="email"], input[type="number"] {
width: 80%;
padding: 10px;
margin: 10px 0;
}
button {
background-color: #7a1129;
color: white;
padding: 10px 20px;
border: none;
cursor: pointer;
}
button:hover {
background-color: #61061b;
}
p {
max-width: 800px;
margin: 0 auto;
text-align: justify;
}
.logo-container {
text-align: center;
margin-bottom: 20px;
}
.logo-container img {
max-width: 50px;
width: 100%;
}
canvas {
border: 1px solid #000;
margin-top: 10px;
display: block;
margin-left: auto;
margin-right: auto;
max-width: 100%;
}
</style>
</head>
<body>
<div class="logo-container">
<img src="logo_protest-32X57.png" alt="Logo" />
</div>
<h1>Termo de Aceite</h1>
<p id="descricao-termo">Carregando termo...</p>
<form id="formulario">
<input type="text" id="nome" placeholder="Seu nome completo" required><br>
<input type="email" id="email" placeholder="Seu e-mail" required><br>
<input type="number" id="cpf" placeholder="Seu CPF ou CNPJ" required><br>
<label>Assinatura:</label><br>
<canvas id="assinatura" width="600" height="150" style="border:1px solid #000;"></canvas>
<!-- <canvas id="assinatura" width="650" height="100"></canvas><br> -->
<button type="button" onclick="limparAssinatura()">Limpar Assinatura</button><br><br>
<input type="checkbox" id="termo_aceite"> Aceito os termos<br><br>
<button type="button" onclick="gerarPDF()">Gerar PDF</button>
</form>
<p id="mensagem" style="color:red; display:none;"></p>
<p id="sucesso" style="color:green; display:none;"></p>
<!-- Assinatura JS -->
<script>
const canvas = document.getElementById('assinatura');
const ctx = canvas.getContext('2d');
let desenhando = false;
function getPos(e) {
const rect = canvas.getBoundingClientRect();
if (e.touches) {
return {
x: e.touches[0].clientX - rect.left,
y: e.touches[0].clientY - rect.top
};
}
return {
x: e.clientX - rect.left,
y: e.clientY - rect.top
};
}
function desenhar(e) {
if (!desenhando) return;
const pos = getPos(e);
ctx.lineTo(pos.x, pos.y);
ctx.stroke();
}
canvas.addEventListener('mousedown', e => {
desenhando = true;
const pos = getPos(e);
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
});
canvas.addEventListener('mouseup', () => desenhando = false);
canvas.addEventListener('mouseout', () => desenhando = false);
canvas.addEventListener('mousemove', desenhar);
canvas.addEventListener('touchstart', e => {
e.preventDefault();
desenhando = true;
const pos = getPos(e);
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
});
canvas.addEventListener('touchend', e => {
e.preventDefault();
desenhando = false;
});
canvas.addEventListener('touchmove', e => {
e.preventDefault();
desenhar(e);
});
function limparAssinatura() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
}
function assinaturaEstaVazia(canvas) {
const ctx = canvas.getContext('2d');
const pixels = ctx.getImageData(0, 0, canvas.width, canvas.height).data;
for (let i = 0; i < pixels.length; i += 4) {
// Verifica se há pixel "não branco" (RGBA diferent
Open service 35.157.26.135:443 · termo.mrsdeveloper.pro.br
2026-01-02 16:29
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 1
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; hit
Content-Length: 11210
Content-Type: text/html; charset=UTF-8
Date: Fri, 02 Jan 2026 16:29:48 GMT
Etag: "0df5a1e05cc905077c0278ea9a32ba6b-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Nf-Request-Id: 01KDZRPD4SHJPP1TPV0VR4QNC1
Connection: close
Page title: Termo de Aceite - Protest
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Termo de Aceite - Protest</title>
<link rel="manifest" href="manifest.json">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
padding: 20px;
}
input[type="text"], input[type="email"], input[type="number"] {
width: 80%;
padding: 10px;
margin: 10px 0;
}
button {
background-color: #7a1129;
color: white;
padding: 10px 20px;
border: none;
cursor: pointer;
}
button:hover {
background-color: #61061b;
}
p {
max-width: 800px;
margin: 0 auto;
text-align: justify;
}
.logo-container {
text-align: center;
margin-bottom: 20px;
}
.logo-container img {
max-width: 50px;
width: 100%;
}
canvas {
border: 1px solid #000;
margin-top: 10px;
display: block;
margin-left: auto;
margin-right: auto;
max-width: 100%;
}
</style>
</head>
<body>
<div class="logo-container">
<img src="logo_protest-32X57.png" alt="Logo" />
</div>
<h1>Termo de Aceite</h1>
<p id="descricao-termo">Carregando termo...</p>
<form id="formulario">
<input type="text" id="nome" placeholder="Seu nome completo" required><br>
<input type="email" id="email" placeholder="Seu e-mail" required><br>
<input type="number" id="cpf" placeholder="Seu CPF ou CNPJ" required><br>
<label>Assinatura:</label><br>
<canvas id="assinatura" width="600" height="150" style="border:1px solid #000;"></canvas>
<!-- <canvas id="assinatura" width="650" height="100"></canvas><br> -->
<button type="button" onclick="limparAssinatura()">Limpar Assinatura</button><br><br>
<input type="checkbox" id="termo_aceite"> Aceito os termos<br><br>
<button type="button" onclick="gerarPDF()">Gerar PDF</button>
</form>
<p id="mensagem" style="color:red; display:none;"></p>
<p id="sucesso" style="color:green; display:none;"></p>
<!-- Assinatura JS -->
<script>
const canvas = document.getElementById('assinatura');
const ctx = canvas.getContext('2d');
let desenhando = false;
function getPos(e) {
const rect = canvas.getBoundingClientRect();
if (e.touches) {
return {
x: e.touches[0].clientX - rect.left,
y: e.touches[0].clientY - rect.top
};
}
return {
x: e.clientX - rect.left,
y: e.clientY - rect.top
};
}
function desenhar(e) {
if (!desenhando) return;
const pos = getPos(e);
ctx.lineTo(pos.x, pos.y);
ctx.stroke();
}
canvas.addEventListener('mousedown', e => {
desenhando = true;
const pos = getPos(e);
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
});
canvas.addEventListener('mouseup', () => desenhando = false);
canvas.addEventListener('mouseout', () => desenhando = false);
canvas.addEventListener('mousemove', desenhar);
canvas.addEventListener('touchstart', e => {
e.preventDefault();
desenhando = true;
const pos = getPos(e);
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
});
canvas.addEventListener('touchend', e => {
e.preventDefault();
desenhando = false;
});
canvas.addEventListener('touchmove', e => {
e.preventDefault();
desenhar(e);
});
function limparAssinatura() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
}
function assinaturaEstaVazia(canvas) {
const ctx = canvas.getContext('2d');
const pixels = ctx.getImageData(0, 0, canvas.width, canvas.height).data;
for (let i = 0; i < pixels.length; i += 4) {
// Verifica se há pixel "não branco" (RGBA diferent
Open service 35.157.26.135:443 · termo.mrsdeveloper.pro.br
2025-12-23 06:16
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 1
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; hit
Content-Length: 11210
Content-Type: text/html; charset=UTF-8
Date: Tue, 23 Dec 2025 06:16:59 GMT
Etag: "0df5a1e05cc905077c0278ea9a32ba6b-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Nf-Request-Id: 01KD4XN3YQ5MZX45XW16Q0FNRC
Connection: close
Page title: Termo de Aceite - Protest
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Termo de Aceite - Protest</title>
<link rel="manifest" href="manifest.json">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
padding: 20px;
}
input[type="text"], input[type="email"], input[type="number"] {
width: 80%;
padding: 10px;
margin: 10px 0;
}
button {
background-color: #7a1129;
color: white;
padding: 10px 20px;
border: none;
cursor: pointer;
}
button:hover {
background-color: #61061b;
}
p {
max-width: 800px;
margin: 0 auto;
text-align: justify;
}
.logo-container {
text-align: center;
margin-bottom: 20px;
}
.logo-container img {
max-width: 50px;
width: 100%;
}
canvas {
border: 1px solid #000;
margin-top: 10px;
display: block;
margin-left: auto;
margin-right: auto;
max-width: 100%;
}
</style>
</head>
<body>
<div class="logo-container">
<img src="logo_protest-32X57.png" alt="Logo" />
</div>
<h1>Termo de Aceite</h1>
<p id="descricao-termo">Carregando termo...</p>
<form id="formulario">
<input type="text" id="nome" placeholder="Seu nome completo" required><br>
<input type="email" id="email" placeholder="Seu e-mail" required><br>
<input type="number" id="cpf" placeholder="Seu CPF ou CNPJ" required><br>
<label>Assinatura:</label><br>
<canvas id="assinatura" width="600" height="150" style="border:1px solid #000;"></canvas>
<!-- <canvas id="assinatura" width="650" height="100"></canvas><br> -->
<button type="button" onclick="limparAssinatura()">Limpar Assinatura</button><br><br>
<input type="checkbox" id="termo_aceite"> Aceito os termos<br><br>
<button type="button" onclick="gerarPDF()">Gerar PDF</button>
</form>
<p id="mensagem" style="color:red; display:none;"></p>
<p id="sucesso" style="color:green; display:none;"></p>
<!-- Assinatura JS -->
<script>
const canvas = document.getElementById('assinatura');
const ctx = canvas.getContext('2d');
let desenhando = false;
function getPos(e) {
const rect = canvas.getBoundingClientRect();
if (e.touches) {
return {
x: e.touches[0].clientX - rect.left,
y: e.touches[0].clientY - rect.top
};
}
return {
x: e.clientX - rect.left,
y: e.clientY - rect.top
};
}
function desenhar(e) {
if (!desenhando) return;
const pos = getPos(e);
ctx.lineTo(pos.x, pos.y);
ctx.stroke();
}
canvas.addEventListener('mousedown', e => {
desenhando = true;
const pos = getPos(e);
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
});
canvas.addEventListener('mouseup', () => desenhando = false);
canvas.addEventListener('mouseout', () => desenhando = false);
canvas.addEventListener('mousemove', desenhar);
canvas.addEventListener('touchstart', e => {
e.preventDefault();
desenhando = true;
const pos = getPos(e);
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
});
canvas.addEventListener('touchend', e => {
e.preventDefault();
desenhando = false;
});
canvas.addEventListener('touchmove', e => {
e.preventDefault();
desenhar(e);
});
function limparAssinatura() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
}
function assinaturaEstaVazia(canvas) {
const ctx = canvas.getContext('2d');
const pixels = ctx.getImageData(0, 0, canvas.width, canvas.height).data;
for (let i = 0; i < pixels.length; i += 4) {
// Verifica se há pixel "não branco" (RGBA diferent
Open service 35.157.26.135:443 · termo.mrsdeveloper.pro.br
2025-12-20 23:18
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 1
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; hit
Content-Length: 11210
Content-Type: text/html; charset=UTF-8
Date: Sat, 20 Dec 2025 23:18:01 GMT
Etag: "0df5a1e05cc905077c0278ea9a32ba6b-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Nf-Request-Id: 01KCZ0WHN5KTWJAH7898PY2XH2
Connection: close
Page title: Termo de Aceite - Protest
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Termo de Aceite - Protest</title>
<link rel="manifest" href="manifest.json">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
padding: 20px;
}
input[type="text"], input[type="email"], input[type="number"] {
width: 80%;
padding: 10px;
margin: 10px 0;
}
button {
background-color: #7a1129;
color: white;
padding: 10px 20px;
border: none;
cursor: pointer;
}
button:hover {
background-color: #61061b;
}
p {
max-width: 800px;
margin: 0 auto;
text-align: justify;
}
.logo-container {
text-align: center;
margin-bottom: 20px;
}
.logo-container img {
max-width: 50px;
width: 100%;
}
canvas {
border: 1px solid #000;
margin-top: 10px;
display: block;
margin-left: auto;
margin-right: auto;
max-width: 100%;
}
</style>
</head>
<body>
<div class="logo-container">
<img src="logo_protest-32X57.png" alt="Logo" />
</div>
<h1>Termo de Aceite</h1>
<p id="descricao-termo">Carregando termo...</p>
<form id="formulario">
<input type="text" id="nome" placeholder="Seu nome completo" required><br>
<input type="email" id="email" placeholder="Seu e-mail" required><br>
<input type="number" id="cpf" placeholder="Seu CPF ou CNPJ" required><br>
<label>Assinatura:</label><br>
<canvas id="assinatura" width="600" height="150" style="border:1px solid #000;"></canvas>
<!-- <canvas id="assinatura" width="650" height="100"></canvas><br> -->
<button type="button" onclick="limparAssinatura()">Limpar Assinatura</button><br><br>
<input type="checkbox" id="termo_aceite"> Aceito os termos<br><br>
<button type="button" onclick="gerarPDF()">Gerar PDF</button>
</form>
<p id="mensagem" style="color:red; display:none;"></p>
<p id="sucesso" style="color:green; display:none;"></p>
<!-- Assinatura JS -->
<script>
const canvas = document.getElementById('assinatura');
const ctx = canvas.getContext('2d');
let desenhando = false;
function getPos(e) {
const rect = canvas.getBoundingClientRect();
if (e.touches) {
return {
x: e.touches[0].clientX - rect.left,
y: e.touches[0].clientY - rect.top
};
}
return {
x: e.clientX - rect.left,
y: e.clientY - rect.top
};
}
function desenhar(e) {
if (!desenhando) return;
const pos = getPos(e);
ctx.lineTo(pos.x, pos.y);
ctx.stroke();
}
canvas.addEventListener('mousedown', e => {
desenhando = true;
const pos = getPos(e);
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
});
canvas.addEventListener('mouseup', () => desenhando = false);
canvas.addEventListener('mouseout', () => desenhando = false);
canvas.addEventListener('mousemove', desenhar);
canvas.addEventListener('touchstart', e => {
e.preventDefault();
desenhando = true;
const pos = getPos(e);
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
});
canvas.addEventListener('touchend', e => {
e.preventDefault();
desenhando = false;
});
canvas.addEventListener('touchmove', e => {
e.preventDefault();
desenhar(e);
});
function limparAssinatura() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
}
function assinaturaEstaVazia(canvas) {
const ctx = canvas.getContext('2d');
const pixels = ctx.getImageData(0, 0, canvas.width, canvas.height).data;
for (let i = 0; i < pixels.length; i += 4) {
// Verifica se há pixel "não branco" (RGBA diferent
Open service 35.157.26.135:443 · termo.mrsdeveloper.pro.br
2025-12-19 01:20
HTTP/1.1 200 OK
Accept-Ranges: bytes
Age: 1
Cache-Control: public,max-age=0,must-revalidate
Cache-Status: "Netlify Edge"; hit
Content-Length: 11210
Content-Type: text/html; charset=UTF-8
Date: Fri, 19 Dec 2025 01:20:29 GMT
Etag: "0df5a1e05cc905077c0278ea9a32ba6b-ssl"
Server: Netlify
Strict-Transport-Security: max-age=31536000
X-Nf-Request-Id: 01KCT33BC4MBMT6EBX9RCHCWY7
Connection: close
Page title: Termo de Aceite - Protest
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Termo de Aceite - Protest</title>
<link rel="manifest" href="manifest.json">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
padding: 20px;
}
input[type="text"], input[type="email"], input[type="number"] {
width: 80%;
padding: 10px;
margin: 10px 0;
}
button {
background-color: #7a1129;
color: white;
padding: 10px 20px;
border: none;
cursor: pointer;
}
button:hover {
background-color: #61061b;
}
p {
max-width: 800px;
margin: 0 auto;
text-align: justify;
}
.logo-container {
text-align: center;
margin-bottom: 20px;
}
.logo-container img {
max-width: 50px;
width: 100%;
}
canvas {
border: 1px solid #000;
margin-top: 10px;
display: block;
margin-left: auto;
margin-right: auto;
max-width: 100%;
}
</style>
</head>
<body>
<div class="logo-container">
<img src="logo_protest-32X57.png" alt="Logo" />
</div>
<h1>Termo de Aceite</h1>
<p id="descricao-termo">Carregando termo...</p>
<form id="formulario">
<input type="text" id="nome" placeholder="Seu nome completo" required><br>
<input type="email" id="email" placeholder="Seu e-mail" required><br>
<input type="number" id="cpf" placeholder="Seu CPF ou CNPJ" required><br>
<label>Assinatura:</label><br>
<canvas id="assinatura" width="600" height="150" style="border:1px solid #000;"></canvas>
<!-- <canvas id="assinatura" width="650" height="100"></canvas><br> -->
<button type="button" onclick="limparAssinatura()">Limpar Assinatura</button><br><br>
<input type="checkbox" id="termo_aceite"> Aceito os termos<br><br>
<button type="button" onclick="gerarPDF()">Gerar PDF</button>
</form>
<p id="mensagem" style="color:red; display:none;"></p>
<p id="sucesso" style="color:green; display:none;"></p>
<!-- Assinatura JS -->
<script>
const canvas = document.getElementById('assinatura');
const ctx = canvas.getContext('2d');
let desenhando = false;
function getPos(e) {
const rect = canvas.getBoundingClientRect();
if (e.touches) {
return {
x: e.touches[0].clientX - rect.left,
y: e.touches[0].clientY - rect.top
};
}
return {
x: e.clientX - rect.left,
y: e.clientY - rect.top
};
}
function desenhar(e) {
if (!desenhando) return;
const pos = getPos(e);
ctx.lineTo(pos.x, pos.y);
ctx.stroke();
}
canvas.addEventListener('mousedown', e => {
desenhando = true;
const pos = getPos(e);
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
});
canvas.addEventListener('mouseup', () => desenhando = false);
canvas.addEventListener('mouseout', () => desenhando = false);
canvas.addEventListener('mousemove', desenhar);
canvas.addEventListener('touchstart', e => {
e.preventDefault();
desenhando = true;
const pos = getPos(e);
ctx.beginPath();
ctx.moveTo(pos.x, pos.y);
});
canvas.addEventListener('touchend', e => {
e.preventDefault();
desenhando = false;
});
canvas.addEventListener('touchmove', e => {
e.preventDefault();
desenhar(e);
});
function limparAssinatura() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
}
function assinaturaEstaVazia(canvas) {
const ctx = canvas.getContext('2d');
const pixels = ctx.getImageData(0, 0, canvas.width, canvas.height).data;
for (let i = 0; i < pixels.length; i += 4) {
// Verifica se há pixel "não branco" (RGBA diferent