This commit is contained in:
2025-12-27 01:17:10 +01:00
commit e0fa3018ea
315 changed files with 2167 additions and 0 deletions

2
.env Normal file
View File

@@ -0,0 +1,2 @@
PC_PASS=ASF
PI_PASS=ASF_TB

16
Dockerfile Normal file
View File

@@ -0,0 +1,16 @@
FROM python:3.11-slim
WORKDIR /app
RUN apt-get update && apt-get install -y \
iputils-ping \
&& rm -rf /var/lib/apt/lists/*
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

BIN
Nabd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

27
QUICKSTART.md Normal file
View File

@@ -0,0 +1,27 @@
# 🚀 Quickstart Guide
Welcome to the ASF Infrastructure Monitor!
## 1. Setup Environment
Create a `.env` file in the root directory:
```env
PC_PASS=your_pc_password
PI_PASS=your_pi_password
```
## 2. Deploy
Run the following command:
```bash
docker compose up -d --build
```
## 3. Access
The dashboard will be available at:
`http://asf.monitor.nabd-co.com` (after Caddy setup)
## 4. Documentation
For more details, check the `docs/` folder:
- [Architecture](docs/architecture.md)
- [Backend](docs/backend.md)
- [Frontend](docs/frontend.md)
- [Deployment](docs/deployment.md)

BIN
app image.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 KiB

BIN
app logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

19
docker-compose.yml Normal file
View File

@@ -0,0 +1,19 @@
version: '3.8'
services:
monitor-app:
build: .
container_name: monitor-app
restart: always
environment:
- PC_PASS=ASF
- PI_PASS=ASF_TB
networks:
- app-network
- caddy_network
networks:
app-network:
driver: bridge
caddy_network:
external: true

41
docs/architecture.md Normal file
View File

@@ -0,0 +1,41 @@
# Architecture Overview
The ASF Infrastructure Monitor is a lightweight, real-time monitoring solution designed to track the health of local servers and web services.
## System Components
```mermaid
graph TD
User((User Browser))
Caddy[Caddy Proxy]
MonitorApp[Monitor App Container]
subgraph "Local Network / Internet"
PC[Ubuntu Server PC]
PI[Raspberry Pi]
WebServices[Web Services]
end
User -->|HTTPS| Caddy
Caddy -->|HTTP| MonitorApp
MonitorApp -->|SSH| PC
MonitorApp -->|SSH| PI
MonitorApp -->|HTTP/Ping| WebServices
```
### 1. Frontend (Client-Side)
- **Technology**: HTML5, Vanilla CSS, JavaScript (ES6+).
- **Libraries**: Chart.js for gauges, FontAwesome for icons.
- **Functionality**: Fetches data from the backend every 60 seconds and updates the UI dynamically without page reloads.
### 2. Backend (Server-Side)
- **Technology**: Python 3.11, FastAPI.
- **Monitoring Logic**:
- **SSH**: Uses `paramiko` to execute remote commands on the PC and Raspberry Pi.
- **Web**: Uses `requests` to check the status and latency of web services.
- **Concurrency**: Uses `asyncio` to perform all monitoring checks in parallel, ensuring fast response times.
### 3. Deployment
- **Containerization**: Docker & Docker Compose.
- **Proxy**: Caddy handles SSL termination and routes traffic to the container.

30
docs/backend.md Normal file
View File

@@ -0,0 +1,30 @@
# Backend Documentation
The backend is built with **FastAPI**, providing a high-performance API to serve system metrics.
## Core Files
### `main.py`
- Entry point of the application.
- Defines the FastAPI app and CORS middleware.
- **Endpoints**:
- `GET /`: Serves the `monitor.html` file.
- `GET /api/status`: Orchestrates the monitoring tasks and returns a JSON response.
- **Parallel Execution**: Uses `asyncio.gather` and `asyncio.to_thread` to run blocking SSH/HTTP calls concurrently.
### `monitor_logic.py`
- Contains the low-level monitoring functions.
- **`get_ssh_data()`**:
- Connects via SSH using `paramiko`.
- Executes commands to fetch:
- CPU Usage: `top`
- RAM Usage: `free`
- Disk Space: `df`
- Temperature: `/sys/class/thermal/thermal_zone0/temp` or `vcgencmd`.
- **`check_web_service()`**:
- Performs an HTTP GET request.
- Calculates latency in milliseconds.
## Environment Variables
- `PC_PASS`: SSH password for the Ubuntu Server.
- `PI_PASS`: SSH password for the Raspberry Pi.

36
docs/deployment.md Normal file
View File

@@ -0,0 +1,36 @@
# Deployment Documentation
The application is designed to be deployed as a Docker container behind a Caddy reverse proxy.
## Docker Setup
### `Dockerfile`
- Based on `python:3.11-slim`.
- Installs `iputils-ping` for network diagnostics.
- Uses `uvicorn` to serve the FastAPI app.
### `docker-compose.yml`
- Defines the `monitor-app` service.
- Connects to `caddy_network` for external access.
- Passes SSH credentials via environment variables.
## Caddy Configuration
Add this to your `Caddyfile`:
```caddy
asf.monitor.nabd-co.com {
reverse_proxy monitor-app:8000
}
```
## Troubleshooting
### `KeyError: 'ContainerConfig'`
This error occurs when using `docker-compose` V1 with images built by newer Docker versions.
**Solution**: Use `docker compose` (V2) or disable BuildKit:
```bash
DOCKER_BUILDKIT=0 COMPOSE_DOCKER_CLI_BUILD=0 docker-compose up -d --build
```
### SSH Connectivity
Ensure the cloud server can reach the target IPs/hostnames on the specified ports (49152 and 2222).

19
docs/frontend.md Normal file
View File

@@ -0,0 +1,19 @@
# Frontend Documentation
The frontend is a modern, responsive dashboard designed for high visibility and aesthetic appeal.
## Design Principles
- **Glassmorphism**: Uses semi-transparent backgrounds with blur effects (`backdrop-filter`).
- **Dark Mode**: Optimized for low-light environments (NOC/Dashboard style).
- **Vibrant Accents**: Uses gradients and neon colors to highlight status and metrics.
## Key Features
- **Dynamic Gauges**: Built with `Chart.js` to show CPU and RAM usage.
- **Status Badges**: Real-time color-coded badges (Online/Offline).
- **Auto-Refresh**: Polls the `/api/status` endpoint every 1 minute.
- **Loading State**: A smooth loading overlay that disappears once the first data batch is received.
## UI Components
- **Server Cards**: Detailed metrics for PC and Raspberry Pi.
- **Web Services List**: Compact list of external services with latency tracking.
- **Responsive Grid**: Automatically adjusts layout based on screen size.

75
main.py Normal file
View File

@@ -0,0 +1,75 @@
from fastapi import FastAPI
from fastapi.responses import FileResponse
from fastapi.staticfiles import StaticFiles
from fastapi.middleware.cors import CORSMiddleware
import os
from dotenv import load_dotenv
from monitor_logic import get_ssh_data, check_web_service
import asyncio
load_dotenv()
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_methods=["*"],
allow_headers=["*"],
)
# Serve static files from the current directory
app.mount("/static", StaticFiles(directory="."), name="static")
# Configuration from environment variables
PC_HOST = "asf-server.duckdns.org"
PC_PORT = 49152
PC_USER = "asf"
PC_PASS = os.getenv("PC_PASS", "ASF")
PI_HOST = "rpi-asf-tb.duckdns.org"
PI_PORT = 2222
PI_USER = "asf_tb"
PI_PASS = os.getenv("PI_PASS", "ASF_TB")
WEB_SERVICES = [
{"name": "Gitea", "url": "https://gitea.nabd-co.com/"},
{"name": "OpenProject", "url": "https://openproject.nabd-co.com/"},
{"name": "Draw.io", "url": "https://drawio.nabd-co.com/"},
{"name": "TestArena", "url": "https://testarena.nabd-co.com/"},
{"name": "TBM", "url": "https://tbm.asf.nabd-co.com/"},
{"name": "Board", "url": "https://board.nabd-co.com/"},
]
@app.get("/")
async def read_index():
return FileResponse("monitor.html")
@app.get("/api/status")
async def get_status():
# Run SSH checks in parallel
pc_task = asyncio.to_thread(get_ssh_data, PC_HOST, PC_PORT, PC_USER, PC_PASS)
pi_task = asyncio.to_thread(get_ssh_data, PI_HOST, PI_PORT, PI_USER, PI_PASS)
# Run web checks in parallel
web_tasks = [asyncio.to_thread(check_web_service, s["url"]) for s in WEB_SERVICES]
pc_res, pi_res, *web_res = await asyncio.gather(pc_task, pi_task, *web_tasks)
services = []
for i, res in enumerate(web_res):
services.append({
"name": WEB_SERVICES[i]["name"],
"url": WEB_SERVICES[i]["url"],
**res
})
return {
"pc": pc_res,
"pi": pi_res,
"services": services
}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)

556
monitor.html Normal file
View File

@@ -0,0 +1,556 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ASF Infrastructure Monitor</title>
<link rel="icon" type="image/png" href="/static/app logo.png">
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link href="https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;700&display=swap" rel="stylesheet">
<style>
:root {
--bg-color: #020617;
--card-bg: rgba(15, 23, 42, 0.8);
--accent-blue: #38bdf8;
--accent-purple: #a855f7;
--status-green: #10b981;
--status-red: #ef4444;
--status-yellow: #f59e0b;
--text-main: #f8fafc;
--text-dim: #94a3b8;
--glass-border: rgba(255, 255, 255, 0.1);
}
body {
font-family: 'Outfit', sans-serif;
background-color: var(--bg-color);
background-image:
radial-gradient(circle at 20% 20%, rgba(56, 189, 248, 0.05) 0%, transparent 40%),
radial-gradient(circle at 80% 80%, rgba(168, 85, 247, 0.05) 0%, transparent 40%);
color: var(--text-main);
margin: 0;
padding: 20px;
min-height: 100vh;
display: flex;
flex-direction: column;
}
header {
text-align: center;
margin-bottom: 50px;
animation: fadeInDown 0.8s ease-out;
}
.header-logo {
height: 80px;
margin-bottom: 15px;
filter: drop-shadow(0 0 10px rgba(56, 189, 248, 0.3));
}
h1 {
font-size: 2.5rem;
font-weight: 700;
margin-bottom: 10px;
background: linear-gradient(to right, var(--accent-blue), var(--accent-purple));
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
display: flex;
align-items: center;
justify-content: center;
gap: 15px;
}
header p {
color: var(--text-dim);
font-size: 1.1rem;
}
.dashboard-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(450px, 1fr));
gap: 30px;
max-width: 1400px;
margin: 0 auto;
flex: 1;
}
.card {
background: var(--card-bg);
backdrop-filter: blur(12px);
border: 1px solid var(--glass-border);
border-radius: 24px;
padding: 25px;
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.3);
transition: transform 0.3s ease, border-color 0.3s ease;
position: relative;
overflow: hidden;
}
.card:hover {
transform: translateY(-5px);
border-color: rgba(56, 189, 248, 0.3);
}
.card-header {
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid var(--glass-border);
padding-bottom: 20px;
margin-bottom: 25px;
}
.device-info {
display: flex;
align-items: center;
gap: 20px;
}
.device-info h2 {
margin: 0;
font-size: 1.5rem;
font-weight: 600;
}
.device-info small {
color: var(--text-dim);
font-size: 0.9rem;
}
.status-badge {
padding: 6px 12px;
border-radius: 20px;
font-size: 0.75rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.05em;
display: flex;
align-items: center;
gap: 6px;
}
.status-online {
background: rgba(16, 185, 129, 0.1);
color: var(--status-green);
border: 1px solid rgba(16, 185, 129, 0.2);
}
.status-offline {
background: rgba(239, 68, 68, 0.1);
color: var(--status-red);
border: 1px solid rgba(239, 68, 68, 0.2);
}
.stats-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
}
.gauge-wrapper {
background: rgba(0, 0, 0, 0.2);
padding: 15px;
border-radius: 16px;
text-align: center;
position: relative;
}
.gauge-container {
height: 140px;
position: relative;
}
.gauge-label {
position: absolute;
top: 60%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
}
.gauge-value {
font-size: 1.2rem;
font-weight: 700;
display: block;
}
.gauge-name {
font-size: 0.7rem;
color: var(--text-dim);
text-transform: uppercase;
}
.metrics-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 15px;
margin-top: 20px;
}
.metric-card {
background: rgba(0, 0, 0, 0.2);
padding: 15px;
border-radius: 16px;
display: flex;
flex-direction: column;
align-items: center;
gap: 5px;
}
.metric-label {
font-size: 0.75rem;
color: var(--text-dim);
text-transform: uppercase;
letter-spacing: 0.05em;
}
.metric-value {
font-size: 1.25rem;
font-weight: 600;
color: var(--text-main);
}
/* Web Services */
.service-list {
list-style: none;
padding: 0;
margin: 0;
display: grid;
gap: 12px;
}
.service-item {
display: flex;
align-items: center;
justify-content: space-between;
padding: 15px 20px;
background: rgba(0, 0, 0, 0.2);
border-radius: 16px;
border: 1px solid transparent;
transition: all 0.2s ease;
}
.service-item:hover {
background: rgba(255, 255, 255, 0.05);
border-color: var(--glass-border);
}
.service-name {
display: flex;
align-items: center;
gap: 12px;
font-weight: 500;
}
.service-logo {
width: 32px;
height: 32px;
object-fit: contain;
border-radius: 6px;
}
.service-status {
display: flex;
align-items: center;
gap: 8px;
font-size: 0.85rem;
font-weight: 600;
}
footer {
text-align: center;
margin-top: 50px;
padding: 20px;
border-top: 1px solid var(--glass-border);
}
.footer-logo {
height: 60px;
opacity: 0.8;
transition: opacity 0.3s ease;
}
.footer-logo:hover {
opacity: 1;
}
@keyframes fadeInDown {
from {
opacity: 0;
transform: translateY(-20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.loading-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: var(--bg-color);
display: flex;
justify-content: center;
align-items: center;
z-index: 1000;
transition: opacity 0.5s ease;
}
.loader {
width: 48px;
height: 48px;
border: 5px solid #FFF;
border-bottom-color: var(--accent-blue);
border-radius: 50%;
display: inline-block;
box-sizing: border-box;
animation: rotation 1s linear infinite;
}
@keyframes rotation {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
</style>
</head>
<body>
<div id="loading" class="loading-overlay">
<span class="loader"></span>
</div>
<header>
<img src="/static/app image.png" alt="ASF Logo" class="header-logo">
<h1>ASF Infrastructure Monitor</h1>
<p>Real-time system health and service availability</p>
</header>
<div class="dashboard-grid">
<!-- Ubuntu Server PC -->
<div class="card" id="card-pc">
<div class="card-header">
<div class="device-info">
<i class="fas fa-server fa-2x" style="color: #fb923c;"></i>
<div>
<h2>Ubuntu Server PC</h2>
<small>asf-server.duckdns.org</small>
</div>
</div>
<div id="pc-status" class="status-badge status-offline">
<i class="fas fa-circle"></i> <span>Offline</span>
</div>
</div>
<div class="stats-grid">
<div class="gauge-wrapper">
<div class="gauge-container"><canvas id="pcCpu"></canvas></div>
<div class="gauge-label">
<span class="gauge-value" id="pcCpuVal">0%</span>
<span class="gauge-name">CPU</span>
</div>
</div>
<div class="gauge-wrapper">
<div class="gauge-container"><canvas id="pcRam"></canvas></div>
<div class="gauge-label">
<span class="gauge-value" id="pcRamVal">0%</span>
<span class="gauge-name">RAM</span>
</div>
</div>
</div>
<div class="metrics-row">
<div class="metric-card">
<span class="metric-label">Temperature</span>
<span class="metric-value" id="pcTemp">--°C</span>
</div>
<div class="metric-card">
<span class="metric-label">Disk Usage</span>
<span class="metric-value" id="pcDisk">--%</span>
</div>
</div>
</div>
<!-- Raspberry Pi -->
<div class="card" id="card-pi">
<div class="card-header">
<div class="device-info">
<i class="fab fa-raspberry-pi fa-2x" style="color: #e11d48;"></i>
<div>
<h2>Raspberry Pi</h2>
<small>rpi-asf-tb.duckdns.org</small>
</div>
</div>
<div id="pi-status" class="status-badge status-offline">
<i class="fas fa-circle"></i> <span>Offline</span>
</div>
</div>
<div class="stats-grid">
<div class="gauge-wrapper">
<div class="gauge-container"><canvas id="piCpu"></canvas></div>
<div class="gauge-label">
<span class="gauge-value" id="piCpuVal">0%</span>
<span class="gauge-name">CPU</span>
</div>
</div>
<div class="gauge-wrapper">
<div class="gauge-container"><canvas id="piRam"></canvas></div>
<div class="gauge-label">
<span class="gauge-value" id="piRamVal">0%</span>
<span class="gauge-name">RAM</span>
</div>
</div>
</div>
<div class="metrics-row">
<div class="metric-card">
<span class="metric-label">Temperature</span>
<span class="metric-value" id="piTemp">--°C</span>
</div>
<div class="metric-card">
<span class="metric-label">Disk Usage</span>
<span class="metric-value" id="piDisk">--%</span>
</div>
</div>
</div>
<!-- Web Services -->
<div class="card">
<div class="card-header">
<div class="device-info">
<i class="fas fa-globe fa-2x" style="color: var(--accent-blue);"></i>
<h2>Web Services</h2>
</div>
</div>
<ul class="service-list" id="service-list">
<!-- Services will be injected here -->
</ul>
</div>
</div>
<footer>
<img src="/static/Nabd.png" alt="Nabd Logo" class="footer-logo">
</footer>
<script>
const charts = {};
function createGauge(id, color) {
const ctx = document.getElementById(id).getContext('2d');
charts[id] = new Chart(ctx, {
type: 'doughnut',
data: {
datasets: [{
data: [0, 100],
backgroundColor: [color, 'rgba(255, 255, 255, 0.05)'],
borderWidth: 0,
borderRadius: 10,
}]
},
options: {
cutout: '85%',
responsive: true,
maintainAspectRatio: false,
plugins: {
legend: { display: false },
tooltip: { enabled: false }
},
animation: { duration: 1000 }
}
});
}
function updateGauge(id, value) {
if (charts[id]) {
const val = parseFloat(value) || 0;
charts[id].data.datasets[0].data = [val, 100 - val];
charts[id].update();
document.getElementById(id + 'Val').textContent = val.toFixed(1) + '%';
}
}
function updateStatus(id, status) {
const el = document.getElementById(id + '-status');
const span = el.querySelector('span');
el.className = 'status-badge ' + (status === 'online' ? 'status-online' : 'status-offline');
span.textContent = status.charAt(0).toUpperCase() + status.slice(1);
}
async function fetchData() {
try {
const response = await fetch('/api/status');
const data = await response.json();
// Update PC
updateStatus('pc', data.pc.status);
if (data.pc.status === 'online') {
updateGauge('pcCpu', data.pc.cpu);
updateGauge('pcRam', data.pc.ram);
document.getElementById('pcTemp').textContent = data.pc.temp + '°C';
document.getElementById('pcDisk').textContent = data.pc.disk + '%';
}
// Update PI
updateStatus('pi', data.pi.status);
if (data.pi.status === 'online') {
updateGauge('piCpu', data.pi.cpu);
updateGauge('piRam', data.pi.ram);
document.getElementById('piTemp').textContent = data.pi.temp + '°C';
document.getElementById('piDisk').textContent = data.pi.disk + '%';
}
// Update Services
const serviceList = document.getElementById('service-list');
serviceList.innerHTML = data.services.map(s => `
<li class="service-item">
<div class="service-name">
<img src="${getServiceLogo(s.name)}" class="service-logo" onerror="this.src='https://via.placeholder.com/32?text=${s.name.charAt(0)}'">
${s.name}
</div>
<div class="service-status" style="color: ${s.status === 'online' ? 'var(--status-green)' : 'var(--status-red)'}">
<i class="fas ${s.status === 'online' ? 'fa-check-circle' : 'fa-times-circle'}"></i>
${s.status === 'online' ? s.latency : 'Offline'}
</div>
</li>
`).join('');
document.getElementById('loading').style.opacity = '0';
setTimeout(() => document.getElementById('loading').style.display = 'none', 500);
} catch (error) {
console.error('Error fetching data:', error);
}
}
function getServiceLogo(name) {
const logos = {
'Gitea': 'https://gitea.io/images/gitea.png',
'OpenProject': '/static/openproject_files/openproject-logo-centered-blue-background-d7fcb3fb.png',
'Draw.io': 'https://app.diagrams.net/images/logo-flat.svg',
'TestArena': '/static/testarena.png',
'TBM': '/static/tbm.ico',
'Board': 'https://excalidraw.com/favicon-32x32.png'
};
return logos[name] || '';
}
// Initialize
createGauge('pcCpu', '#38bdf8');
createGauge('pcRam', '#a855f7');
createGauge('piCpu', '#38bdf8');
createGauge('piRam', '#a855f7');
fetchData();
setInterval(fetchData, 60000); // Update every 1 minute
</script>
</body>
</html>

59
monitor_logic.py Normal file
View File

@@ -0,0 +1,59 @@
import paramiko
import requests
import time
import re
def get_ssh_data(host, port, user, password):
try:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, port=port, username=user, password=password, timeout=10)
# CPU Usage
stdin, stdout, stderr = ssh.exec_command("top -bn1 | grep 'Cpu(s)' | sed 's/.*, *\\([0-9.]*\\)%* id.*/\\1/' | awk '{print 100 - $1}'")
cpu_usage = stdout.read().decode().strip()
# CPU Temp
# For Ubuntu Server
stdin, stdout, stderr = ssh.exec_command("cat /sys/class/thermal/thermal_zone0/temp 2>/dev/null || vcgencmd measure_temp 2>/dev/null")
temp_raw = stdout.read().decode().strip()
if "temp=" in temp_raw:
cpu_temp = temp_raw.replace("temp=", "").replace("'C", "")
elif temp_raw:
cpu_temp = str(float(temp_raw) / 1000)
else:
cpu_temp = "N/A"
# RAM Status
stdin, stdout, stderr = ssh.exec_command("free -m | awk 'NR==2{printf \"%.2f\", $3*100/$2 }'")
ram_usage = stdout.read().decode().strip()
# Disk Space
stdin, stdout, stderr = ssh.exec_command("df -h / | awk 'NR==2{print $5}' | sed 's/%//'")
disk_usage = stdout.read().decode().strip()
ssh.close()
return {
"status": "online",
"cpu": cpu_usage,
"temp": cpu_temp,
"ram": ram_usage,
"disk": disk_usage
}
except Exception as e:
return {
"status": "offline",
"error": str(e)
}
def check_web_service(url):
try:
start_time = time.time()
response = requests.get(url, timeout=5)
latency = int((time.time() - start_time) * 1000)
if response.status_code == 200:
return {"status": "online", "latency": f"{latency}ms"}
else:
return {"status": "error", "code": response.status_code}
except Exception:
return {"status": "offline"}

573
openproject.html Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
<svg id="Layer_1" focusable="false" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="16px" height="24px" viewBox="0 0 16 24" style="enable-background:new 0 0 16 24;" xml:space="preserve"><path d="M3.9,18.8l6.8-6.8L3.9,5.2l0.7-0.7l7.5,7.5l-7.5,7.5L3.9,18.8z"/></svg>

After

Width:  |  Height:  |  Size: 317 B

View File

@@ -0,0 +1 @@
#bepfo{background-color:#fff!important;color:#444!important;z-index:10}#bepfo.b_hide{display:none!important}#bepfo.darkMode{background-color:#11100f!important;color:#edebe9!important}#bepfo #bepfm{max-width:320px;overflow:hidden;box-sizing:border-box;border-radius:4px}.rwspotlight{padding-right:376px}@media only screen and (max-width:1307px){.rwspotlight{padding-right:0}}.popup{transform:scale(0);transform-origin:center top;animation-name:autoOpenPopup;animation-duration:300ms;animation-delay:200ms;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes autoOpenPopup{0%{transform:scale(0)}30%{transform:scale(.3)}50%{transform:scale(.5)}80%{transform:scale(.8)}100%{transform:scale(1)}}

View File

@@ -0,0 +1 @@
var richImgRefresher;(function(n){function t(){for(var n,i=_d.querySelectorAll("img.mimg"),r=i.length,t=0;t<r;t++)if(n=i[t],n&&n.src&&n.style.backgroundColor){function u(n){return function(){n.style.backgroundColor=""}}n.onload=u(n);n.src=n.src}}function u(){n.isInit=!1;sj_evt.unbind(i,t);sj_evt.unbind(r,u)}var i="DenseGridResultsUpdated",r="ajax.unload";n.isInit||(n.isInit=!0,sb_ie||(t(),sj_evt.bind(i,t),sj_evt.bind(r,u)))})(richImgRefresher||(richImgRefresher={}))

View File

@@ -0,0 +1,3 @@
<svg width="39" height="39" viewBox="0 0 39 39" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16.3759 22.0713L12.9043 18.1658C12.6291 17.8562 12.1551 17.8283 11.8455 18.1035C11.5359 18.3787 11.508 18.8527 11.7832 19.1623L15.7832 23.6623C16.0699 23.9849 16.569 23.9995 16.8741 23.6944L27.3741 13.1944C27.667 12.9015 27.667 12.4266 27.3741 12.1337C27.0812 11.8408 26.6063 11.8408 26.3134 12.1337L16.3759 22.0713Z" fill="#036AC4"/>
</svg>

After

Width:  |  Height:  |  Size: 448 B

View File

@@ -0,0 +1 @@
var AsyncFetcher;(function(n){function t(n,t,r,u,f){if(!n||!t)throw"no async url or no reponse processor";var e=sj_gx();return e?(e.onreadystatechange=function(){4==e.readyState&&i(n,e,t,r,u)},e.open("GET",n,!0),f&&f.size>0&&f.forEach(function(n,t){e.setRequestHeader(t,n)}),e.send(null),e):(r&&r(n),null)}function i(n,t,i,r,u){var f=t.responseText;200==t.status&&f!=""?i(f,n):200==t.status&&u?u(n):r&&r(n)}n.fetch=t})(AsyncFetcher||(AsyncFetcher={}))

View File

@@ -0,0 +1,86 @@
0;
;(function() {
'use strict';
/* eslint-disable no-unused-vars */
var hasOwnProperty = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
function toObject(val) {
if (val === null || val === undefined) {
throw new TypeError('Object.assign cannot be called with null or undefined');
}
return Object(val);
}
function shouldUseNative() {
try {
if (!Object.assign) {
return false;
}
// Detect buggy property enumeration order in older V8 versions.
// https://bugs.chromium.org/p/v8/issues/detail?id=4118
var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
test1[5] = 'de';
if (Object.getOwnPropertyNames(test1)[0] === '5') {
return false;
}
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
var test2 = {};
for (var i = 0; i < 10; i++) {
test2['_' + String.fromCharCode(i)] = i;
}
var order2 = Object.getOwnPropertyNames(test2).map(function(n) {
return test2[n];
});
if (order2.join('') !== '0123456789') {
return false;
}
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
var test3 = {};
'abcdefghijklmnopqrst'.split('').forEach(function(letter) {
test3[letter] = letter;
});
if (Object.keys(Object.assign({}, test3)).join('') !==
'abcdefghijklmnopqrst') {
return false;
}
return true;
} catch (err) {
// We don't expect any of the above to throw, but better to be safe.
return false;
}
}
Object.assign = shouldUseNative() ? Object.assign : function(target, source) {
var from;
var to = toObject(target);
var symbols;
for (var s = 1; s < arguments.length; s++) {
from = Object(arguments[s]);
for (var key in from) {
if (hasOwnProperty.call(from, key)) {
to[key] = from[key];
}
}
if (Object.getOwnPropertySymbols) {
symbols = Object.getOwnPropertySymbols(from);
for (var i = 0; i < symbols.length; i++) {
if (propIsEnumerable.call(from, symbols[i])) {
to[symbols[i]] = from[symbols[i]];
}
}
}
}
return to;
};
})();;

View File

@@ -0,0 +1 @@
#rewardsPanelContainer{position:fixed;top:0;right:0;width:376px;height:100vh;z-index:1100;box-shadow:0 0 0 1px #0000000d,0 0 0 2px #0000001a}#rewardsPanelContainer.darkMode{background:#11100f;color:#edebe9}#rewardsPanelContainer.b_hide{display:none}#rewardsPanelContainer #panelFlyout{width:102%;height:100%;border:0}#rewardsPanelContainer #panelHeader{background:#fff;padding:15px;display:none;text-align:center;justify-content:space-between;border-bottom:1px solid #ccc}#rewardsPanelContainer #panelHeader .title{font-weight:500;font-size:20px;line-height:22px;display:flex;align-items:center}#rewardsPanelContainer #closeRewardsPanel{position:absolute;right:15px;width:12px;height:12px;padding:8px;top:13px}#rewardsPanelContainer #closeRewardsPanel:hover,#rewardsPanelContainer #closeRewardsPanel:focus{cursor:pointer}

View File

@@ -0,0 +1 @@
var FeedConstants;(function(n){n.TabContainerId="ilp_m";n.DenseGridWrapperId="fdc";n.DenseGridClass="dgControl";n.DenseGridContainerSelector="div.".concat(n.DenseGridClass);n.DenseGridColClass="".concat(n.DenseGridClass,"_list");n.DenseGridColSelector="ul.".concat(n.DenseGridColClass);n.imageItemIdAttribute="data-idx";n.DenseGridItemSelector="".concat(n.DenseGridColSelector," > li[").concat(n.imageItemIdAttribute,"]");n.ImageFeedContainerId="fdc";n.RecentFollowCardSelector=".rctfl-card";n.ImageItemWrapperClass="iuscp";n.SeenEventRegisterInterval=2e3;n.DebugElementId="debug";n.MutationObserverFlag="data-obsrvd";n.DislikedImagesClass="dslikd";n.MenuRightSideMargin=300;n.MenuBottomSideMargin=200;n.ImageCardFixedWidth=236;n.ImageItemMenuSelector=".fddtmnu";n.ClonedDislikedViewClass="fdshwless";n.ParentDislikedViewClass="".concat(n.ClonedDislikedViewClass,"_p");n.DialogDislikedViewClass="dialog";n.Xhr_TimeOut=2e3;n.SeenEvent="Seen";n.ClickEventName="click";n.sfx=1;n.ZeroFeedEvent="ZeroFeed";n.ZeroFeedAfterRetryEvent="ZeroFeedAftRetry";n.ZeroFeedAfterFreSelectionEvent="ZeroFeedAftFre";n.FeedNavigation="FeedNavigation";n.ZeroFreEvent="ZeroFre";n.InsufficientFreEvent="InsufficientFre";n.FreShuffleEventName="freShuffle";n.EmptyPayloadEvents=[n.ZeroFeedEvent,n.ZeroFeedAfterRetryEvent,n.ZeroFeedAfterFreSelectionEvent,n.ZeroFreEvent,n.InsufficientFreEvent];n.FreClickFeedbackEvent="FreClick";n.FreClickFeedbackSuccessEvent="Feedback.success";n.MaxRetryCount=3;n.OnloadEventToCollectionsEnabled=!0;n.frevNextItemClass="freitm";n.AbsoluteUrlRegex=/^https?:\/\/|^\/\//i;n.Navigationid="nvid";n.GoodClickTopic="topic";n.FeedRefreshUrlAttribute="data-refurl";n.GoodClickEventName="GoodClick";n.DetailPageMainImageWindowId="mainImageWindow";n.mouseLeaveEvent="mouseleave";n.mouseEnterEvent="mouseenter";n.triggeredSaveEvent="save";n.triggeredLikeEvent="like";n.BackUrlName="burl"})(FeedConstants||(FeedConstants={}))

View File

@@ -0,0 +1 @@
#rfPane{background:#fff;z-index:3;width:100%;left:0;min-width:1177px;padding-top:5px}.rb_bar:first-child{border-left-style:none}#rf_bar{background-color:#fff;width:auto;overflow:hidden;z-index:3;_position:absolute;height:46px;min-width:600px;margin:0 20px 15px 5px;padding-top:14px}.rb_bar{display:inline-block;overflow:hidden;border-left:1px solid #ddd;height:46px;vertical-align:top;font-size:17px;font-family:"Segoe UI",Arial,Helvetica;line-height:1.3}.rb_bar a{cursor:pointer;color:#1020d0;display:inline-block;overflow:hidden;text-decoration:none;padding:0 14px}.rb_bar a:hover{text-decoration:underline}.rb_bar strong{font-size:17px;line-height:1.3;font-family:"Segoe UI semibold","Segoe UI",Arial,Helvetica}.mmsp{margin-top:11px;border-bottom:0!important}.subhead{font-size:15px;margin-bottom:9px}.subhead li{padding:12px 17px 0;margin-bottom:1px}.subhead li:first-child{padding-top:0}#sw_canvas{padding-top:0!important}

View File

@@ -0,0 +1,5 @@
<svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="Image">
<path id="Shape" d="M3 6.75C3 4.67893 4.67893 3 6.75 3H21.25C23.3211 3 25 4.67893 25 6.75V21.25C25 22.0211 24.7673 22.7379 24.3682 23.3339L15.3979 14.5674C14.6207 13.8079 13.3793 13.8079 12.6021 14.5674L3.63183 23.3339C3.23275 22.7379 3 22.0211 3 21.25V6.75ZM4.698 24.3893C5.28759 24.7754 5.99257 25 6.75 25H21.25C22.0074 25 22.7124 24.7754 23.302 24.3893L14.3495 15.6402C14.1552 15.4503 13.8448 15.4503 13.6505 15.6402L4.698 24.3893ZM20.75 10C20.75 8.75736 19.7426 7.75 18.5 7.75C17.2574 7.75 16.25 8.75736 16.25 10C16.25 11.2426 17.2574 12.25 18.5 12.25C19.7426 12.25 20.75 11.2426 20.75 10Z" fill="#919191"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 734 B

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,6 @@
<svg focusable="false" width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<rect fill-opacity="0.2" fill="#000" x="0" y="0" width="24" height="24" rx="2"></rect>
<g transform="translate(4, 4)">
<path d="M13.2916881,1.29304814 L7.99395739,6.59077883 L2.69622669,1.29304814 C2.30349711,0.913737214 1.67923378,0.919161894 1.29315522,1.30524045 C0.907076669,1.691319 0.90165199,2.31558234 1.28096291,2.70831192 L6.57869361,8.00604261 L1.28096291,13.3037733 C0.90165199,13.6965029 0.907076669,14.3207662 1.29315522,14.7068448 C1.67923378,15.0929233 2.30349711,15.098348 2.69622669,14.7190371 L7.99395739,9.42130639 L13.2916881,14.7190371 C13.6844177,15.098348 14.308681,15.0929233 14.6947596,14.7068448 C15.0808381,14.3207662 15.0862628,13.6965029 14.7069519,13.3037733 L9.40922117,8.00604261 L14.7069519,2.70831192 C15.0976827,2.31746305 15.0976827,1.683897 14.7069519,1.29304814 C14.316103,0.902317288 13.6825369,0.902317288 13.2916881,1.29304814 Z" fill="#FFF" fill-rule="nonzero"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1 @@
var WfPlanner;(function(n){var i=function(){function n(n,t,i){this.containerWidth=0;this.prefColCount=0;this.prefColWidth=0;this.maxHeight=0;this.isInited=!1;var r=this;n&&t&&!r.isInited&&(r.containerWidth=n.width,r.container=n,r.layoutOptions=t,r.isInited=!0,r.refineInputOptions(i),r.initVirtualColumns())}return n.prototype.calcAvgItemWidth=function(n){var i,r,t;if(n!=null&&n.length>0){for(i=n.length,r=0,t=0;t<i;t++)r+=n[t].width;return Math.floor(r/i)}return 0},n.prototype.normalizeColumnCount=function(n){var t=this;return Math.floor(Math.min(t.layoutOptions.maxColCount,Math.max(t.layoutOptions.minColCount,n)))},n.prototype.normalizeColumnWidth=function(n){var t=this;return Math.floor(Math.min(t.layoutOptions.maxColWidth,Math.max(t.layoutOptions.minColWidth,n)))},n.prototype.calColumnWidth=function(n){var t=this,i=(t.containerWidth+t.layoutOptions.hGap)/n;return Math.floor(i>t.layoutOptions.hGap?i-t.layoutOptions.hGap:0)},n.prototype.calColumnCount=function(n){var t=this;return Math.floor((t.containerWidth+t.layoutOptions.hGap)/(n+t.layoutOptions.hGap))},n.prototype.refineInputOptions=function(n){var t=this,o=Math.min(t.layoutOptions.maxColWidth,t.calColumnWidth(t.layoutOptions.minColCount)),u,f,e,i,r;for(t.layoutOptions.maxColWidth=Math.max(t.layoutOptions.minColWidth,o),u=Math.max(t.layoutOptions.minColWidth,t.calColumnWidth(t.layoutOptions.maxColCount)),t.layoutOptions.minColWidth=Math.min(t.layoutOptions.maxColWidth,u),f=Math.min(t.layoutOptions.maxColCount,t.calColumnCount(t.layoutOptions.minColWidth)),t.layoutOptions.maxColCount=Math.max(t.layoutOptions.minColCount,f),e=Math.max(t.layoutOptions.minColCount,t.calColumnCount(t.layoutOptions.maxColWidth)),t.layoutOptions.minColCount=Math.min(t.layoutOptions.maxColCount,e),i=t.layoutOptions.minColCount,r=t.calcAvgItemWidth(n),r>0&&(r=t.normalizeColumnWidth(r),i=t.normalizeColumnCount(t.calColumnCount(r)));i<=t.layoutOptions.maxColCount;i++)if(t.layoutOptions.maxColWidth>=t.calColumnWidth(i))break;t.prefColCount=Math.min(i,t.layoutOptions.maxColCount);t.prefColWidth=t.normalizeColumnWidth(t.calColumnWidth(i))},n.prototype.initVirtualColumns=function(){var n=this,i=n.prefColCount,t;for(n.virtualColumns={},t=0;t<i;t++)n.virtualColumns[t]={},n.virtualColumns[t].top=0,n.virtualColumns[t].left=t*(n.layoutOptions.hGap+n.prefColWidth),n.virtualColumns[t].idx=t,n.virtualColumns[t].outputs=[];n.container.setWidth&&n.container.setWidth(i*(n.layoutOptions.hGap+n.prefColWidth)-n.layoutOptions.hGap)},n.prototype.findVirtualColumn=function(){for(var n=this,u=n.prefColCount,i=n.virtualColumns[0].top,r=0,t=1;t<u;t++)n.virtualColumns[t].top<i&&(i=n.virtualColumns[t].top,r=t);return n.virtualColumns[r]},n.prototype.setMaxHeight=function(n){var t=this;n>t.maxHeight&&(t.maxHeight=n,t.container.setHeight&&t.container.setHeight(t.maxHeight))},n.prototype.add=function(n){var i=this,u;if(n!=null&&n.width>0&&n.height>0&&n.render){var e=n.height/n.width,f=Math.floor(Math.min(i.prefColWidth*e,n.height)),o=Math.max(f,i.layoutOptions.minItemHeight),r=i.findVirtualColumn(),t={};t.conWidth=i.prefColWidth;t.conHeight=o;t.itemWidth=Math.min(i.prefColWidth,n.width);t.itemHeight=f;t.left=r.left;t.top=r.top;t.dimIndex=r.idx;t.inputItem=n;u=n.render(t);t.finalSize=u;r.top+=u.height+i.layoutOptions.vGap;r.outputs.push(t);this.setMaxHeight(r.top)}},n.prototype.plan=function(n){var i=this,r,t;if(i.isInited&&n!=null&&n.length>0)for(r=n.length,t=0;t<r;t++)i.add(n[t])},n.prototype.reset=function(){var n=this;n.isInited=!1},n.prototype.adjustOutputFinalSize=function(n,t){var s=this,i,f,e,u,r,o;if(s.isInited&&n&&t&&n.finalSize&&t.height!=n.finalSize.height&&(i=s.virtualColumns[n.dimIndex],i))for(f=t.height-n.finalSize.height,i.top=i.top+f,this.setMaxHeight(i.top),e=!1,u=0;u<i.outputs.length;u++)r=i.outputs[u],o=r.inputItem,r==n?(r.finalSize.height=t.height,e=!0):e&&o.move&&(r.top=r.top+f,o.move(r))},n.prototype.adjustColumnHeight=function(n,t){var i=this.virtualColumns[n];i&&(i.top+=t)},n}(),t;n.isInit||(n.isInit=!0,t={},n.planItems=function(n,r,u){if(n&&n.id&&r&&t){var f=t[n.id];f&&f.isInited||(f=new i(n,r,u),t[n.id]=f);u&&f.isInited&&f.plan(u)}},n.reset=function(n){if(n&&n.id&&t){var i=t[n.id];i&&i.isInited&&i.reset()}},n.adjustOutputFinalSize=function(n,i,r){if(n&&n.id&&i&&r){var u=t[n.id];u&&u.isInited&&u.adjustOutputFinalSize(i,r)}},n.adjustColumnHeight=function(n,i,r){if(n&&n.id&&r){var u=t[n.id];u&&u.isInited&&u.adjustColumnHeight(i,r)}},n.unload=function(){n.isInit=!1;t=null})})(WfPlanner||(WfPlanner={}))

View File

@@ -0,0 +1 @@
var Base64Encoder;(function(n){function e(n){for(var i,r="",u=0;u<n.length;u++)i=n.charCodeAt(u),i<128?r+=t(i):i<2047?(r+=t((i>>6)+192),r+=t((i&63)+128)):i<65535?(r+=t((i>>12)+224),r+=t((i>>6&63)+128),r+=t(i&63|128)):i<1114111&&(r+=t((i>>18)+240),r+=t((i>>12&63)+128),r+=t((i>>6&63)+128),r+=t(i&63|128));return r}function o(n){for(var c="",e=null,f=0,o,r,u,s,h;f<n.length;)o=!1,e=null,r=n[i](f++),r<128?e=t(r):r<194?o=!0:r<224?(u=n[i](f),(u&192)!=128?o=!0:(e=t((r<<6)+u-12416),f+=1)):r<240?(u=n[i](f),s=n[i](f+1),(u&192)!=128||r===224&&u<10||(s&192)!=128?o=!0:(e=t((r<<12)+(u<<6)+s-925824),f+=2)):r<245?(u=n[i](f),s=n[i](f+1),h=n[i](f+2),(u&192)!=128||r===240&&u<144||r===244&&u>=144||(s&192)!=128||(h&192)!=128?o=!0:(e=t((r<<18)+(u<<12)+(s<<6)+h-63447168),f+=2)):o=!0,o&&(e=String.fromCharCode(r)),c+=e;return c}function s(n){for(var t=[],f=0,l=4;f<n.length;l+=4){var a=n[i](f++),s=n[i](f++),h=n[i](f++),e=a<<16|s<<8|h,v=e>>18&63,y=e>>12&63,c=e>>6&63,o=e&63;isNaN(s)?c=o=64:isNaN(h)&&(o=64);t.push(r[u](v));t.push(r[u](y));t.push(r[u](c));t.push(r[u](o))}return t.join("")}function h(n){var t=e(n);return typeof btoa=="function"?window.btoa(t):s(t)}function c(n){var e=[],i;if(n.length%4!=0)throw"base64 malformed padding";for(i=0;i<n.length;){var c=r[f](n[u](i++)),s=r[f](n[u](i++)),o=r[f](n[u](i++)),h=r[f](n[u](i++));if(c<0||s<0||o<0||h<0)throw"base64 malformed";var l=t(c<<2|s>>4),a=t((s&15)<<4|o>>2),v=t((o&3)<<6|h);e.push(l);o!==64&&e.push(a);h!==64&&e.push(v)}return e.join("")}function l(n){var t;return t=typeof atob=="function"?window.atob(n):c(n),o(t)}var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",i="charCodeAt",u="charAt",f="indexOf",t=String.fromCharCode;n.stringToBase64=h;n.base64ToString=l})(Base64Encoder||(Base64Encoder={}))

View File

@@ -0,0 +1 @@
var RewardsCreditRefresh;(function(n){function r(t,i,r,u,f,e,o,s,h,c,l,a,v,y){sj_cook.set(t,i,r.toString(),!1,"/");sj_cook.set(t,u,f.toString(),!1,"/");sj_cook.set(t,e,o.toString(),!1,"/");sj_cook.set(t,s,h.toString(),!1,"/");sj_cook.set(t,c,l.toString(),!1,"/");sj_cook.set(t,a,v.toString(),!1,"/");sj_evt.fire("RewardsCookieUpdated");sj_evt.bind("identityHeaderShown",function(){return n.RewardsHeaderAnim(o,r,f,y)},1)}function u(n,r,u,f){var c;u=u||r;var o=_ge("id_rh"),e=_ge("rh_animcrcl"),l=_ge("id_rc");if(o&&l&&(e||_ge("givemuid_heart"))&&!(r<0)&&!(r<n)&&!(u<=0)){var a=800,v=r-n,s=Math.min(100,100*(r/u)),h=e&&s>=100&&n<u,y=v>0,p=Date.now();s>=100&&Lib.CssClass.add(o,"rh_reedm");e&&Lib.CssClass.add(e,"anim");c=function(u){if(u){var k=Date.now(),w=k-p,b=Math.min(w/a,1),d=h?t*b:t*s/100,g=y?Math.min(Math.floor((n+b*v)/f)*f,r):r,l=_ge("rewardsAnimation");e&&e.setAttribute("stroke-dasharray",d.toString()+","+t.toString());u.innerText=g.toString();(h||y)&&(w<a?i(function(){return c(u)}):(u.innerText=r.toString(),h&&(Lib.CssClass.add(o,"rh_scale"),Log.Log("CI.Info","RewardsReportActivity","ScaleAnim")),sj_evt.fire("RewardsAnimComplete"),l&&(Lib.CssClass.remove(l,"b_hide"),setTimeout(function(){Lib.CssClass.add(l,"b_hide")},2200))))}};c(l)}}function f(){var n=_ge("id_rc");return n?parseInt(n.innerText):0}function e(n){var i=_ge("id_rc"),t;i&&(i.innerText=n.toString());t=_ge("id_rcep");t&&(t.innerText=n.toString())}var t=88,i=function(){return _w.requestAnimationFrame||_w.webkitRequestAnimationFrame||_w.mozRequestAnimationFrame||function(n){sb_st(n,1e3/60)}}();n.RewardsRefresh=r;n.RewardsHeaderAnim=u;n.GetRewardsHeaderBalance=f;n.SetRewardsHeaderBalance=e})(RewardsCreditRefresh||(RewardsCreditRefresh={}))

View File

@@ -0,0 +1 @@
var IRFoc;(function(n){function g(){s||(e(),SmartEvent.bindc("DenseGridResultsUpdated",e),s=!0)}function e(){var u=t.gebc(a),e,i,s,r,n;if(u)for(e=u.length,i=0;i<e;i++)for(f=u[i].querySelectorAll(y),s=f.length,r=0;r<s;r++)(n=f[r],t.ga(n,o))||(sj_be(n,b,nt),sj_be(n,k,tt),sj_be(n,d,function(){document.activeElement&&document.activeElement!=document.body&&document.activeElement.blur()}),t.sa(n,o,"1"))}function nt(n){var t=l(n);t&&(c(),i=sb_st(function(){it(t)},p))}function tt(n){var t=l(n);t&&(c(),i=sb_st(function(){rt(t)},w))}function it(n){h();n&&!t.hc(n,u)&&(t.ac(n,u),r=n)}function rt(n){var t=document.activeElement;t&&n&&n.contains(t)||h()}function h(){r&&(t.rc(r,u),r=null)}function c(){i&&(sb_ct(i),i=null)}function l(n){for(var i=n.target||n.srcElement;i&&!t.hc(i,v);)i=i.parentElement;return i}var a="dgControl",v="iuscp",y=".iusc,.ent a",u="irfoc",p=100,w=100,o="data-focevt",i,b="focus",k="blur",d="click",s=!1,t=pMMUtils,f,r;n.bindEvents=e;g()})(IRFoc||(IRFoc={}))

View File

@@ -0,0 +1 @@
<svg width="16px" height="14px" focusable="false" viewBox="0 0 16 14" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g transform="translate(-1085.000000, -2152.000000)" fill="#666666"><path d="M1085,2152 L1085,2153.71067 L1091,2159.71067 L1091,2166 L1095,2166 L1095,2159.71067 L1101,2153.71067 L1101,2152 L1085,2152 Z M1092,2159.28933 L1086,2153.28933 L1086,2153.00133 L1100,2153.00133 L1100,2153.28933 L1094,2159.28933 L1094,2165.00133 L1092,2165.00133 L1092,2159.28933 Z"/></g></svg>

After

Width:  |  Height:  |  Size: 517 B

View File

@@ -0,0 +1 @@
(function(){function h(){var e=!1,n=_ge("cust_width"),r=_ge("cust_height"),u,f;return n!=null&&r!=null&&(u=Number(CustSizeFilterProp.MinSize),f=Number(CustSizeFilterProp.MaxSize),t=parseInt(n.value),i=parseInt(r.value),n.value.length<1||r.value.length<1||isNaN(t)||isNaN(i)||t<u||i<u||t>f||i>f?a():e=!0),e}function c(){var n=_ge("cust_width"),t=_ge("cust_height");e(n);e(t)}function e(n){var t,i;n&&(i=(t=n.getAttribute("placeholder"))===null||t===void 0?void 0:t.length,i&&n.setAttribute("size",i))}function o(n){return n.keyCode||n.charCode||n.which}function l(t){t&&o(t)==f&&(n.click(),t.stopPropagation(),t.preventDefault())}function a(){u!=null&&(u.setAttribute("show","true"),u.focus())}function v(){r=_ge("cust-container");u=_ge("cust_size_msg");s.bind(r,"keydown",l);n=_ge("custftrlink");n!=null&&(n.onclick=function(r){if(h()){var u=n.getAttribute("href"),f=new RegExp("_[0-9]+_[0-9]+","g"),e="_"+t+"_"+i;u!=null&&(u=u.replace(f,e));n.setAttribute("href",u);r.customEvent=1}});r!=null&&(r.onclick=function(n){n.customEvent||o(n)==f||(sj_pd(n),sj_sp(n))});c()}var t,i,n,r,u,s=SmartEvent,f=13;v()})()

View File

@@ -0,0 +1 @@
var sj_appHTML=function(n,t){var f,e,o,i,r,s,h;if(t&&n){var c="innerHTML",l="script",a="appendChild",v="length",y="src",p=sj_ce,u=p("div");if(u[c]="<br>"+t,f=u.childNodes,u.removeChild(f[0]),e=u.getElementsByTagName(l),e)for(o=0;o<e[v];o++)i=p(l),r=e[o],r&&(i.type="text/javascript",s=r.getAttribute(y),s?(i.setAttribute(y,s),i.setAttribute("crossorigin","anonymous"),r.hasAttribute("async")||(i.async=!1)):(i.text=r[c],i.setAttribute("data-bing-script","1")),r.parentNode.replaceChild(i,r));for(h=_d.createDocumentFragment();f[v];)h[a](f[0]);n[a](h)}}

View File

@@ -0,0 +1 @@
(function(){function f(){var r=o(),i,t,f;if(r)for(i=s(r),t=0;t<i.length;t++)f=i[t].id.replace(n,""),Log&&Log.Log&&Log.Log("Info",u,f,!1,"Text",t.toString()),sj_be(i[t],"mousedown",e)}function e(t){var f=r(t.target),u;f!=null&&(u=f.id.replace(n,""),Log&&Log.Log&&Log.Log("Info",i,u),Log&&Log.LogFilterFlare&&Log.LogFilterFlare(["".concat(i,"_").concat(u)]))}function r(t){if(t!=null){var i=t.id;return i!=null&&i.indexOf(n)===0?t:r(t.parentElement)}return null}function o(){var n=_d.querySelectorAll(".b_scopebar > ul");return n&&n.length>0?n[0]:null}function s(i){for(var r,o,u=[],e=i.children,f=0;f<e.length;f++)r=e[f].id,r!=null&&r!==t&&r.indexOf(n)===0?u.push(e[f]):r!=null&&r===t&&(o=h(),u.push.apply(u,o));return u}function h(){var n=_d.querySelectorAll(".b_scopebar #b-scopeListItem-menu .b_sp_over_menu .b_scopebar_item");return Array.prototype.slice.call(n)}var n="b-scopeListItem-",t=n+"menu",u="DynScopeRank",i="DynScopeClick";sj_evt.bind("onP1",f)})()

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.blue2#miniheader .b_searchboxForm{border:1px solid #ccc;height:39px}#miniheader .b_searchbox{height:30px;margin:5px 0 1px 20px;padding:0 10px 0 0}#miniheader .b_searchboxSubmit{height:40px;margin:0;padding:0;transform:scale(.5)}#miniheader #sb_clt{display:none;margin-right:0;top:0}#miniheader .sb_clrhov{visibility:hidden}.blue2#miniheader #sb_go_par:hover::after{top:46px}.blue2#miniheader .sa_as{border-width:1px;border-style:solid}.blue2#miniheader #sw_as #sa_ul{box-shadow:none}#miniheader #miniheader_searchbox{padding:11px 0 0}#miniheader #miniheader_searchbox .b_searchboxForm{margin-left:0;box-shadow:none}.blue2#miniheader #miniheader_searchbox #sb_form_q{margin-right:0}.blue2#miniheader #sb_form{background-color:transparent}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
var IRPBOPPA;(function(){function n(){var r,u,e=".ra_car_block",f;if(_w.removeEventListener("scroll",n),!_qs(e)&&(f=(r=_qs(".sprs-container"))===null||r===void 0?void 0:r.getAttribute("data-shop-1st-rs"),f)){var i=sj_gx(),t=(u=new URL(_w.location.href))===null||u===void 0?void 0:u.searchParams,o=t===null||t===void 0?void 0:t.get("htmlbag"),s=t===null||t===void 0?void 0:t.get("form"),h=t===null||t===void 0?void 0:t.get("features");i.open("GET","/images/search?q="+encodeURIComponent(f)+"&adsonly=1&mmasync=1&IID=imagesboppa&SFX=1"+((_G===null||_G===void 0?void 0:_G.IG)?"&IG="+_G.IG:"")+(s?"&form="+s:"")+(o?"&mockimages=1&bag="+o:"")+(h?"&features="+h:""),!0);i.onreadystatechange=function(){var n,r,u;if(i.readyState===4&&i.status===200&&i.response){n=_ge("bopblock");r=!0;n||(r=!1,n=sj_ce("div","bopblock",null));r||(u=_ge("bop_container"),u&&u.appendChild(n));sj_appHTML(_d.body,i.response);var t=_qs(e),f=_ge("msan_cnf"),o=(f===null||f===void 0?void 0:f.getAttribute("data-blwcrsl"))==="1";t&&(t.remove(),o&&n.firstChild?n.insertBefore(t,n.firstChild):n.appendChild(t))}};i.send()}}_w.addEventListener("scroll",n)})(IRPBOPPA||(IRPBOPPA={}))

View File

@@ -0,0 +1 @@
(function(){function n(n){var r,i;if(n&&n.getElementsByTagName)for(r=n.getElementsByTagName("a"),i=0;i<r.length;i++)t(r[i])}function t(n){typeof n=="undefined"||!n.hasAttribute("target")||n.getAttribute("target")!="_blank"||!n.hasAttribute("href")||typeof n.getAttribute("href")=="undefined"||typeof n.getAttribute("href").startsWith=="undefined"||n.getAttribute("href").indexOf("javascript")>=0||n.getAttribute("href").indexOf("/rebates/welcome")>=0||e(n)||n.hasAttribute("class")&&n.getAttribute("class").indexOf("b_ignbt")>=0||n.hasAttribute("onclick")&&n.getAttribute("onclick").indexOf("return false;")>=0||f(n)}function r(n){return n.indexOf(".bing.com/aclick?ld=")>=0||n.indexOf(".bing.com/ac?ld=")>=0||n.indexOf(".bing.com/ck?ld=")>=0||n.indexOf(".bing.com/ck/a")>=0||n.indexOf(".bing.com/ack?ld=")>=0||n.indexOf(".bing.com/clk?ld=")>=0||n.indexOf(".bing.com/aclk?ld=")>=0||n.indexOf(".staging-bing-int.com/aclick?ld=")>=0||n.indexOf(".staging-bing-int.com/ac?ld=")>=0||n.indexOf(".staging-bing-int.com/ck?ld=")>=0||n.indexOf(".staging-bing-int.com/ack?ld=")>=0||n.indexOf(".staging-bing-int.com/clk?ld=")>=0||n.indexOf(".staging-bing-int.com/aclk?ld=")>=0||n.indexOf(".staging-bing-int.com/click?ld=")>=0||n.indexOf(".binginternal.com/aclick?ld=")>=0||n.indexOf(".binginternal.com/ac?ld=")>=0||n.indexOf(".binginternal.com/ck?ld=")>=0||n.indexOf(".binginternal.com/ack?ld=")>=0||n.indexOf(".binginternal.com/clk?ld=")>=0||n.indexOf(".binginternal.com/aclk?ld=")>=0||n.indexOf(".binginternal.com/click?ld=")>=0}function e(n){var t=n.getAttribute("href");return r(t)?(n.setAttribute("href",t+"&ntb=1"),!0):!1}function o(n){try{return decodeURIComponent(n)!=n}catch(t){return!0}}var f=function(n){sj_be(n,"click",function(n){var t,r,u;for(n.preventDefault(),t=sj_et(n);t!=null;){if(t.tagName.toLowerCase()=="a"){r=t.getAttribute("href");u=i(r);typeof ReactStopPropagation!="undefined"&&ReactStopPropagation(n);_w.open(u,"_blank");break}t=t.parentNode}})},i=function(n){var u,i,t;return r(n)?n:(u=/[^\x00-\xff]/,i=!1,!u.test(n)&&o(n)&&(n=btoa(n),i=!0),t="/newtabredir?url="+encodeURIComponent(n),i&&(t=t+"&be=1"),t)},u;if(_w.ntpUrl=i,n(_d),"MutationObserver"in window){function s(i){i.forEach(function(i){var f,u,r;if(i.type=="childList"&&i.addedNodes)for(f=i.addedNodes.length,u=0;u<f;u++)r=i.addedNodes[u],r&&(r.tagName=="A"?t(r):n(r))})}u=new MutationObserver(s);u.observe(_d,{subtree:!0,childList:!0})}})()

View File

@@ -0,0 +1 @@
var Multimedia;(function(n){var t;(function(){var r=ImageDetailReducers,t=n.Utils.LayoutInstrumentation,i=t===null||t===void 0?void 0:t.gmcit(),e=1500,u=new Map,o=function(n){return React.useEffect(function(){i&&n.currentInsightsId&&n.currentInsightsRequestState===SharedInterfaces.RequestState.Success&&(u.has(n.currentInsightsId)||(u.set(n.currentInsightsId,!0),setTimeout(function(){i.writeLayoutFromElement(n.rootElement);i.flushInstrumentation()},e)))},[n.currentInsightsId,n.currentInsightsRequestState]),React.useEffect(function(){n.pageLayoutLogLoaded&&n.pageLayoutLogLoaded()},[]),null},s=function(n){var t=r.getInsightsState(n),i=ImageDetailReducers.getDisplayInsightsId(n);return{ig:r.getCurrentImpressionId(n),currentInsightsId:i,currentInsightsRequestState:t?t.requestState:SharedInterfaces.RequestState.Ready}},h=function(n){return{pageLayoutLogLoaded:function(){n(ImageDetailActions.pageLayoutLogLoaded())}}},c=ReactRedux.connect(s,h),f=c(o);f.displayName="PageLayoutLogController";n.ImageDetail.PageLayoutLogController=f})(t=n.ImageDetail||(n.ImageDetail={}))})(Multimedia||(Multimedia={}))

View File

@@ -0,0 +1 @@
(function(){function a(){r&&(r=!1,w(),SydFSCHelper.deleteNotebookFlagInURL())}function p(){if(!Lib.CssClass.contains(n,"disabled")&&!r){r=!0;var t=_ge(o),i=_ge(s),u=_ge(h);b(t,i);e||v(t,i,u)}}function w(){n&&Lib.CssClass.remove(n,i);t&&Lib.CssClass.remove(t,f);n.firstChild.ariaCurrent="false"}function b(r,u){n&&Lib.CssClass.add(n,i);t&&Lib.CssClass.add(t,f);r&&Lib.CssClass.remove(r,i);u&&Lib.CssClass.remove(u,i);u.firstChild.ariaCurrent="false";n.firstChild.ariaCurrent="page"}function v(i,r,u){var l,s,h,c;if(!e&&n){var a=n.offsetWidth,v=getComputedStyle(n),o=parseInt(v.marginLeft),f;i&&i.offsetWidth&&(l=getComputedStyle(i),o+=i.offsetWidth+parseInt(l.marginRight),f=i);r&&r.offsetWidth&&(s=getComputedStyle(r),o+=(!f?0:parseInt(s.marginLeft))+r.offsetWidth+parseInt(s.marginRight),f||(f=r));u&&u.offsetWidth&&(h=getComputedStyle(u),o+=parseInt(h.marginLeft)+u.offsetWidth+parseInt(h.marginRight));c=sj_ce("style");c.textContent="\n .b_sydConvMode.b_notebookMode .b_scopebar #".concat(f.id,"::after {\n width: ").concat(a,"px;\n transform: translateX(").concat(document.dir==="rtl"?"-":"").concat(o,"px);\n }\n ");t.appendChild(c);e=!0}}function k(n,t){if(n&&t){var i=n.offsetWidth,r=t.offsetWidth;t.style.transform="translate(".concat(document.dir==="rtl"?"":"-").concat((r-i)/2,"px, 6px)")}}var u,o="b-scopeListItem-web",s="b-scopeListItem-conv",h="b_bceBcbToggle",i="b_active",f="b_notebookMode",c=_ge(s),y=_ge(h),n=_ge("b-scopeListItem-notebook"),t=(u=window.document)===null||u===void 0?void 0:u.body,r=!1,e=!1,l;t&&c&&n&&(Lib.CssClass.contains(t,f)&&(l=_ge(o),v(l,c,y)),sj_be(n,"click",function(){Lib.CssClass.contains(n,"disabled")||sj_evt.fire("showNotebook")}),sj_evt.bind("switchToNotebook",p,!0),sj_evt.bind("switchToConversation",a,!0),sj_evt.bind("switchToWeb",a,!0),Lib.CssClass.contains(n,"disabled")&&sj_evt.bind("showSydFSC",function(){var t=n.querySelector(".notebook-tip");k(n,t)},!0))})()

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
_w.CarouselConfigRegistry&&CarouselConfigRegistry.setHandler(function(n,t){var i=function(){_w[n]&&_w[n].init(t)},r=_ge(t.DomId);typeof SmartRendering!="undefined"?SmartRendering.LoadElementWhenDisplayed(this,r,i,[]):i.apply(this,[])})

View File

@@ -0,0 +1,3 @@
<svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9.09063 0.294182L9.14925 0.34543C9.39323 0.584899 9.41407 0.965965 9.20932 1.22958L9.15805 1.2882L5.88916 4.61869L9.21966 7.88757C9.46364 8.12704 9.4845 8.50809 9.27972 8.77174L9.22846 8.83034C8.98899 9.07432 8.60794 9.09518 8.34429 8.89041L8.28569 8.83914L4.9552 5.57026L1.68631 8.90075C1.44684 9.14473 1.0658 9.16559 0.80215 8.96081L0.743544 8.90955C0.499562 8.67008 0.478703 8.28903 0.683481 8.02539L0.734743 7.96678L4.00363 4.63629L0.673137 1.36741C0.429135 1.12792 0.408291 0.746886 0.613088 0.483258L0.664336 0.424638C0.903805 0.180656 1.28487 0.159816 1.54849 0.364565L1.6071 0.415837L4.9376 3.68472L8.20648 0.354231C8.44597 0.11023 8.827 0.0893854 9.09063 0.294182L9.14925 0.34543L9.09063 0.294182Z" fill="#717171"/>
</svg>

After

Width:  |  Height:  |  Size: 838 B

View File

@@ -0,0 +1 @@
(function(){function r(){Log&&Log.LogFilterFlare&&(n&&t?Log.LogFilterFlare(["vssbinhpcombo"]):n&&!t?Log.LogFilterFlare(["vshpinlinesb"]):!n&&t?Log.LogFilterFlare(["vsassearchbtn"]):n||t||Log.LogFilterFlare(["vssbhpprod"]))}var i=_ge("sb_form_q"),n=SB_Config&&typeof(SB_Config.enableinlineSB=="boolean")?SB_Config.enableinlineSB:!1,t=SB_Config&&typeof(SB_Config.enableSERPASSB=="boolean")?SB_Config.enableSERPASSB:!1;sj_be(i,"click",r)})()

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
var ContextMenuDetector;(function(n){function r(){typeof mmLog!="undefined"&&mmLog('{"T":"CI.ContextMenu","Name":"MMCMDetector","TS":'+sb_gt()+"}")}function u(){sj_ue(_w,i,u);sj_ue(_d,t,r)}var t="contextmenu",i="unload";n.isInit=!1;n.isInit||(n.isInit=!0,sj_be(_d,t,r),sj_be(_w,i,u))})(ContextMenuDetector||(ContextMenuDetector={}))

View File

@@ -0,0 +1 @@
var WV=WV||{};(function(n){function u(){if("webVitals"in _w&&(!("isInit"in n)||!n.isInit)&&typeof sj_evt!="undefined"&&typeof sj_be!="undefined"){var t=_w.webVitals;n.onFCP=i(t.onFCP);n.onLCP=i(t.onLCP);n.onCLS=i(t.onCLS);n.onINP=i(t.onINP);n.metrics={};n.isMetricsFrozen=!1;n.isLogged=!1;sj_evt.bind("onP1",f,!0);sj_evt.bind("ajax.requestSent",h)}}function f(){if(!n.isInit){n.onFCP(e);n.onLCP(t);n.onCLS(t);n.onINP(t);n.isInit=!0}}function e(i){n.isFCPCalledOnce||(n.isFCPCalledOnce=!0,sb_st(function(){sj_be(_d,"visibilitychange",o);sj_be(_w,"pagehide",s)},0),t(i))}function o(){"visibilityState"in _d&&_d.visibilityState==="hidden"&&r()}function s(){r()}function h(){r();l()}function c(){n.isLogged=!1;n.metrics={}}function t(t){var r=!1,i;switch(t.name){case"FCP":i=parseInt(t.value);break;case"LCP":i=parseInt(t.value);break;case"INP":i=parseInt(t.value);(_G===null||_G===void 0?void 0:_G.INPLoggingDisabled)===!0&&(r=!0);break;case"CLS":i=parseFloat(t.value).toFixed(4)}r||n.metrics[t.name]==i||(n.metrics[t.name]=i,n.isLogged=!1)}function r(){!n.isLogged&&!n.isMetricsFrozen&&Object.keys(n.metrics).length>0&&(a(),c())}function l(){n.isMetricsFrozen=!0}function a(){var t='{ "T": "CI.WebVitals", "FID": "CI", "Name": "WV", "P":'+JSON.stringify(n.metrics)+"}";v(t);n.isLogged=!0}function v(t){var u,i;if("Log2"in _w&&Log2.LogEvent&&JSON)Log2.LogEvent("ClientInst",JSON.parse(t),null,null,null,null,null,null);else{var r=y(),f="<E><T>Event.ClientInst<\/T><IG>"+_G.IG+"<\/IG><TS>"+r+"<\/TS><D><![CDATA[["+t.replace("]\]>","]]]\]><![CDATA[>")+"]]\]><\/D><\/E>",e="<ClientInstRequest><Events>"+f+"<\/Events><STS>"+r+"<\/STS><\/ClientInstRequest>";_G.DirectLogPost!=null?_w.directLogPost("Event.ClientInst",_G.IG,r,"["+t.replace("]\]>","]]]\]><![CDATA[>")+"]",2):(u="/fd/ls/lsp.aspx",i=sj_gx(),i.open("POST",u,!0),i.setRequestHeader("Content-Type","text/xml"),i.send(e))}}function y(){var n=_w.performance&&performance.now&&performance.timing;return n?p(performance.now()+performance.timing.navigationStart):(new Date).getTime()}function p(n){return n<-1?-1:parseInt(n)}function i(n){return typeof n=="function"?n:function(){}}u()})(WV)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
(function(){function p(){n&&r&&(sj_be(_d.body,"click",w),sj_be(n,"click",k),sj_be(r,"keydown",b),i&&(sj_be(i,"click",d),sj_be(i,"keydown",g)),sj_evt.bind("PrimaryNavDropdownMenuShow",t),sj_evt.bind("scs_openflyout",t),sj_evt.bind("scope_moreItem_hide",t))}function e(){return typeof Lib.CssClass!="undefined"&&Lib.CssClass.contains(n,o)}function w(){e()&&t()}function b(n){n.shiftKey&&n.key==="Tab"&&e()&&t()}function k(n){n.stopPropagation();e()?t():nt()}function d(n){n.stopPropagation();var i=c(n.target);i!=null&&Log&&Log.Log&&Log.Log("Click",f,"ScopeDropdownMenuItemClick",!1,"ItemId",i.id);a.trigger(t,null)}function g(n){var u=AccessibilityHelpers.getFocusableElementWithin(i),f=AccessibilityHelpers.getFocusableElementWithin(i,!0);n.key==="Tab"&&n.shiftKey&&n.target===u?(n.preventDefault(),f.focus()):n.key!=="Tab"||n.shiftKey||n.target!==f?n.key==="Escape"&&(n.preventDefault(),t(),r.focus()):(n.preventDefault(),u.focus())}function c(n){return n===null?null:typeof Lib.CssClass!="undefined"&&Lib.CssClass.contains(n,s)||Lib.CssClass.contains(n,"b_sp_over_cont")?null:typeof Lib.CssClass!="undefined"&&Lib.CssClass.contains(n,y)?n:n.parentElement?c(n.parentElement):null}function nt(){sj_evt.fire("ScopeDropdownMenuShow");typeof Lib.CssClass!="undefined"&&Lib.CssClass.add(n,o);u&&typeof Lib.CssClass!="undefined"&&Lib.CssClass.add(u,h);Log&&Log.Log&&Log.Log("Show",f,"ScopeDropdownMenuShow");r.setAttribute("aria-expanded","true")}function t(){e()&&u&&(Lib.CssClass.remove(n,o),Lib.CssClass.remove(u,h));Log&&Log.Log&&Log.Log("Hide",f,"ScopeDropdownMenuHide");r.setAttribute("aria-expanded","false")}var s="b_sp_over_menu",v="."+s,y="b_sp_over_item",o="focusin",h="b_scope_dropdown_expanded",i,r,n=_ge("b-scopeListItem-menu"),u=_qs(".b_scopebar"),f,l,a;n&&(i=_qs(v,n),r=_qs("a",n));f="ScopeDropdownMenu";l=function(){function n(){}return n.debounce=function(n){var t=null;return{trigger:function(i,r){var u=function(){t=null;r?i(r):i()};clearTimeout(t);t=sb_st(u,n)},reset:function(){clearTimeout(t)}}},n}();a=l.debounce(500);p()})()

View File

@@ -0,0 +1 @@
var GlobalActionMenuV2Wrapper;(function(n){var t;(function(){var n="GlobalActionMenuV2Wrapper.Trigger",t=!1;sj_evt.bind(n,function(){t=!0},!0);t||sj_evt.fire(n)})(t=n.Trigger||(n.Trigger={}))})(GlobalActionMenuV2Wrapper||(GlobalActionMenuV2Wrapper={}))

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
#rewardsEntryPoint{display:flex;align-items:center;position:fixed;top:78px;left:45px;background:#f2f2f2;color:#111;border-radius:50px;padding-right:3px;font-size:11px;height:26px}#rewardsEntryPoint .defaultText{margin:0 6px 0 12px}#rewardsEntryPoint:hover,#rewardsEntryPoint:focus{cursor:pointer}#rewardsEntryPoint svg{background:url(/rp/QC-Sgw72foDvWcmqOIVZ9nNMCBk.svg) no-repeat}#rewardsEntryPoint.b_hide{display:none!important}#id_rh.b_hide{display:none}body.b_sydConvMode #rewardsEntryPoint{display:none!important}

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 B

View File

@@ -0,0 +1,4 @@
<svg focusable="false" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<path d="M0 0h16v16h-16z" fill="none"/>
<path d="M8 1a7 7 0 1 0 7 7 7 7 0 0 0-7-7zm1 10a1 1 0 0 1-2 0v-3a1 1 0 0 1 2 0zm-.293-5.293a1 1 0 1 1 .293-.707 1 1 0 0 1-.293.707z" fill="#767676"/>
</svg>

After

Width:  |  Height:  |  Size: 279 B

View File

@@ -0,0 +1 @@
(function(){var t=_ge("id_h"),n=_ge("langChange"),i=_ge("me_header"),r=_ge("langDId"),u=_ge("mapContainer");t!=null&&n!=null&&i==null&&(r===null||u===null)&&(t.insertBefore(n,t.firstChild),n.className=n.className+" langdisp")})()

View File

@@ -0,0 +1 @@
var Identity=Identity||{};(function(n,t,i,r,u,f,e){e.wlProfile=function(){var r=sj_cook.get,u="WLS",t=r(u,"N"),i=r(u,"C");return i&&e.wlImgSm&&e.wlImgLg?{displayName:t?t.replace(/\+/g," "):"",name:n(t.replace(/\+/g," ")),img:e.wlImgSm.replace(/\{0\}/g,f(i)),imgL:e.wlImgLg.replace(/\{0\}/g,f(i)),idp:"WL"}:null};e.headerLoginMode=0;e.popupAuthenticate=function(n,i,r){var o,u,h,c,v=sb_gt(),l=Math.floor(v/1e3).toString(),s="ct",a=new RegExp("([?&])"+s+"=.*?(&|$)","i");return n.toString()==="WindowsLiveId"&&(o=e.popupLoginUrls,u=o[n],u=u.match(a)?u.replace(a,"$1"+s+"="+l+"$2"):u+"?"+s+"="+l,e.popupLoginUrls.WindowsLiveId=u),(o=e.popupLoginUrls)&&(u=o[n]+(i?"&perms="+f(i):"")+(r?"&src="+f(r):""))&&(h=e.pop(u))&&(c=setInterval(function(){h.closed&&(t.fire("id:popup:close"),clearInterval(c))},100))};e.pop=function(n){return r.open(n,"idl","location=no,menubar=no,resizable=no,scrollbars=yes,status=no,titlebar=no,toolbar=no,width=1000,height=620")};var s=u("id_h"),o=u("id_l"),h="click";t.bind("onP1Lazy",function(){setTimeout(function(){s&&o&&(sj_jb("Blue/BlueIdentityDropdownRedirect_c",0,s,"mouseover",o,h,o,"focus"),i(o,h,function(n){e.hdrClk=n}));s&&t.fire("identityHeaderShown")},50)},1)})(decodeURIComponent,sj_evt,sj_be,_w,_ge,encodeURIComponent,Identity,_G.RTL)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
var ImgGifPlayer;(function(){function d(){return _w.innerHeight?_w.innerHeight:sb_de.clientHeight}function at(){k=d()}function vt(){e&&(sb_ct(e),e=null);e=sb_st(f,ht)}function h(t){var i=n.gfbc(v,t);return i?n.ga(i,"gif")==="1":!1}function yt(t){var i=null,r=n.gfbc(v,t),u;return r&&(u=n.ga(r,"m"),i=JSON.parse(u)),i&&(i.bmurl||i.murl)||null}function g(n){if(n){var t=n.getBoundingClientRect();return t.bottom+y>0&&t.top<k+y}return!1}function pt(r,f,e){return function(){n.sa(r,p,f.src);n.sa(r,w,e);n.sa(r,i,t.holding);(r==s||u&&g(f))&&c(f,r)}}function wt(r){return function(){n.sa(r,i,t.invalidSrc)}}function f(){for(var r,f,e,a=n.gebc(l,_d),s=0;s<a.length;s++)if(r=a[s],h(r)){if(gt(r),!u)continue;f=n.gfbc(o,r);f&&(e=n.ga(r,i),g(f)?e?e===t.holding&&c(f,r):nt(f,r):e===t.playing&&it(f,r))}}function nt(r,u){var f,e;n.sa(u,i,t.init);f=yt(u);f?(e=new Image,e.onload=pt(u,r,f),e.onerror=wt(u),e.src=f):n.sa(u,i,t.invalidSrc)}function tt(){for(var r,i=n.gebc(l,_d),t=0;t<i.length;t++)r=i[t],rt(r)}function it(r,u){r.src=n.ga(u,p);n.rc(u,a);n.sa(u,i,t.holding)}function c(r,u){r.src=n.ga(u,w);n.ac(u,a);n.sa(u,i,t.playing)}function rt(r){var u,f;h(r)&&(u=n.gfbc(o,r),u&&(f=n.ga(r,i),f===t.playing&&it(u,r)))}function bt(r){var u,f;h(r)&&(u=n.gfbc(o,r),u&&(f=n.ga(r,i),f?f===t.holding&&c(u,r):nt(u,r)))}function kt(n){s=n;u||bt(n)}function dt(n){s=null;u||rt(n)}function gt(t){n.ga(t,b)||(n.sa(t,b,!0),r.bind(t,"mouseenter",function(){return kt(t)}),r.bind(t,"mouseleave",function(){return dt(t)}))}function ni(){n&&(r.bindc(et,function(){u=!0;f()},!0,!0),r.bindc(ot,function(){u=!1;tt()},!0,!0),f(),r.bind(_w,lt,at),r.bind(_w,ct,vt),r.bindc(ut,tt),r.bindc(ft,f),r.bindc(st,f),sj_evt.fire("GifPlayer.inited"))}var i="data-GifState",l="iuscp",a="nobadge",v="iusc",o="mimg",ut="IFrame.Show",ft="IFrame.Close",et="Gif.Play",ot="Gif.Stop",st="DenseGridResultsUpdated",y=50,ht=20,ct="scroll",lt="resize",p="data-rawsrc",w="data-gifsrc",b="hoverhandlersattached",t={init:"0",playing:"1",holding:"2",invalidSrc:"3"},k=d(),e=null,s,u=!0,n=pMMUtils,r=SmartEvent;ni()})(ImgGifPlayer||(ImgGifPlayer={}))

View File

@@ -0,0 +1 @@
var FlagFeedback;(function(n){function st(n){n=n||window.event;var t=n.target||n.srcElement;i&&!i.contains(t)&&i.offsetHeight>0&&l()}function ht(n){var t,r;n=n||window.event;t=n.target||n.srcElement;i&&i.contains(t)&&(r=n?n.which?n.which:n.keyCode:n.keyCode,r==wt?(t.tagName=="INPUT"||t.className=="buttonLink"||t.id=="fbdialogcl")&&t.click():r==bt?(t.className=="buttonLink"||t.id=="fbdialogcl")&&(t.click(),w(n)):r==kt&&(l(),w(n)))}function ct(n){p&&!i.contains(n.target)&&(w(n),i.focus())}function w(n){sj_sp(n);sj_pd(n)}function dt(){y=document.activeElement;var t=n.metadata;t&&gt(t.turl,t.maw,t.mah)}function gt(n,t,r){c.textContent="";var f=_d.createElement("img");f.src=n;f.alt=rt&&rt.innerText;t&&r&&(t>250?(f.width=250,f.height=r*250/t):(f.width=t,f.height=r));c.appendChild(f);i.style.display="block";p=!0;u.focus()}function lt(){(u.checked||e.checked||o.checked||s.checked)&&(t.style.display="none",t.textContent="",t.setAttribute(v,"true"))}function l(){i.style.display="none";k.style.display="block";f.style.display="none";f.textContent="";c.style.display="block";t.style.display="none";t.textContent="";t.setAttribute(v,"true");g.style.display="block";nt.style.display="block";tt.style.display="none";u.checked=!1;e.checked=!1;o.checked=!1;s.checked=!1;var r=n.metadata;return r&&vt("flagClose",null,r.ns,r.k),p=!1,y&&y.focus(),sj_evt.fire(yt),!1}function at(){var r,f,i,h;if(!u.checked&&!e.checked&&!o.checked&&!s.checked){t.style.display="block";t.textContent=t.dataset.content;t.setAttribute(v,"false");t.focus();return}if(r=[],u.checked&&r.push("irrelevant"),e.checked&&r.push("offensive"),o.checked&&r.push("adult"),s.checked&&r.push("childabuse"),f=r.join(","),i=n.metadata,i&&(vt("flagSubmit",f,i.ns,i.k),h=d.getAttribute("fbposturl"),h)){var c=window.location.href.match("(images|videos)"),a=c?c[0]:"",l=window.location.href.match(/q=(.+?)(&|$)/),y=l?l[1]:"",p=d.getAttribute("ss"),w=!!i.md5&&i.md5.length>0?i.md5:null,b={partner:"",feedbackType:"",vertical:a,safesearchsetting:p,source:i.src,trafficType:"External",query:y,mUrl:encodeURIComponent(i.imgurl),pUrl:encodeURIComponent(i.surl),thumbUrl:encodeURIComponent(i.turl),hash:w,judgement:f,timestamp:_G.ST.toISOString(),itemId:i.itemId||"",entrypoint:i.entrypoint||""};ReportResult.send(h,b)}ni();sj_evt.fire(pt)}function vt(n,t,i,r){if(typeof mmLog!="undefined"&&mmLog){var u=['{"T":"CI.Click","Name":"',n,'","Meta":"',t,'","AppNS":"',i,'","K":"',r,".1",'","TS":',sb_gt(),"}"];mmLog(u.join(""))}}function ni(){k.style.display="none";f.style.display="block";f.textContent=f.dataset.content;c.style.display="none";g.style.display="none";nt.style.display="none";tt.style.display="block";f.focus()}function b(){sj_ue(_d,"click",st);sj_ue(_d,"keydown",ht);sj_ue(_d,"focusin",ct);sj_evt.unbind("ajax.unload",b);sj_ue(ut,"click",h);sj_ue(ft,"submit",a);sj_ue(u,"click",r);sj_ue(e,"click",r);sj_ue(o,"click",r);sj_ue(s,"click",r);sj_ue(et,"click",a);sj_ue(ot,"click",h);sj_ue(it,"click",h)}var v="aria-hidden",i=_ge("fbdialog"),k=_ge("fbdialog_message"),f=_ge("fbthankyou_message"),d=_ge("fbdialog_container"),c=_ge("fbdialog_thumb_container"),t=_ge("fbdialog_errormessage"),g=_ge("checkbox_region"),u=_ge("irrelevant_mark_checkbox"),e=_ge("offensive_mark_checkbox"),o=_ge("adult_mark_checkbox"),s=_ge("childabuse_mark_checkbox"),nt=_ge("fbdialog_buttons"),tt=_ge("fbthankyou_button"),it=_ge("adult_button_close"),yt="flagfeedback_close",pt="flagfeedback_submit",rt=_ge("fbdialog_title"),ut=_ge("fbdialogcl"),ft=_ge("fbdialog_mark_form"),et=_ge("adult_button_submit"),ot=_ge("adult_button_cancel"),wt=13,bt=32,kt=27,y,p=!1,h=function(){return l()},a=function(){return at()},r=function(){return lt()};sj_be(_d,"click",st);sj_be(_d,"keydown",ht);sj_be(_d,"focusin",ct);sj_be(_d,"unload",b);sj_evt.bind("ajax.unload",b);sj_be(ut,"click",h);sj_be(ft,"submit",a);sj_be(u,"click",r);sj_be(e,"click",r);sj_be(o,"click",r);sj_be(s,"click",r);sj_be(et,"click",a);sj_be(ot,"click",h);sj_be(it,"click",h);n.c=dt;n.p=lt;n.s=at;n.h=l})(FlagFeedback||(FlagFeedback={}))

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
function RewardsReportActivity(n){window.sj_rra&&sj_rra(n)}(function(){RewardsReportActivity(document.URL);sj_evt&&sj_evt.bind("acclink:updated",function(){typeof RewardsReportActivity!="undefined"&&RewardsReportActivity(document.URL)},1)})()

View File

@@ -0,0 +1 @@
var Bnp=Bnp||{};Bnp.Global=Bnp.Global||{};Bnp.Version="1";Bnp.Partner=Bnp.Partner||function(){function i(){return typeof DefaultTrustedTypesPolicy!="undefined"}function s(n){return i()&&DefaultTrustedTypesPolicy.getOpaqueHTML?DefaultTrustedTypesPolicy.getOpaqueHTML(n):n}function h(n){return i()&&DefaultTrustedTypesPolicy.getOpaqueScript?DefaultTrustedTypesPolicy.getOpaqueScript(n):n}function c(n){return i()&&DefaultTrustedTypesPolicy.getOpaqueScriptURL?DefaultTrustedTypesPolicy.getOpaqueScriptURL(n):n}function f(n){sj_evt.fire("onBnpRender",n)}function r(n){var i=i||{};if(typeof i.stringify=="function")return i.stringify(n);var o=typeof n,u=n&&n.constructor==Array,f=[],e,t;if(o!="object"||n==null)return o=="string"?'"'+n+'"':String(n);for(e in n)t=n[e],t&&t.constructor!=Function&&(u?f.push(r(t)):f.push('"'+e+'":'+r(t)));return(u?"[":"{")+String(f)+(u?"]":"}")}function l(n){for(var r=[],u=n.getElementsByTagName("script"),t,i;u.length;)t=u[0],i=sj_ce("script"),t.src?i.src=c(t.src):t.text&&(i.text=h(t.text)),i.type=t.type,t.parentNode.removeChild(t),r.push(i);return r}function a(n){for(var t=0;t<n.length;t++)e(n[t])}function e(n){t=t||_d.getElementsByTagName("head")[0];t.appendChild(n)}function v(n){for(var t,i=0;i<n.length;i++)t=sj_ce("style"),t.type="text/css",t.textContent!==undefined?t.textContent=n[i]:t.styleSheet.cssText=n[i],e(t)}function y(){sj_evt.fire("onPopTR")}var n="dhplink",t,o=2500,u=function(n,t,i){this.PartnerId=n;this.IID=t||"";this.Attributes=i||{}};return u.prototype.Submit=function(){function d(){t.abort();f("Timeout");sj_evt&&sj_evt.fire(n)}var u=this.Attributes,i,e;if(this.Attributes.RawRequestURL=u.RawRequestURL||Bnp.Global.RawRequestURL,this.Attributes.Referer=u.Referer||Bnp.Global.Referer,this.Attributes.RawQuery=u.RawQuery||Bnp.Global.RawQuery,i=_d.querySelector('[id^="bnp.nid."]'),e=i?window.getComputedStyle(i):null,e&&e.display=="block"){typeof Log!="undefined"&&typeof Log.Log=="function"&&Log.Log("BNP",i.id,"bnp partner request submission failed",!1);return}var t=sj_gx(),h=_w.location.search.substr(1),w=/(^|&)(bnp)?testhooks=~?1(&|$)/i.exec(h),c=h.match(/[?&]*ptn=([^&#]+)/i),p=c&&c.length==2?c[1]:null,b="/notifications/render?bnptrigger="+encodeURIComponent(r(this))+(_G?"&IG="+_G.IG:"")+(this.IID?"&IID="+this.IID:"")+(p?"&ptn="+p:"")+(this.Debug?"&"+this.Debug.join("&"):w?"&"+h:""),k=sb_st(d,o);t.open("GET",b,!0);t.onreadystatechange=function(){var r,o;if(t.readyState==4&&t.status==200){if(sb_ct(k),r=t.responseText,r.length==0){f("None");sj_evt&&sj_evt.fire(n);return}r.indexOf("cmd:setdefaulthomepage")==-1&&sj_evt&&sj_evt.fire(n);y();var i=sj_ce("div"),u=[],e=[],h=typeof BnpPartnerTrustedTypesPolicy!="undefined";if(h){const n=BnpPartnerTrustedTypesPolicy;n.setTrustedHtml(t,i);u=n.getExtractedCss();e=n.getExtractedJs()}else o=r.replace(/<style\s+[^>]+>([^<]*)<\/style>/g,function(n,t){return u.push(t),""}),i.innerHTML=s("<div>dummy<\/div>"+o),i.removeChild(i.firstChild),e=l(i);sj_b.appendChild(i);const c=_d.createEvent("CustomEvent");c.initCustomEvent("OnBnpAppend",!0,!0,null);dispatchEvent(c);v(u);a(e)}else t.readyState==4&&typeof Log!="undefined"&&typeof Log.Log=="function"&&Log.Log("NotificationsError","BNP","bnp partner request failed",!1,"ResponseCode",t.status)};t.send();Bnp.PartnerRequestSubmitted=!0},{Request:u}}(),function(){Bnp.PartnerLoaded||(sj_evt.fire("OnBnpLoaded"),Bnp.PartnerLoaded=!0)}()

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
var Multimedia;(function(n){var t;(function(n){var t;(function(n){var i=typeof ImageDetailReducers!="undefined"?ImageDetailReducers:null,t=i===null||i===void 0?void 0:i.gpc(),u=t===null||t===void 0?void 0:t.instData,r="csit";n.gmcit=function(){return!_w[r]&&typeof GlobalInstTracker!="undefined"&&u&&(_w[r]=GlobalInstTracker.createInstTracker(u.plii)),_w[r]};n.glidp=function(n,i,r,u,f,e,o){return(o===void 0&&(o=!1),(t===null||t===void 0?void 0:t.epll)&&(n||i&&r))?{"data-cspi":n?"ID=".concat(n):"ID=".concat(i,",").concat(r).concat(u?"."+u:""),"data-cspiovr":JSON.stringify({InstType:f,Url:e}),"data-noct":o?"true":undefined}:{}}})(t=n.LayoutInstrumentation||(n.LayoutInstrumentation={}))})(t=n.Utils||(n.Utils={}))})(Multimedia||(Multimedia={}))

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
var ShareDialog;(function(n){function i(){t("bootstrap",arguments)}function r(){t("show",arguments)}function u(){t("showError",arguments)}function t(n,t){for(var r=["shdlgapi",n],i=0;i<t.length;i++)r.push(t[i]);sj_evt.fire.apply(null,r)}n.bootstrap=i;n.show=r;n.showError=u})(ShareDialog||(ShareDialog={})),function(n){function i(){t==0&&u()}function r(){sj_evt.unbind("shdlgapi",i)}function u(){t=1;var n=ShareDialogConfig.shareDialogUrl+"&IG="+_G.IG;n=e(n,["uncrunched","testhooks"]);sj_ajax(n,{callback:function(n,i){n?(t=2,i.appendTo(_d.body),r(),f()):t=3},timeout:0})}function f(){var n="rms";_w[n]&_w[n].start()}function e(n,t){var i,r,u;for(r in t)u=new RegExp("[?&]".concat(t[r],"=[^?&#]*"),"i"),(i=location.href.match(u))&&i[0]&&(n+="&"+i[0].substring(1));return n}function o(){n.inited=0}function s(){n.inited||(n.inited=1,sj_evt.bind("shdlgapi",i,!0),sj_evt.bind("ajax.unload",o,!1))}var t=0;s()}(ShareDialog||(ShareDialog={}))

View File

@@ -0,0 +1 @@
var ReportResult;(function(n){function t(n,t){var i=sj_gx(),r;t.partner="BingStructuredFeedback";t.feedbackType="MarkasAdult";r=JSON.stringify(t);i.open("POST",n,!0);i.setRequestHeader("Content-type","application/json; charset=utf-8");i.send(r)}n.send=t})(ReportResult||(ReportResult={}))

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 724 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 501 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 463 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 599 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128" style="shape-rendering:geometricPrecision;text-rendering:geometricPrecision;image-rendering:optimizeQuality;fill-rule:evenodd;clip-rule:evenodd"><path style="opacity:1" fill="#0026ff" d="M-.5-.5h128v128H-.5V-.5z"/><path style="opacity:1" fill="#fefffe" d="M10.5 17.5h22v16h-22v-16zM48.5 21.5c15.716-.42 31.382.08 47 1.5 15.797 5.075 22.297 15.908 19.5 32.5-2.284 12.284-9.451 20.118-21.5 23.5a109.108 109.108 0 0 1-23 1.5v28h-22v-87z"/><path style="opacity:1" fill="#0026ff" d="M70.5 37.5c7.056-.882 13.556.452 19.5 4 5.476 17.377-1.024 25.043-19.5 23v-27z"/><path style="opacity:1" fill="#fefffe" d="M11.5 42.5h21v66h-21v-66z"/></svg>

After

Width:  |  Height:  |  Size: 700 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 677 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 B

View File

@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="512"
height="512"
viewBox="0 0 135.46667 135.46667"
version="1.1"
id="svg5"
sodipodi:docname="favicon_v3.svg"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
inkscape:export-filename="favicon3.png"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview4841"
pagecolor="#ffffff"
bordercolor="#111111"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="1.5115134"
inkscape:cx="237.1795"
inkscape:cy="258.01954"
inkscape:window-width="1920"
inkscape:window-height="1009"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="layer5" />
<defs
id="defs2" />
<g
id="layer1"
style="display:inline;fill:#2265c8;fill-opacity:1">
<rect
style="fill:#2265c8;fill-opacity:1;stroke-width:0.264583"
id="rect9556"
width="135.46667"
height="135.46667"
x="0"
y="0"
ry="67.733337" />
</g>
<g
inkscape:groupmode="layer"
id="layer5"
inkscape:label="Layer 4">
<path
sodipodi:type="star"
style="fill:#f9f9f9;fill-opacity:1;stroke-width:0.264583"
id="path1884"
inkscape:flatsided="false"
sodipodi:sides="5"
sodipodi:cx="22.550545"
sodipodi:cy="24.511461"
sodipodi:r1="56.422756"
sodipodi:r2="21.666338"
sodipodi:arg1="0.44939987"
sodipodi:arg2="1.0777184"
inkscape:rounded="0"
inkscape:randomized="0"
d="M 73.370971,49.022921 32.806076,43.596908 14.943137,80.419017 7.56834,40.162779 -32.971519,34.552771 3.0355013,15.099061 -4.1565694,-25.190224 25.471789,3.0429604 61.566704,-16.247179 43.871017,20.655598 Z"
transform="rotate(28.341935,-43.333164,136.26425)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 493 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 607 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 566 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 612 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 508 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 599 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 497 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 475 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 529 B

View File

@@ -0,0 +1,20 @@
<svg class="spinner" xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80" fill="none">
<style type="text/css">
.spinner {
animation: spin 1s linear infinite;
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
</style>
<path d="M31.6351 79.1873L31.6271 79.1853H31.6261L31.6351 79.1873Z" fill="#919191"/>
<path d="M79.1827 31.6287V31.6257C78.6461 29.0023 77.8539 26.4705 76.8331 24.0585C75.8133 21.6475 74.566 19.3583 73.1205 17.2171V17.2161C71.6739 15.0749 70.0269 13.0806 68.2069 11.2605C66.3868 9.44047 64.3925 7.79354 62.2523 6.34694C60.1101 4.89933 57.8199 3.65206 55.4089 2.6333C52.9979 1.61353 50.4651 0.821276 47.8417 0.284716H47.8427C47.5196 0.218275 47.1944 0.155861 46.8683 0.0974734C43.1536 -0.565928 39.7329 2.27492 39.7329 6.04796C39.7329 8.97437 41.8329 11.473 44.714 11.9864C44.9505 12.0286 45.1851 12.0739 45.4197 12.1213H45.4207C47.2528 12.4957 49.0185 13.0484 50.7027 13.7611C52.3869 14.4739 53.9885 15.3456 55.4875 16.3584C56.9884 17.3721 58.3877 18.5278 59.6642 19.8042C60.9406 21.0807 62.0963 22.48 63.109 23.9789C64.1228 25.4809 64.9955 27.0825 65.7073 28.7657C66.419 30.4489 66.9717 32.2146 67.3471 34.0477C67.7216 35.8829 67.9199 37.7825 67.9199 39.7355C67.9199 41.6894 67.7216 43.588 67.3471 45.4232C66.9717 47.2554 66.419 49.0211 65.7073 50.7053C64.9955 52.3894 64.1228 53.9901 63.109 55.491C62.0953 56.991 60.9406 58.3903 59.6642 59.6667C58.3877 60.9432 56.9884 62.0989 55.4885 63.1116C53.9875 64.1253 52.3859 64.9971 50.7027 65.7098C49.0185 66.4226 47.2528 66.9742 45.4207 67.3497C43.5855 67.7242 41.6869 67.9225 39.7329 67.9225C37.78 67.9225 35.8804 67.7242 34.0462 67.3497C32.213 66.9742 30.4473 66.4215 28.7641 65.7098C28.6393 65.6575 28.5155 65.6031 28.3917 65.5488C25.6978 64.3629 22.5479 65.2266 20.901 67.6658C18.8 70.7775 20.008 75.0478 23.4408 76.5679C23.6452 76.6585 23.8505 76.7471 24.0569 76.8346C26.4679 77.8544 29.0007 78.6467 31.6241 79.1842L31.6281 79.1852C34.2485 79.7208 36.9615 80.0027 39.7329 80.0027C42.5053 80.0027 45.2183 79.7208 47.8397 79.1852L47.8427 79.1842C50.4651 78.6477 52.9969 77.8554 55.4079 76.8356C57.8199 75.8159 60.1091 74.5686 62.2503 73.122C64.3915 71.6754 66.3858 70.0295 68.2058 68.2084C70.0259 66.3873 71.6729 64.3941 73.1194 62.2529C74.565 60.1117 75.8133 57.8225 76.8331 55.4105C77.8529 52.9995 78.6451 50.4677 79.1817 47.8453L79.1827 47.8423C79.7182 45.2209 80.0001 42.5079 80.0001 39.7355C80.0001 36.9641 79.7182 34.2501 79.1827 31.6287Z" fill="#919191"/>
<path d="M23.9774 16.3584C24.0892 16.2829 24.2019 16.2074 24.3157 16.1329C26.777 14.5212 27.7686 11.4096 26.623 8.70061C25.1593 5.24166 20.9181 3.92795 17.7723 5.97855C17.585 6.10036 17.3998 6.22318 17.2156 6.348H17.2146C15.0734 7.7946 13.0801 9.44153 11.2601 11.2616C11.1141 11.4076 10.9691 11.5546 10.8252 11.7035C8.21486 14.3944 8.69404 18.8026 11.7996 20.9016C14.2418 22.5515 17.4904 22.171 19.5481 20.061C19.6316 19.9754 19.7162 19.8899 19.8017 19.8043C21.0782 18.5278 22.4775 17.3722 23.9774 16.3584Z" fill="#919191"/>
<path d="M0.284061 31.6266C0.217621 31.9498 0.155206 32.2749 0.096819 32.6001C-0.56759 36.3147 2.27125 39.7354 6.04529 39.7354H6.0463C8.97271 39.7354 11.4703 37.6355 11.9837 34.7544C12.026 34.5178 12.0713 34.2833 12.1186 34.0487V34.0477C12.1528 33.8796 12.1891 33.7115 12.2263 33.5444C12.8665 30.6814 11.4038 27.77 8.70192 26.6265C5.23391 25.1597 1.27564 27.1852 0.449157 30.8585C0.391776 31.1142 0.336409 31.3699 0.284061 31.6266Z" fill="#919191"/>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

Some files were not shown because too many files have changed in this diff Show More