worked with Iframe

master
bootje 4 years ago
parent c2441b4c89
commit aa12139983

BIN
.DS_Store vendored

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

@ -0,0 +1,48 @@
hovering
#1
$(document).on('mouseover','.NN, .NNS', function() {
$('.NN, .NNS').css('background-color', 'grey');
}).on('mouseout','.NN, .NNS', function() {
$('.NN, .NNS').css('background-color', 'white');
});
$(document).on('click', '.NN, .NNS', function() {
$('.NN, .NNS').css('background-color', 'blue');
}).on('mouseout','.NN, .NNS', function() {
$('.NN, .NNS').css('background-color', 'blue');
});
#2
$('.NN, .NNS').mouseover(function() {
$('.NN, .NNS').css('background-color', "grey");
});
$('.NN, .NNS').mouseout(function() {
$('.NN, .NNS').css('background-color', "white");
});
$('.NN, .NNS').click(
function() {
$('.NN, .NNS').toggleClass('noun');
});
$(document).on('mouseenter','.NN, .NNS', function() {
$('.NN, .NNS').css('background-color', 'grey');
}).on('mouseout','.NN, .NNS', function() {
$('.NN, .NNS').css('background-color', 'white');
});
$(document).on('click', '.NN, .NNS', function() {
$('.NN, .NNS').css('background-color', 'blue');
}).on('mouseout','.NN, .NNS', function() {
$('.NN, .NNS').css('background-color', 'blue');
});

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

@ -0,0 +1,370 @@
<!DOCTYPE html>
<html>
<head>
<title>Have you read your contract?</title>
<style type="text/css">
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "SourceCodePro";
src: url("http://bohyewoo.com/webfonts/Source_Code_Pro/SourceCodePro-Regular.ttf");
}
.wrapper {
/* background-color: beige;
*/ font-family: SourceCodePro;
font-size: 15pt;
width: 100%;
}
.tos {
background-color: white;
width: 60%;
border: 0.5px solid black;
outline: 40px dotted black;
padding: 40px;
margin: 0 auto;
}
#header {
background-color: white;
top: 0px;
width: 60%;
height: 130px;
border-bottom-style: solid;
border-bottom-color: #000;
position: fixed;
z-index: 199;
}
#header h1 {
text-align: center;
}
h1, h2 {
font-family: Belgika;
font-size: 30pt;
}
a {
font-weight: bold;
color: black;
border-bottom: 4px dotted black;
text-decoration: none;
}
a:hover {
color: red;
border-bottom: 4px dotted red;
text-decoration: none;
}
.text {
font-weight: bold;
color: black;
position: relative;
display: inline-block;
border-bottom: 4px dotted black;
}
.text .text-hover {
visibility: hidden;
width: 400px;
font-size: 12pt;
padding: 10px;
background-color: black;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
/* Position the tooltip */
position: absolute;
z-index: 1;
top: -120px;
right: 120%;
}
.text .text-hover-top {
visibility: hidden;
width: 600px;
font-size: 12pt;
padding: 10px;
background-color: black;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
/* Position the tooltip */
position: absolute;
z-index: 1;
top: -120px;
left: 110%;
}
.text .text-hover-img {
visibility: hidden;
/* Position the tooltip */
position: absolute;
z-index: 1;
top: -400px;
right: 5%;
}
.text:hover {
color: red;
border-bottom: 4px dotted red;
}
.text:hover .text-hover {
visibility: visible;
}
.text:hover .text-hover-top {
visibility: visible;
}
.text:hover .text-hover-img {
visibility: visible;
}
#reference-number {
color: blue;
font-weight: bold;
font-size: 11pt;
border: none;
}
.reference-text {
font-size: 12pt;
border: none;
}
.reference-link {
font-size: 12pt;
border-bottom: 2px dotted black;
}
.reference-link:hover {
color: black;
font-size: 12pt;
border-bottom: 2px dotted black;
}
</style>
</head>
<body>
<div class="wrapper">
<div class="tos">
<div id="header">
<h1>Have you read your working contract?</h1>
</div>
<br><br><br><br><br>
<h1>Terms of Service</h1>
<p>Last updated: April 28, 2020</p>
<p>Please read these terms of service carefully before using Our service.</p><br>
<h1>Interpretation and Definitions</h1>
<h2>Interpretation</h2>
<p>The words of which the initial letter is capitalized have meanings defined under the following conditions.</p>
<p>The following definitions shall have the same meaning regardless of whether they appear in singular or in plural.</p>
<h2>Definitions</h2>
<p>For the purposes of these Terms of service:</p>
<ul>
<li><strong>HAVE YOU READ YOUR CONTRACT?</strong> is a modern-digital-colonial <a class="text" href="#textpublishingarchive">text publishing archive</a>, a series of word analysis that reveals the modern-colonial contexts/words in <a class="text" href="#tos">'Terms of Service (ToS)'</a>. ToS is a modern working/slavery contract in <a class="text" href="#digitalcolonialsociety">digital colonial society</a>, where big companies are dominating the power structures via ToS to deceive users. The project introduces the resemblance of <a class="text" href="#colonialtreaties">colonial treaties</a> in historical colonialism to the digital society by mapping out the whole architecture of language used in ToS comparing with historical colonial treaties.</li><br>
<li><a name="textpublishingarchive"></a><strong>DIGITAL TEXT PUBLISHING ARCHIVE</strong> means a digital (repository) infrastructure of text material that I desire to keep for a long-term preservation. It is evident that not much of digital material will survive<a id="reference-number" href="#1" class="text">[1]<span class="text-hover">(Zelkowitz, 2003): Advances in Computers: Information Repositories edited by Marvin Zelkowitz</span></a>. Archiving is important in digital age as a preservation tool because of perpetual changes in digital platform. This platform archives collections of related informations about my project including news articles, videos, books, tweets ... to proffer knowledges I gleaned from the web. The archive will contain different analyzations on the modern-colonial words and contexts. </li><br>
<li><strong>WORD ANALYSIS</strong> is very important because of <a class="text" href="#obfuscation">obfuscation of language</a> in ToS. Usually ToS are made with polite and generic language to deceive users. By using these general terms, those big tech companies try to wash their hands of responsibility and disclaim their liability to back up themselves. Similarly to the language of ToS, the terminology in treaties are phrased in an equivocally circuitous manner that it's indirect. Therefore, vernaculars used in English ToS, which has similarities to <a class="text" href="#colonialtreaties">colonial treaties</a> will be discovered by analyzing the words that were used during this period.</li><br>
<li><a name="obfuscation"></a><strong>OBFUSCATION OF LANGUAGE</strong>: <a class="text" href="#tos">Terms of Service</a> tend to obfuscate its meaning of contexts by having a way too long texts, so that users don't read them and just click accept. Usually, ToS are written in impenetrable legalise, intentionally vague and generic language that designed to make it impossible to deceive users. During colonial times, obfuscation of language was happening in <a class="text" href="#colonialtreaties">colonial treaties</a> as well. </li><br>
<li><a name="colonialtreaties"></a><strong>COLONIAL TREATIES</strong> are known as agreements, pacts and major contracts made between countries during colonial times. It was a formally concluded agreement between a colonizer and a colony, these treaties are a binding formal agreement that establishes obligations between two or more subjects. Most of the time, colonial treaties were coercively made by a colonizer. It was very common that colonial treaties were slanted in favour of the colonizer, and pushed to sign it without knowing that sovreignty or jurisdiction will be infringed. One of the example would be, <a class="text">a treaty of Ganghwa Island<span class="text-hover-img"><img src="img/ganghwa.jpg" ></span></a> made between Japanese and Korean. They used a term called 'Unequal treaty' to refer that the treaty had generally regarded as an unequal treaty coerced by Japan. By doing so, the Empire of Japan had a full control over rullig Korean Empire <a id="reference-number" href="#2" class="text">[2]<span class="text-hover">(Duus, 1998):The Abacus and the Sword: The Japanese Penetration of Korea. University of California Press</span></a>.</li><br>
<li><a name="digitalcolonialsociety"></a><strong>DIGITAL COLONIAL SOCIETY</strong>: It is a concept based on <a class="text" href="#digitalsociety">a digital society <span class="text-hover">that every aspect of lives is profoundly being affected by the domination of digital technology</span></a> where user's online behavior becomes monetisable commodity to be sold by <a class="text" href="#bigcorporations">big corporations<span class="text-hover-top">giving them direct power over political, economic and cultural domains of life</span></a>, and users don't properly get paid. This ingenious ways of extracting cheap labour from users show similar ways of exploitating natural/human resources in colonial times.
<br><br>
<a class="text">(+)<span class="text-hover-top">Although it is clear that the modes, intensities, scales, and contexts of today's digital colonialism are distinctive from the historical colonialism, the underlying power structures remain the same (Couldry, 2019)</span></a> Of course, this doesn't mean that the transformation of colonialism has done fully identical. Unlike a historical colony that was bounded mostly by geographical locations, a digital colony has no physical borders. There are no geographical locations, there are only IP addresses, domain names, and user's data. Therefore, digital colonialism expands by exploiting more layers of human life itself through the use of technology (Couldry, 2019).
</li>
<br>
<li><strong>THE IDEA OF COLONIALISM</strong> seems to be an eternal loop that comes back throughout history. It is essential not to ignore that digital colonialism is applicable to countries regardless of the history.</li><br>
<li><a name="tos"></a><strong>TERMS OF SERVICE (TOS)</strong> is also known as terms of use and terms and conditions, commonly abbreviated as (ToS) are the legal agreements between a service provider and a person who wants to use that service. This means these Terms of service that form the entire agreement between You and the Company regarding the use of the service. This Terms of service agreement as been created with the help of <a href="https://app.termsfeed.com/download/free?agreement_type=TC&token=4687b8bf6d64d334e89197146ee96509">Terms of service Generator</a>.</li><br>
<li><strong>COMPANY</strong> (referred to as either "the Company", "We", "Us" or "Our" in this Agreement) refers to Have You Read Your Contract?.</li><br>
<li><strong>COUNTRY</strong> refers to: Netherlands</li><br>
<li><strong>DEVICE</strong> means any device that can access the service such as a computer, a cellphone or a digital tablet.</li><br>
<li><strong>SERVICE</strong> refers to the Website.</li><br>
<li><strong>THIRD-PARTY SOCIAL MEDIA SERVICE</strong> means any services or content (including data, information, products or services) provided by a third-party that may be displayed, included or made available by the service.</li><br>
<li><strong>WEBSITE</strong> refers to Have You Read Your Contract?, accessible from www.haveyoureadyourcontract.com</li><br>
<li><strong>YOU</strong> means the individual accessing or using the service, or the company, or other legal entity on behalf of which such individual is accessing or using the service, as applicable.</li><br>
</ul>
<p class="reference-text"><a name="1"></a>[1] (Zelkowitz, 2003): <a class="reference-link" href="https://books.google.nl/books?hl=en&lr=&id=xqvv7yqtr2kC&oi=fnd&pg=PA1&dq=importance+of+knowledge+archiving&ots=9NU6J-zv88&sig=2pkfx30iXkDgFS4-wLsqT9iVs8Y#v=onepage&q=importance%20of%20knowledge%20archiving&f=false">Advances in Computers: Information Repositories edited by Marvin Zelkowitz</a></p>
<p class="reference-text"><a name="2"></a>[2] (Duus, 1998): The Abacus and the Sword: The Japanese Penetration of Korea. University of California Press.</p>
<br>
<h1>Contents</h1>
<p>This archive presents the following ToS such as FaceApp, TikTok, PokemonGo, Snaptchat, Netflix, Amazon, Aibo(Sony). We also provide some historical treaties made during one's colonial era, such as ........, for you to interpret how the former might have had some similar characteristics to the latter.</p>
<br>
<h1>our service</h1>
<ul>
<li>to contribute a platform of reading ToS. In doing so, it questions what does it mean to provide ToS in the digital corporate society.</li><br>
<li>to question the concept of digital colonialism by providing visualization of ToS language as a modern-colonial tool to deceive users.</li><br>
<li>to analyze ToS from major tech companies to investigate how particular terms are being used in the specific context of ToS. Because ToS platforms have different tones of voice, different words are being used. How does the platforms have modern-colonial aspects in ToS?</li><br>
<li>to examine what is modern-colonial language by taking a closer look on words within the realm of ToS. This provides categorization of modern-colonial language into digital colonial glossary.</li><br>
<li></li><br>
<li></li><br>
<li></li><br>
<li></li><br>
<li></li><br>
<li></li><br>
<li></li><br>
</ul>
<h1>Acknowledgement</h1>
<p>These are the Terms of service governing the use of this service and the agreement that operates between You and the Company. These Terms of service set out the rights and obligations of all users regarding the use of the service.</p>
<p>Your access to and use of the service is conditioned on Your acceptance of and compliance with these Terms of service. These Terms of service apply to all visitors, users and others who access or use the service.</p>
<p>By accessing or using the service You agree to be bound by these Terms of service. If You disagree with any part of these Terms of service then You may not access the service.</p>
<p>You represent that you are over the age of 18. The Company does not permit those under 18 to use the service.</p>
<p>Your access to and use of the service is also conditioned on Your acceptance of and compliance with the Privacy Policy of the Company. Our Privacy Policy describes Our policies and procedures on the collection, use and disclosure of Your personal information when You use the Application or the Website and tells You about Your privacy rights and how the law protects You. Please read Our Privacy Policy carefully before using Our service.</p>
<h1>Links to Other Websites</h1>
<p>Our service may contain links to third-party web sites or services that are not owned or controlled by the Company.</p>
<p>The Company has no control over, and assumes no responsibility for, the content, privacy policies, or practices of any third party web sites or services. You further acknowledge and agree that the Company shall not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with the use of or reliance on any such content, goods or services available on or through any such web sites or services.</p>
<p>We strongly advise You to read the terms of service and privacy policies of any third-party web sites or services that You visit.</p>
<h1>Termination</h1>
<p>We may terminate or suspend Your access immediately, without prior notice or liability, for any reason whatsoever, including without limitation if You breach these Terms of service.</p>
<p>Upon termination, Your right to use the service will cease immediately.</p>
<h1>Limitation of Liability</h1>
<p>Notwithstanding any damages that You might incur, the entire liability of the Company and any of its suppliers under any provision of this Terms and Your exclusive remedy for all of the foregoing shall be limited to the amount actually paid by You through the service or 100 USD if You haven't purchased anything through the service.</p>
<p>To the maximum extent permitted by applicable law, in no event shall the Company or its suppliers be liable for any special, incidental, indirect, or consequential damages whatsoever (including, but not limited to, damages for loss of profits, loss of data or other information, for business interruption, for personal injury, loss of privacy arising out of or in any way related to the use of or inability to use the service, third-party software and/or third-party hardware used with the service, or otherwise in connection with any provision of this Terms), even if the Company or any supplier has been advised of the possibility of such damages and even if the remedy fails of its essential purpose.</p>
<p>Some states do not allow the exclusion of implied warranties or limitation of liability for incidental or consequential damages, which means that some of the above limitations may not apply. In these states, each party's liability will be limited to the greatest extent permitted by law.</p>
<h1>"AS IS" and "AS AVAILABLE" Disclaimer</h1>
<p>The service is provided to You "AS IS" and "AS AVAILABLE" and with all faults and defects without warranty of any kind. To the maximum extent permitted under applicable law, the Company, on its own behalf and on behalf of its Affiliates and its and their respective licensors and service providers, expressly disclaims all warranties, whether express, implied, statutory or otherwise, with respect to the service, including all implied warranties of merchantability, fitness for a particular purpose, title and non-infringement, and warranties that may arise out of course of dealing, course of performance, usage or trade practice. Without limitation to the foregoing, the Company provides no warranty or undertaking, and makes no representation of any kind that the service will meet Your requirements, achieve any intended results, be compatible or work with any other software, applications, systems or services, operate without interruption, meet any performance or reliability standards or be error free or that any errors or defects can or will be corrected.</p>
<p>Without limiting the foregoing, neither the Company nor any of the company's provider makes any representation or warranty of any kind, express or implied: (i) as to the operation or availability of the service, or the information, content, and materials or products included thereon; (ii) that the service will be uninterrupted or error-free; (iii) as to the accuracy, reliability, or currency of any information or content provided through the service; or (iv) that the service, its servers, the content, or e-mails sent from or on behalf of the Company are free of viruses, scripts, trojan horses, worms, malware, timebombs or other harmful components.</p>
<p>Some jurisdictions do not allow the exclusion of certain types of warranties or limitations on applicable statutory rights of a consumer, so some or all of the above exclusions and limitations may not apply to You. But in such a case the exclusions and limitations set forth in this section shall be applied to the greatest extent enforceable under applicable law.</p>
<h1>Governing Law</h1>
<p>The laws of the Country, excluding its conflicts of law rules, shall govern this Terms and Your use of the service. Your use of the Application may also be subject to other local, state, national, or international laws.</p>
<h1>Disputes Resolution</h1>
<p>If You have any concern or dispute about the service, You agree to first try to resolve the dispute informally by contacting the Company.</p>
<h1>For European Union (EU) Users</h1>
<p>If You are a European Union consumer, you will benefit from any mandatory provisions of the law of the country in which you are resident in.</p>
<h1>United States Legal Compliance</h1>
<p>You represent and warrant that (i) You are not located in a country that is subject to the United States government embargo, or that has been designated by the United States government as a "terrorist supporting" country, and (ii) You are not listed on any United States government list of prohibited or restricted parties.</p>
<h1>Severability and Waiver</h1>
<h2>Severability</h2>
<p>If any provision of these Terms is held to be unenforceable or invalid, such provision will be changed and interpreted to accomplish the objectives of such provision to the greatest extent possible under applicable law and the remaining provisions will continue in full force and effect.</p>
<h2>Waiver</h2>
<p>Except as provided herein, the failure to exercise a right or to require performance of an obligation under this Terms shall not effect a party's ability to exercise such right or require such performance at any time thereafter nor shall be the waiver of a breach constitute a waiver of any subsequent breach.</p>
<h1>Translation Interpretation</h1>
<p>These Terms of service may have been translated if We have made them available to You on our service.</p>
<p>You agree that the original English text shall prevail in the case of a dispute.</p>
<h1>Changes to These Terms of service</h1>
<p>We reserve the right, at Our sole discretion, to modify or replace these Terms at any time. If a revision is material We will make reasonable efforts to provide at least 30 days' notice prior to any new terms taking effect. What constitutes a material change will be determined at Our sole discretion.</p>
<p>By continuing to access or use Our service after those revisions become effective, You agree to be bound by the revised terms. If You do not agree to the new terms, in whole or in part, please stop using the website and the service.</p>
<h1>Contact Us</h1>
<p>If you have any questions about these Terms of service, You can contact us:</p>
<ul>
<li>By email: haveyoureadyourcontract@gmail.com</li>
</ul>
</div>
</div>
</body>
</html>

@ -0,0 +1,739 @@
<!DOCTYPE html>
<html>
<head>
<title>Have you read your contract?</title>
<style type="text/css">
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-5th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-5th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-5th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "DMMono";
src: url("http://bohyewoo.com/webfonts/DM_Mono/DMMono-Regular.ttf") format("ttf");
}
@import url('https://fonts.googleapis.com/css2?family=Anonymous+Pro:ital,wght@0,400;0,700;1,400;1,700&family=Raleway:wght@200;300;400;500&family=Source+Code+Pro:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&display=swap');
* {
top: 0;
padding: 0;
margin: 0;
}
.wrapper {
background-color: black;
/* font-family: 'Source Code Pro', monospace;*/
font-family: 'Anonymous Pro', monospace;
/* font-family: 'Raleway', sans-serif;
*/ font-weight: 400;
line-height: 1.5;
font-size: 12pt;
width: 100%;
}
.tos {
background-color: white;
width: 60%;
border: 0.5px solid black;
/* outline: 40px dotted black;
*/ padding: 40px;
margin: 0 auto;
}
.index-menu {
width: 15%;
top: 50px;
left: 20px;
font-family: Belgika-8th;
font-size: 7pt;
color: white;
letter-spacing: 0.5px;
position: fixed;
float: left;
z-index: 999;
}
.menu-title {
border-bottom: 1px solid white;
color: white;
}
.menu-title:hover {
background-color: black;
color: white;
border-bottom: 1px solid white;
}
.menu-title-country {
background-color: black;
color: white;
border: 0.1px solid white;
padding: 5px;
}
.index-menu-right {
width: 15%;
top: 50px;
right: 20px;
font-family: Belgika-8th;
font-size: 7pt;
color: white;
letter-spacing: 0.5px;
position: fixed;
float: left;
z-index: 999;
}
.index-menu-single {
font-family: Belgika-8th;
font-size: 7pt;
color: white;
border-bottom: none;
text-decoration: none;
line-height: 2.5;
padding: 2px;
}
.index-menu-single:hover {
background-color: white;
color: red;
}
.single-right {
line-height: 2;
}
#header {
background-color: black;
top: 0px;
width: 100%;
font-family: belgika-8th;
font-size: 12pt;
color: white;
text-align: center;
position: fixed;
padding: 10px;
z-index: 999;
}
#header h1 {
text-align: center;
}
#title-text {
font-family: Belgika-8th;
font-size: 30pt;
}
h1, h2 {
font-family: Belgika;
font-size: 20pt;
}
.title {
font-family: Belgika;
font-size: 20pt;
}
.subtitle {
font-family: Belgika;
font-size: 15pt;
}
a {
font-weight: bold;
color: black;
border-bottom: 2px dotted black;
text-decoration: none;
}
a:hover {
text-decoration: none;
}
.text {
font-weight: bold;
position: relative;
display: inline-block;
border-bottom: 2px dotted black;
}
.text .text-hover {
visibility: hidden;
width: 400px;
font-family: Belgika-8th;
font-size: 8pt;
padding: 10px;
background-color: red;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
/* Position the tooltip */
position: absolute;
/* z-index: 1;
*/
top: -90px;
left: 110%;
}
.text .text-hover-top {
visibility: hidden;
width: 600px;
font-family: Belgika-8th;
font-size: 8pt;
padding: 10px;
background-color: red;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
/* Position the tooltip */
position: absolute;
z-index: 1;
top: -120px;
left: 110%;
}
.text .text-hover-img {
visibility: hidden;
/* Position the tooltip */
position: absolute;
z-index: 1;
top: -400px;
left: 5%;
}
.text:hover {
color: red;
border-bottom: 2px dotted red;
}
.text:hover .text-hover {
visibility: visible;
}
.text:hover .text-hover-top {
visibility: visible;
}
.text:hover .text-hover-img {
visibility: visible;
}
#reference-number {
color: blue;
font-weight: bold;
font-size: 11pt;
border: none;
}
.reference-text {
font-size: 9pt;
border: none;
}
.reference-link {
font-size: 9pt;
border-bottom: 2px dotted black;
}
.reference-link:hover {
color: red;
font-size: 9pt;
border-bottom: 2px dotted red;
}
/* The Modal (background) */
.modal {
display: none;
position: fixed;
left: 0;
top: 0;
width: 48%;
height: 100%;
overflow: auto;
float: left;
z-index: 999;
}
/* Modal Content */
.modal-content {
background-color: white;
margin: auto;
padding: 20px;
border: 1px solid #888;
width: 90%;
float: left;
-webkit-animation-name: animatetop;
-webkit-animation-duration: 0.5s;
animation-name: animatetop;
animation-duration: 0.5s;
}
/* Add Animation */
@-webkit-keyframes animatetop {
from {top:-300px; opacity:0}
to {top:0; opacity:1}
}
@keyframes animatetop {
from {top:-300px; opacity:0}
to {top:0; opacity:1}
}
/* The Close Button */
.close {
top: 0;
left: 42%;
color: #aaaaaa;
float: right;
font-size: 60px;
position: fixed;
}
.close:hover,
.close:focus {
color: #000;
text-decoration: none;
cursor: pointer;
}
#button {
/* background-color: black;
*/ border: none;
color: white;
padding: 15px 32px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 12px;
margin: 4px 2px;
cursor: pointer;
}
.button-faceapp {
background-color: black;
}
</style>
</head>
<body>
<div id="header">Have you read your working contract?</div>
<div class="wrapper">
<div class="index-menu">
<a class="menu-title" >Table of Contents</a><br><br>
<a class="index-menu-single" href="#start">1. Terms of Service</a><br>
<a class="index-menu-single" href="#interpretation">2-1. Interpretation</a><br>
<a class="index-menu-single" href="#definitions">2-2. Definitions</a><br>
<a class="index-menu-single" href="#hyryc">&#10551; HAVE YOU READ YOUR CONTRACT?</a><br>
<a class="index-menu-single" href="#textpublishingarchive">&#10551; DIGITAL TEXT PUBLISHING ARCHIVE</a><br>
<a class="index-menu-single" href="#analysis">&#10551; WORD ANALYSIS</a><br>
<a class="index-menu-single" href="#obfuscation">&#10551; OBFUSCATION OF LANGUAGE</a><br>
</div>
<div class="index-menu-right">
<a class="menu-title" >List of Terms of Services</a><br><br>
<a class="menu-title-country" >Russia</a><br><br>
<a class="index-menu-single single-right" href="#start">FaceApp</a><br><br>
<a class="menu-title-country" >China</a><br><br>
<a class="index-menu-single single-right" href="#interpretation">TicTok</a><br><br>
<a class="menu-title-country" >U.S.A.</a><br><br>
<a class="index-menu-single single-right" href="#definitions">PokemonGo</a><br>
<a class="index-menu-single single-right" href="#hyryc">Snapchat</a><br>
<a class="index-menu-single single-right" href="#textpublishingarchive">Netflix</a><br>
<a class="index-menu-single single-right" href="#hyryc">facebook</a><br>
<a class="index-menu-single single-right" href="#hyryc">instagram</a><br>
<a class="index-menu-single single-right" href="#analysis">Amazon</a><br><br>
<a class="menu-title-country" >Japan</a><br><br>
<a class="index-menu-single" href="#obfuscation">Sony</a><br>
<br><br><br>
<a class="menu-title" >List of Colonial Treaties</a><br><br>
<a class="menu-title-country" >Russia</a><br><br>
<a class="index-menu-single single-right" href="#start">Peace Treaty of Tartu, Estonia</a><br><br>
<a class="menu-title-country" >China</a><br><br>
<a class="index-menu-single single-right" href="#interpretation">TicTok</a><br><br>
<a class="menu-title-country" >U.S.A.</a><br><br>
<a class="index-menu-single single-right" href="#definitions">Treaty of Paris (1898)</a><br><br>
<a class="menu-title-country" >U.K.</a><br><br>
<a class="index-menu-single single-right" href="#interpretation">United KingdomKorea Treaty of 1883</a><br>
<a class="index-menu-single single-right" href="#interpretation">Hong Kong Letters Patent 1843</a><br><br>
<a class="menu-title-country" >Japan</a><br><br>
<a class="index-menu-single" href="#obfuscation">JapanKorea Agreement of 1905
</a><br><br>
</div>
<div class="tos">
<br><br>
<!-- <div id="title-text">Have you read your working contract?</div> -->
<br><br><br>
<h1><a name="start"></a>Terms of Service</h1><br>
<p>Last updated: April 28, 2020</p>
<p>Please read these terms of service carefully before using Our service.</p><br><br><br><br>
<h1>Interpretation and Definitions</h1><br>
<h2><a name="interpretation"></a>Interpretation</h2>
<p>The words of which the initial letter is capitalized have meanings defined under the following conditions.</p><br>
<p>The following definitions shall have the same meaning regardless of whether they appear in singular or in plural.</p>
<br><br><br>
<h2><a name="definitions"></a>Definitions</h2>
<p>For the purposes of these Terms of service:</p>
<ul>
<li><a name="hyryc"></a><strong>HAVE YOU READ YOUR CONTRACT?</strong> is a modern-digital-colonial <a class="text" href="#textpublishingarchive">text publishing archive</a>, a series of word analysis that reveals the modern-colonial contexts/words in <a class="text" href="#tos">'Terms of Service (ToS)'</a>. ToS is a modern working/slavery contract in <a class="text" href="#digitalcolonialsociety">digital colonial society</a>, where big companies are dominating the power structures via ToS to deceive users. The project introduces the resemblance of <a class="text" href="#colonialtreaties">colonial treaties</a> in historical colonialism to the digital society by mapping out the whole architecture of language used in ToS comparing with historical colonial treaties.</li><br>
<li><a name="textpublishingarchive"></a><strong>DIGITAL TEXT PUBLISHING ARCHIVE</strong> means a digital (repository) infrastructure of text material that I desire to keep for a long-term preservation. It is evident that not much of digital material will survive<a id="reference-number" href="#1" class="text">[1]<span class="text-hover">(Zelkowitz, 2003): Advances in Computers: Information Repositories edited by Marvin Zelkowitz</span></a>. Archiving is important in digital age as a preservation tool because of perpetual changes in digital platform. This platform archives collections of related informations about my project including news articles, videos, books, tweets ... to proffer knowledges I gleaned from the web. The archive will contain different analyzations on the modern-colonial words and contexts. </li><br>
<li><a name="analysis"></a><strong>WORD ANALYSIS</strong> is very important because of <a class="text" href="#obfuscation">obfuscation of language</a> in ToS. Usually ToS are made with polite and generic language to deceive users. By using these general terms, those big tech companies try to wash their hands of responsibility and disclaim their liability to back up themselves. Similarly to the language of ToS, the terminology in treaties are phrased in an equivocally circuitous manner that it's indirect. Therefore, vernaculars used in English ToS, which has similarities to <a class="text" href="#colonialtreaties">colonial treaties</a> will be discovered by analyzing the words that were used during this period.</li><br>
<li><a name="obfuscation"></a><strong>OBFUSCATION OF LANGUAGE</strong>: <a class="text" href="#tos">Terms of Service</a> tend to obfuscate its meaning of contexts by having a way too long texts, so that users don't read them and just click accept. Usually, ToS are written in impenetrable legalise, intentionally vague and generic language that designed to make it impossible to deceive users. During colonial times, obfuscation of language was happening in <a class="text" href="#colonialtreaties">colonial treaties</a> as well. </li><br>
<li><a name="colonialtreaties"></a><strong>COLONIAL TREATIES</strong> are known as agreements, pacts and major contracts made between countries during colonial times. It was a formally concluded agreement between a colonizer and a colony, these treaties are a binding formal agreement that establishes obligations between two or more subjects. Most of the time, colonial treaties were coercively made by a colonizer. It was very common that colonial treaties were slanted in favour of the colonizer, and pushed to sign it without knowing that sovreignty or jurisdiction will be infringed. One of the example would be, <a class="text">a treaty of Ganghwa Island<span class="text-hover-img"><img src="img/ganghwa.jpg" ></span></a> made between Japanese and Korean. They used a term called 'Unequal treaty' to refer that the treaty had generally regarded as an unequal treaty coerced by Japan. By doing so, the Empire of Japan had a full control over rullig Korean Empire <a id="reference-number" href="#2" class="text">[2]<span class="text-hover">(Duus, 1998):The Abacus and the Sword: The Japanese Penetration of Korea. University of California Press</span></a>.</li><br>
<li><a name="digitalcolonialsociety"></a><strong>DIGITAL COLONIAL SOCIETY</strong>: It is a concept based on <a class="text" href="#digitalsociety">a digital society <span class="text-hover">that every aspect of lives is profoundly being affected by the domination of digital technology</span></a> where user's online behavior becomes monetisable commodity to be sold by <a class="text" href="#bigcorporations">big corporations<span class="text-hover">giving them direct power over political, economic and cultural domains of life</span></a>, and users don't properly get paid. This ingenious ways of extracting cheap labour from users show similar ways of exploitating natural/human resources in colonial times.
<br><br>
<a class="text">(+)<span class="text-hover-top">Although it is clear that the modes, intensities, scales, and contexts of today's digital colonialism are distinctive from the historical colonialism, the underlying power structures remain the same (Couldry, 2019)</span></a> Of course, this doesn't mean that the transformation of colonialism has done fully identical. Unlike a historical colony that was bounded mostly by geographical locations, a digital colony has no physical borders. There are no geographical locations, there are only IP addresses, domain names, and user's data. Therefore, digital colonialism expands by exploiting more layers of human life itself through the use of technology (Couldry, 2019).
</li>
<br>
<li><strong>THE IDEA OF COLONIALISM</strong> seems to be an eternal loop that comes back throughout history. It is essential not to ignore that digital colonialism is applicable to countries regardless of the history.</li><br>
<li><a name="tos"></a><strong>TERMS OF SERVICE (TOS)</strong> is also known as terms of use and terms and conditions, commonly abbreviated as (ToS) are the legal agreements between a service provider and a person who wants to use that service. This means these Terms of service that form the entire agreement between You and the Company regarding the use of the service. This Terms of service agreement as been created with the help of <a class="text" href="https://app.termsfeed.com/download/free?agreement_type=TC&token=4687b8bf6d64d334e89197146ee96509">Terms of service Generator</a>.</li><br>
<li><strong>COMPANY</strong> (referred to as either "the Company", "We", "Us" or "Our" in this Agreement) refers to Have You Read Your Contract?.</li><br>
<li><strong>COUNTRY</strong> refers to: Netherlands</li><br>
<li><strong>DEVICE</strong> means any device that can access the service such as a computer, a cellphone or a digital tablet.</li><br>
<li><strong>SERVICE</strong> refers to the Website.</li><br>
<li><strong>THIRD-PARTY SOCIAL MEDIA SERVICE</strong> means any services or content (including data, information, products or services) provided by a third-party that may be displayed, included or made available by the service.</li><br>
<li><strong>WEBSITE</strong> refers to Have You Read Your Contract?, accessible from www.haveyoureadyourcontract.com</li><br>
<li><strong>YOU</strong> means the individual accessing or using the service, or the company, or other legal entity on behalf of which such individual is accessing or using the service, as applicable.</li><br>
</ul>
<br><br><br>
<p class="reference-text"><a name="1"></a>[1] (Zelkowitz, 2003): <a class="reference-link" href="https://books.google.nl/books?hl=en&lr=&id=xqvv7yqtr2kC&oi=fnd&pg=PA1&dq=importance+of+knowledge+archiving&ots=9NU6J-zv88&sig=2pkfx30iXkDgFS4-wLsqT9iVs8Y#v=onepage&q=importance%20of%20knowledge%20archiving&f=false">Advances in Computers: Information Repositories edited by Marvin Zelkowitz</a></p>
<p class="reference-text"><a name="2"></a>[2] (Duus, 1998): The Abacus and the Sword: The Japanese Penetration of Korea. University of California Press.</p>
<br><br><br><br>
<h1>Contents</h1><br>
<p>This archive presents the following ToS such as
<!-- Trigger/Open The Modal -->
<button id="button" class="button-faceapp">FaceApp</button>
<!-- The Modal -->
<div id="myModal" class="modal">
<!-- Modal content -->
<div class="modal-content">
<span class="close">&times;</span>
<p>Chapter One
A Stop on the Salt Route
1000 B.C.
As they rounded a bend in the path that ran beside the river, Lara recognized the silhouette of a fig tree atop a nearby hill. The weather was hot and the days were long. The fig tree was in full leaf, but not yet bearing fruit.
Soon Lara spotted other landmarks—an outcropping of limestone beside the path that had a silhouette like a mans face, a marshy spot beside the river where the waterfowl were easily startled, a tall tree that looked like a man with his arms upraised. They were drawing near to the place where there was an island in the river. The island was a good spot to make camp. They would sleep on the island tonight.
Lara had been back and forth along the river path many times in her short life. Her people had not created the path—it had always been there, like the river—but their deerskin-shod feet and the wooden wheels of their handcarts kept the path well worn. Laras people were salt traders, and their livelihood took them on a continual journey.
At the mouth of the river, the little group of half a dozen intermingled families gathered salt from the great salt beds beside the sea. They groomed and sifted the salt and loaded it into handcarts. When the carts were full, most of the group would stay behind, taking shelter amid rocks and simple lean-tos, while a band of fifteen or so of the heartier members set out on the path that ran alongside the river.
With their precious cargo of salt, the travelers crossed the coastal lowlands and traveled toward the mountains. But Laras people never reached the mountaintops; they traveled only as far as the foothills. Many people lived in the forests and grassy meadows of the foothills, gathered in small villages. In return for salt, these people would give Laras people dried meat, animal skins, cloth spun from wool, clay pots, needles and scraping tools carved from bone, and little toys made of wood.
Their bartering done, Lara and her people would travel back down the river path to the sea. The cycle would begin again.
It had always been like this. Lara knew no other life. She traveled back and forth, up and down the river path. No single place was home. She liked the seaside, where there was always fish to eat, and the gentle lapping of the waves lulled her to sleep at night. She was less fond of the foothills, where the path grew steep, the nights could be cold, and views of great distances made her dizzy. She felt uneasy in the villages, and was often shy around strangers. The path itself was where she felt most at home. She loved the smell of the river on a hot day, and the croaking of frogs at night. Vines grew amid the lush foliage along the river, with berries that were good to eat. Even on the hottest day, sundown brought a cool breeze off the water, which sighed and sang amid the reeds and tall grasses.
Of all the places along the path, the area they were approaching, with the island in the river, was Laras favorite.
The terrain along this stretch of the river was mostly flat, but in the immediate vicinity of the island, the land on the sunrise side was like a rumpled cloth, with hills and ridges and valleys. Among Laras people, there was a wooden babys crib, suitable for strapping to a cart, that had been passed down for generations. The island was shaped like that crib, longer than it was wide and pointed at the upriver end, where the flow had eroded both banks. The island was like a crib, and the group of hills on the sunrise side of the river were like old women mantled in heavy cloaks gathered to have a look at the baby in the crib—that was how Laras father had once described the lay of the land.
Larth spoke like that all the time, conjuring images of giants and monsters in the landscape. He could perceive the spirits, called numina, that dwelled in rocks and trees. Sometimes he could speak to them and hear what they had to say. The river was his oldest friend and told him where the fishing would be best. From whispers in the wind he could foretell the next days weather. Because of such skills, Larth was the leader of the group.
“Were close to the island, arent we, Papa?” said Lara.
“How did you know?”
“The hills. First we start to see the hills, off to the right. The hills grow bigger. And just before we come to the island, we can see the silhouette of that fig tree up there, along the crest of that hill.”
“Good girl!” said Larth, proud of his daughters memory and powers of observation. He was a strong, handsome man with flecks of gray in his black beard. His wife had borne several children, but all had died very young except Lara, the last, whom his wife had died bearing. Lara was very precious to him. Like her mother, she had golden hair. Now that she had reached the age of childbearing, Lara was beginning to display the fullness of a womans hips and breasts. It was Larths greatest wish that he might live to see his own grandchildren. Not every man lived that long, but Larth was hopeful. He had been healthy all his life, partly, he believed, because he had always been careful to show respect to the numina he encountered on his journeys.
Respecting the numina was important. The numen of the river could suck a man under and drown him. The numen of a tree could trip a man with its roots, or drop a rotten branch on his head. Rocks could give way underfoot, chuckling with amusement at their own treachery. Even the sky, with a roar of fury, sometimes sent down fingers of fire that could roast a man like a rabbit on a spit, or worse, leave him alive but robbed of his senses. Larth had heard that the earth itself could open and swallow a man; though he had never actually seen such a thing, he nevertheless performed a ritual each morning, asking the earths permission before he went striding across it.
“Theres something so special about this place,” said Lara, gazing at the sparkling river to her left and then at the rocky, tree-spotted hills ahead and to her right. “How was it made? Who made it?”
Larth frowned. The question made no sense to him. A place was never made, it simply was. Small features might change over time. Uprooted by a storm, a tree might fall into the river. A boulder might decide to tumble down the hillside. The numina that animated all things went about reshaping the landscape from day to day, but the essential things never changed, and had always existed: the river, the hills, the sky, the sun, the sea, the salt beds at the mouth of the river.
He was trying to think of some way to express these thoughts to Lara, when a deer, drinking at the river, was startled by their approach. The deer bolted up the brushy bank and onto the path. Instead of running to safety, the creature stood and stared at them. As clearly as if the animal had whispered aloud, Larth heard the words “Eat me.” The deer was offering herself.
Larth turned to shout an order, but the most skilled hunter of the group, a youth called Po, was already in motion. Po ran forward, raised the sharpened stick he always carried and hurled it whistling through the air between Larth and Lara.
A heartbeat later, the spear struck the deers breast with such force that the creature was knocked to the ground. Unable to rise, she thrashed her neck and flailed her long, slender legs. Po ran past Larth and Lara. When he reached the deer, he pulled the spear free and stabbed the creature again. The deer released a stifled noise, like a gasp, and stopped moving.
There was a cheer from the group. Instead of yet another dinner of fish from the river, tonight there would be venison.
The distance from the riverbank to the island was not great, but at this time of year—early summer—the river was too high to wade across. Laras people had long ago made simple rafts of branches lashed together with leather thongs, which they left on the riverbanks, repairing and replacing them as needed. When they last passed this way, there had been three rafts, all in good condition, left on the east bank. Two of the rafts were still there, but one was missing.
“I see it! There—pulled up on the bank of the island, almost hidden among those leaves,” said Po, whose eyes were sharp. “Someone must have used it to cross over.”
“Perhaps theyre still on the island,” said Larth. He did not begrudge others the use of the rafts, and the island was large enough to share. Nonetheless, the situation required caution. He cupped his hands to his mouth and gave a shout. It was not long before a man appeared on the bank of the island. The man waved.
“Do we know him?” said Larth, squinting.
“I dont think so,” said Po. “Hes young—my age or younger, Id say. He looks strong.”
“Very strong!” said Lara. Even from this distance, the young strangers brawniness was impressive. He wore a short tunic without sleeves, and Lara had never seen such arms on a man.
Po, who was small and wiry, looked at Lara sidelong and frowned. “Im not sure I like the look of this stranger.”
“Why not?” said Lara. “Hes smiling at us.”
In fact, the young man was smiling at Lara, and Lara alone.
His name was Tarketios. Much more than that, Larth could not tell, for the stranger spoke a language which Larth did not recognize, in which each word seemed as long and convoluted as the mans name. Understanding the deer had been easier than understanding the strange noises uttered by this man and his two companions! Even so, they seemed friendly, and the three of them presented no threat to the more numerous salt traders.
Tarketios and his two older companions were skilled metalworkers from a region some two hundred miles to the north, where the hills were rich with iron, copper, and lead. They had been on a trading journey to the south and were returning home. Just as the river path carried Larths people from the seashore to the hills, so another path, perpendicular to the river, traversed the long coastal plain. Because the island provided an easy place to ford the river, it was here that the two paths intersected. On this occasion, the salt traders and the metal traders happened to arrive at the island on the same day. Now they met for the first time.
The two groups made separate camps at opposite ends of the island. As a gesture of friendship, speaking with his hands, Larth invited Tarketios and the others to share the venison that night. As the hosts and their guests feasted around the roasting fire, Tarketios tried to explain something of his craft. Firelight glittered in Laras eyes as she watched Tarketios point at the flames and mime the act of hammering. Firelight danced across the flexing muscles of his arms and shoulders. When he smiled at her, his grin was like a boast. She had never seen teeth so white and so perfect.
Po saw the looks the two exchanged and frowned. Laras father saw the same looks and smiled.
The meal was over. The metal traders, after many gestures of gratitude for the venison, withdrew to their camp at the far side of the island. Before he disappeared into the shadows, Tarketios looked over his shoulder and gave Lara a parting grin.
While the others settled down to sleep, Larth stayed awake a while longer, as was his habit. He liked to watch the fire. Like all other things, fire possessed a numen that sometimes communicated with him, showing him visions. As the last of the embers faded into darkness, Larth fell asleep.
Larth blinked. The flames, which had dwindled to almost nothing, suddenly shot up again. Hot air rushed over his face. His eyes were seared by white flames brighter than the sun.
Amid the dazzling brightness, he perceived a thing that levitated above the flames. It was a masculine member, disembodied but nonetheless rampant and upright. It bore wings, like a bird, and hovered in midair. Though it seemed to be made of flesh, it was impervious to the flames.
Larth had seen the winged phallus before, always in such circumstances, when he stared at a fire and entered a dream state. He had even given it a name, or more precisely, the thing had planted its name in his mind: Fascinus.
Fascinus was not like the numina that animated trees, stones, or rivers. Those numina existed without names. Each was bound to the object in which it resided, and there was little to differentiate one from another. When such numina spoke, they could not always be trusted. Sometimes they were friendly, but at other times they were mischievous or even hostile.
Fascinus was different. It was unique. It existed in and of itself, without beginning or end. Clearly, from its form, it had something to do with life and the origin of life, yet it seemed to come from a place beyond this world, slipping for a few moments through a breach opened by the heat of the dancing flames. An appearance by Fascinus was always significant. The winged phallus never appeared without giving Larth an answer to a dilemma that had been troubling him, or planting an important new thought in his mind. The guidance given to him by Fascinus had never led Larth astray.
Elsewhere, in distant lands—Greece, Israel, Egypt—men and women worshiped gods and goddesses. Those people made images of their gods, told stories about them, and worshiped them in temples. Larth had never met such people. He had never even heard of the lands where they lived, and he had never encountered or conceived of a god. The very concept of a deity such as those other men worshiped was unknown to Larth, but the closest thing to a god in his imagination and experience was Fascinus.
With a start, he blinked again.
The flames had died. In place of intolerable brightness there was only the darkness of a warm summer night lit by the faintest sliver of a moon. The air on his face was no longer hot but fresh and cool.
Fascinus had vanished—but not without planting a thought in Larths mind. He hurried to the leafy bower beside the river where Lara liked to sleep, thinking to himself, It must be made so, because Fascinus says it must!
He knelt beside her, but there was no need to wake her. She was already awake.
“Papa? What is it?”
“Go to him!”
She did not need to ask for an explanation. It was what she had been yearning to do, lying restless and eager in the dark.
“Are you sure, Papa?”
“Fascinus . . . ,” He did not finish the thought, but she understood. She had never seen Fascinus, but he had told her about it. Many times in the past, Fascinus had given guidance to her father. Now, once again, Fascinus had made its will known.
The darkness did not deter her. She knew every twist and turn of every path on the little island. When she came to the metal traders camp, she found Tarketios lying in a leafy nook secluded from the others; she recognized him by his brawny silhouette. He was awake and waiting, just as she had been lying awake, waiting, when her father came to her.
At her approach, Tarketios rose onto his elbows. He spoke her name in a whisper. There was a quiver of something like desperation in his voice; his neediness made her smile. She sighed and lowered herself beside him. By the faint moonlight, she saw that he wore an amulet of some sort, suspended from a strap of leather around his neck. Nestled amid the hair on his chest, the bit of shapeless metal seemed to capture and concentrate the faint moonlight, casting back a radiance brighter than the moon itself.
His arms—the arms she had so admired earlier—reached out and closed around her in a surprisingly gentle embrace. His body was as warm and naked as her own, but much bigger and much harder. She wondered if Fascinus was with them in the darkness, for she seemed to feel the beating of wings between their legs as she was entered by the thing that gave origin to life.
Copyright © 2007 by Steven Saylor. All rights reserved.
</p>
</div>
</div>
, TikTok, PokemonGo, Snaptchat, Netflix, Amazon, Aibo(Sony). We also provide some historical treaties made during one's colonial era, such as ........, for you to interpret how the former might have had some similar characteristics to the latter.</p>
<br><br><br>
<h1>our service</h1>
<ul>
<li>to contribute a platform of reading ToS. In doing so, it questions what does it mean to provide ToS in the digital corporate society.</li><br>
<li>to question the concept of digital colonialism by providing visualization of ToS language as a modern-colonial tool to deceive users.</li><br>
<li>to analyze ToS from major tech companies to investigate how particular terms are being used in the specific context of ToS. Because ToS platforms have different tones of voice, different words are being used. How does the platforms have modern-colonial aspects in ToS?</li><br>
<li>to examine what is modern-colonial language by taking a closer look on words within the realm of ToS. This provides categorization of modern-colonial language into digital colonial glossary.</li><br>
<li></li><br>
<li></li><br>
<li></li><br>
<li></li><br>
<li></li><br>
<li></li><br>
<li></li><br>
</ul>
<h1>Acknowledgement</h1>
<p>These are the Terms of service governing the use of this service and the agreement that operates between You and the Company. These Terms of service set out the rights and obligations of all users regarding the use of the service.</p>
<p>Your access to and use of the service is conditioned on Your acceptance of and compliance with these Terms of service. These Terms of service apply to all visitors, users and others who access or use the service.</p>
<p>By accessing or using the service You agree to be bound by these Terms of service. If You disagree with any part of these Terms of service then You may not access the service.</p>
<p>You represent that you are over the age of 18. The Company does not permit those under 18 to use the service.</p>
<p>Your access to and use of the service is also conditioned on Your acceptance of and compliance with the Privacy Policy of the Company. Our Privacy Policy describes Our policies and procedures on the collection, use and disclosure of Your personal information when You use the Application or the Website and tells You about Your privacy rights and how the law protects You. Please read Our Privacy Policy carefully before using Our service.</p>
<h1>Links to Other Websites</h1>
<p>Our service may contain links to third-party web sites or services that are not owned or controlled by the Company.</p>
<p>The Company has no control over, and assumes no responsibility for, the content, privacy policies, or practices of any third party web sites or services. You further acknowledge and agree that the Company shall not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with the use of or reliance on any such content, goods or services available on or through any such web sites or services.</p>
<p>We strongly advise You to read the terms of service and privacy policies of any third-party web sites or services that You visit.</p>
<h1>Termination</h1>
<p>We may terminate or suspend Your access immediately, without prior notice or liability, for any reason whatsoever, including without limitation if You breach these Terms of service.</p>
<p>Upon termination, Your right to use the service will cease immediately.</p>
<h1>Limitation of Liability</h1>
<p>Notwithstanding any damages that You might incur, the entire liability of the Company and any of its suppliers under any provision of this Terms and Your exclusive remedy for all of the foregoing shall be limited to the amount actually paid by You through the service or 100 USD if You haven't purchased anything through the service.</p>
<p>To the maximum extent permitted by applicable law, in no event shall the Company or its suppliers be liable for any special, incidental, indirect, or consequential damages whatsoever (including, but not limited to, damages for loss of profits, loss of data or other information, for business interruption, for personal injury, loss of privacy arising out of or in any way related to the use of or inability to use the service, third-party software and/or third-party hardware used with the service, or otherwise in connection with any provision of this Terms), even if the Company or any supplier has been advised of the possibility of such damages and even if the remedy fails of its essential purpose.</p>
<p>Some states do not allow the exclusion of implied warranties or limitation of liability for incidental or consequential damages, which means that some of the above limitations may not apply. In these states, each party's liability will be limited to the greatest extent permitted by law.</p>
<h1>"AS IS" and "AS AVAILABLE" Disclaimer</h1>
<p>The service is provided to You "AS IS" and "AS AVAILABLE" and with all faults and defects without warranty of any kind. To the maximum extent permitted under applicable law, the Company, on its own behalf and on behalf of its Affiliates and its and their respective licensors and service providers, expressly disclaims all warranties, whether express, implied, statutory or otherwise, with respect to the service, including all implied warranties of merchantability, fitness for a particular purpose, title and non-infringement, and warranties that may arise out of course of dealing, course of performance, usage or trade practice. Without limitation to the foregoing, the Company provides no warranty or undertaking, and makes no representation of any kind that the service will meet Your requirements, achieve any intended results, be compatible or work with any other software, applications, systems or services, operate without interruption, meet any performance or reliability standards or be error free or that any errors or defects can or will be corrected.</p>
<p>Without limiting the foregoing, neither the Company nor any of the company's provider makes any representation or warranty of any kind, express or implied: (i) as to the operation or availability of the service, or the information, content, and materials or products included thereon; (ii) that the service will be uninterrupted or error-free; (iii) as to the accuracy, reliability, or currency of any information or content provided through the service; or (iv) that the service, its servers, the content, or e-mails sent from or on behalf of the Company are free of viruses, scripts, trojan horses, worms, malware, timebombs or other harmful components.</p>
<p>Some jurisdictions do not allow the exclusion of certain types of warranties or limitations on applicable statutory rights of a consumer, so some or all of the above exclusions and limitations may not apply to You. But in such a case the exclusions and limitations set forth in this section shall be applied to the greatest extent enforceable under applicable law.</p>
<h1>Governing Law</h1>
<p>The laws of the Country, excluding its conflicts of law rules, shall govern this Terms and Your use of the service. Your use of the Application may also be subject to other local, state, national, or international laws.</p>
<h1>Disputes Resolution</h1>
<p>If You have any concern or dispute about the service, You agree to first try to resolve the dispute informally by contacting the Company.</p>
<h1>For European Union (EU) Users</h1>
<p>If You are a European Union consumer, you will benefit from any mandatory provisions of the law of the country in which you are resident in.</p>
<h1>United States Legal Compliance</h1>
<p>You represent and warrant that (i) You are not located in a country that is subject to the United States government embargo, or that has been designated by the United States government as a "terrorist supporting" country, and (ii) You are not listed on any United States government list of prohibited or restricted parties.</p>
<h1>Severability and Waiver</h1>
<h2>Severability</h2>
<p>If any provision of these Terms is held to be unenforceable or invalid, such provision will be changed and interpreted to accomplish the objectives of such provision to the greatest extent possible under applicable law and the remaining provisions will continue in full force and effect.</p>
<h2>Waiver</h2>
<p>Except as provided herein, the failure to exercise a right or to require performance of an obligation under this Terms shall not effect a party's ability to exercise such right or require such performance at any time thereafter nor shall be the waiver of a breach constitute a waiver of any subsequent breach.</p>
<h1>Translation Interpretation</h1>
<p>These Terms of service may have been translated if We have made them available to You on our service.</p>
<p>You agree that the original English text shall prevail in the case of a dispute.</p>
<h1>Changes to These Terms of service</h1>
<p>We reserve the right, at Our sole discretion, to modify or replace these Terms at any time. If a revision is material We will make reasonable efforts to provide at least 30 days' notice prior to any new terms taking effect. What constitutes a material change will be determined at Our sole discretion.</p>
<p>By continuing to access or use Our service after those revisions become effective, You agree to be bound by the revised terms. If You do not agree to the new terms, in whole or in part, please stop using the website and the service.</p>
<h1>Contact Us</h1>
<p>If you have any questions about these Terms of service, You can contact us:</p>
<ul>
<li>By email: haveyoureadyourcontract@gmail.com</li>
</ul>
</div>
</div>
<script type="text/javascript">
var modal = document.getElementById("myModal");
var btn = document.getElementById("button");
// Get the <span> element that closes the modal
var span = document.getElementsByClassName("close")[0];
// When the user clicks the button, open the modal
btn.onclick = function() {
modal.style.display = "block";
}
// When the user clicks on <span> (x), close the modal
span.onclick = function() {
modal.style.display = "none";
}
// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
</script>
</body>
</html>

@ -0,0 +1,520 @@
# from __future__ import division
from nltk import sent_tokenize, word_tokenize, pos_tag
from nltk.probability import FreqDist
from nltk.corpus import stopwords
import nltk
import codecs
import base64
nltk.download('stopwords')
# faceapp_file = open('faceapp.txt','r')
with open('tos_file/faceapp.txt', 'r') as faceapp_file:
faceapp_text = faceapp_file.read()
faceapp_text_list = faceapp_text.split("\n\n")
with open('treaty_file/russia-estonia.txt', 'r') as russia_file:
russia_text = russia_file.read()
russia_text_list = russia_text.split("\n\n")
#tos stopwords
tos_default_stopwords = set(stopwords.words('english'))
tos_custom_stopwords = set(codecs.open('stopwords.txt', 'r').read().splitlines())
tos_all_stopwords = tos_default_stopwords | tos_custom_stopwords
#treaty stopwords
t_default_stopwords = set(stopwords.words('english'))
t_custom_stopwords = set(codecs.open('t_stopwords.txt', 'r').read().splitlines())
t_all_stopwords = t_default_stopwords | t_custom_stopwords
# multi-line string HTML
print('''<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.5.0.min.js"></script>
<meta charset="utf-8">
<title></title>
<style>
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "SourceCodePro";
src: url("http://bohyewoo.com/webfonts/Source_Code_Pro/SourceCodePro-Regular.ttf");
}
* {
margin: 0;
padding: 0;
}
html, body {
height: 100%;
}
p {
margin-bottom: 30px;
}
.tos_wrapper {
# background-color: yellow;
width: 49%;
float: left;
margin-right: 20px;
border-right: 2px solid black;
}
.t_wrapper {
# background-color: green;
width: 49%;
float: right;
}
.intro {
width: 75%;
float: right;
}
.t_intro {
width: 75%;
float: left;
}
.img {
# background-color: Aquamarine;
font-family: Belgika;
font-size: 20pt;
padding-top: 30px;
float: left;
}
.image {
height: 30vh;
margin-top: 30px;
}
.t_img {
# background-color: Aquamarine;
font-family: Belgika;
font-size: 20pt;
padding-top: 30px;
float: left;
}
.t_image {
height: 30vh;
margin-top: 30px;
}
.info {
# background-color: LightSkyBlue;
font-family: helvetica;
font-weight: regular;
font-size: 10pt;
width: 45vh;
float: left;
margin-top: 30px;
# border: 2px solid black;
# text-align: center;
column-count: 2;
}
.t_info {
# background-color: LightSkyBlue;
font-family: helvetica;
font-weight: regular;
font-size: 10pt;
width: 45vh;
float: left;
margin-top: 30px;
# border: 2px solid black;
# text-align: center;
column-count: 2;
}
.paragraph {
# background-color: gold;
font-family: helvetica;
font-weight: regular;
font-size: 20px;
width: 75%;
padding: 10px;
margin-top: 70px;
float: right;
}
.t_paragraph {
# background-color: gold;
font-family: helvetica;
font-weight: regular;
font-size: 20px;
width: 98%;
margin-top: 70px;
float: right;
}
.top_words {
background-color: black;
width: 10%;
height: 100%;
font-family: Belgika;
font-weight: 16th;
font-size: 7.5pt;
color: white;
letter-spacing: 0.5px;
position: fixed;
float: left;
}
.top_words_title {
# background-color: yellow;
margin: 40px 10px 10px 10px;
width: 80%;
}
.chosen_words {
# background-color: pink;
padding: 10px 1px 1px 10px;
}
.chosen_words:hover {
background-color: white;
color: red;
}
.t_top_words {
background-color: black;
width: 10%;
height: 100%;
font-family: Belgika;
font-weight: 16th;
font-size: 7.5pt;
color: white;
letter-spacing: 0.5px;
position: fixed;
float: right;
right: 0;
top: 0;
}
.t_top_words_title {
margin: 40px 10px 10px 10px;
width: 80%;
}
.t_chosen_words {
padding: 10px 1px 1px 10px;
}
.t_chosen_words:hover {
background-color: white;
color: red;
}
.hide {
# color: white;
background-color: black;
}
.TO:hover, .DT:hover, .IN:hover, .WDT:hover, .WP:hover, .MD:hover, .PRP:hover, .CC:hover, .marks:hover, .comma:hover, .dot:hover {
background-color: black;
}
.adjective {
color: white;
background-color: blue;
}
.JJ:hover {
color: white;
background-color: blue;
}
.noun {
background-color: springgreen;
}
.NN:hover, .NNS:hover {
background-color: springgreen;
}
.verb {
background-color: yellow;
# color: yellow;
}
.VB:hover, .VBZ:hover, .VBN:hover, .VVD:hover {
background-color: yellow;
}
.propernoun {
background-color: pink;
# color: pink;
}
.NNP:hover, .NNPS:hover {
background-color: pink;
}
.adverb {
background-color: lightgreen;
# color: lightgreen;
}
.RB:hover, .RBR:hover, .JJR:hover, .RBS:hover {
background-color: lightgreen;
}
</style>
</head>
<body>
<script>
$(document).ready(function() {
$('.chosen_words').click( function(){
var word = $(this).text();
alert(word);
});
$('.TO, .DT, .IN, .WDT, .WP, .MD, .PRP, .CC, .marks, .comma, .dot').click(
function() {
$('.TO, .DT, .IN, .WDT, .WP, .MD, .PRP, .CC, .marks, .comma, .dot').toggleClass('hide');
});
$('.JJ').click(
function() {
$('.JJ').toggleClass('adjective');
});
$('.NN, .NNS').click(
function() {
$('.NN, .NNS').toggleClass('noun');
});
$('.VB, .VBZ, .VBN, .VVD').click(
function() {
$('.VB, .VBZ, .VBN, .VVD').toggleClass('verb');
});
$('.NNP, .NNPS').click(
function() {
$('.NNP, .NNPS').toggleClass('propernoun');
});
$('.RB').click(
function() {
$('.RB').toggleClass('adverb');
});
$('.RBR, .JJR').click(
function() {
$('.RBR, .JJR').toggleClass('adverb-comparative');
});
$('.RBS').click(
function() {
$('.RBS').toggleClass('adverb-superlative');
});
})
</script>''')
# $('div.t_chosen_words_{0}').mouseover(function(){
# $(this).find('.t_chosen_words_{0}').text('i + 'is here').css('color', 'red');
# })
# .mouseout(function() {
# $( this ).find( ".t_chosen_words" ).text( " " ).css('color', 'black');
# });
#wrapper
print('<div class ="tos_wrapper"><div class="intro">')
#insert an image
# https://upload.wikimedia.org/wikipedia/commons/1/15/Joffe_signing_the_Treaty_of_Tartu.jpg
FaceApp_img_url = base64.b64encode(open('img/faceapp_logo.png', 'rb').read()).decode('utf-8')
FaceApp_image = '<div class="img">FaceApp<br><img class="image" src="data:img/faceapp_logo.png;base64,{}"></div>'.format(FaceApp_img_url)
print(FaceApp_image)
#info box
print('<div class ="info">')
infotext = [('Name of Service', 'FaceApp'), ('Country of Origin', 'Russia'), ('Initial release', 'December 31, 2016'), ('Type', 'Image editing'), ('Word Counts', '5,392'), ('Original Source', '<a href="https://www.faceapp.com/terms-en.html">link</a>'), ('Description', 'FaceApp is a mobile application for iOS and Android developed by Russian company Wireless Lab. The app generates highly realistic transformations of human faces in photographs by using neural networks based on artificial intelligence. The app can transform a face to make it smile, look younger, look older, or change gender.')]
for title, info in infotext:
print('<div class="info_{0}" ><div class="info_title" style="-webkit-text-decoration-line: underline; text-decoration-line: underline;" >{0}</div><div class="info_content">{1}</div></div><br>'.format(title, info))
print('</div></div>')
#ToS text
print('<div class ="paragraph">')
for paragraph in faceapp_text_list:
tokenized = word_tokenize(paragraph)
tagged = pos_tag(tokenized)
print('<p>')
for word, pos in tagged:
print('<span class="{0} {1}">{2}</span>'.format(pos.replace('.', 'dot').replace(',', 'comma').replace('(', 'marks').replace(')', 'marks').replace(':', 'marks').replace(';', 'marks'), word.replace('.', 'dot').replace(',', 'comma').replace('(', 'marks').replace(')', 'marks').replace(':', 'marks').replace(';', 'marks').lower(), word))
print('</p>')
print('</div>')
#tos top words list
print('<div class="top_words"><div class="top_words_title" style="-webkit-text-decoration-line: underline; text-decoration-line: underline;" >colonial words:</div>')
tokens_without_stopwords = nltk.FreqDist(words.lower() for words in tokenized if words.lower() not in tos_all_stopwords)
frequency_word = FreqDist(tokens_without_stopwords)
top_words = tokens_without_stopwords.most_common(30)
for chosen_words, frequency in top_words:
print('<div class="chosen_words" >&nbsp;{}&nbsp;({}) </div>'.format(chosen_words, frequency))
print('</div></div></div>')
#t_wrapper (second wrapper)
print('</div><div class="t_wrapper"><div class="t_intro">')
#insert an image
# https://upload.wikimedia.org/wikipedia/commons/1/15/Joffe_signing_the_Treaty_of_Tartu.jpg
img_url = base64.b64encode(open('img/tartu.jpeg', 'rb').read()).decode('utf-8')
t_image = '<div class="t_img">Peace Treaty of Tartu, Estonia<br><img class="t_image" src="data:img/tartu.jpeg;base64,{}"></div>'.format(img_url)
print(t_image)
#t_info box
print('<div class ="t_info">')
t_infotext = [('Name of Treaty', 'Peace Treaty of Tartu'), ('Country of Origin', 'Russia'), ('Signed', 'February 2, 1920'), ('Location', 'Tartu, Estonia'), ('Word Counts', '2,104'), ('Type', 'bilateral peace treaty'), ('Original Source', '<a href="https://en.wikipedia.org/wiki/Treaty_of_Tartu_(Russian-Estonian)">link</a>'), ('Description', 'The Tartu Peace Treaty or Treaty of Tartu is a peace treaty between Estonia and Russian Soviet Federative Socialist Republic signed on 2 February 1920, ending the Estonian War of Independence.')]
for t_title, t_info in t_infotext:
print('<div class="t_info-{0}"><div class="info_t_title" style="-webkit-text-decoration-line: underline; text-decoration-line: underline;" >{0}</div><div class="t_info_content">{1}</div></div><br>'.format(t_title, t_info))
print('</div>')
#Treaty text
print('<div class="t_paragraph">')
for t_paragraph in russia_text_list:
t_tokenized = word_tokenize(t_paragraph)
t_tagged = pos_tag(t_tokenized)
print('<p>')
for t_word, t_pos in t_tagged:
print('<span class="{0} {1}">{2}</span>'.format(t_pos.replace('.', 'dot').replace(',', 'comma').replace('(', 'marks').replace(')', 'marks').replace(':', 'marks').replace(';', 'marks'), t_word.replace('.', 'dot').replace(',', 'comma').replace('(', 'marks').replace(')', 'marks').replace(':', 'marks').replace(';', 'marks').lower(), t_word))
print('</p>')
print('</div>')
#treaty colonial top words list
print('<div class="t_top_words"><div class="t_top_words_title" style="-webkit-text-decoration-line: underline; text-decoration-line: underline;" >colonial words:</div>')
t_tokens_without_stopwords = nltk.FreqDist(words.lower() for words in t_tokenized if words.lower() not in t_all_stopwords)
t_frequency_word = FreqDist(t_tokens_without_stopwords)
t_top_words = t_tokens_without_stopwords.most_common(20)
for t_chosen_words, t_frequency in t_top_words:
print('<div class="t_chosen_words" >&nbsp;{}&nbsp;({}) </div>'.format(t_chosen_words, t_frequency))
print('</div></div></div>')
##### not working
# #treaty colonial top words list
# print('<div class="t_top_words"><div class="t_top_words_title" style="-webkit-text-decoration-line: underline; text-decoration-line: underline;" >colonial words:</div>')
# for words in faceapp_text_list:
# t_tokens_without_stopwords = nltk.FreqDist(words.lower() for words in t_tokenized if words.lower() not in t_all_stopwords)
# t_frequency_word = FreqDist(t_tokens_without_stopwords)
# t_top_words = t_tokens_without_stopwords.most_common(20)
# for t_chosen_words, t_frequency in t_top_words:
# print('<div class="t_chosen_words" >&nbsp;{}&nbsp;({}) </div>'.format(t_chosen_words, t_frequency))
# print('</div></div></div>')
print('</div>')
print('''</body></html>''')

@ -0,0 +1,92 @@
-
'
(
)
"
faceapp
:
;
1
2
3
4
5
6
7
8
9
10
including
a
about
within
without
all
an
and
are
as
at
be
but
by
can
do
from
get
had
has
have
he
I
i
if
in
into
is
it
its
me
more
my
not
of
on
one
or
other
out
so
some
such
than
that
the
their
them
then
there
these
they
this
those
to
up
was
were
what
when
which
who
whom
will
with
would
|
,
.

@ -0,0 +1,96 @@
-
'
(
)
"
faceapp
:
;
1
2
3
4
5
6
7
8
9
10
article
estonia
estonian
including
within
without
article
a
about
all
an
and
are
as
at
be
but
by
can
do
from
get
had
has
have
he
I
i
if
in
into
is
it
its
me
more
my
not
of
on
one
or
other
out
so
some
such
than
that
the
their
them
then
there
these
they
this
those
to
up
was
were
what
when
which
who
whom
will
with
would
|
,
.

@ -0,0 +1,173 @@
1 Eligibility
You must be at least 13 years of age to access or use our Services. If you are under 18 years of age (or the age of legal majority where you live), you may only access or use our Services under the supervision of a parent or legal guardian who agrees to be bound by this Agreement. If you are a parent or legal guardian of a user under the age of 18 (or the age of legal majority), you agree to be fully responsible for the acts or omissions of such user in connection with our Services. If you are accessing or using our Services on behalf of another person or entity, you represent that you are authorized to accept this Agreement on that person or entitys behalf and that the person or entity agrees to be responsible to us if you or the other person or entity violates this Agreement.
2 User Accounts and Account Security
If you choose to login to the Services via a third-party platform or social media network, you will need to use your credentials (e.g., username and password) from a third-party online platform. You must maintain the security of your third party account and promptly notify us if you discover or suspect that someone has accessed your account without your permission. If you permit others to use your account credentials, you are responsible for the activities of such users that occur in connection with your account.
3 Privacy
Please refer to our Privacy Policy for information about how we collect, use and disclose information about you.
4 User Content
Our Services may allow you and other users to create, post, store and share content, including photos, videos, messages, text, software and other materials (collectively, “User Content”). User Content does not include user-generated filters. Subject to this Agreement and the Privacy Policy, you retain all rights in and to your User Content, as between you and FaceApp. Further, FaceApp does not claim ownership of any User Content that you post on or through the Services. You grant FaceApp a nonexclusive, royalty-free, worldwide, fully paid license to use, reproduce, modify, adapt, create derivative works from, distribute, perform and display your User Content during the term of this Agreement solely to provide you with the Services.
You acknowledge that some of the Services are supported by advertising revenue and may display advertisements and promotions, and you hereby agree that FaceApp may place such advertising and promotions on the Services or on, about, or in conjunction with your User Content. The manner, mode and extent of such advertising and promotions are subject to change without specific notice to you. You acknowledge that we may not always identify paid services, sponsored content, or commercial communications as such.
You represent and warrant that: (i) you own or otherwise have the right to use the User Content modified by you on or through the Services in accordance with the rights and licenses set forth in this Agreement; (ii) you agree to pay for all royalties, fees, and any other monies owed by reason of User Content you stylize on or through the Services; and (iii) you have the legal right and capacity to enter into this Agreement in your jurisdiction.
You may not create, post, store or share any User Content that violates this Agreement or for which you do not have all the rights necessary to grant us the license described above. Although we have no obligation to screen, edit or monitor User Content, we may delete or remove User Content at any time and for any reason.
FaceApp is not a backup service and you agree that you will not rely on the Services for the purposes of User Content backup or storage. FaceApp will not be liable to you for any modification, suspension, or discontinuation of the Services, or the loss of any User Content.
5 Prohibited Conduct and Content
You will not violate any applicable law, contract, intellectual property or other third-party right or commit a tort, and you are solely responsible for your conduct while accessing or using our Services. You will not:
Engage in any harassing, threatening, intimidating, predatory or stalking conduct;
Use or attempt to use another users account without authorization from that user and FaceApp;
Use our Services in any manner that could interfere with, disrupt, negatively affect or inhibit other users from fully enjoying our Services or that could damage, disable, overburden or impair the functioning of our Services in any manner;
Reverse engineer any aspect of our Services or do anything that might discover source code or bypass or circumvent measures employed to prevent or limit access to any part of our Services;
Attempt to circumvent any content-filtering techniques we employ or attempt to access any feature or area of our Services that you are not authorized to access;
Develop or use any third-party applications that interact with our Services without our prior written consent, including any scripts designed to scrape or extract data from our Services;
Use our Services for any illegal or unauthorized purpose, or engage in, encourage or promote any activity that violates this Agreement.
You may also only post or otherwise share User Content that is non-confidential and you have all necessary rights to disclose. You may not create, post, store or share any User Content that:
- Is unlawful, libelous, defamatory, obscene, pornographic, indecent, lewd, suggestive, harassing, threatening, invasive of privacy or publicity rights, abusive, inflammatory or fraudulent;
- Would constitute, encourage or provide instructions for a criminal offense, violate the rights of any party or otherwise create liability or violate any local, state, national or international law;
- May infringe any patent, trademark, trade secret, copyright or other intellectual or proprietary right of any party;
- Contains or depicts any statements, remarks or claims that do not reflect your honest views and experiences;
- Impersonates, or misrepresents your affiliation with, any person or entity;
Contains any unsolicited promotions, political campaigning, advertising or solicitations;
- Contains any private or personal information of a third party without such third partys consent;
- Contains any viruses, corrupted data or other harmful, disruptive or destructive files or content; or
- Is, in our sole judgment, objectionable or that restricts or inhibits any other person from using or enjoying our Services, or that may expose FaceApp or others to any harm or liability of any type.
- In addition, although we have no obligation to screen, edit or monitor User Content, we may delete or remove User Content at any time and for any reason.
6 Limited License; Copyright and Trademark
Our Services and the text, graphics, images, photographs, videos, illustrations, trademarks, trade names, page headers, button icons, scripts, service marks, logos, slogans, filters, user generated filters and other content contained therein (collectively, the “FaceApp Content”) are owned by or licensed to FaceApp and are protected under both United States and foreign laws. Except as explicitly stated in this Agreement, FaceApp and our licensors reserve all rights in and to our Services and the FaceApp Content. You are hereby granted a limited, nonexclusive, nontransferable, non-sublicensable, revocable license to access and use our Services and FaceApp Content for your own personal use; however, such license is subject to this Agreement and does not include any right to: (a) sell, resell or commercially use our Services or FaceApp Content; (b) copy, reproduce, distribute, publicly perform or publicly display FaceApp Content, except as expressly permitted by us or our licensors; (c) modify the FaceApp Content, remove any proprietary rights notices or markings, or otherwise make any derivative uses of our Services or FaceApp Content, except as expressly set forth in this Agreement; (d) use any data mining, robots or similar data gathering or extraction methods; or (e) use our Services or FaceApp Content other than as expressly provided in this Agreement. Any use of our Services or FaceApp Content other than as specifically authorized herein, without our prior written permission, is strictly prohibited and will terminate the license granted under this Agreement. You will not remove, alter or conceal any copyright, trademark, service mark or other proprietary rights notices incorporated in or accompanying the FaceApp Content.
7 Feedback
Any questions, comments, suggestions, ideas, original or creative materials or other information you submit about FaceApp or our products or Services (collectively, “Feedback”), is non-confidential and we have no obligations (including without limitation obligations of confidentiality) with respect to such Feedback. You hereby grant to FaceApp a fully paid, royalty-free, perpetual, irrevocable, worldwide, non-exclusive, and fully sublicensable right and license to use, reproduce, perform, display, distribute, adapt, modify, re-format, create derivative works of, and otherwise commercially or non-commercially exploit in any manner, any and all Feedback, and to sublicense the foregoing rights, in connection with the operation and maintenance of the Services and/or FaceApps business.
8 Copyright Complaints
We have a policy of limiting access to our Services and terminating the accounts of users who repeatedly infringe the intellectual property copyright rights of others upon prompt notification to us by the copyright owner or the copyright owners legal agent. Without limiting the foregoing, if you believe that your work has been copied and posted on or through the Services in a way that constitutes copyright infringement, please provide our Copyright Agent with the following information: (a) an electronic or physical signature of the person authorized to act on behalf of the owner of the copyright interest; (b) a description of the copyrighted work that you claim has been infringed; (c) a description of the location on the Services of the material that you claim is infringing; (d) your address, telephone number and e-mail address; € a written statement by you that you have a good faith belief that the disputed use is not authorized by the copyright owner, its agent or the law; and (f) a statement by you, made under penalty of perjury, that the above information in your notice is accurate and that you are the copyright owner or authorized to act on the copyright owners behalf. Contact information for FaceApps Copyright Agent for notice of claims of infringement is as follows: Yaroslav Goncharov, Designated DMCA Copyright Agent, FaceApp Inc, 1000 N West Street, Suite 1200, Wilmington, Delaware, 19801.
9 Indemnification
To the fullest extent permitted by applicable law, you will indemnify, defend, and hold harmless FaceApp and each of our respective officers, directors, agents, partners and employees (individually and collectively, the “FaceApp Parties”) from and against any loss, liability, claim, demand, damages, expenses or costs (“Claims”) arising out of or related to (a) your access to or use of our Services; (b) your User Content or Feedback; (c) your violation of this Agreement; (d) your violation, misappropriation or infringement of any rights of another (including intellectual property rights or privacy rights); or (e) your conduct in connection with our Services. You agree to promptly notify FaceApp Parties of any third party Claims, cooperate with FaceApp Parties in defending such Claims and pay all fees, costs and expenses associated with defending such Claims (including, but not limited to, attorneys fees). You also agree that the FaceApp Parties will have control of the defense or settlement of any third party Claims. This indemnity is in addition to, and not in lieu of, any other indemnities set forth in a written agreement between you and FaceApp or the other FaceApp Parties.
10 Disclaimers
We do not control, endorse or take responsibility for any User Content or third-party content available on or linked to by our Services.
Your use of our services is at your sole risk. Our services are provided “as is” and “as available” without warranties of any kind, either express or implied, including, but not limited to, implied warranties of merchantability, fitness for a particular purpose, title, and non-infringement. In addition, faceapp does not represent or warrant that our services are accurate, complete, reliable, current or error-free. While faceapp attempts to make your access to and use of our services safe, we cannot and do not represent or warrant that our services or servers are free of viruses or other harmful components. You assume the entire risk as to the quality and performance of the services.
11 Limitation of Liability
Faceapp and the other faceapp parties will not be liable to you under any theory of liability—whether based in contract, tort, negligence, strict liability, warranty, or otherwise—for any indirect, consequential, exemplary, incidental, punitive or special damages or lost profits, even if faceapp or the other faceapp parties have been advised of the possibility of such damages.
The total liability of faceapp and the other faceapp parties, for any claim arising out of or relating to this agreement or our services, regardless of the form of the action, is limited to the amount paid, if any, by you to access or use our services.
The limitations set forth in this section will not limit or exclude liability for the gross negligence, fraud or intentional misconduct of FaceApp or the other FaceApp Parties or for any other matters in which liability cannot be excluded or limited under applicable law. Additionally, some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so the above limitations or exclusions may not apply to you.
12 Release
To the fullest extent permitted by applicable law, you release FaceApp and the other FaceApp Parties from responsibility, liability, claims, demands, and/or damages (actual and consequential) of every kind and nature, known and unknown (including, but not limited to, claims of negligence), arising out of or related to disputes between users and the acts or omissions of third parties. You expressly waive any rights you may have under California Civil Code § 1542 as well as any other statute or common law principles that would otherwise limit the coverage of this release to include only those claims which you may know or suspect to exist in your favor at the time of agreeing to this release.
13 Transfer and Processing Data
By accessing or using our Services, you acknowledge and, as applicable, consent to the processing, transfer and storage of information about you in and to the United States and other countries.
14 Dispute Resolution; Binding Arbitration Agreement
Please read the following section carefully because it requires users who are U.S. residents to arbitrate certain disputes and claims with FaceApp and limits the manner in which you can seek relief from us.
Applicability of Arbitration Agreement. Except for small claims disputes in which you or FaceApp seek to bring an individual action in small claims court located in the county of your billing address or disputes in which you or FaceApp seeks injunctive or other equitable relief for the alleged unlawful use of intellectual property, you and FaceApp waive your rights to a jury trial and to have any dispute arising out of or related to this Agreement or our Services resolved in court. This Arbitration Agreement shall apply, without limitation, to all disputes or claims and requests for relief that arose or were asserted before the effective date of this Agreement or any prior version of this Agreement.
Arbitration Rules and Forum. The Federal Arbitration Act governs the interpretation and enforcement of this Arbitration Agreement. To begin an arbitration proceeding, you must send a letter requesting arbitration and describing your dispute or claim or request for relief to our registered agent [include name and address of registered agent here]. The arbitration will be resolved through confidential binding arbitration by the Judicial Arbitration and Mediation Services (“JAMS”), an established alternative dispute resolution provider. Disputes involving claims, counterclaims, or requests for relief under $250,000, not inclusive of attorneys fees and interest, shall be subject to JAMSs most current version of the Streamlined Arbitration Rules and procedures available; all other disputes shall be subject to JAMSs most current version of the Comprehensive Arbitration Rules and Procedures, available at http://www.jamsadr.com/rules-comprehensive-arbitration/. JAMSs rules are also available at www.jamsadr.com or by calling JAMS at 800-352-5267. If JAMS is not available to arbitrate, the parties will select an alternative arbitral forum. If the arbitrator finds that you cannot afford to pay JAMSs filing, administrative, hearing and/or other fees and cannot obtain a waiver from JAMS, FaceApp will pay them for you. In addition, we will reimburse all such JAMSs filing, administrative, hearing and/or other fees for disputes, claims, or requests for relief totaling less than $10,000 unless the arbitrator determines the claims are frivolous. You may choose to have the arbitration conduced by telephone, based on written submissions, or in person in the country where you live or at another mutually agreed location. Any judgment on the award rendered by the arbitrator may be entered in any court of competent jurisdiction.
You may choose to have the arbitration conduced by telephone, based on written submissions or at another mutually agreed location. Any judgment on the award rendered by the arbitrator may be entered in any court of competent jurisdiction.
Authority of Arbitrator. The arbitrator shall have exclusive authority to (a) determine the scope and enforceability of this Arbitration Agreement and (b) resolve any dispute related to the interpretation, applicability, enforceability or formation of this Arbitration Agreement, including, but not limited to, any assertion that all or any part of this Arbitration Agreement is void or voidable. The arbitration will decide the rights and liabilities, if any, of you and FaceApp. The arbitration proceeding will not be consolidated with any other matters or joined with any other cases or parties. The arbitrator shall have the authority to grant motions dispositive of all or part of any claim. The arbitrator shall have the authority to award monetary damages and to grant any non-monetary remedy or relief available to an individual under applicable law, the arbitral forums rules, and the Agreement (including the Arbitration Agreement). The arbitrator shall issue a written award and statement of decision describing the essential findings and conclusions on which the award is based, including the calculation of any damages awarded. The arbitrator has the same authority to award relief on an individual basis that a judge in a court of law would have. The award of the arbitrator is final and binding upon you and us.
Waiver of Jury Trial. YOU AND FACEAPP HEREBY WAIVE ANY CONSTITUTIONAL AND STATUTORY RIGHTS TO SUE IN COURT AND HAVE A TRIAL IN FRONT OF A JUDGE OR A JURY. You and FaceApp are instead electing that all disputes, claims or requests for relief shall be resolved by arbitration under this Arbitration Agreement, except as specified above. An arbitrator can award on an individual basis the same damages and relief as a court and must follow this Agreement as a court would. However, there is no judge or jury in arbitration, and court review of an arbitration award is subject to very limited. Review.
Waiver of Class or Other Non-Individualized Relief. ALL DISPUTES, CLAIMS AND REQUESTS FOR RELIEF WITHIN THE SCOPE OF THIS ARBITRATION AGREEMENT MUST BE ARBITRATED ON AN INDIVIDUAL BASIS AND NOT ON A CLASS OR COLLECTIVE BASIS. ONLY INDIVIDUAL RELIEF IS AVAILABLE, AND CLAIMS OF MORE THAN ONE USER CANNOT BE ARBITRATED OR CONSOLIDATED WITH THOSE OF ANY OTHER USER. If a decision is issued stating that applicable law precludes enforcement of any of this subsections limitations as to a given dispute, claim or request for relief, then such aspect must be severed from the arbitration and brought into the State or Federal Courts located in the State of California. All other disputes, claims, or requests for relief shall be arbitrated.
30-Day Right to Opt-Out. You have the right to opt out of the provisions of this Arbitration Agreement by sending written notice of your decision to opt-out to: arbitration@faceapp.com, within 30 days after first becoming subject to this Arbitration Agreement. Your notice must include your name and address, your username (if any), the e-mail address you used to set up your account (if you have one), and an unequivocal statement that you want to opt out of this Arbitration Agreement. If you opt out of this Arbitration Agreement, all other parts of this Agreement will continue to apply to you. Opting out of this Arbitration Agreement has no effect on any other arbitration agreements that you may currently have, or may enter in the future, with us.
You and FaceApp agree that the state or federal courts of the State of California and the United States sitting in Santa Clara County, California have exclusive jurisdiction over any appeals and the enforcement of an arbitration award.
Severability. Except as provided in this Section 14 above, if any part or parts of this Arbitration Agreement are found under the law to be invalid or unenforceable, then such specific part or parts shall be of no force and effect and shall be severed, and the remainder of the Arbitration Agreement shall continue in full force and effect.
Survival of Agreement. This Arbitration Agreement will survive the termination of your relationship with FaceApp.
Modification, Notwithstanding any provision in this Agreement to the contrary, we agree that if FaceApp makes any future material change to this Arbitration Agreement you may reject that change within thirty (30) days of such change becoming effective by writing Company at the following address: arbitration@faceapp.com.
15. Governing Law and Venue
This Agreement and your access to and use of our Services will be governed by and construed and enforced in accordance with the laws of California, consistent with the Federal Arbitration Act, without regard to conflict of law rules or principles (whether of California or any other jurisdiction) that would cause the application of the laws of any other jurisdiction. The United Nations Convention for the International Sale of Goods does not apply to the Agreement. Any dispute between the parties that is not subject to arbitration or cannot be heard in small claims court will be resolved in the state or federal courts of California and the United States, respectively, sitting in Santa Clara County, California.
16 Electronic Communications
By accessing or using the Services, you also consent to receive electronic communications from FaceApp (e.g., responses to your requests, questions and feedback, announcements, updates, and security alerts through a push notification or by posting notices on our Services). You agree that any notices, agreements, disclosures or other communications that we send to you electronically will satisfy any legal communication requirements, including, but not limited to, that such communications be in writing.
17 Termination
We reserve the right, without notice and in our sole discretion, to terminate your right to access or use our Services. We are not responsible for any loss or harm related to your inability to access or use our Services.
18 Severability
If any provision or part of a provision of this Agreement is unlawful, void or unenforceable, that provision or part of the provision is deemed severable from this Agreement and does not affect the validity and enforceability of any remaining provisions.
19 Additional Terms Applicable to iOS Devices
The following terms apply if you install, access or use the Services on any device that contains the iOS mobile operating system (the “App”) developed by Apple Inc. (“Apple”).
Acknowledgement. You acknowledge that this Agreement is concluded solely between us, and not with Apple, and FaceApp, not Apple, is solely responsible for the App and the content thereof. You further acknowledge that the usage rules for the App are subject to any additional restrictions set forth in the Usage Rules for the Apple App Store Terms of Service as of the date you download the App, and in the event of any conflict, the Usage Rules in the App Store shall govern if they are more restrictive. You acknowledge and agree that you have had the opportunity to review the Usage Rules.
Scope of License. The license granted to you is limited to a non-transferable license to use the App on any iPhone, iPod touch or iPad that you own or control as permitted by the Usage Rules set forth in the Apple App Store Terms of Service.
Maintenance and Support. You and FaceApp acknowledge that Apple has no obligation whatsoever to furnish any maintenance and support services with respect to the App.
Warranty. You acknowledge that Apple is not responsible for any product warranties, whether express or implied by law, with respect to the App. In the event of any failure of the App to conform to any applicable warranty, you may notify Apple, and Apple will refund the purchase price, if any, paid to Apple for the App by you; and to the maximum extent permitted by applicable law, Apple will have no other warranty obligation whatsoever with respect to the App. The parties acknowledge that to the extent that there are any applicable warranties, any other claims, losses, liabilities, damages, costs or expenses attributable to any failure to conform to any such applicable warranty would be the sole responsibility of FaceApp. However, you understand and agree that in accordance with this Agreement, FaceApp has disclaimed all warranties of any kind with respect to the App, and therefore, there are no warranties applicable to the App.
Product Claims. You and FaceApp acknowledge that as between Apple and FaceApp, FaceApp, not Apple, is responsible for addressing any claims relating to the App or your possession and/or use of the App, including, but not limited to (a) product liability claims, (b) any claim that the App fails to conform to any applicable legal or regulatory requirement, and (c) claims arising under consumer protection or similar legislation.
Intellectual Property Rights. The parties acknowledge that, in the event of any third party claim that the App or your possession and use of the App infringe that third partys intellectual property rights, FaceApp, and not Apple, will be solely responsible for the investigation, defense, settlement and discharge of any such intellectual property infringement claim to the extent required under this Agreement.
Legal Compliance. You represent and warrant that (a) you are not located in a country that is subject to a U.S. Government embargo, or that has been designated by the U.S. Government as a “terrorist supporting” country, and (b) you are not listed on any U.S. Government list of prohibited or restricted parties.
Developer Name and Address. Any questions, complaints or claims with respect to the App should be directed to:
FaceApp Inc
1000 N West Street, Suite 1200,
Wilmington, Delaware, 19801
USA
contact@faceapp.com
Third-Party Terms of Agreement. You agree to comply with any applicable third-party terms when using the Services.
Third-Party Beneficiary. The parties acknowledge and agree that Apple, and Apples subsidiaries, are third-party beneficiaries of this Agreement, and that, upon your acceptance of this Agreement, Apple will have the right (and will be deemed to have accepted the right) to enforce this Agreement against you as a third-party beneficiary thereof).
20 Export
You may not use, export, import, or transfer all or any portion of the Services except as authorized by U.S. law, the laws of the jurisdiction in which you obtained the Services, and any other applicable laws. In particular, but without limitation, the Services may not be exported or re-exported (a) into any United States embargoes countries, or (b) to anyone on the U.S. Treasury Departments list of Specially Designated Nationals or the U.S. Department of Commerces Denied Persons List or Entity List. By using the Services, you represent and warrant that (y) you are not located in a country that is subject to a U.S. Government embargo, or that has been designated by the U.S. Government as a “terrorist supporting” country and (z) you are not listed on any U.S. Government list of prohibited or restricted parties. You also will not use the Services for any purpose prohibited by U.S. law, including the development, design, manufacture or production of missiles, nuclear, chemical or biological weapons. You acknowledge and agree that products, services or technology provided by FaceApp are subject to the export control laws and regulations of the United States. You shall comply with these laws and regulations and shall not, without prior U.S. government authorization, export, re-export, or transfer FaceApp products, services or technology, either directly or indirectly, to any country in violation of such laws and regulations.
21 Miscellaneous
In accordance with California Civil Code section 1789.3, you may report complaints to the Complaint Assistance Unit of the Division of Consumer Services of the California Department of Consumer Affairs by contacting them in writing at 400 R Street, Sacramento, CA 95814, or by telephone at (800) 952-5210. This Agreement constitutes the entire agreement between you and FaceApp relating to your access to and use of our Services. The failure of FaceApp to exercise or enforce any right or provision of this Agreement will not operate as a waiver of such right or provision. The section titles in this Agreement is for convenience only and have no legal or contractual effect. Except as otherwise provided herein, this Agreement is intended solely for the benefit of the parties and are not intended to confer third party beneficiary rights upon any other person or entity.

@ -0,0 +1,66 @@
Article 1
The state of war between the Contracting Parties will end on the day on which the present Treaty of Peace comes into force.
Article 2
In consequence of the right of all peoples to self-determination, to the point of seceding completely from the State of which they form part, a right proclaimed by the Socialist and Federal Russian Republic of the Soviets, Russia unreservedly recognises the independence and sovereignty of the State of Estonia, and renounces voluntarily and for ever all sovereign rights possessed by Russia over the Estonian people and territory whether these rights be based on the juridical position that formerly existed in public law, or in the international treaties which, in the sense here indicated, lose their validity in future. From the fact that Estonia has belonged to Russia, no obligation whatsoever will fall on the Estonian people and land to Russia.
Article 3
1. The frontier between Esthonia and Russia follows the following line:
Starting from the Bay of Narva, one verst south of the Fishers House, it turns toward Ropscha, then follows the course of the Rivers Mertvitskaja and Rosson, as far as the village of Ilkino, from Ilkino one verst west of the village Keikino, half a verst west of the village of Isvosi and turns towards the village of Kobõljaki; it then crosses the mouth of the river Schtschutschka, passes by Krivaja Luka, by the estate of Petschurki, to the confluence of three sources of the river Vtroja, follows the southern boundary of the village of Kuritschek with its dependences, then turns in a straight line as far as the centre line of the Lake Peipus, follows it in a southern direction, and thus passes one verst to the east of Piirisaar (Pork); follows the narrow strip of the lake dividing it along the middle as far as the island of Salu, thence passes through Lake Pihkva (Pskov) between the Islands of Talabski and the Island of Kamonka, then to the east of the village of Poddubje (on the southern bank of Lake Pihkva) and to the outlook post on the railway situated near to Grjardischtsche, then passes successively to the west of the Village of Schahintsõi, to the east of Novaja, across the Lake Poganova, between the villages of Babina and Vomorski, to one verst and a half to the south of the Forestry keepers house (which is situated to the north of Glybotschina) to Sprechtitschi and to the Farm Kudepi.
Note 1. The Frontier described in this Article is shown in red on the map, scale of three versts to the inch (0.0254 metre), which constitutes the first Annex to Article 3. In case of difference between the text and the map, it is to the text that one must adhere.
Note 2. The tracing of the boundary between the two contracting countries and the placing in position of the frontier signs will be carried out under the direction of a special mixed commission composed of an equal number of members from both parties. In marking the boundary line this mixed commission will decide the allocation of inhabited areas on the frontier to one or other of the parties according to ethnographical indications and bearing in mind economic agreements and agricultural consideration.
2. The portion of the territory of Esthonia to the east of the Narova, the River Narova itself, and the islands in the midst of the stream, as well as the zone to the south of Lake Pihkva, which is situated between the boundary above mentioned and the line of villages, Borok-Smolni-Belkova-Sprechtitschi, will be, from a military point of view, considered as neutral until 1 January 1922.
Esthonia undertakes to maintain no troops of any kind in the neutralized zones other than those which are necessary for the frontier service and the maintenance of order, and of which the strength is laid down in Annex 2 of the present Article; not to construct fortifications or observation posts, nor to constitute military depots, nor to deposit any kind of war material whatsoever with the exception of what is indispensable for the effectives allowed for; nor to establish ther bases or depots for the use of any kind of vessels, or of any kind of aerial fleet.
3. Russia for her part undertakes not to maintain troops in the region of Pskov to the west of the line: western bank of the mouth of Velikaja, the villages of Sivtseva, Luhnova, Samulina, Schalki and Sprechtitschi until 1 January 1922, which are indispensable for the frontier service and for the maintenance of order and for the effectives provided for in Annex 2 of the present Article.
4. The contracting parties undertake to have no armed vessels whatsoever on Lakes Peipus and Pihkva.
Article 4
During one year from the day of ratification of the present Treaty, persons of non-Estonian origin living in Estonia, and over eighteen years of age, have the right to opt for Russian nationality; women, and children, less than eighteen years of age, take the nationality of the husband or the father, unless there exists between man and wife any contrary agreement. The people who have opted for Russian nationality must, within a year from the date of their choice, leave Estonian territory; but they maintain their rights over the property and can take with them their movable property. In the same way persons of Estonian origin living in Russia can opt for Estonian nationality within the same length of time and under the same conditions.
Each of the contracting Governments reserves the right to refuse acceptance to its citizenship of such persons.
Note. In case of doubt about tho origin of persons, all those who could have been personally registered or whose parents would have been registered in a rural or urban community, or in a “class” on the territory now composing the State of Estonia, shall be considered as Estonians.
Article 5
In case the perpetual neutrality of Estonia should be internationally recognised, Russia undertakes to respect this neutrality and to take part in guaranteeing it.
Article 6
Should the Gulf of Finland be neutralised, the two contracting Parties undertake to accede to this neutralisation, on conditions determined by common agreement by all the States concerned, and established by the international acts relating thereto; should the international convention referred to be concluded, they also undertake to put their naval forces, or part thereof, into such conditions as this international convention may require.
Article 7
The two Contracting Parties undertake:
1. To prohibit the presence in their territory of any troops with the exception of those of their own Government or of friendly States with whom one of the Contracting Parties may have concluded a military convention, but which are not de facto in a state of war with one of the Contracting Parties, and also to prohibit within the limits of their territory, the recruiting and mobilisation of particular corps by States, organisations and groups, intended for armed conflict against the other Contracting Parties.
2. To disarm those military and naval forces within their territory which did not belong to one of the Contracting Parties on the first of October, One thousand nine hundred and nineteen; to neutralise and immobilise, until the first of January, One thousand nine hundred and twenty-two, all property, artillery and commissariat material (exclusive of food and clothing), engineering and aviational material, i. e., guns, machine guns, rifles, side-arms, munitions, aeroplanes, armoured vehicles, tanks, armoured trains, etc., belonging to the military and naval forces referred to with the exception of such technical and war material as was handed over to these forces, but which belongs to the Contracting Parties or to other States, any portion of this material which belongs to other States shall be returned within six months from the date of the ratification of this Treaty. The disarmament of the above-mentioned irregular military and naval forces, and the immobilisation and neutralisation of their military stocks and of all their technical and war material must be completed: the first 30 per cent. of men and material within the first seven days after the ratification of the present Treaty of Peace, and the remainder within the two following weeks at the rate of thirty-five per cent per week.
3. To prohibit the soldiers and officers of the irregular troops who are subject to disarmament under the conditions laid down by the prececing Point (2) from joining in any capacity whatsoever, as volunteers, the ranks of the Government troops of the Contracting Parties, with the exception of:
(a) Persons of Estonian nationality who reside outside Estonia, but who have opted for that country;
(b) Persons not of Estonian nationality who resided in Estonia before the first of May, One thousand nine hundred and nineteen, and who have not opted to Russia;
(c) Persons not of Estonian nationality who have not opted for Russia and who served in the Estonian army before the twenty-seventh of November, One thousand nine hundred and nineteen.
Persons belonging to the classes mentioned in sub-divisions (a), (b), and (c), may serve with the armies of the Estonian Government.
4. (a) To prohibit any State, which is de facto in a state of war with one of the Contracting Parties, and any organisations or groups intended for an armed conflict with one of the Contracting Parties, for transporting through their ports or their territories anything which might be used for attacking the other Contracting Party, particularly armed forces belonging to these States, organisations or groups, and any article and war material used for artillery, commissariat, engineering, aviation, etc., which may belong to these military formations.
4. (b) To prohibit, exclusive of cases provided for by international law, the launching and navigation in their territorial waters of any warships, gun-boats, mine-layers, etc., belonging either to organisations or groups which are intended to fight against the other Contracting Party or to States which are in a state of war with this party, if those ships are intended to attack it, and if this intention is known to the Contracting Party to whose territory the ports and territorial waters so used belong.
5. Not to authorise the formation or presence in their territory of any organisation or groups whatsoever, which claim to govern the whole or part of the territory of the other Contracting Party, or the presence of representatives or officials of organisations and groups, whose object it is to overthrow the Government of the other party to the Treaty.
6. The Governments of the two Contracting Parties undertake, upon exchanging the ratification of this Treaty of Peace to furnish each other with precise information regarding the strength of the non-Governmental and also of military stocks (stationary or mobile), and of the military and technical material belonging to those irregular forces, which were on their territory at the time when the Armistice was concluded, that is to say, on the thirty-first of December, One thousand nine hundred and nineteen.
7. In order to superintend the carrying out of the military guarantees conceded to each other by the Contracting Parties, a mixed commission is to be established whose composition, rights and obligations shall be determined by “Instructions” which are annxed to the present Article.

Binary file not shown.

@ -0,0 +1,222 @@
/* FaceApp*/
p {
margin-bottom: 30px;
}
.img {
font-family: Belgika;
font-size: 20pt;
margin-left: calc(10vw + 5px);
}
.image {
height: 10vh;
margin-top: 30px;
cursor: pointer;
}
.img_clicked {
height: calc(20vw);
margin-top: 30px;
}
.t_img {
font-family: Belgika;
font-size: 20pt;
margin-right: calc(10vw + 5px);
}
.t_image {
height: 10vh;
margin-top: 30px;
cursor: pointer;
}
.t_img_clicked {
height: calc(20vw);
margin-top: 30px;
}
.info {
font-family: belgika-16th;
font-size: 8pt;
width: calc(30vw);
float: left;
margin-top: 30px;
margin-left: calc(10vw + 5px);
column-count: 2;
}
.t_info {
font-family: belgika-16th;
font-size: 8pt;
width: calc(30vw);
float: left;
margin-top: 30px;
margin-right: calc(10vw + 5px);
column-count: 2;
}
.paragraph {
width: 75%;
padding: 10px;
margin-top: 70px;
float: right;
}
.t_paragraph {
width: 75%;
padding: 10px;
margin-top: 70px;
float: left;
}
.top_words {
background-color: black;
width: 10%;
height: 100%;
left: 0;
font-family: Belgika;
font-weight: 16th;
font-size: 7.5pt;
color: white;
letter-spacing: 0.5px;
line-height: 1;
position: fixed;
}
.top_words_title {
# background-color: yellow;
margin: 40px 10px 10px 10px;
width: 80%;
}
.chosen_words {
# background-color: pink;
padding: 10px 1px 1px 10px;
}
.chosen_words:hover {
background-color: white;
color: red;
}
.t_top_words {
background-color: black;
width: 10%;
height: 100%;
font-family: Belgika-16th;
font-size: 7.5pt;
color: white;
letter-spacing: 0.5px;
line-height: 1;
position: fixed;
float: right;
right: 0;
top: 0;
}
.t_top_words_title {
margin: 40px 10px 10px 10px;
width: 80%;
}
.t_chosen_words {
padding: 10px 1px 1px 10px;
}
.t_chosen_words:hover {
background-color: white;
color: red;
}
.hide {
# color: white;
background-color: black;
}
.TO:hover, .DT:hover, .IN:hover, .WDT:hover, .WP:hover, .MD:hover, .PRP:hover, .CC:hover, .marks:hover, .comma:hover, .dot:hover {
background-color: black;
}
.adjective {
color: white;
background-color: blue;
}
.JJ:hover {
color: white;
background-color: blue;
}
.noun {
background-color: springgreen;
}
.NN:hover, .NNS:hover {
background-color: springgreen;
}
.verb {
background-color: yellow;
# color: yellow;
}
.VB:hover, .VBZ:hover, .VBN:hover, .VVD:hover {
background-color: yellow;
}
.propernoun {
background-color: pink;
}
.NNP:hover, .NNPS:hover {
background-color: pink;
}
.adverb {
background-color: lightgreen;
# color: lightgreen;
}
.RB:hover, .RBR:hover, .JJR:hover, .RBS:hover {
background-color: lightgreen;
}
.highlight {
background-color: yellow;
}

@ -0,0 +1,196 @@
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "SourceCodePro";
src: url("http://bohyewoo.com/webfonts/Source_Code_Pro/SourceCodePro-Regular.ttf");
}
* {
margin: 0;
padding: 0;
}
html, body {
height: 100%;
}
p {
margin-bottom: 30px;
}
.t_wrapper {
font-family: 'Anonymous Pro', monospace;
width: 49%;
float: left;
margin-right: 20px;
}
.t_intro {
width: 75%;
margin-top: 20px;
float: right;
}
.t_img {
font-family: Belgika;
font-size: 20pt;
}
.t_image {
height: 10vh;
margin-top: 30px;
cursor: pointer;
}
.t_img_clicked {
height: calc(20vw);
margin-top: 30px;
}
.t_info {
font-family: Belgika;
font-weight: 16th;
font-size: 8pt;
width: calc(30vw);
float: left;
margin-top: 30px;
column-count: 2;
}
.t_paragraph {
font-size: 16px;
width: 75%;
padding: 10px;
margin-top: 70px;
line-height: 1.5;
float: right;
cursor: pointer;
}
.t_top_words {
background-color: black;
width: 10vw;
height: 100%;
font-family: Belgika;
font-size: 7.5pt;
color: white;
letter-spacing: 0.5px;
margin-left: 2px;
position: fixed;
float: right;
}
.t_top_words_title {
margin: 40px 10px 10px 10px;
width: 80%;
}
.t_chosen_words {
padding: 10px 1px 1px 10px;
}
.t_chosen_words:hover {
background-color: white;
color: red;
}
.hide {
background-color: black;
}
.TO:hover, .DT:hover, .IN:hover, .WDT:hover, .WP:hover, .MD:hover, .PRP:hover, .CC:hover, .marks:hover, .comma:hover, .dot:hover {
background-color: black;
}
.adjective {
color: white;
background-color: blue;
}
.JJ:hover {
color: white;
background-color: blue;
}
.noun {
background-color: springgreen;
}
.NN:hover, .NNS:hover {
background-color: springgreen;
}
.verb {
background-color: yellow;
# color: yellow;
}
.VB:hover, .VBZ:hover, .VBN:hover, .VVD:hover {
background-color: yellow;
}
.propernoun {
background-color: pink;
# color: pink;
}
.NNP:hover, .NNPS:hover {
background-color: pink;
}
.adverb {
background-color: lightgreen;
# color: lightgreen;
}
.RB:hover, .RBR:hover, .JJR:hover, .RBS:hover {
background-color: lightgreen;
}

File diff suppressed because one or more lines are too long

@ -0,0 +1,82 @@
# from __future__ import division
from nltk import sent_tokenize, word_tokenize, pos_tag
from nltk.probability import FreqDist
from nltk.corpus import stopwords
import nltk
import codecs
import base64
nltk.download('stopwords')
with open('treaty_file/russia-estonia.txt', 'r') as russia_file:
russia_text = russia_file.read()
russia_text_list = russia_text.split("\n\n")
t_default_stopwords = set(stopwords.words('english'))
t_custom_stopwords = set(codecs.open('t_stopwords.txt', 'r').read().splitlines())
t_all_stopwords = t_default_stopwords | t_custom_stopwords
print('''<!DOCTYPE>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.5.0.min.js"></script>
<link rel="stylesheet" href="estonia.css">
<script src="highlight.js"></script>
<meta charset="utf-8">
<title></title>
</head>
<body>''')
#t_wrapper (second wrapper)
print('<div class="t_wrapper"><div class="t_intro">')
img_url = base64.b64encode(open('img/tartu.jpeg', 'rb').read()).decode('utf-8')
t_image = '<div class="t_img">Peace Treaty of Tartu, Estonia<br><img class="t_image" src="data:img/tartu.jpeg;base64,{}"></div>'.format(img_url)
print(t_image)
#t_info box
print('<div class ="t_info">')
t_infotext = [('Name of Treaty', 'Peace Treaty of Tartu'), ('Country of Origin', 'Russia'), ('Signed', 'February 2, 1920'), ('Location', 'Tartu, Estonia'), ('Word Counts', '2,104'), ('Type', 'bilateral peace treaty'), ('Original Source', '<a href="https://en.wikipedia.org/wiki/Treaty_of_Tartu_(Russian-Estonian)">link</a>'), ('Description', 'The Tartu Peace Treaty or Treaty of Tartu is a peace treaty between Estonia and Russian Soviet Federative Socialist Republic signed on 2 February 1920, ending the Estonian War of Independence.')]
for t_title, t_info in t_infotext:
print('<div class="t_info-{0}"><div class="info_t_title" ><b>{0}</b></div><div class="t_info_content">{1}</div></div><br>'.format(t_title, t_info))
print('</div></div>')
#Treaty text
print('<div class="t_paragraph">')
for t_paragraph in russia_text_list:
t_tokenized = word_tokenize(t_paragraph)
t_tagged = pos_tag(t_tokenized)
print('<p>')
for t_word, t_pos in t_tagged:
print('<span class="{0} {1}">{2}</span>'.format(t_pos.replace('.', 'dot').replace(',', 'comma').replace('(', 'marks').replace(')', 'marks').replace(':', 'marks').replace(';', 'marks'), t_word.replace('.', 'dot').replace(',', 'comma').replace('(', 'marks').replace(')', 'marks').replace(':', 'marks').replace(';', 'marks').lower(), t_word))
print('</p>')
print('</div>')
#treaty colonial top words list
print('<div class="t_top_words"><div class="t_top_words_title"><b>Frequent words</b></div>')
t_tokens_without_stopwords = nltk.FreqDist(words.lower() for words in t_tokenized if words.lower() not in t_all_stopwords)
t_frequency_word = FreqDist(t_tokens_without_stopwords)
t_top_words = t_tokens_without_stopwords.most_common(20)
for t_chosen_words, t_frequency in t_top_words:
print('<div class="t_chosen_words" >&nbsp;{}&nbsp;({}) </div>'.format(t_chosen_words, t_frequency))
print('</div></div></div>')
print('</div></div>')
print('''</body></html>''')

@ -0,0 +1,190 @@
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "SourceCodePro";
src: url("http://bohyewoo.com/webfonts/Source_Code_Pro/SourceCodePro-Regular.ttf");
}
* {
margin: 0;
padding: 0;
}
html, body {
height: 100%;
}
p {
margin-bottom: 30px;
}
.tos_wrapper {
font-family: 'Anonymous Pro', monospace;
width: 49%;
float: left;
margin-right: 20px;
}
.intro {
width: 75%;
margin-top: 20px;
float: right;
}
.img {
font-family: Belgika;
font-size: 20pt;
}
.image {
height: 10vh;
margin-top: 30px;
cursor: pointer;
}
.img_clicked {
height: calc(20vw);
margin-top: 30px;
}
.info {
font-family: Belgika;
font-weight: 16th;
font-size: 8pt;
width: calc(35vw);
float: left;
margin-top: 30px;
column-count: 2;
}
.paragraph {
font-size: 16px;
width: 75%;
padding: 10px;
margin-top: 70px;
line-height: 1.5;
float: right;
cursor: pointer;
}
.top_words {
background-color: black;
width: 10%;
height: 100%;
font-family: Belgika;
font-size: 7.5pt;
color: white;
letter-spacing: 0.5px;
position: fixed;
float: left;
}
.top_words_title {
margin: 40px 10px 10px 10px;
width: 80%;
}
.chosen_words {
padding: 10px 1px 1px 10px;
}
.chosen_words:hover {
background-color: white;
color: red;
}
.hide {
background-color: black;
}
.TO:hover, .DT:hover, .IN:hover, .WDT:hover, .WP:hover, .MD:hover, .PRP:hover, .CC:hover, .marks:hover, .comma:hover, .dot:hover {
background-color: black;
}
.adjective {
color: white;
background-color: blue;
}
.JJ:hover {
color: white;
background-color: blue;
}
.noun {
background-color: springgreen;
}
.NN:hover, .NNS:hover {
background-color: springgreen;
}
.verb {
background-color: yellow;
# color: yellow;
}
.VB:hover, .VBZ:hover, .VBN:hover, .VVD:hover {
background-color: yellow;
}
.propernoun {
background-color: pink;
# color: pink;
}
.NNP:hover, .NNPS:hover {
background-color: pink;
}
.adverb {
background-color: lightgreen;
# color: lightgreen;
}
.RB:hover, .RBR:hover, .JJR:hover, .RBS:hover {
background-color: lightgreen;
}

File diff suppressed because one or more lines are too long

@ -0,0 +1,113 @@
# from __future__ import division
from nltk import sent_tokenize, word_tokenize, pos_tag
from nltk.probability import FreqDist
from nltk.corpus import stopwords
import nltk
import codecs
import base64
nltk.download('stopwords')
# faceapp_file = open('faceapp.txt','r')
with open('tos_file/faceapp.txt', 'r') as faceapp_file:
faceapp_text = faceapp_file.read()
faceapp_text_list = faceapp_text.split("\n\n")
with open('treaty_file/russia-estonia.txt', 'r') as russia_file:
russia_text = russia_file.read()
russia_text_list = russia_text.split("\n\n")
#tos stopwords
tos_default_stopwords = set(stopwords.words('english'))
tos_custom_stopwords = set(codecs.open('stopwords.txt', 'r').read().splitlines())
tos_all_stopwords = tos_default_stopwords | tos_custom_stopwords
#treaty stopwords
t_default_stopwords = set(stopwords.words('english'))
t_custom_stopwords = set(codecs.open('t_stopwords.txt', 'r').read().splitlines())
t_all_stopwords = t_default_stopwords | t_custom_stopwords
# multi-line string HTML
print('''<!DOCTYPE>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.5.0.min.js"></script>
<link rel="stylesheet" href="css/faceapp.css">
<script src="js/highlight.js"></script>
<meta charset="utf-8">
<title></title>
</head>
<body>''')
# $('div.t_chosen_words_{0}').mouseover(function(){
# $(this).find('.t_chosen_words_{0}').text('i + 'is here').css('color', 'red');
# })
# .mouseout(function() {
# $( this ).find( ".t_chosen_words" ).text( " " ).css('color', 'black');
# });
#wrapper
print('<div class ="tos_wrapper"><div class="intro">')
#insert an image
# https://upload.wikimedia.org/wikipedia/commons/1/15/Joffe_signing_the_Treaty_of_Tartu.jpg
FaceApp_img_url = base64.b64encode(open('img/faceapp_logo.png', 'rb').read()).decode('utf-8')
FaceApp_image = '<div class="img">FaceApp<br><img class="image" src="data:img/faceapp_logo.png;base64,{}"></div>'.format(FaceApp_img_url)
print(FaceApp_image)
#info box
print('<div class ="info">')
infotext = [('Name of Service', 'FaceApp'), ('Country of Origin', 'Russia'), ('Initial release', 'December 31, 2016'), ('Type', 'Image editing'), ('Word Counts', '5,392'), ('Original Source', '<a href="https://www.faceapp.com/terms-en.html">link</a>'), ('Description', 'FaceApp is a mobile application for iOS and Android developed by Russian company Wireless Lab. The app generates highly realistic transformations of human faces in photographs by using neural networks based on artificial intelligence. The app can transform a face to make it smile, look younger, look older, or change gender.')]
for title, info in infotext:
print('<div class="info_{0}" ><div class="info_title" ><b>{0}</b></div><div class="info_content">{1}</div></div><br>'.format(title, info))
print('</div></div>')
#ToS text
print('<div class ="paragraph">')
for paragraph in faceapp_text_list:
tokenized = word_tokenize(paragraph)
tagged = pos_tag(tokenized)
print('<p>')
for word, pos in tagged:
print('<span class="{0} {1}">{2}</span>'.format(pos.replace('.', 'dot').replace(',', 'comma').replace('(', 'marks').replace(')', 'marks').replace(':', 'marks').replace(';', 'marks'), word.replace('.', 'dot').replace(',', 'comma').replace('(', 'marks').replace(')', 'marks').replace(':', 'marks').replace(';', 'marks').lower(), word))
print('</p>')
print('</div>')
#tos top words list
print('<div class="top_words"><div class="top_words_title" ><b>Frequent words</b></div>')
tokens_without_stopwords = nltk.FreqDist(words.lower() for words in tokenized if words.lower() not in tos_all_stopwords)
frequency_word = FreqDist(tokens_without_stopwords)
top_words = tokens_without_stopwords.most_common(30)
for chosen_words, frequency in top_words:
print('<div class="chosen_words" >&nbsp;{}&nbsp;({}) </div>'.format(chosen_words, frequency))
print('</div></div></div>')
# at the end of wrapper
print('</div>')
print('</div>')
print('''</body></html>''')

@ -0,0 +1,70 @@
$(document).ready(function() {
$('.chosen_words').click( function(){
var word = $(this).text();
alert(word);
});
$('.t_chosen_words').click( function(){
var word = $(this).text();
alert(word);
});
$('.TO, .DT, .IN, .WDT, .WP, .MD, .PRP, .CC, .marks, .comma, .dot').click(
function() {
$('.TO, .DT, .IN, .WDT, .WP, .MD, .PRP, .CC, .marks, .comma, .dot').toggleClass('hide');
});
$('.JJ').click(
function() {
$('.JJ').toggleClass('adjective');
});
$('.NN, .NNS').click(
function() {
$('.NN, .NNS').toggleClass('noun');
});
$('.VB, .VBZ, .VBN, .VVD').click(
function() {
$('.VB, .VBZ, .VBN, .VVD').toggleClass('verb');
});
$('.NNP, .NNPS').click(
function() {
$('.NNP, .NNPS').toggleClass('propernoun');
});
$('.RB').click(
function() {
$('.RB').toggleClass('adverb');
});
$('.RBR, .JJR').click(
function() {
$('.RBR, .JJR').toggleClass('adverb-comparative');
});
$('.RBS').click(
function() {
$('.RBS').toggleClass('adverb-superlative');
});
$('.image').click(
function() {
$(this).toggleClass('img_clicked');
});
$('.t_image').click(
function() {
$(this).toggleClass('t_img_clicked');
})
})

@ -0,0 +1,48 @@
hovering
#1
$(document).on('mouseover','.NN, .NNS', function() {
$('.NN, .NNS').css('background-color', 'grey');
}).on('mouseout','.NN, .NNS', function() {
$('.NN, .NNS').css('background-color', 'white');
});
$(document).on('click', '.NN, .NNS', function() {
$('.NN, .NNS').css('background-color', 'blue');
}).on('mouseout','.NN, .NNS', function() {
$('.NN, .NNS').css('background-color', 'blue');
});
#2
$('.NN, .NNS').mouseover(function() {
$('.NN, .NNS').css('background-color', "grey");
});
$('.NN, .NNS').mouseout(function() {
$('.NN, .NNS').css('background-color', "white");
});
$('.NN, .NNS').click(
function() {
$('.NN, .NNS').toggleClass('noun');
});
$(document).on('mouseenter','.NN, .NNS', function() {
$('.NN, .NNS').css('background-color', 'grey');
}).on('mouseout','.NN, .NNS', function() {
$('.NN, .NNS').css('background-color', 'white');
});
$(document).on('click', '.NN, .NNS', function() {
$('.NN, .NNS').css('background-color', 'blue');
}).on('mouseout','.NN, .NNS', function() {
$('.NN, .NNS').css('background-color', 'blue');
});

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1,297 @@
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.5.0.min.js"></script>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.8.2.js"></script>
<link rel="stylesheet" href="styletest.css">
<script src="highlight.js"></script>
<script src="popup.js"></script>
<title>Have you read your contract?</title>
<style type="text/css">
</style>
</head>
<body>
<div class='popup'>
<div class='cnt223'>
<h1>About Cookies On This Site</h1><br>
<p>This website or its third-party tools process personal data (e.g. browsing data or IP addresses) and use cookies or other identifiers, which are necessary for its functioning and required to achieve the purposes illustrated in the cookie policy. You accept the use of cookies or other identifiers by closing or dismissing this notice, by clicking a link or button or by continuing to browse otherwise. <br><br>
We also share information about your use of our site with our advertising and analytics partners. Read more about any of the purposes or vendors that we use, and exercise choices, by clicking 'Accept'. You can change your mind and revisit and change your choices at any time. <br><br>
By choosing “Agree” below, you agree that this website uses cookies, similar tracking and storage technologies, and information about the device you use to access our sites to enhance your viewing, user experience, personalize content. Click “Agree” to consent to these uses. Once you confirm your privacy choices here, you can make changes at any time by visiting your Privacy dashboard.
<br><br><br><br>
<a href='' class='popupclose'>Agree</a><br><br>
</p>
</div>
</div>
<div id="header">Have you read your working contract?</div>
<div class="wrapper">
<div class="index-menu">
<a class="menu-title" >Table of Contents</a><br><br>
<a class="index-menu-single" href="#start">1. Terms of Service</a><br>
<a class="index-menu-single" href="#interpretation">2-1. Interpretation</a><br>
<a class="index-menu-single" href="#definitions">2-2. Definitions</a><br>
<a class="index-menu-single" href="#hyryc">&#10551; HAVE YOU READ YOUR CONTRACT?</a><br>
<a class="index-menu-single" href="#textpublishingarchive">&#10551; DIGITAL TEXT PUBLISHING ARCHIVE</a><br>
<a class="index-menu-single" href="#analysis">&#10551; WORD ANALYSIS</a><br>
<a class="index-menu-single" href="#obfuscation">&#10551; OBFUSCATION OF LANGUAGE</a><br>
</div>
<div class="index-menu-right">
<a class="menu-title" >List of Terms of Services</a><br><br>
<a class="menu-title-country" >Russia</a><br><br>
<a class="index-menu-single single-right" href="#start">FaceApp</a><br><br>
<a class="menu-title-country" >China</a><br><br>
<a class="index-menu-single single-right" href="#interpretation">TicTok</a><br><br>
<a class="menu-title-country" >U.S.A.</a><br><br>
<a class="index-menu-single single-right" href="#definitions">PokemonGo</a><br>
<a class="index-menu-single single-right" href="#hyryc">Snapchat</a><br>
<a class="index-menu-single single-right" href="#textpublishingarchive">Netflix</a><br>
<a class="index-menu-single single-right" href="#hyryc">facebook</a><br>
<a class="index-menu-single single-right" href="#hyryc">instagram</a><br>
<a class="index-menu-single single-right" href="#analysis">Amazon</a><br><br>
<a class="menu-title-country" >Japan</a><br><br>
<a class="index-menu-single" href="#obfuscation">Sony</a><br>
<br><br><br>
<a class="menu-title" >List of Colonial Treaties</a><br><br>
<a class="menu-title-country" >Russia</a><br><br>
<a class="index-menu-single single-right" href="#start">Peace Treaty of Tartu, Estonia</a><br><br>
<a class="menu-title-country" >China</a><br><br>
<a class="index-menu-single single-right" href="#interpretation">TicTok</a><br><br>
<a class="menu-title-country" >U.S.A.</a><br><br>
<a class="index-menu-single single-right" href="#definitions">Treaty of Paris (1898)</a><br><br>
<a class="menu-title-country" >U.K.</a><br><br>
<a class="index-menu-single single-right" href="#interpretation">United KingdomKorea Treaty of 1883</a><br>
<a class="index-menu-single single-right" href="#interpretation">Hong Kong Letters Patent 1843</a><br><br>
<a class="menu-title-country" >Japan</a><br><br>
<a class="index-menu-single" href="#obfuscation">JapanKorea Agreement of 1905
</a><br><br>
</div>
<div class="tos">
<br><br>
<h1><a name="start"></a>Terms of Service</h1><br>
<p>Last updated: April 28, 2020</p>
<p>Please read these terms of service carefully before using Our service.</p><br><br><br><br>
<h1>Interpretation and Definitions</h1><br>
<h2><a name="interpretation"></a>Interpretation</h2>
<p>The words of which the initial letter is capitalized have meanings defined under the following conditions.</p><br>
<p>The following definitions shall have the same meaning regardless of whether they appear in singular or in plural.</p>
<br><br><br>
<h2><a name="definitions"></a>Definitions</h2>
<p>For the purposes of these Terms of service:</p>
<ul>
<li><a name="hyryc"></a><strong>HAVE YOU READ YOUR CONTRACT?</strong> is a modern-digital-colonial <a class="text" href="#textpublishingarchive">text publishing archive</a>, a series of word analysis that reveals the modern-colonial contexts/words in <a class="text" href="#tos">'Terms of Service (ToS)'</a>. ToS is a modern working/slavery contract in <a class="text" href="#digitalcolonialsociety">digital colonial society</a>, where big companies are dominating the power structures via ToS to deceive users. The project introduces the resemblance of <a class="text" href="#colonialtreaties">colonial treaties</a> in historical colonialism to the digital society by mapping out the whole architecture of language used in ToS comparing with historical colonial treaties.</li><br>
<li><a name="textpublishingarchive"></a><strong>DIGITAL TEXT PUBLISHING ARCHIVE</strong> means a digital (repository) infrastructure of text material that I desire to keep for a long-term preservation. It is evident that not much of digital material will survive<a id="reference-number" href="#1" class="text">[1]<span class="text-hover">(Zelkowitz, 2003): Advances in Computers: Information Repositories edited by Marvin Zelkowitz</span></a>. Archiving is important in digital age as a preservation tool because of perpetual changes in digital platform. This platform archives collections of related informations about my project including news articles, videos, books, tweets ... to proffer knowledges I gleaned from the web. The archive will contain different analyzations on the modern-colonial words and contexts. </li><br>
<li><a name="analysis"></a><strong>WORD ANALYSIS</strong> is very important because of <a class="text" href="#obfuscation">obfuscation of language</a> in ToS. Usually ToS are made with polite and generic language to deceive users. By using these general terms, those big tech companies try to wash their hands of responsibility and disclaim their liability to back up themselves. Similarly to the language of ToS, the terminology in treaties are phrased in an equivocally circuitous manner that it's indirect. Therefore, vernaculars used in English ToS, which has similarities to <a class="text" href="#colonialtreaties">colonial treaties</a> will be discovered by analyzing the words that were used during this period.</li><br>
<li><a name="obfuscation"></a><strong>OBFUSCATION OF LANGUAGE</strong>: <a class="text" href="#tos">Terms of Service</a> tend to obfuscate its meaning of contexts by having a way too long texts, so that users don't read them and just click accept. Usually, ToS are written in impenetrable legalise, intentionally vague and generic language that designed to make it impossible to deceive users. During colonial times, obfuscation of language was happening in <a class="text" href="#colonialtreaties">colonial treaties</a> as well. </li><br>
<li><a name="colonialtreaties"></a><strong>COLONIAL TREATIES</strong> are known as agreements, pacts and major contracts made between countries during colonial times. It was a formally concluded agreement between a colonizer and a colony, these treaties are a binding formal agreement that establishes obligations between two or more subjects. Most of the time, colonial treaties were coercively made by a colonizer. It was very common that colonial treaties were slanted in favour of the colonizer, and pushed to sign it without knowing that sovreignty or jurisdiction will be infringed. One of the example would be, <a class="text">a treaty of Ganghwa Island<span class="text-hover-img"><img src="img/ganghwa.jpg" ></span></a> made between Japanese and Korean. They used a term called 'Unequal treaty' to refer that the treaty had generally regarded as an unequal treaty coerced by Japan. By doing so, the Empire of Japan had a full control over rullig Korean Empire <a id="reference-number" href="#2" class="text">[2]<span class="text-hover">(Duus, 1998):The Abacus and the Sword: The Japanese Penetration of Korea. University of California Press</span></a>.</li><br>
<li><a name="digitalcolonialsociety"></a><strong>DIGITAL COLONIAL SOCIETY</strong>: It is a concept based on <a class="text" href="#digitalsociety">a digital society <span class="text-hover">that every aspect of lives is profoundly being affected by the domination of digital technology</span></a> where user's online behavior becomes monetisable commodity to be sold by <a class="text" href="#bigcorporations">big corporations<span class="text-hover">giving them direct power over political, economic and cultural domains of life</span></a>, and users don't properly get paid. This ingenious ways of extracting cheap labour from users show similar ways of exploitating natural/human resources in colonial times.
<br><br>
<a class="text">(+)<span class="text-hover-top">Although it is clear that the modes, intensities, scales, and contexts of today's digital colonialism are distinctive from the historical colonialism, the underlying power structures remain the same (Couldry, 2019)</span></a> Of course, this doesn't mean that the transformation of colonialism has done fully identical. Unlike a historical colony that was bounded mostly by geographical locations, a digital colony has no physical borders. There are no geographical locations, there are only IP addresses, domain names, and user's data. Therefore, digital colonialism expands by exploiting more layers of human life itself through the use of technology (Couldry, 2019).
</li>
<br>
<li><strong>THE IDEA OF COLONIALISM</strong> seems to be an eternal loop that comes back throughout history. It is essential not to ignore that digital colonialism is applicable to countries regardless of the history.</li><br>
<li><a name="tos"></a><strong>TERMS OF SERVICE (TOS)</strong> is also known as terms of use and terms and conditions, commonly abbreviated as (ToS) are the legal agreements between a service provider and a person who wants to use that service. This means these Terms of service that form the entire agreement between You and the Company regarding the use of the service. This Terms of service agreement as been created with the help of <a class="text" href="https://app.termsfeed.com/download/free?agreement_type=TC&token=4687b8bf6d64d334e89197146ee96509">Terms of service Generator</a>.</li><br>
<li><strong>COMPANY</strong> (referred to as either "the Company", "We", "Us" or "Our" in this Agreement) refers to Have You Read Your Contract?.</li><br>
<li><strong>COUNTRY</strong> refers to: Netherlands</li><br>
<li><strong>DEVICE</strong> means any device that can access the service such as a computer, a cellphone or a digital tablet.</li><br>
<li><strong>SERVICE</strong> refers to the Website.</li><br>
<li><strong>THIRD-PARTY SOCIAL MEDIA SERVICE</strong> means any services or content (including data, information, products or services) provided by a third-party that may be displayed, included or made available by the service.</li><br>
<li><strong>WEBSITE</strong> refers to Have You Read Your Contract?, accessible from www.haveyoureadyourcontract.com</li><br>
<li><strong>YOU</strong> means the individual accessing or using the service, or the company, or other legal entity on behalf of which such individual is accessing or using the service, as applicable.</li><br>
</ul>
<br><br><br>
<p class="reference-text"><a name="1"></a>[1] (Zelkowitz, 2003): <a class="reference-link" href="https://books.google.nl/books?hl=en&lr=&id=xqvv7yqtr2kC&oi=fnd&pg=PA1&dq=importance+of+knowledge+archiving&ots=9NU6J-zv88&sig=2pkfx30iXkDgFS4-wLsqT9iVs8Y#v=onepage&q=importance%20of%20knowledge%20archiving&f=false">Advances in Computers: Information Repositories edited by Marvin Zelkowitz</a></p>
<p class="reference-text"><a name="2"></a>[2] (Duus, 1998): The Abacus and the Sword: The Japanese Penetration of Korea. University of California Press.</p>
<br><br><br><br>
<h1>Contents</h1><br>
<p>This archive presents the following ToS such as
<button id="button" class="button-faceapp" target="tosview">FaceApp</button>
<div id="myModal" class="modal">
<div class="modal-content">
<span class="close">&times;</span>
<iframe id="tosview" name="tosview" src="faceapp.html"></iframe>
</div>
</div>
, TikTok, PokemonGo, Snaptchat, Netflix, Amazon, Aibo(Sony). We also provide some historical treaties made during one's colonial era, such as
<button id="t_button" class="button-russia">Peace Treaty of Tartu, Estonia</button>
<div id="t_myModal" class="t_modal">
<div class="t_modal-content">
<span class="t_close">&times;</span>
<iframe id="treatyview" name="treatyview" src="estonia.html"></iframe>
</div>
</div>
, for you to interpret how the former might have had some similar characteristics to the latter.</p>
<br><br><br>
<h1>our service</h1>
<ul>
<li>to contribute a platform of reading ToS. In doing so, it questions what does it mean to provide ToS in the digital corporate society.</li><br>
<li>to question the concept of digital colonialism by providing visualization of ToS language as a modern-colonial tool to deceive users.</li><br>
<li>to analyze ToS from major tech companies to investigate how particular terms are being used in the specific context of ToS. Because ToS platforms have different tones of voice, different words are being used. How does the platforms have modern-colonial aspects in ToS?</li><br>
<li>to examine what is modern-colonial language by taking a closer look on words within the realm of ToS. This provides categorization of modern-colonial language into digital colonial glossary.</li><br>
<li></li><br>
<li></li><br>
<li></li><br>
<li></li><br>
<li></li><br>
<li></li><br>
<li></li><br>
</ul>
<h1>Acknowledgement</h1>
<p>These are the Terms of service governing the use of this service and the agreement that operates between You and the Company. These Terms of service set out the rights and obligations of all users regarding the use of the service.</p>
<p>Your access to and use of the service is conditioned on Your acceptance of and compliance with these Terms of service. These Terms of service apply to all visitors, users and others who access or use the service.</p>
<p>By accessing or using the service You agree to be bound by these Terms of service. If You disagree with any part of these Terms of service then You may not access the service.</p>
<p>You represent that you are over the age of 18. The Company does not permit those under 18 to use the service.</p>
<p>Your access to and use of the service is also conditioned on Your acceptance of and compliance with the Privacy Policy of the Company. Our Privacy Policy describes Our policies and procedures on the collection, use and disclosure of Your personal information when You use the Application or the Website and tells You about Your privacy rights and how the law protects You. Please read Our Privacy Policy carefully before using Our service.</p>
<h1>Links to Other Websites</h1>
<p>Our service may contain links to third-party web sites or services that are not owned or controlled by the Company.</p>
<p>The Company has no control over, and assumes no responsibility for, the content, privacy policies, or practices of any third party web sites or services. You further acknowledge and agree that the Company shall not be responsible or liable, directly or indirectly, for any damage or loss caused or alleged to be caused by or in connection with the use of or reliance on any such content, goods or services available on or through any such web sites or services.</p>
<p>We strongly advise You to read the terms of service and privacy policies of any third-party web sites or services that You visit.</p>
<h1>Termination</h1>
<p>We may terminate or suspend Your access immediately, without prior notice or liability, for any reason whatsoever, including without limitation if You breach these Terms of service.</p>
<p>Upon termination, Your right to use the service will cease immediately.</p>
<h1>Limitation of Liability</h1>
<p>Notwithstanding any damages that You might incur, the entire liability of the Company and any of its suppliers under any provision of this Terms and Your exclusive remedy for all of the foregoing shall be limited to the amount actually paid by You through the service or 100 USD if You haven't purchased anything through the service.</p>
<p>To the maximum extent permitted by applicable law, in no event shall the Company or its suppliers be liable for any special, incidental, indirect, or consequential damages whatsoever (including, but not limited to, damages for loss of profits, loss of data or other information, for business interruption, for personal injury, loss of privacy arising out of or in any way related to the use of or inability to use the service, third-party software and/or third-party hardware used with the service, or otherwise in connection with any provision of this Terms), even if the Company or any supplier has been advised of the possibility of such damages and even if the remedy fails of its essential purpose.</p>
<p>Some states do not allow the exclusion of implied warranties or limitation of liability for incidental or consequential damages, which means that some of the above limitations may not apply. In these states, each party's liability will be limited to the greatest extent permitted by law.</p>
<h1>"AS IS" and "AS AVAILABLE" Disclaimer</h1>
<p>The service is provided to You "AS IS" and "AS AVAILABLE" and with all faults and defects without warranty of any kind. To the maximum extent permitted under applicable law, the Company, on its own behalf and on behalf of its Affiliates and its and their respective licensors and service providers, expressly disclaims all warranties, whether express, implied, statutory or otherwise, with respect to the service, including all implied warranties of merchantability, fitness for a particular purpose, title and non-infringement, and warranties that may arise out of course of dealing, course of performance, usage or trade practice. Without limitation to the foregoing, the Company provides no warranty or undertaking, and makes no representation of any kind that the service will meet Your requirements, achieve any intended results, be compatible or work with any other software, applications, systems or services, operate without interruption, meet any performance or reliability standards or be error free or that any errors or defects can or will be corrected.</p>
<p>Without limiting the foregoing, neither the Company nor any of the company's provider makes any representation or warranty of any kind, express or implied: (i) as to the operation or availability of the service, or the information, content, and materials or products included thereon; (ii) that the service will be uninterrupted or error-free; (iii) as to the accuracy, reliability, or currency of any information or content provided through the service; or (iv) that the service, its servers, the content, or e-mails sent from or on behalf of the Company are free of viruses, scripts, trojan horses, worms, malware, timebombs or other harmful components.</p>
<p>Some jurisdictions do not allow the exclusion of certain types of warranties or limitations on applicable statutory rights of a consumer, so some or all of the above exclusions and limitations may not apply to You. But in such a case the exclusions and limitations set forth in this section shall be applied to the greatest extent enforceable under applicable law.</p>
<h1>Governing Law</h1>
<p>The laws of the Country, excluding its conflicts of law rules, shall govern this Terms and Your use of the service. Your use of the Application may also be subject to other local, state, national, or international laws.</p>
<h1>Disputes Resolution</h1>
<p>If You have any concern or dispute about the service, You agree to first try to resolve the dispute informally by contacting the Company.</p>
<h1>For European Union (EU) Users</h1>
<p>If You are a European Union consumer, you will benefit from any mandatory provisions of the law of the country in which you are resident in.</p>
<h1>United States Legal Compliance</h1>
<p>You represent and warrant that (i) You are not located in a country that is subject to the United States government embargo, or that has been designated by the United States government as a "terrorist supporting" country, and (ii) You are not listed on any United States government list of prohibited or restricted parties.</p>
<h1>Severability and Waiver</h1>
<h2>Severability</h2>
<p>If any provision of these Terms is held to be unenforceable or invalid, such provision will be changed and interpreted to accomplish the objectives of such provision to the greatest extent possible under applicable law and the remaining provisions will continue in full force and effect.</p>
<h2>Waiver</h2>
<p>Except as provided herein, the failure to exercise a right or to require performance of an obligation under this Terms shall not effect a party's ability to exercise such right or require such performance at any time thereafter nor shall be the waiver of a breach constitute a waiver of any subsequent breach.</p>
<h1>Translation Interpretation</h1>
<p>These Terms of service may have been translated if We have made them available to You on our service.</p>
<p>You agree that the original English text shall prevail in the case of a dispute.</p>
<h1>Changes to These Terms of service</h1>
<p>We reserve the right, at Our sole discretion, to modify or replace these Terms at any time. If a revision is material We will make reasonable efforts to provide at least 30 days' notice prior to any new terms taking effect. What constitutes a material change will be determined at Our sole discretion.</p>
<p>By continuing to access or use Our service after those revisions become effective, You agree to be bound by the revised terms. If You do not agree to the new terms, in whole or in part, please stop using the website and the service.</p>
<h1>Contact Us</h1>
<p>If you have any questions about these Terms of service, You can contact us:</p>
<ul>
<li>By email: haveyoureadyourcontract@gmail.com</li>
</ul>
</div>
</div>
<script type="text/javascript" src="modal.js"></script>
</body>
</html>

@ -0,0 +1,42 @@
// index page
var modal = document.getElementById("myModal");
var btn = document.getElementById("button");
// Get the <span> element that closes the modal
var span = document.getElementsByClassName("close")[0];
// When the user clicks the button, open the modal
btn.onclick = function() {
modal.style.display = "block";
}
// When the user clicks on <span> (x), close the modal
span.onclick = function() {
modal.style.display = "none";
}
// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
// index page
var t_modal = document.getElementById("t_myModal");
var t_btn = document.getElementById("t_button");
// Get the <span> element that closes the modal
var t_span = document.getElementsByClassName("t_close")[0];
// When the user clicks the button, open the modal
t_btn.onclick = function() {
t_modal.style.display = "block";
}
// When the user clicks on <span> (x), close the modal
t_span.onclick = function() {
t_modal.style.display = "none";
}
// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
if (event.target == t_modal) {
t_modal.style.display = "none";
}
}

@ -0,0 +1,19 @@
$(function(){
var overlay = $('<div id="overlay"></div>');
overlay.show();
overlay.appendTo(document.body);
$('.popup').show();
$('.popupclose').click(function(){
$('.popup').hide();
overlay.appendTo(document.body).remove();
return false;
});
$('.x').click(function(){
$('.popup').hide();
overlay.appendTo(document.body).remove();
return false;
});
});

File diff suppressed because it is too large Load Diff

@ -0,0 +1,210 @@
from __future__ import division
import glob
from nltk import *
import re
import nltk
import codecs
from nltk import sent_tokenize, word_tokenize, pos_tag
from nltk.probability import FreqDist
from nltk.corpus import stopwords
nltk.download('stopwords')
#open the txt file, read, and tokenize
file = open('faceapp.txt','r')
text = file.read()
x = 1
#stopwords
default_stopwords = set(stopwords.words('english'))
custom_stopwords = set(codecs.open('stopwords.txt', 'r').read().splitlines())
all_stopwords = default_stopwords | custom_stopwords
print(
'''<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "SourceCodePro";
src: url("http://bohyewoo.com/webfonts/Source_Code_Pro/SourceCodePro-Regular.ttf");
}
body {
background-color: whitesmoke;
# font-family: Belgika;
# font-weight: 8th;
# letter-spacing: -0.3px;
font-size: 20px;
line-height: 1.2;
}
.info {
font-family: Belgika;
font-weight: 8th;
font-size: 10pt;
width: 20%;
float: left;
border: 1px solid black;
}
.NNP {
background-color: pink;
}
.VBP {
}
.VBP:hover {
background-color: gold;
}
.NN {
background-color: LightSkyBlue;
}
.NNS {
background-color: Aquamarine;
}
.paragraph {
font-family: SourceCodePro;
font-weight: regular;
letter-spacing: -0.5px;
width: 50%;
float: left;
}
.top_words {
font-family: Belgika;
font-weight: 8th;
font-size: 9pt;
width: 25%;
float: left;
}
</style>
</head>
<body>'''
)
#info box
print('<div class ="info">')
infotext = [('service', 'FaceApp'), ('Type', 'Image editing'), ('Initial release', 'December 31 2016'), ('Type', 'Image editing'), ('source', '<a href="https://www.faceapp.com/terms-en.html">link</a>')]
for title, info in infotext:
print('<span class="info-{0}">{0}:{1}</span><br>'.format(title, info))
print('</div>')
#ToS text
print('<div class ="paragraph">')
tokenized = word_tokenize(text)
tagged = pos_tag(tokenized)
for word, pos in tagged:
print('<span class="{}">{}</span>'.format(pos, word))
print('</div>')
#colonial words list
print('<div class="top_words"> colonial words:')
tokens_without_stopwords = nltk.FreqDist(words.lower() for words in tokenized if words.lower() not in all_stopwords)
frequency_word = FreqDist(tokens_without_stopwords)
top_words = tokens_without_stopwords.most_common(100)
for chosen_words, frequency in top_words:
print('<br><span class="chosen_words">{}({}) </span>'.format(chosen_words, frequency))
print('''</div></body></html>''')
# # for new_file in tokens_without_stopwords:
# appendFile = open('tokenized_words.txt', 'a')
# appendFile.write(" " + new_file)
# appendFile.close()
# #shows only stopwords
# processed_word_list = []
# for word in tokenized:
# # print(word)
# if word not in all_stopwords:
# processed_word_list.append('*')
# else:
# processed_word_list.append(word)
# print(processed_word_list)
# # # result putting in a graph
# top_words_plot = frequency_word.plot(10)
# print(top_words_plot)

File diff suppressed because one or more lines are too long

@ -0,0 +1,520 @@
# from __future__ import division
from nltk import sent_tokenize, word_tokenize, pos_tag
from nltk.probability import FreqDist
from nltk.corpus import stopwords
import nltk
import codecs
import base64
nltk.download('stopwords')
# faceapp_file = open('faceapp.txt','r')
with open('tos_file/faceapp.txt', 'r') as faceapp_file:
faceapp_text = faceapp_file.read()
faceapp_text_list = faceapp_text.split("\n\n")
with open('treaty_file/russia-estonia.txt', 'r') as russia_file:
russia_text = russia_file.read()
russia_text_list = russia_text.split("\n\n")
#tos stopwords
tos_default_stopwords = set(stopwords.words('english'))
tos_custom_stopwords = set(codecs.open('stopwords.txt', 'r').read().splitlines())
tos_all_stopwords = tos_default_stopwords | tos_custom_stopwords
#treaty stopwords
t_default_stopwords = set(stopwords.words('english'))
t_custom_stopwords = set(codecs.open('t_stopwords.txt', 'r').read().splitlines())
t_all_stopwords = t_default_stopwords | t_custom_stopwords
# multi-line string HTML
print('''<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.5.0.min.js"></script>
<meta charset="utf-8">
<title></title>
<style>
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "SourceCodePro";
src: url("http://bohyewoo.com/webfonts/Source_Code_Pro/SourceCodePro-Regular.ttf");
}
* {
margin: 0;
padding: 0;
}
html, body {
height: 100%;
}
p {
margin-bottom: 30px;
}
.tos_wrapper {
# background-color: yellow;
width: 49%;
float: left;
margin-right: 20px;
border-right: 2px solid black;
}
.t_wrapper {
# background-color: green;
width: 49%;
float: right;
}
.intro {
width: 75%;
float: right;
}
.t_intro {
width: 75%;
float: left;
}
.img {
# background-color: Aquamarine;
font-family: Belgika;
font-size: 20pt;
padding-top: 30px;
float: left;
}
.image {
height: 30vh;
margin-top: 30px;
}
.t_img {
# background-color: Aquamarine;
font-family: Belgika;
font-size: 20pt;
padding-top: 30px;
float: left;
}
.t_image {
height: 30vh;
margin-top: 30px;
}
.info {
# background-color: LightSkyBlue;
font-family: helvetica;
font-weight: regular;
font-size: 10pt;
width: 45vh;
float: left;
margin-top: 30px;
# border: 2px solid black;
# text-align: center;
column-count: 2;
}
.t_info {
# background-color: LightSkyBlue;
font-family: helvetica;
font-weight: regular;
font-size: 10pt;
width: 45vh;
float: left;
margin-top: 30px;
# border: 2px solid black;
# text-align: center;
column-count: 2;
}
.paragraph {
# background-color: gold;
font-family: helvetica;
font-weight: regular;
font-size: 20px;
width: 75%;
padding: 10px;
margin-top: 70px;
float: right;
}
.t_paragraph {
# background-color: gold;
font-family: helvetica;
font-weight: regular;
font-size: 20px;
width: 98%;
margin-top: 70px;
float: right;
}
.top_words {
background-color: black;
width: 10%;
height: 100%;
font-family: Belgika;
font-weight: 16th;
font-size: 7.5pt;
color: white;
letter-spacing: 0.5px;
position: fixed;
float: left;
}
.top_words_title {
# background-color: yellow;
margin: 40px 10px 10px 10px;
width: 80%;
}
.chosen_words {
# background-color: pink;
padding: 10px 1px 1px 10px;
}
.chosen_words:hover {
background-color: white;
color: red;
}
.t_top_words {
background-color: black;
width: 10%;
height: 100%;
font-family: Belgika;
font-weight: 16th;
font-size: 7.5pt;
color: white;
letter-spacing: 0.5px;
position: fixed;
float: right;
right: 0;
top: 0;
}
.t_top_words_title {
margin: 40px 10px 10px 10px;
width: 80%;
}
.t_chosen_words {
padding: 10px 1px 1px 10px;
}
.t_chosen_words:hover {
background-color: white;
color: red;
}
.hide {
# color: white;
background-color: black;
}
.TO:hover, .DT:hover, .IN:hover, .WDT:hover, .WP:hover, .MD:hover, .PRP:hover, .CC:hover, .marks:hover, .comma:hover, .dot:hover {
background-color: black;
}
.adjective {
color: white;
background-color: blue;
}
.JJ:hover {
color: white;
background-color: blue;
}
.noun {
background-color: springgreen;
}
.NN:hover, .NNS:hover {
background-color: springgreen;
}
.verb {
background-color: yellow;
# color: yellow;
}
.VB:hover, .VBZ:hover, .VBN:hover, .VVD:hover {
background-color: yellow;
}
.propernoun {
background-color: pink;
# color: pink;
}
.NNP:hover, .NNPS:hover {
background-color: pink;
}
.adverb {
background-color: lightgreen;
# color: lightgreen;
}
.RB:hover, .RBR:hover, .JJR:hover, .RBS:hover {
background-color: lightgreen;
}
</style>
</head>
<body>
<script>
$(document).ready(function() {
$('.chosen_words').click( function(){
var word = $(this).text();
alert(word);
});
$('.TO, .DT, .IN, .WDT, .WP, .MD, .PRP, .CC, .marks, .comma, .dot').click(
function() {
$('.TO, .DT, .IN, .WDT, .WP, .MD, .PRP, .CC, .marks, .comma, .dot').toggleClass('hide');
});
$('.JJ').click(
function() {
$('.JJ').toggleClass('adjective');
});
$('.NN, .NNS').click(
function() {
$('.NN, .NNS').toggleClass('noun');
});
$('.VB, .VBZ, .VBN, .VVD').click(
function() {
$('.VB, .VBZ, .VBN, .VVD').toggleClass('verb');
});
$('.NNP, .NNPS').click(
function() {
$('.NNP, .NNPS').toggleClass('propernoun');
});
$('.RB').click(
function() {
$('.RB').toggleClass('adverb');
});
$('.RBR, .JJR').click(
function() {
$('.RBR, .JJR').toggleClass('adverb-comparative');
});
$('.RBS').click(
function() {
$('.RBS').toggleClass('adverb-superlative');
});
})
</script>''')
# $('div.t_chosen_words_{0}').mouseover(function(){
# $(this).find('.t_chosen_words_{0}').text('i + 'is here').css('color', 'red');
# })
# .mouseout(function() {
# $( this ).find( ".t_chosen_words" ).text( " " ).css('color', 'black');
# });
#wrapper
print('<div class ="tos_wrapper"><div class="intro">')
#insert an image
# https://upload.wikimedia.org/wikipedia/commons/1/15/Joffe_signing_the_Treaty_of_Tartu.jpg
FaceApp_img_url = base64.b64encode(open('img/faceapp_logo.png', 'rb').read()).decode('utf-8')
FaceApp_image = '<div class="img">FaceApp<br><img class="image" src="data:img/faceapp_logo.png;base64,{}"></div>'.format(FaceApp_img_url)
print(FaceApp_image)
#info box
print('<div class ="info">')
infotext = [('Name of Service', 'FaceApp'), ('Country of Origin', 'Russia'), ('Initial release', 'December 31, 2016'), ('Type', 'Image editing'), ('Word Counts', '5,392'), ('Original Source', '<a href="https://www.faceapp.com/terms-en.html">link</a>'), ('Description', 'FaceApp is a mobile application for iOS and Android developed by Russian company Wireless Lab. The app generates highly realistic transformations of human faces in photographs by using neural networks based on artificial intelligence. The app can transform a face to make it smile, look younger, look older, or change gender.')]
for title, info in infotext:
print('<div class="info_{0}" ><div class="info_title" style="-webkit-text-decoration-line: underline; text-decoration-line: underline;" >{0}</div><div class="info_content">{1}</div></div><br>'.format(title, info))
print('</div></div>')
#ToS text
print('<div class ="paragraph">')
for paragraph in faceapp_text_list:
tokenized = word_tokenize(paragraph)
tagged = pos_tag(tokenized)
print('<p>')
for word, pos in tagged:
print('<span class="{0} {1}">{2}</span>'.format(pos.replace('.', 'dot').replace(',', 'comma').replace('(', 'marks').replace(')', 'marks').replace(':', 'marks').replace(';', 'marks'), word.replace('.', 'dot').replace(',', 'comma').replace('(', 'marks').replace(')', 'marks').replace(':', 'marks').replace(';', 'marks').lower(), word))
print('</p>')
print('</div>')
#tos top words list
print('<div class="top_words"><div class="top_words_title" style="-webkit-text-decoration-line: underline; text-decoration-line: underline;" >Frequent words:</div>')
tokens_without_stopwords = nltk.FreqDist(words.lower() for words in tokenized if words.lower() not in tos_all_stopwords)
frequency_word = FreqDist(tokens_without_stopwords)
top_words = tokens_without_stopwords.most_common(30)
for chosen_words, frequency in top_words:
print('<div class="chosen_words" >&nbsp;{}&nbsp;({}) </div>'.format(chosen_words, frequency))
print('</div></div></div>')
#t_wrapper (second wrapper)
print('</div><div class="t_wrapper"><div class="t_intro">')
#insert an image
# https://upload.wikimedia.org/wikipedia/commons/1/15/Joffe_signing_the_Treaty_of_Tartu.jpg
img_url = base64.b64encode(open('img/tartu.jpeg', 'rb').read()).decode('utf-8')
t_image = '<div class="t_img">Peace Treaty of Tartu, Estonia<br><img class="t_image" src="data:img/tartu.jpeg;base64,{}"></div>'.format(img_url)
print(t_image)
#t_info box
print('<div class ="t_info">')
t_infotext = [('Name of Treaty', 'Peace Treaty of Tartu'), ('Country of Origin', 'Russia'), ('Signed', 'February 2, 1920'), ('Location', 'Tartu, Estonia'), ('Word Counts', '2,104'), ('Type', 'bilateral peace treaty'), ('Original Source', '<a href="https://en.wikipedia.org/wiki/Treaty_of_Tartu_(Russian-Estonian)">link</a>'), ('Description', 'The Tartu Peace Treaty or Treaty of Tartu is a peace treaty between Estonia and Russian Soviet Federative Socialist Republic signed on 2 February 1920, ending the Estonian War of Independence.')]
for t_title, t_info in t_infotext:
print('<div class="t_info-{0}"><div class="info_t_title" style="-webkit-text-decoration-line: underline; text-decoration-line: underline;" >{0}</div><div class="t_info_content">{1}</div></div><br>'.format(t_title, t_info))
print('</div>')
#Treaty text
print('<div class="t_paragraph">')
for t_paragraph in russia_text_list:
t_tokenized = word_tokenize(t_paragraph)
t_tagged = pos_tag(t_tokenized)
print('<p>')
for t_word, t_pos in t_tagged:
print('<span class="{0} {1}">{2}</span>'.format(t_pos.replace('.', 'dot').replace(',', 'comma').replace('(', 'marks').replace(')', 'marks').replace(':', 'marks').replace(';', 'marks'), t_word.replace('.', 'dot').replace(',', 'comma').replace('(', 'marks').replace(')', 'marks').replace(':', 'marks').replace(';', 'marks').lower(), t_word))
print('</p>')
print('</div>')
#treaty colonial top words list
print('<div class="t_top_words"><div class="t_top_words_title" style="-webkit-text-decoration-line: underline; text-decoration-line: underline;" >Frequent words:</div>')
t_tokens_without_stopwords = nltk.FreqDist(words.lower() for words in t_tokenized if words.lower() not in t_all_stopwords)
t_frequency_word = FreqDist(t_tokens_without_stopwords)
t_top_words = t_tokens_without_stopwords.most_common(20)
for t_chosen_words, t_frequency in t_top_words:
print('<div class="t_chosen_words" >&nbsp;{}&nbsp;({}) </div>'.format(t_chosen_words, t_frequency))
print('</div></div></div>')
##### not working
# #treaty colonial top words list
# print('<div class="t_top_words"><div class="t_top_words_title" style="-webkit-text-decoration-line: underline; text-decoration-line: underline;" >colonial words:</div>')
# for words in faceapp_text_list:
# t_tokens_without_stopwords = nltk.FreqDist(words.lower() for words in t_tokenized if words.lower() not in t_all_stopwords)
# t_frequency_word = FreqDist(t_tokens_without_stopwords)
# t_top_words = t_tokens_without_stopwords.most_common(20)
# for t_chosen_words, t_frequency in t_top_words:
# print('<div class="t_chosen_words" >&nbsp;{}&nbsp;({}) </div>'.format(t_chosen_words, t_frequency))
# print('</div></div></div>')
print('</div>')
print('''</body></html>''')

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

File diff suppressed because one or more lines are too long

@ -0,0 +1,347 @@
# from __future__ import division
from nltk import sent_tokenize, word_tokenize, pos_tag
from nltk.probability import FreqDist
from nltk.corpus import stopwords
import nltk
import codecs
import base64
nltk.download('stopwords')
# faceapp_file = open('faceapp.txt','r')
with open('tos_file/faceapp_sentence.txt', 'r') as faceapp_file:
faceapp_text = faceapp_file.read()
faceapp_text_list = faceapp_text.split("\n\n")
with open('treaty_file/russia_estonia_sentence.txt', 'r') as russia_file:
russia_text = russia_file.read()
russia_text_list = russia_text.split("\n\n")
#tos stopwords
tos_default_stopwords = set(stopwords.words('english'))
tos_custom_stopwords = set(codecs.open('stopwords.txt', 'r').read().splitlines())
tos_all_stopwords = tos_default_stopwords | tos_custom_stopwords
#treaty stopwords
t_default_stopwords = set(stopwords.words('english'))
t_custom_stopwords = set(codecs.open('t_stopwords.txt', 'r').read().splitlines())
t_all_stopwords = t_default_stopwords | t_custom_stopwords
# multi-line string HTML
print('''<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.5.0.min.js"></script>
<meta charset="utf-8">
<title></title>
<style>
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "SourceCodePro";
src: url("http://bohyewoo.com/webfonts/Source_Code_Pro/SourceCodePro-Regular.ttf");
}
body {
}
.tos_wrapper {
# background-color: yellow;
width: 49.3%;
float: left;
margin-right: 20px;
border-right: 2px solid black;
}
.t_wrapper {
# background-color: green;
width: 49.3%;
float: right;
}
.t_img {
# background-color: Aquamarine;
font-family: helvetica;
font-weight: regular;
font-size: 20pt;
float: left;
}
.img {
width: 30vh;
}
.info {
# background-color: LightSkyBlue;
font-family: SourceCodePro;
font-size: 10pt;
width: 30vh;
float: right;
# border: 2px solid black;
margin: 10px;
text-align: center;
}
.t_info {
# background-color: LightSkyBlue;
font-family: SourceCodePro;
font-size: 10pt;
width: 30vh;
float: right;
# border: 2px solid black;
padding: 10px;
text-align: center;
}
.paragraph {
# background-color: gold;
font-family: helvetica;
font-weight: regular;
font-size: 40px;
width: 98%;
padding: 10px;
margin-top: 70px;
float: right;
}
.t_paragraph {
# background-color: gold;
font-family: helvetica;
font-weight: regular;
font-size: 40px;
width: 98%;
margin-top: 70px;
float: right;
}
.top_words {
# background-color: purple;
font-family: helvetica;
font-size: 15pt;
width: 100%;
column-count: 4;
float: left;
}
.top_words_title {
# background-color: yellow;
width: 100%;
}
.chosen_words {
# background-color: pink;
line-height: 0.1;
float: none;
}
.t_top_words {
# background-color: purple;
font-family: helvetica;
font-size: 15pt;
width: 100%;
column-count: 4;
float: left;
}
.t_top_words_title {
# background-color: yellow;
width: 100%;
}
.t_chosen_words {
# background-color: pink;
line-height: 0.1;
float: none;
}
.hide {
# color: white;
background-color: black;
}
</style>
</head>
<body>
<script>
$(document).ready(function() {
if ($('.TO, .DT, .IN, .WDT, .WP, .MD, .PRP, .CC, .VB, .VBZ, .CD').click(function() {
$('.TO, .DT, .IN, .WDT, .WP, .MD, .PRP, .CC, .VB, .VBZ, .CD').toggleClass('hide'); // reset
}));
else ($('span').click(
function(){
var selectedclass = $(this).attr('class');
$('span').css('background-color', 'white').css('color','black'); // reset
$('span.' + selectedclass).css('background-color', '#FF4500').css('color', 'white'); //highlighting the select
}));
})
</script>
''')
#wrapper
print('<div class ="tos_wrapper">')
#insert an image
# https://upload.wikimedia.org/wikipedia/commons/1/15/Joffe_signing_the_Treaty_of_Tartu.jpg
FaceApp_img_url = base64.b64encode(open('img/faceapp_logo.png', 'rb').read()).decode('utf-8')
FaceApp_image = '<div class="t_img">FaceApp<br><img class="img" src="data:img/faceapp_logo.png;base64,{}"></div>'.format(FaceApp_img_url)
print(FaceApp_image)
#info box
print('<div class ="info">')
infotext = [('Service', 'FaceApp'), ('Country', 'Russia'), ('Type', 'Image editing'), ('Initial release', 'December 31, 2016'), ('source', '<a href="https://www.faceapp.com/terms-en.html">link</a>'), ('Description', 'FaceApp is a mobile application for iOS and Android developed by Russian company Wireless Lab. The app generates highly realistic transformations of human faces in photographs by using neural networks based on artificial intelligence. The app can transform a face to make it smile, look younger, look older, or change gender.')]
for title, info in infotext:
print('<div class="info_{0}" style="border-top: 2px solid black;"><div class="info_title" >{0}</div><div class="info_content">{1}</div></div><br>'.format(title, info))
print('</div>')
#ToS text
print('<div class ="paragraph">')
# for paragraph in faceapp_text_list:
# tokenized = word_tokenize(paragraph)
# tagged = pos_tag(tokenized)
# print('<p>')
# for word, pos in tagged:
# print('<span class="{}">{}</span>'.format(pos, word))
# print('</p>')
# print('</div>')
# #faceapp_text
tokenized = word_tokenize(faceapp_text)
tagged = pos_tag(tokenized)
print('<p>')
for word, pos in tagged:
print('<span class="{}">{}</span>'.format(pos, word))
print('</p>')
print('</div>')
#colonial words list
print('<div class="top_words"><div class="top_words_title" style="-webkit-text-decoration-line: underline; text-decoration-line: underline;" >colonial words:</div>')
tokens_without_stopwords = nltk.FreqDist(words.lower() for words in tokenized if words.lower() not in tos_all_stopwords)
frequency_word = FreqDist(tokens_without_stopwords)
top_words = tokens_without_stopwords.most_common(20)
for chosen_words, frequency in top_words:
print('<br><div class="chosen_words" >{}({}) </div>'.format(chosen_words, frequency))
print('</div></div>')
#t_wrapper (second wrapper)
print('</div><div class="t_wrapper">')
#insert an image
# https://upload.wikimedia.org/wikipedia/commons/1/15/Joffe_signing_the_Treaty_of_Tartu.jpg
img_url = base64.b64encode(open('img/tartu.jpeg', 'rb').read()).decode('utf-8')
t_image = '<div class="t_img">Peace Treaty of Tartu<br><img class="img" src="data:img/tartu.jpeg;base64,{}"></div>'.format(img_url)
print(t_image)
#t_info box
print('<div class ="t_info">')
t_infotext = [('Name of Treaty', 'Peace Treaty of Tartu'), ('Country', 'Russia'), ('Date', 'February 2, 1920'), ('Location', 'Tartu, Estonia'), ('Signed', 'February 2, 1920'), ('Type', 'bilateral peace treaty'), ('source', '<a href="https://en.wikipedia.org/wiki/Treaty_of_Tartu_(Russian-Estonian)">link</a>'), ('Description', 'The Tartu Peace Treaty or Treaty of Tartu is a peace treaty between Estonia and Russian Soviet Federative Socialist Republic signed on 2 February 1920, ending the Estonian War of Independence.')]
for t_title, t_info in t_infotext:
print('<div class="t_info-{0}" style="border-top: 2px solid black;"><div class="info_t_title" >{0}</div><div class="t_info_content">{1}</div></div><br>'.format(t_title, t_info))
print('</div>')
#ToS text
print('<div class="t_paragraph">')
t_tokenized = word_tokenize(russia_text)
t_tagged = pos_tag(t_tokenized)
for t_word, t_pos in t_tagged:
print('<span class="{}">{}</span>'.format(t_pos, t_word))
print('<p>')
print('</div>')
#treaty colonial words list
print('<div class="t_top_words"><div class="t_top_words_title" style="-webkit-text-decoration-line: underline; text-decoration-line: underline;" >colonial words:</div>')
t_tokens_without_stopwords = nltk.FreqDist(words.lower() for words in t_tokenized if words.lower() not in t_all_stopwords)
t_frequency_word = FreqDist(t_tokens_without_stopwords)
t_top_words = t_tokens_without_stopwords.most_common(20)
for t_chosen_words, t_frequency in t_top_words:
print('<br><div class="t_chosen_words" >{}({}) </div>'.format(t_chosen_words, t_frequency))
print('</div></div>')
print('</div>')
print('''</body></html>''')

@ -0,0 +1,97 @@
-
'
(
)
"
faceapp
:
;
1
2
3
4
5
6
7
8
9
10
1789.3
including
your
a
about
within
without
all
an
and
are
as
at
be
but
by
can
are
our
where
how
do
from
get
had
has
have
he
I
i
if
in
into
is
it
its
me
more
my
not
of
on
one
or
other
out
so
some
such
than
that
the
their
them
then
there
these
they
this
those
to
up
was
were
what
when
which
who
whom
will
with
would
|
,
.

@ -0,0 +1,95 @@
$('.agreement').click(function(){
var word = $(this).text();
alert(word);
});
$('.chosen_words').hover(function(){
var word = $(this).text();
toggleClass(word);
});
$('.agreement').hover(function(){
$( this ).css('background-color', 'pink');
}).;
$('div').hover(function() {
$(this).attr(class).css('border','2px solid red');
}, function() {
$(this).attr(class).css('border',' ');
});
$(document).ready(function() {
$('div').hover(function() {
$(this).attr(class).css('border','2px solid red');
}, function() {
$(this).attr(class).css('border',' ');
});
var highlight = document.getElementsByClassName("agreement");
for (var i = 0; i < highlight.length; i++) {
highlight[i].addEventListener("mouseover", highlightThem);
highlight[i].addEventListener("mouseout", DontHighlightThem);
}
function highlightThem() {
for (var i = 0; i < highlight.length; i++) {
highlight[i].classList.add("highlight");
}
}
function DontHighlightThem() {
for (var i = 0; i < highlight.length; i++) {
highlight[i].classList.remove("highlight");
}
}
#image click
var images = document.querySelectorAll('.img');
for (var i=0; i < images.length; i++) {
images[i].addEventListener('click', function () {
if (this.parentElement && this.parentElement.tagName.toLowerCase() == 'div') {
this.parentElement.classList.toggle('img_clicked');
} else {
this.classList.toggle('img_clicked');
}
})
}

@ -0,0 +1,773 @@
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-5th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-5th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-5th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "DMMono";
src: url("http://bohyewoo.com/webfonts/DM_Mono/DMMono-Regular.ttf") format("ttf");
}
@import url('https://fonts.googleapis.com/css2?family=Anonymous+Pro:ital,wght@0,400;0,700;1,400;1,700&family=Raleway:wght@200;300;400;500&family=Source+Code+Pro:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&display=swap');
/* pop-up */
#overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #000;
filter:alpha(opacity=70);
-moz-opacity:0.7;
-khtml-opacity: 0.7;
opacity: 0.7;
z-index: 998;
display: none;
}
.cnt223 a{
text-decoration: none;
}
.popup{
width: 100%;
margin: 0 auto;
display: none;
position: fixed;
z-index: 999;
}
.cnt223{
min-width: 600px;
width: 60vw;
min-height: 150px;
margin: 100px auto;
background: #f3f3f3;
position: relative;
z-index: 999;
padding: 15px 35px;
border-radius: 5px;
box-shadow: 0 2px 5px #000;
}
.cnt223 p{
font-size: 20px;
font-family: 'Anonymous Pro', monospace;
clear: both;
color: #555555;
}
.cnt223 p a{
color: red;
}
.cnt223 .x{
float: right;
height: 35px;
left: 22px;
position: relative;
top: -25px;
width: 34px;
}
.cnt223 .x:hover{
cursor: pointer;
}
.popupclose {
background-color: black;
color: white !important;
font-size: 15pt;
padding: 5px;
}
.popupclose:hover {
background-color: red;
border: 1px solid black;
color: white !important;
font-size: 15pt;
padding: 5px;
}
/* index.html */
* {
top: 0;
padding: 0;
margin: 0;
}
.wrapper {
background-color: black;
/* font-family: 'Source Code Pro', monospace;*/
font-family: 'Anonymous Pro', monospace;
/* font-family: 'Raleway', sans-serif;
*/ font-weight: 400;
line-height: 1.5;
font-size: 12pt;
width: 100%;
}
.tos {
background-color: white;
width: 60%;
border: 0.5px solid black;
/* outline: 40px dotted black;
*/ padding: 40px;
margin: 0 auto;
}
.index-menu {
width: 15%;
top: 50px;
left: 20px;
font-family: Belgika-8th;
font-size: 7pt;
color: white;
letter-spacing: 0.6px;
position: fixed;
float: left;
z-index: 998;
}
.menu-title {
border-bottom: 1px solid white;
color: white;
}
.menu-title:hover {
background-color: black;
color: white;
border-bottom: 1px solid white;
}
.menu-title-country {
background-color: black;
color: white;
border: 0.1px solid white;
padding: 5px;
z-index: 995;
}
.index-menu-right {
width: 15%;
top: 50px;
right: calc(0.8vw);
font-family: Belgika-8th;
font-size: 7pt;
color: white;
letter-spacing: 0.5px;
position: fixed;
float: left;
z-index: 994;
}
.index-menu-single {
font-family: Belgika-8th;
font-size: 7pt;
color: white;
border-bottom: none;
text-decoration: none;
line-height: 2;
padding: 2px;
}
.index-menu-single:hover {
background-color: white;
color: red;
}
.single-right {
line-height: 2;
}
#header {
background-color: black;
top: 0px;
width: 100%;
font-family: belgika-8th;
font-size: 12pt;
color: white;
text-align: center;
position: fixed;
padding: 10px;
z-index: 998;
}
#header h1 {
text-align: center;
}
#title-text {
font-family: Belgika-8th;
font-size: 30pt;
}
h1, h2 {
font-family: Belgika;
font-size: 20pt;
}
.title {
font-family: Belgika;
font-size: 20pt;
}
.subtitle {
font-family: Belgika;
font-size: 15pt;
}
a {
font-weight: bold;
color: black;
border-bottom: 2px dotted black;
text-decoration: none;
}
a:hover {
text-decoration: none;
}
.text {
font-weight: bold;
position: relative;
display: inline-block;
border-bottom: 2px dotted black;
}
.text .text-hover {
visibility: hidden;
width: 400px;
font-family: Belgika-8th;
font-size: 8pt;
padding: 10px;
background-color: red;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
/* Position the tooltip */
position: absolute;
/* z-index: 1;
*/
top: -90px;
left: 110%;
z-index: 998;
}
.text .text-hover-top {
visibility: hidden;
width: 600px;
font-family: Belgika-8th;
font-size: 8pt;
padding: 10px;
background-color: red;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
/* Position the tooltip */
position: absolute;
z-index: 1;
top: -120px;
left: 110%;
z-index: 998;
}
.text .text-hover-img {
visibility: hidden;
/* Position the tooltip */
position: absolute;
z-index: 1;
top: -400px;
left: 5%;
}
.text:hover {
color: red;
border-bottom: 2px dotted red;
}
.text:hover .text-hover {
visibility: visible;
}
.text:hover .text-hover-top {
visibility: visible;
}
.text:hover .text-hover-img {
visibility: visible;
}
#reference-number {
color: blue;
font-weight: bold;
font-size: 11pt;
border: none;
}
.reference-text {
font-size: 9pt;
border: none;
}
.reference-link {
font-size: 9pt;
border-bottom: 2px dotted black;
}
.reference-link:hover {
color: red;
font-size: 9pt;
border-bottom: 2px dotted red;
}
/* The Modal (background) */
.modal {
display: none;
position: fixed;
left: 0;
top: 0;
width: 50%;
height: 100%;
overflow: auto;
border: 1px solid #888;
float: left;
z-index: 998;
}
::-webkit-scrollbar {
display: none;
}
/* Modal Content */
.modal-content {
background-color: gainsboro;
width: 95%;
margin: auto;
padding: 20px;
float: left;
-webkit-animation-name: animatetop;
-webkit-animation-duration: 0.5s;
animation-name: animatetop;
animation-duration: 0.5s;
}
.t_modal {
display: none;
position: fixed;
right: 0;
top: 0;
width: 50%;
height: 100%;
overflow: auto;
float: right;
border: 1px solid #888;
z-index: 998;
}
/* Modal Content */
.t_modal-content {
background-color: gainsboro;
margin: auto;
padding: 20px;
width: 95%;
float: right;
-webkit-animation-name: animatetop;
-webkit-animation-duration: 0.5s;
animation-name: animatetop;
animation-duration: 0.5s;
}
/* Add Animation */
@-webkit-keyframes animatetop {
from {top:-300px; opacity:0}
to {top:0; opacity:1}
}
@keyframes animatetop {
from {top:-300px; opacity:0}
to {top:0; opacity:1}
}
.close {
top: 0;
left: calc(46vw);
color: #aaaaaa;
float: right;
font-size: 60px;
position: fixed;
}
.t_close {
top: 0;
right: calc(12vw);
color: #aaaaaa;
float: right;
font-size: 60px;
position: fixed;
}
.close:hover,
.close:focus, .t_close:hover,
.t_close:focus {
color: #000;
text-decoration: none;
cursor: pointer;
}
#button {
/* background-color: black;
*/ border: none;
color: white;
padding: 15px 32px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 12px;
margin: 4px 2px;
cursor: pointer;
}
#t_button {
border: none;
color: white;
padding: 15px 32px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 12px;
margin: 4px 2px;
cursor: pointer;
}
.button-faceapp, .button-russia {
background-color: black;
}
iframe {
border: none;
top:0;
left: 0;
width: 100%;
height: 100vh;
}
/* FaceApp*/
p {
margin-bottom: 30px;
}
.img {
font-family: Belgika;
font-size: 20pt;
margin-left: calc(10vw + 5px);
}
.image {
height: 10vh;
margin-top: 30px;
cursor: pointer;
}
.img_clicked {
height: calc(20vw);
margin-top: 30px;
}
.t_img {
font-family: Belgika;
font-size: 20pt;
margin-right: calc(10vw + 5px);
}
.t_image {
height: 10vh;
margin-top: 30px;
cursor: pointer;
}
.t_img_clicked {
height: calc(20vw);
margin-top: 30px;
}
.info {
font-family: belgika-16th;
font-size: 8pt;
width: calc(30vw);
float: left;
margin-top: 30px;
margin-left: calc(10vw + 5px);
column-count: 2;
}
.t_info {
font-family: belgika-16th;
font-size: 8pt;
width: calc(30vw);
float: left;
margin-top: 30px;
margin-right: calc(10vw + 5px);
column-count: 2;
}
.paragraph {
width: 75%;
padding: 10px;
margin-top: 70px;
float: right;
}
.t_paragraph {
width: 75%;
padding: 10px;
margin-top: 70px;
float: left;
}
.top_words {
background-color: black;
width: 10%;
height: 100%;
left: 0;
font-family: Belgika;
font-weight: 16th;
font-size: 7.5pt;
color: white;
letter-spacing: 0.5px;
line-height: 1;
position: fixed;
}
.top_words_title {
# background-color: yellow;
margin: 40px 10px 10px 10px;
width: 80%;
}
.chosen_words {
# background-color: pink;
padding: 10px 1px 1px 10px;
}
.chosen_words:hover {
background-color: white;
color: red;
}
.t_top_words {
background-color: black;
width: 10%;
height: 100%;
font-family: Belgika-16th;
font-size: 7.5pt;
color: white;
letter-spacing: 0.5px;
line-height: 1;
position: fixed;
float: right;
right: 0;
top: 0;
}
.t_top_words_title {
margin: 40px 10px 10px 10px;
width: 80%;
}
.t_chosen_words {
padding: 10px 1px 1px 10px;
}
.t_chosen_words:hover {
background-color: white;
color: red;
}
.hide {
# color: white;
background-color: black;
}
.TO:hover, .DT:hover, .IN:hover, .WDT:hover, .WP:hover, .MD:hover, .PRP:hover, .CC:hover, .marks:hover, .comma:hover, .dot:hover {
background-color: black;
}
.adjective {
color: white;
background-color: blue;
}
.JJ:hover {
color: white;
background-color: blue;
}
.noun {
background-color: springgreen;
}
.NN:hover, .NNS:hover {
background-color: springgreen;
}
.verb {
background-color: yellow;
# color: yellow;
}
.VB:hover, .VBZ:hover, .VBN:hover, .VVD:hover {
background-color: yellow;
}
.propernoun {
background-color: pink;
}
.NNP:hover, .NNPS:hover {
background-color: pink;
}
.adverb {
background-color: lightgreen;
# color: lightgreen;
}
.RB:hover, .RBR:hover, .JJR:hover, .RBS:hover {
background-color: lightgreen;
}
.highlight {
background-color: yellow;
}

@ -0,0 +1,773 @@
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-5th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-5th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-5th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "DMMono";
src: url("http://bohyewoo.com/webfonts/DM_Mono/DMMono-Regular.ttf") format("ttf");
}
@import url('https://fonts.googleapis.com/css2?family=Anonymous+Pro:ital,wght@0,400;0,700;1,400;1,700&family=Raleway:wght@200;300;400;500&family=Source+Code+Pro:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&display=swap');
/* pop-up */
#overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #000;
filter:alpha(opacity=70);
-moz-opacity:0.7;
-khtml-opacity: 0.7;
opacity: 0.7;
z-index: 998;
display: none;
}
.cnt223 a{
text-decoration: none;
}
.popup{
width: 100%;
margin: 0 auto;
display: none;
position: fixed;
z-index: 999;
}
.cnt223{
min-width: 600px;
width: 60vw;
min-height: 150px;
margin: 100px auto;
background: #f3f3f3;
position: relative;
z-index: 999;
padding: 15px 35px;
border-radius: 5px;
box-shadow: 0 2px 5px #000;
}
.cnt223 p{
font-size: 20px;
font-family: 'Anonymous Pro', monospace;
clear: both;
color: #555555;
}
.cnt223 p a{
color: red;
}
.cnt223 .x{
float: right;
height: 35px;
left: 22px;
position: relative;
top: -25px;
width: 34px;
}
.cnt223 .x:hover{
cursor: pointer;
}
.popupclose {
background-color: black;
color: white !important;
font-size: 15pt;
padding: 5px;
}
.popupclose:hover {
background-color: red;
border: 1px solid black;
color: white !important;
font-size: 15pt;
padding: 5px;
}
/* index.html */
* {
top: 0;
padding: 0;
margin: 0;
}
.wrapper {
background-color: black;
/* font-family: 'Source Code Pro', monospace;*/
font-family: 'Anonymous Pro', monospace;
/* font-family: 'Raleway', sans-serif;
*/ font-weight: 400;
line-height: 1.5;
font-size: 12pt;
width: 100%;
}
.tos {
background-color: white;
width: 60%;
border: 0.5px solid black;
/* outline: 40px dotted black;
*/ padding: 40px;
margin: 0 auto;
}
.index-menu {
width: 15%;
top: 50px;
left: 20px;
font-family: Belgika-8th;
font-size: 7pt;
color: white;
letter-spacing: 0.6px;
position: fixed;
float: left;
z-index: 998;
}
.menu-title {
border-bottom: 1px solid white;
color: white;
}
.menu-title:hover {
background-color: black;
color: white;
border-bottom: 1px solid white;
}
.menu-title-country {
background-color: black;
color: white;
border: 0.1px solid white;
padding: 5px;
z-index: 995;
}
.index-menu-right {
width: 15%;
top: 50px;
right: calc(0.8vw);
font-family: Belgika-8th;
font-size: 7pt;
color: white;
letter-spacing: 0.5px;
position: fixed;
float: left;
z-index: 994;
}
.index-menu-single {
font-family: Belgika-8th;
font-size: 7pt;
color: white;
border-bottom: none;
text-decoration: none;
line-height: 2;
padding: 2px;
}
.index-menu-single:hover {
background-color: white;
color: red;
}
.single-right {
line-height: 2;
}
#header {
background-color: black;
top: 0px;
width: 100%;
font-family: belgika-8th;
font-size: 12pt;
color: white;
text-align: center;
position: fixed;
padding: 10px;
z-index: 998;
}
#header h1 {
text-align: center;
}
#title-text {
font-family: Belgika-8th;
font-size: 30pt;
}
h1, h2 {
font-family: Belgika;
font-size: 20pt;
}
.title {
font-family: Belgika;
font-size: 20pt;
}
.subtitle {
font-family: Belgika;
font-size: 15pt;
}
a {
font-weight: bold;
color: black;
border-bottom: 2px dotted black;
text-decoration: none;
}
a:hover {
text-decoration: none;
}
.text {
font-weight: bold;
position: relative;
display: inline-block;
border-bottom: 2px dotted black;
}
.text .text-hover {
visibility: hidden;
width: 400px;
font-family: Belgika-8th;
font-size: 8pt;
padding: 10px;
background-color: red;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
/* Position the tooltip */
position: absolute;
/* z-index: 1;
*/
top: -90px;
left: 110%;
z-index: 998;
}
.text .text-hover-top {
visibility: hidden;
width: 600px;
font-family: Belgika-8th;
font-size: 8pt;
padding: 10px;
background-color: red;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
/* Position the tooltip */
position: absolute;
z-index: 1;
top: -120px;
left: 110%;
z-index: 998;
}
.text .text-hover-img {
visibility: hidden;
/* Position the tooltip */
position: absolute;
z-index: 1;
top: -400px;
left: 5%;
}
.text:hover {
color: red;
border-bottom: 2px dotted red;
}
.text:hover .text-hover {
visibility: visible;
}
.text:hover .text-hover-top {
visibility: visible;
}
.text:hover .text-hover-img {
visibility: visible;
}
#reference-number {
color: blue;
font-weight: bold;
font-size: 11pt;
border: none;
}
.reference-text {
font-size: 9pt;
border: none;
}
.reference-link {
font-size: 9pt;
border-bottom: 2px dotted black;
}
.reference-link:hover {
color: red;
font-size: 9pt;
border-bottom: 2px dotted red;
}
/* The Modal (background) */
.modal {
display: none;
position: fixed;
left: 0;
top: 0;
width: 50%;
height: 100%;
overflow: auto;
border: 1px solid #888;
float: left;
z-index: 998;
}
::-webkit-scrollbar {
display: none;
}
/* Modal Content */
.modal-content {
background-color: gainsboro;
width: 95%;
margin: auto;
padding: 20px;
float: left;
-webkit-animation-name: animatetop;
-webkit-animation-duration: 0.5s;
animation-name: animatetop;
animation-duration: 0.5s;
}
.t_modal {
display: none;
position: fixed;
right: 0;
top: 0;
width: 50%;
height: 100%;
overflow: auto;
float: right;
border: 1px solid #888;
z-index: 998;
}
/* Modal Content */
.t_modal-content {
background-color: gainsboro;
margin: auto;
padding: 20px;
width: 95%;
float: right;
-webkit-animation-name: animatetop;
-webkit-animation-duration: 0.5s;
animation-name: animatetop;
animation-duration: 0.5s;
}
/* Add Animation */
@-webkit-keyframes animatetop {
from {top:-300px; opacity:0}
to {top:0; opacity:1}
}
@keyframes animatetop {
from {top:-300px; opacity:0}
to {top:0; opacity:1}
}
.close {
top: 0;
left: calc(46vw);
color: #aaaaaa;
float: right;
font-size: 60px;
position: fixed;
}
.t_close {
top: 0;
right: calc(12vw);
color: #aaaaaa;
float: right;
font-size: 60px;
position: fixed;
}
.close:hover,
.close:focus, .t_close:hover,
.t_close:focus {
color: #000;
text-decoration: none;
cursor: pointer;
}
#button {
/* background-color: black;
*/ border: none;
color: white;
padding: 15px 32px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 12px;
margin: 4px 2px;
cursor: pointer;
}
#t_button {
border: none;
color: white;
padding: 15px 32px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 12px;
margin: 4px 2px;
cursor: pointer;
}
.button-faceapp, .button-russia {
background-color: black;
}
iframe {
border: none;
top:0;
left: 0;
width: 100%;
height: 100vh;
}
/* FaceApp*/
p {
margin-bottom: 30px;
}
.img {
font-family: Belgika;
font-size: 20pt;
margin-left: calc(10vw + 5px);
}
.image {
height: 10vh;
margin-top: 30px;
cursor: pointer;
}
.img_clicked {
height: calc(20vw);
margin-top: 30px;
}
.t_img {
font-family: Belgika;
font-size: 20pt;
margin-right: calc(10vw + 5px);
}
.t_image {
height: 10vh;
margin-top: 30px;
cursor: pointer;
}
.t_img_clicked {
height: calc(20vw);
margin-top: 30px;
}
.info {
font-family: belgika-16th;
font-size: 8pt;
width: calc(30vw);
float: left;
margin-top: 30px;
margin-left: calc(10vw + 5px);
column-count: 2;
}
.t_info {
font-family: belgika-16th;
font-size: 8pt;
width: calc(30vw);
float: left;
margin-top: 30px;
margin-right: calc(10vw + 5px);
column-count: 2;
}
.paragraph {
width: 75%;
padding: 10px;
margin-top: 70px;
float: right;
}
.t_paragraph {
width: 75%;
padding: 10px;
margin-top: 70px;
float: left;
}
.top_words {
background-color: black;
width: 10%;
height: 100%;
left: 0;
font-family: Belgika;
font-weight: 16th;
font-size: 7.5pt;
color: white;
letter-spacing: 0.5px;
line-height: 1;
position: fixed;
}
.top_words_title {
# background-color: yellow;
margin: 40px 10px 10px 10px;
width: 80%;
}
.chosen_words {
# background-color: pink;
padding: 10px 1px 1px 10px;
}
.chosen_words:hover {
background-color: white;
color: red;
}
.t_top_words {
background-color: black;
width: 10%;
height: 100%;
font-family: Belgika-16th;
font-size: 7.5pt;
color: white;
letter-spacing: 0.5px;
line-height: 1;
position: fixed;
float: right;
right: 0;
top: 0;
}
.t_top_words_title {
margin: 40px 10px 10px 10px;
width: 80%;
}
.t_chosen_words {
padding: 10px 1px 1px 10px;
}
.t_chosen_words:hover {
background-color: white;
color: red;
}
.hide {
# color: white;
background-color: black;
}
.TO:hover, .DT:hover, .IN:hover, .WDT:hover, .WP:hover, .MD:hover, .PRP:hover, .CC:hover, .marks:hover, .comma:hover, .dot:hover {
background-color: black;
}
.adjective {
color: white;
background-color: blue;
}
.JJ:hover {
color: white;
background-color: blue;
}
.noun {
background-color: springgreen;
}
.NN:hover, .NNS:hover {
background-color: springgreen;
}
.verb {
background-color: yellow;
# color: yellow;
}
.VB:hover, .VBZ:hover, .VBN:hover, .VVD:hover {
background-color: yellow;
}
.propernoun {
background-color: pink;
}
.NNP:hover, .NNPS:hover {
background-color: pink;
}
.adverb {
background-color: lightgreen;
# color: lightgreen;
}
.RB:hover, .RBR:hover, .JJR:hover, .RBS:hover {
background-color: lightgreen;
}
.highlight {
background-color: yellow;
}

@ -0,0 +1,554 @@
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-5th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-5th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-5th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "DMMono";
src: url("http://bohyewoo.com/webfonts/DM_Mono/DMMono-Regular.ttf") format("ttf");
}
@import url('https://fonts.googleapis.com/css2?family=Anonymous+Pro:ital,wght@0,400;0,700;1,400;1,700&family=Raleway:wght@200;300;400;500&family=Source+Code+Pro:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&display=swap');
/* pop-up */
#overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: #000;
filter:alpha(opacity=70);
-moz-opacity:0.7;
-khtml-opacity: 0.7;
opacity: 0.7;
z-index: 998;
display: none;
}
.cnt223 a{
text-decoration: none;
}
.popup{
width: 100%;
margin: 0 auto;
display: none;
position: fixed;
z-index: 999;
}
.cnt223{
min-width: 600px;
width: 60vw;
min-height: 150px;
margin: 100px auto;
background: #f3f3f3;
position: relative;
z-index: 999;
padding: 15px 35px;
border-radius: 5px;
box-shadow: 0 2px 5px #000;
}
.cnt223 p{
font-size: 16px;
font-family: 'Anonymous Pro', monospace;
clear: both;
color: #555555;
}
.cnt223 p a{
color: red;
}
.cnt223 .x{
float: right;
height: 35px;
left: 22px;
position: relative;
top: -25px;
width: 34px;
}
.cnt223 .x:hover{
cursor: pointer;
}
.popupclose {
background-color: black;
color: white !important;
font-size: 15pt;
padding: 5px;
}
.popupclose:hover {
background-color: red;
border: 1px solid black;
color: white !important;
font-size: 15pt;
padding: 5px;
}
/* index.html */
* {
top: 0;
padding: 0;
margin: 0;
}
.wrapper {
background-color: black;
/* font-family: 'Source Code Pro', monospace;*/
font-family: 'Anonymous Pro', monospace;
/* font-family: 'Raleway', sans-serif;
*/ font-weight: 400;
line-height: 1.5;
font-size: 12pt;
width: 100%;
overflow-x: hidden;
}
.tos {
background-color: white;
width: 60%;
border: 0.5px solid black;
/* outline: 40px dotted black;
*/ padding: 40px;
margin: 0 auto;
}
.index-menu {
width: 15%;
top: 50px;
left: 20px;
font-family: Belgika-8th;
font-size: 7pt;
color: white;
letter-spacing: 0.6px;
position: fixed;
float: left;
z-index: 998;
}
.menu-title {
border-bottom: 1px solid white;
color: white;
}
.menu-title:hover {
background-color: black;
color: white;
border-bottom: 1px solid white;
}
.menu-title-country {
background-color: black;
color: white;
border: 0.1px solid white;
padding: 5px;
z-index: 995;
}
.index-menu-right {
width: 15%;
top: 50px;
right: calc(0.8vw);
font-family: Belgika-8th;
font-size: 7pt;
color: white;
letter-spacing: 0.5px;
position: fixed;
float: left;
z-index: 994;
}
.index-menu-single {
font-family: Belgika-8th;
font-size: 7pt;
color: white;
border-bottom: none;
text-decoration: none;
line-height: 2;
padding: 2px;
}
.index-menu-single:hover {
background-color: white;
color: red;
}
.single-right {
line-height: 2;
}
#header {
background-color: black;
top: 0px;
width: 100%;
font-family: belgika-8th;
font-size: 12pt;
color: white;
text-align: center;
position: fixed;
padding: 10px;
z-index: 998;
}
#header h1 {
text-align: center;
}
#title-text {
font-family: Belgika-8th;
font-size: 30pt;
}
h1, h2 {
font-family: Belgika;
font-size: 20pt;
}
.title {
font-family: Belgika;
font-size: 20pt;
}
.subtitle {
font-family: Belgika;
font-size: 15pt;
}
a {
font-weight: bold;
color: black;
border-bottom: 2px dotted black;
text-decoration: none;
}
a:hover {
text-decoration: none;
}
.text {
font-weight: bold;
position: relative;
display: inline-block;
border-bottom: 2px dotted black;
}
.text .text-hover {
visibility: hidden;
width: 400px;
font-family: Belgika-8th;
font-size: 8pt;
padding: 10px;
background-color: red;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
/* Position the tooltip */
position: absolute;
/* z-index: 1;
*/
top: -90px;
left: 110%;
z-index: 998;
}
.text .text-hover-top {
visibility: hidden;
width: 600px;
font-family: Belgika-8th;
font-size: 8pt;
padding: 10px;
background-color: red;
color: #fff;
text-align: center;
border-radius: 6px;
padding: 5px 0;
/* Position the tooltip */
position: absolute;
z-index: 1;
top: -120px;
left: 110%;
z-index: 998;
}
.text .text-hover-img {
visibility: hidden;
/* Position the tooltip */
position: absolute;
z-index: 1;
top: -400px;
left: 5%;
}
.text:hover {
color: red;
border-bottom: 2px dotted red;
}
.text:hover .text-hover {
visibility: visible;
}
.text:hover .text-hover-top {
visibility: visible;
}
.text:hover .text-hover-img {
visibility: visible;
}
#reference-number {
color: blue;
font-weight: bold;
font-size: 11pt;
border: none;
}
.reference-text {
font-size: 9pt;
border: none;
}
.reference-link {
font-size: 9pt;
border-bottom: 2px dotted black;
}
.reference-link:hover {
color: red;
font-size: 9pt;
border-bottom: 2px dotted red;
}
/* The Modal (background) */
.modal {
display: none;
position: fixed;
left: 0;
top: 0;
width: 50%;
height: 100%;
overflow-y: auto;
overflow-x: hidden;
border: 1px solid #888;
float: left;
z-index: 998;
}
::-webkit-scrollbar {
display: none;
}
/* Modal Content */
.modal-content {
background-color: gainsboro;
width: 95%;
margin: auto;
padding: 20px;
float: left;
-webkit-animation-name: animatetop;
-webkit-animation-duration: 0.5s;
animation-name: animatetop;
animation-duration: 0.5s;
}
.t_modal {
display: none;
position: fixed;
right: 0;
top: 0;
width: 50%;
height: 100%;
overflow-y: auto;
overflow-x: hidden;
float: right;
border: 1px solid #888;
z-index: 998;
}
/* Modal Content */
.t_modal-content {
background-color: gainsboro;
margin: auto;
padding: 20px;
width: 95%;
float: right;
-webkit-animation-name: animatetop;
-webkit-animation-duration: 0.5s;
animation-name: animatetop;
animation-duration: 0.5s;
}
/* Add Animation */
@-webkit-keyframes animatetop {
from {top:-300px; opacity:0}
to {top:0; opacity:1}
}
@keyframes animatetop {
from {top:-300px; opacity:0}
to {top:0; opacity:1}
}
.close {
top: 0;
left: calc(46vw);
color: #aaaaaa;
float: right;
font-size: 60px;
position: fixed;
}
.t_close {
top: 0;
right: calc(1vw);
color: #aaaaaa;
float: right;
font-size: 60px;
position: fixed;
}
.close:hover,
.close:focus, .t_close:hover,
.t_close:focus {
color: #000;
text-decoration: none;
cursor: pointer;
}
#button {
border: none;
color: white;
padding: 15px 32px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 12px;
margin: 4px 2px;
cursor: pointer;
}
#t_button {
border: none;
color: white;
padding: 15px 32px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 12px;
margin: 4px 2px;
cursor: pointer;
}
.button-faceapp, .button-russia {
background-color: black;
}
#tosview {
border: none;
width: 100vw;
height: 100vh;
margin: -20px;
}
#treatyview {
border: none;
width: 100vw;
height: 100vh;
margin: -20px;
}

@ -0,0 +1,96 @@
-
'
(
)
"
faceapp
:
;
1
2
3
4
5
6
7
8
9
10
article
estonia
estonian
including
within
without
article
a
about
all
an
and
are
as
at
be
but
by
can
do
from
get
had
has
have
he
I
i
if
in
into
is
it
its
me
more
my
not
of
on
one
or
other
out
so
some
such
than
that
the
their
them
then
there
these
they
this
those
to
up
was
were
what
when
which
who
whom
will
with
would
|
,
.

@ -0,0 +1,11 @@
from bs4 import BeautifulSoup
from urllib.parse import quote as urlquote, unquote as urlunquote
file = open('tag_comparison.py', 'r')
x = 1
print(read)
with open(file, 'w') as new_html:
read = new_html.read()
html = BeautifulSoup(text, 'html.parser')
line = html.find('NN', 'span')

@ -0,0 +1,281 @@
from __future__ import division
import glob
from nltk import *
import re
import nltk
import codecs
from nltk import sent_tokenize, word_tokenize, pos_tag
from nltk.probability import FreqDist
from nltk.corpus import stopwords
nltk.download('stopwords')
# infofile = open('faceapp_infos.txt','r')
# infotext = infofile.read()
#open the txt file, read, and tokenize
file = open('faceapp.txt','r')
text = file.read()
#not sure if this works..
x = 1
#stopwords
default_stopwords = set(stopwords.words('english'))
custom_stopwords = set(codecs.open('stopwords.txt', 'r').read().splitlines())
all_stopwords = default_stopwords | custom_stopwords
# with open(output_html, 'w') as new_html:
# new_html.write(
# '''<!DOCTYPE html>
# <html>
# <head>
# <meta charset="utf-8">
# <title></title>
# <style>
# @font-face {
# font-family: "Belgika";
# src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.eot");
# src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.woff") format("woff"),
# url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.svg#filename") format("svg");
# }
# @font-face {
# font-family: "Belgika";
# src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.eot");
# src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.woff") format("woff"),
# url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.svg#filename") format("svg");
# }
# @font-face {
# font-family: "Belgika";
# src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.eot");
# src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.woff") format("woff"),
# url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.svg#filename") format("svg");
# }
# @font-face {
# font-family: "SourceCodePro";
# src: url("http://bohyewoo.com/webfonts/Source_Code_Pro/SourceCodePro-Regular.ttf");
# }
# body {
# background-color: whitesmoke;
# # font-family: Belgika;
# # font-weight: 8th;
# # letter-spacing: -0.3px;
# font-size: 20px;
# line-height: 1.2;
# }
# .NNP {
# background-color: pink;
# }
# .VBP {
# }
# .VBP:hover {
# background-color: gold;
# }
# .NN {
# background-color: LightSkyBlue;
# }
# .NNS {
# background-color: Aquamarine;
# }
# .paragraph {
# font-family: SourceCodePro;
# font-weight: regular;
# letter-spacing: -0.5px;
# width: 50%;
# float: right;
# }
# .top_words {
# font-family: Belgika;
# font-weight: 8th;
# font-size: 9pt;
# width: 25%;
# float: left;
# }
# </style>
# </head>
# <body>'''
# )
print('''<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "SourceCodePro";
src: url("http://bohyewoo.com/webfonts/Source_Code_Pro/SourceCodePro-Regular.ttf");
}
body {
background-color: whitesmoke;
# font-family: Belgika;
# font-weight: 8th;
# letter-spacing: -0.3px;
font-size: 20px;
line-height: 1.2;
}
.info {
font-family: Belgika;
font-weight: 8th;
font-size: 10pt;
width: 20%;
float: right;
border: 1px solid black;
}
.NNP {
background-color: pink;
}
.VBP {
}
.VBP:hover {
background-color: gold;
}
.NN {
background-color: LightSkyBlue;
}
.NNS {
background-color: Aquamarine;
}
.paragraph {
font-family: SourceCodePro;
font-weight: regular;
letter-spacing: -0.5px;
width: 50%;
float: right;
}
.top_words {
font-family: Belgika;
font-weight: 8th;
font-size: 9pt;
width: 25%;
float: left;
}
</style>
</head>
<body>''')
#info part
print('<div class ="info">')
infotext = [('platform', 'FaceApp'), ('Type', 'Image editing'), ('Initial release', 'December 31 2016'), ('Type', 'Image editing')]
for title, info in infotext:
print('<span class="info-{0}">{0}:{1}</span><br>'.format(title, info))
print('</div>')
#ToS text
print('<div class ="paragraph">')
# for sentence in sent_tokenize(text):
print('<span>')
tokenized = word_tokenize(text)
tagged = pos_tag(tokenized)
# for HTML
for word, pos in tagged:
print('<span class="{}">{}</span>'.format(pos, word))
print('</span>')
print('</div>')
# filtering stopwords
tokens_without_stopwords = nltk.FreqDist(words.lower() for words in tokenized if words.lower() not in all_stopwords)
print(tokens_without_stopwords)
print('<div class="top_words"> colonial words:')
frequency_word = FreqDist(tokens_without_stopwords)
top_words = tokens_without_stopwords.most_common(100)
for chosen_words, frequency in top_words:
print('<br><span class="chosen_words">{}({}) </span>'.format(chosen_words, frequency))
# new_html = open('output.html', 'wb') # open the output file
# new_html.write('''</div></body></html>''')
# new_html.close() # close the output file
print('''</div></body></html>''')

@ -0,0 +1,173 @@
1 Eligibility
You must be at least 13 years of age to access or use our Services. If you are under 18 years of age (or the age of legal majority where you live), you may only access or use our Services under the supervision of a parent or legal guardian who agrees to be bound by this Agreement. If you are a parent or legal guardian of a user under the age of 18 (or the age of legal majority), you agree to be fully responsible for the acts or omissions of such user in connection with our Services. If you are accessing or using our Services on behalf of another person or entity, you represent that you are authorized to accept this Agreement on that person or entitys behalf and that the person or entity agrees to be responsible to us if you or the other person or entity violates this Agreement.
2 User Accounts and Account Security
If you choose to login to the Services via a third-party platform or social media network, you will need to use your credentials (e.g., username and password) from a third-party online platform. You must maintain the security of your third party account and promptly notify us if you discover or suspect that someone has accessed your account without your permission. If you permit others to use your account credentials, you are responsible for the activities of such users that occur in connection with your account.
3 Privacy
Please refer to our Privacy Policy for information about how we collect, use and disclose information about you.
4 User Content
Our Services may allow you and other users to create, post, store and share content, including photos, videos, messages, text, software and other materials (collectively, “User Content”). User Content does not include user-generated filters. Subject to this Agreement and the Privacy Policy, you retain all rights in and to your User Content, as between you and FaceApp. Further, FaceApp does not claim ownership of any User Content that you post on or through the Services. You grant FaceApp a nonexclusive, royalty-free, worldwide, fully paid license to use, reproduce, modify, adapt, create derivative works from, distribute, perform and display your User Content during the term of this Agreement solely to provide you with the Services.
You acknowledge that some of the Services are supported by advertising revenue and may display advertisements and promotions, and you hereby agree that FaceApp may place such advertising and promotions on the Services or on, about, or in conjunction with your User Content. The manner, mode and extent of such advertising and promotions are subject to change without specific notice to you. You acknowledge that we may not always identify paid services, sponsored content, or commercial communications as such.
You represent and warrant that: (i) you own or otherwise have the right to use the User Content modified by you on or through the Services in accordance with the rights and licenses set forth in this Agreement; (ii) you agree to pay for all royalties, fees, and any other monies owed by reason of User Content you stylize on or through the Services; and (iii) you have the legal right and capacity to enter into this Agreement in your jurisdiction.
You may not create, post, store or share any User Content that violates this Agreement or for which you do not have all the rights necessary to grant us the license described above. Although we have no obligation to screen, edit or monitor User Content, we may delete or remove User Content at any time and for any reason.
FaceApp is not a backup service and you agree that you will not rely on the Services for the purposes of User Content backup or storage. FaceApp will not be liable to you for any modification, suspension, or discontinuation of the Services, or the loss of any User Content.
5 Prohibited Conduct and Content
You will not violate any applicable law, contract, intellectual property or other third-party right or commit a tort, and you are solely responsible for your conduct while accessing or using our Services. You will not:
Engage in any harassing, threatening, intimidating, predatory or stalking conduct;
Use or attempt to use another users account without authorization from that user and FaceApp;
Use our Services in any manner that could interfere with, disrupt, negatively affect or inhibit other users from fully enjoying our Services or that could damage, disable, overburden or impair the functioning of our Services in any manner;
Reverse engineer any aspect of our Services or do anything that might discover source code or bypass or circumvent measures employed to prevent or limit access to any part of our Services;
Attempt to circumvent any content-filtering techniques we employ or attempt to access any feature or area of our Services that you are not authorized to access;
Develop or use any third-party applications that interact with our Services without our prior written consent, including any scripts designed to scrape or extract data from our Services;
Use our Services for any illegal or unauthorized purpose, or engage in, encourage or promote any activity that violates this Agreement.
You may also only post or otherwise share User Content that is non-confidential and you have all necessary rights to disclose. You may not create, post, store or share any User Content that:
- Is unlawful, libelous, defamatory, obscene, pornographic, indecent, lewd, suggestive, harassing, threatening, invasive of privacy or publicity rights, abusive, inflammatory or fraudulent;
- Would constitute, encourage or provide instructions for a criminal offense, violate the rights of any party or otherwise create liability or violate any local, state, national or international law;
- May infringe any patent, trademark, trade secret, copyright or other intellectual or proprietary right of any party;
- Contains or depicts any statements, remarks or claims that do not reflect your honest views and experiences;
- Impersonates, or misrepresents your affiliation with, any person or entity;
Contains any unsolicited promotions, political campaigning, advertising or solicitations;
- Contains any private or personal information of a third party without such third partys consent;
- Contains any viruses, corrupted data or other harmful, disruptive or destructive files or content; or
- Is, in our sole judgment, objectionable or that restricts or inhibits any other person from using or enjoying our Services, or that may expose FaceApp or others to any harm or liability of any type.
- In addition, although we have no obligation to screen, edit or monitor User Content, we may delete or remove User Content at any time and for any reason.
6 Limited License; Copyright and Trademark
Our Services and the text, graphics, images, photographs, videos, illustrations, trademarks, trade names, page headers, button icons, scripts, service marks, logos, slogans, filters, user generated filters and other content contained therein (collectively, the “FaceApp Content”) are owned by or licensed to FaceApp and are protected under both United States and foreign laws. Except as explicitly stated in this Agreement, FaceApp and our licensors reserve all rights in and to our Services and the FaceApp Content. You are hereby granted a limited, nonexclusive, nontransferable, non-sublicensable, revocable license to access and use our Services and FaceApp Content for your own personal use; however, such license is subject to this Agreement and does not include any right to: (a) sell, resell or commercially use our Services or FaceApp Content; (b) copy, reproduce, distribute, publicly perform or publicly display FaceApp Content, except as expressly permitted by us or our licensors; (c) modify the FaceApp Content, remove any proprietary rights notices or markings, or otherwise make any derivative uses of our Services or FaceApp Content, except as expressly set forth in this Agreement; (d) use any data mining, robots or similar data gathering or extraction methods; or (e) use our Services or FaceApp Content other than as expressly provided in this Agreement. Any use of our Services or FaceApp Content other than as specifically authorized herein, without our prior written permission, is strictly prohibited and will terminate the license granted under this Agreement. You will not remove, alter or conceal any copyright, trademark, service mark or other proprietary rights notices incorporated in or accompanying the FaceApp Content.
7 Feedback
Any questions, comments, suggestions, ideas, original or creative materials or other information you submit about FaceApp or our products or Services (collectively, “Feedback”), is non-confidential and we have no obligations (including without limitation obligations of confidentiality) with respect to such Feedback. You hereby grant to FaceApp a fully paid, royalty-free, perpetual, irrevocable, worldwide, non-exclusive, and fully sublicensable right and license to use, reproduce, perform, display, distribute, adapt, modify, re-format, create derivative works of, and otherwise commercially or non-commercially exploit in any manner, any and all Feedback, and to sublicense the foregoing rights, in connection with the operation and maintenance of the Services and/or FaceApps business.
8 Copyright Complaints
We have a policy of limiting access to our Services and terminating the accounts of users who repeatedly infringe the intellectual property copyright rights of others upon prompt notification to us by the copyright owner or the copyright owners legal agent. Without limiting the foregoing, if you believe that your work has been copied and posted on or through the Services in a way that constitutes copyright infringement, please provide our Copyright Agent with the following information: (a) an electronic or physical signature of the person authorized to act on behalf of the owner of the copyright interest; (b) a description of the copyrighted work that you claim has been infringed; (c) a description of the location on the Services of the material that you claim is infringing; (d) your address, telephone number and e-mail address; € a written statement by you that you have a good faith belief that the disputed use is not authorized by the copyright owner, its agent or the law; and (f) a statement by you, made under penalty of perjury, that the above information in your notice is accurate and that you are the copyright owner or authorized to act on the copyright owners behalf. Contact information for FaceApps Copyright Agent for notice of claims of infringement is as follows: Yaroslav Goncharov, Designated DMCA Copyright Agent, FaceApp Inc, 1000 N West Street, Suite 1200, Wilmington, Delaware, 19801.
9 Indemnification
To the fullest extent permitted by applicable law, you will indemnify, defend, and hold harmless FaceApp and each of our respective officers, directors, agents, partners and employees (individually and collectively, the “FaceApp Parties”) from and against any loss, liability, claim, demand, damages, expenses or costs (“Claims”) arising out of or related to (a) your access to or use of our Services; (b) your User Content or Feedback; (c) your violation of this Agreement; (d) your violation, misappropriation or infringement of any rights of another (including intellectual property rights or privacy rights); or (e) your conduct in connection with our Services. You agree to promptly notify FaceApp Parties of any third party Claims, cooperate with FaceApp Parties in defending such Claims and pay all fees, costs and expenses associated with defending such Claims (including, but not limited to, attorneys fees). You also agree that the FaceApp Parties will have control of the defense or settlement of any third party Claims. This indemnity is in addition to, and not in lieu of, any other indemnities set forth in a written agreement between you and FaceApp or the other FaceApp Parties.
10 Disclaimers
We do not control, endorse or take responsibility for any User Content or third-party content available on or linked to by our Services.
Your use of our services is at your sole risk. Our services are provided “as is” and “as available” without warranties of any kind, either express or implied, including, but not limited to, implied warranties of merchantability, fitness for a particular purpose, title, and non-infringement. In addition, faceapp does not represent or warrant that our services are accurate, complete, reliable, current or error-free. While faceapp attempts to make your access to and use of our services safe, we cannot and do not represent or warrant that our services or servers are free of viruses or other harmful components. You assume the entire risk as to the quality and performance of the services.
11 Limitation of Liability
Faceapp and the other faceapp parties will not be liable to you under any theory of liability—whether based in contract, tort, negligence, strict liability, warranty, or otherwise—for any indirect, consequential, exemplary, incidental, punitive or special damages or lost profits, even if faceapp or the other faceapp parties have been advised of the possibility of such damages.
The total liability of faceapp and the other faceapp parties, for any claim arising out of or relating to this agreement or our services, regardless of the form of the action, is limited to the amount paid, if any, by you to access or use our services.
The limitations set forth in this section will not limit or exclude liability for the gross negligence, fraud or intentional misconduct of FaceApp or the other FaceApp Parties or for any other matters in which liability cannot be excluded or limited under applicable law. Additionally, some jurisdictions do not allow the exclusion or limitation of incidental or consequential damages, so the above limitations or exclusions may not apply to you.
12 Release
To the fullest extent permitted by applicable law, you release FaceApp and the other FaceApp Parties from responsibility, liability, claims, demands, and/or damages (actual and consequential) of every kind and nature, known and unknown (including, but not limited to, claims of negligence), arising out of or related to disputes between users and the acts or omissions of third parties. You expressly waive any rights you may have under California Civil Code § 1542 as well as any other statute or common law principles that would otherwise limit the coverage of this release to include only those claims which you may know or suspect to exist in your favor at the time of agreeing to this release.
13 Transfer and Processing Data
By accessing or using our Services, you acknowledge and, as applicable, consent to the processing, transfer and storage of information about you in and to the United States and other countries.
14 Dispute Resolution; Binding Arbitration Agreement
Please read the following section carefully because it requires users who are U.S. residents to arbitrate certain disputes and claims with FaceApp and limits the manner in which you can seek relief from us.
Applicability of Arbitration Agreement. Except for small claims disputes in which you or FaceApp seek to bring an individual action in small claims court located in the county of your billing address or disputes in which you or FaceApp seeks injunctive or other equitable relief for the alleged unlawful use of intellectual property, you and FaceApp waive your rights to a jury trial and to have any dispute arising out of or related to this Agreement or our Services resolved in court. This Arbitration Agreement shall apply, without limitation, to all disputes or claims and requests for relief that arose or were asserted before the effective date of this Agreement or any prior version of this Agreement.
Arbitration Rules and Forum. The Federal Arbitration Act governs the interpretation and enforcement of this Arbitration Agreement. To begin an arbitration proceeding, you must send a letter requesting arbitration and describing your dispute or claim or request for relief to our registered agent [include name and address of registered agent here]. The arbitration will be resolved through confidential binding arbitration by the Judicial Arbitration and Mediation Services (“JAMS”), an established alternative dispute resolution provider. Disputes involving claims, counterclaims, or requests for relief under $250,000, not inclusive of attorneys fees and interest, shall be subject to JAMSs most current version of the Streamlined Arbitration Rules and procedures available; all other disputes shall be subject to JAMSs most current version of the Comprehensive Arbitration Rules and Procedures, available at http://www.jamsadr.com/rules-comprehensive-arbitration/. JAMSs rules are also available at www.jamsadr.com or by calling JAMS at 800-352-5267. If JAMS is not available to arbitrate, the parties will select an alternative arbitral forum. If the arbitrator finds that you cannot afford to pay JAMSs filing, administrative, hearing and/or other fees and cannot obtain a waiver from JAMS, FaceApp will pay them for you. In addition, we will reimburse all such JAMSs filing, administrative, hearing and/or other fees for disputes, claims, or requests for relief totaling less than $10,000 unless the arbitrator determines the claims are frivolous. You may choose to have the arbitration conduced by telephone, based on written submissions, or in person in the country where you live or at another mutually agreed location. Any judgment on the award rendered by the arbitrator may be entered in any court of competent jurisdiction.
You may choose to have the arbitration conduced by telephone, based on written submissions or at another mutually agreed location. Any judgment on the award rendered by the arbitrator may be entered in any court of competent jurisdiction.
Authority of Arbitrator. The arbitrator shall have exclusive authority to (a) determine the scope and enforceability of this Arbitration Agreement and (b) resolve any dispute related to the interpretation, applicability, enforceability or formation of this Arbitration Agreement, including, but not limited to, any assertion that all or any part of this Arbitration Agreement is void or voidable. The arbitration will decide the rights and liabilities, if any, of you and FaceApp. The arbitration proceeding will not be consolidated with any other matters or joined with any other cases or parties. The arbitrator shall have the authority to grant motions dispositive of all or part of any claim. The arbitrator shall have the authority to award monetary damages and to grant any non-monetary remedy or relief available to an individual under applicable law, the arbitral forums rules, and the Agreement (including the Arbitration Agreement). The arbitrator shall issue a written award and statement of decision describing the essential findings and conclusions on which the award is based, including the calculation of any damages awarded. The arbitrator has the same authority to award relief on an individual basis that a judge in a court of law would have. The award of the arbitrator is final and binding upon you and us.
Waiver of Jury Trial. YOU AND FACEAPP HEREBY WAIVE ANY CONSTITUTIONAL AND STATUTORY RIGHTS TO SUE IN COURT AND HAVE A TRIAL IN FRONT OF A JUDGE OR A JURY. You and FaceApp are instead electing that all disputes, claims or requests for relief shall be resolved by arbitration under this Arbitration Agreement, except as specified above. An arbitrator can award on an individual basis the same damages and relief as a court and must follow this Agreement as a court would. However, there is no judge or jury in arbitration, and court review of an arbitration award is subject to very limited. Review.
Waiver of Class or Other Non-Individualized Relief. ALL DISPUTES, CLAIMS AND REQUESTS FOR RELIEF WITHIN THE SCOPE OF THIS ARBITRATION AGREEMENT MUST BE ARBITRATED ON AN INDIVIDUAL BASIS AND NOT ON A CLASS OR COLLECTIVE BASIS. ONLY INDIVIDUAL RELIEF IS AVAILABLE, AND CLAIMS OF MORE THAN ONE USER CANNOT BE ARBITRATED OR CONSOLIDATED WITH THOSE OF ANY OTHER USER. If a decision is issued stating that applicable law precludes enforcement of any of this subsections limitations as to a given dispute, claim or request for relief, then such aspect must be severed from the arbitration and brought into the State or Federal Courts located in the State of California. All other disputes, claims, or requests for relief shall be arbitrated.
30-Day Right to Opt-Out. You have the right to opt out of the provisions of this Arbitration Agreement by sending written notice of your decision to opt-out to: arbitration@faceapp.com, within 30 days after first becoming subject to this Arbitration Agreement. Your notice must include your name and address, your username (if any), the e-mail address you used to set up your account (if you have one), and an unequivocal statement that you want to opt out of this Arbitration Agreement. If you opt out of this Arbitration Agreement, all other parts of this Agreement will continue to apply to you. Opting out of this Arbitration Agreement has no effect on any other arbitration agreements that you may currently have, or may enter in the future, with us.
You and FaceApp agree that the state or federal courts of the State of California and the United States sitting in Santa Clara County, California have exclusive jurisdiction over any appeals and the enforcement of an arbitration award.
Severability. Except as provided in this Section 14 above, if any part or parts of this Arbitration Agreement are found under the law to be invalid or unenforceable, then such specific part or parts shall be of no force and effect and shall be severed, and the remainder of the Arbitration Agreement shall continue in full force and effect.
Survival of Agreement. This Arbitration Agreement will survive the termination of your relationship with FaceApp.
Modification, Notwithstanding any provision in this Agreement to the contrary, we agree that if FaceApp makes any future material change to this Arbitration Agreement you may reject that change within thirty (30) days of such change becoming effective by writing Company at the following address: arbitration@faceapp.com.
15. Governing Law and Venue
This Agreement and your access to and use of our Services will be governed by and construed and enforced in accordance with the laws of California, consistent with the Federal Arbitration Act, without regard to conflict of law rules or principles (whether of California or any other jurisdiction) that would cause the application of the laws of any other jurisdiction. The United Nations Convention for the International Sale of Goods does not apply to the Agreement. Any dispute between the parties that is not subject to arbitration or cannot be heard in small claims court will be resolved in the state or federal courts of California and the United States, respectively, sitting in Santa Clara County, California.
16 Electronic Communications
By accessing or using the Services, you also consent to receive electronic communications from FaceApp (e.g., responses to your requests, questions and feedback, announcements, updates, and security alerts through a push notification or by posting notices on our Services). You agree that any notices, agreements, disclosures or other communications that we send to you electronically will satisfy any legal communication requirements, including, but not limited to, that such communications be in writing.
17 Termination
We reserve the right, without notice and in our sole discretion, to terminate your right to access or use our Services. We are not responsible for any loss or harm related to your inability to access or use our Services.
18 Severability
If any provision or part of a provision of this Agreement is unlawful, void or unenforceable, that provision or part of the provision is deemed severable from this Agreement and does not affect the validity and enforceability of any remaining provisions.
19 Additional Terms Applicable to iOS Devices
The following terms apply if you install, access or use the Services on any device that contains the iOS mobile operating system (the “App”) developed by Apple Inc. (“Apple”).
Acknowledgement. You acknowledge that this Agreement is concluded solely between us, and not with Apple, and FaceApp, not Apple, is solely responsible for the App and the content thereof. You further acknowledge that the usage rules for the App are subject to any additional restrictions set forth in the Usage Rules for the Apple App Store Terms of Service as of the date you download the App, and in the event of any conflict, the Usage Rules in the App Store shall govern if they are more restrictive. You acknowledge and agree that you have had the opportunity to review the Usage Rules.
Scope of License. The license granted to you is limited to a non-transferable license to use the App on any iPhone, iPod touch or iPad that you own or control as permitted by the Usage Rules set forth in the Apple App Store Terms of Service.
Maintenance and Support. You and FaceApp acknowledge that Apple has no obligation whatsoever to furnish any maintenance and support services with respect to the App.
Warranty. You acknowledge that Apple is not responsible for any product warranties, whether express or implied by law, with respect to the App. In the event of any failure of the App to conform to any applicable warranty, you may notify Apple, and Apple will refund the purchase price, if any, paid to Apple for the App by you; and to the maximum extent permitted by applicable law, Apple will have no other warranty obligation whatsoever with respect to the App. The parties acknowledge that to the extent that there are any applicable warranties, any other claims, losses, liabilities, damages, costs or expenses attributable to any failure to conform to any such applicable warranty would be the sole responsibility of FaceApp. However, you understand and agree that in accordance with this Agreement, FaceApp has disclaimed all warranties of any kind with respect to the App, and therefore, there are no warranties applicable to the App.
Product Claims. You and FaceApp acknowledge that as between Apple and FaceApp, FaceApp, not Apple, is responsible for addressing any claims relating to the App or your possession and/or use of the App, including, but not limited to (a) product liability claims, (b) any claim that the App fails to conform to any applicable legal or regulatory requirement, and (c) claims arising under consumer protection or similar legislation.
Intellectual Property Rights. The parties acknowledge that, in the event of any third party claim that the App or your possession and use of the App infringe that third partys intellectual property rights, FaceApp, and not Apple, will be solely responsible for the investigation, defense, settlement and discharge of any such intellectual property infringement claim to the extent required under this Agreement.
Legal Compliance. You represent and warrant that (a) you are not located in a country that is subject to a U.S. Government embargo, or that has been designated by the U.S. Government as a “terrorist supporting” country, and (b) you are not listed on any U.S. Government list of prohibited or restricted parties.
Developer Name and Address. Any questions, complaints or claims with respect to the App should be directed to:
FaceApp Inc
1000 N West Street, Suite 1200,
Wilmington, Delaware, 19801
USA
contact@faceapp.com
Third-Party Terms of Agreement. You agree to comply with any applicable third-party terms when using the Services.
Third-Party Beneficiary. The parties acknowledge and agree that Apple, and Apples subsidiaries, are third-party beneficiaries of this Agreement, and that, upon your acceptance of this Agreement, Apple will have the right (and will be deemed to have accepted the right) to enforce this Agreement against you as a third-party beneficiary thereof).
20 Export
You may not use, export, import, or transfer all or any portion of the Services except as authorized by U.S. law, the laws of the jurisdiction in which you obtained the Services, and any other applicable laws. In particular, but without limitation, the Services may not be exported or re-exported (a) into any United States embargoes countries, or (b) to anyone on the U.S. Treasury Departments list of Specially Designated Nationals or the U.S. Department of Commerces Denied Persons List or Entity List. By using the Services, you represent and warrant that (y) you are not located in a country that is subject to a U.S. Government embargo, or that has been designated by the U.S. Government as a “terrorist supporting” country and (z) you are not listed on any U.S. Government list of prohibited or restricted parties. You also will not use the Services for any purpose prohibited by U.S. law, including the development, design, manufacture or production of missiles, nuclear, chemical or biological weapons. You acknowledge and agree that products, services or technology provided by FaceApp are subject to the export control laws and regulations of the United States. You shall comply with these laws and regulations and shall not, without prior U.S. government authorization, export, re-export, or transfer FaceApp products, services or technology, either directly or indirectly, to any country in violation of such laws and regulations.
21 Miscellaneous
In accordance with California Civil Code section 1789.3, you may report complaints to the Complaint Assistance Unit of the Division of Consumer Services of the California Department of Consumer Affairs by contacting them in writing at 400 R Street, Sacramento, CA 95814, or by telephone at (800) 952-5210. This Agreement constitutes the entire agreement between you and FaceApp relating to your access to and use of our Services. The failure of FaceApp to exercise or enforce any right or provision of this Agreement will not operate as a waiver of such right or provision. The section titles in this Agreement is for convenience only and have no legal or contractual effect. Except as otherwise provided herein, this Agreement is intended solely for the benefit of the parties and are not intended to confer third party beneficiary rights upon any other person or entity.

@ -0,0 +1,2 @@
1. Eligibility
Subject to this Agreement and the Privacy Policy, you retain all rights in and to your User Content, as between you and FaceApp.

@ -0,0 +1,66 @@
Article 1
The state of war between the Contracting Parties will end on the day on which the present Treaty of Peace comes into force.
Article 2
In consequence of the right of all peoples to self-determination, to the point of seceding completely from the State of which they form part, a right proclaimed by the Socialist and Federal Russian Republic of the Soviets, Russia unreservedly recognises the independence and sovereignty of the State of Estonia, and renounces voluntarily and for ever all sovereign rights possessed by Russia over the Estonian people and territory whether these rights be based on the juridical position that formerly existed in public law, or in the international treaties which, in the sense here indicated, lose their validity in future. From the fact that Estonia has belonged to Russia, no obligation whatsoever will fall on the Estonian people and land to Russia.
Article 3
1. The frontier between Esthonia and Russia follows the following line:
Starting from the Bay of Narva, one verst south of the Fishers House, it turns toward Ropscha, then follows the course of the Rivers Mertvitskaja and Rosson, as far as the village of Ilkino, from Ilkino one verst west of the village Keikino, half a verst west of the village of Isvosi and turns towards the village of Kobõljaki; it then crosses the mouth of the river Schtschutschka, passes by Krivaja Luka, by the estate of Petschurki, to the confluence of three sources of the river Vtroja, follows the southern boundary of the village of Kuritschek with its dependences, then turns in a straight line as far as the centre line of the Lake Peipus, follows it in a southern direction, and thus passes one verst to the east of Piirisaar (Pork); follows the narrow strip of the lake dividing it along the middle as far as the island of Salu, thence passes through Lake Pihkva (Pskov) between the Islands of Talabski and the Island of Kamonka, then to the east of the village of Poddubje (on the southern bank of Lake Pihkva) and to the outlook post on the railway situated near to Grjardischtsche, then passes successively to the west of the Village of Schahintsõi, to the east of Novaja, across the Lake Poganova, between the villages of Babina and Vomorski, to one verst and a half to the south of the Forestry keepers house (which is situated to the north of Glybotschina) to Sprechtitschi and to the Farm Kudepi.
Note 1. The Frontier described in this Article is shown in red on the map, scale of three versts to the inch (0.0254 metre), which constitutes the first Annex to Article 3. In case of difference between the text and the map, it is to the text that one must adhere.
Note 2. The tracing of the boundary between the two contracting countries and the placing in position of the frontier signs will be carried out under the direction of a special mixed commission composed of an equal number of members from both parties. In marking the boundary line this mixed commission will decide the allocation of inhabited areas on the frontier to one or other of the parties according to ethnographical indications and bearing in mind economic agreements and agricultural consideration.
2. The portion of the territory of Esthonia to the east of the Narova, the River Narova itself, and the islands in the midst of the stream, as well as the zone to the south of Lake Pihkva, which is situated between the boundary above mentioned and the line of villages, Borok-Smolni-Belkova-Sprechtitschi, will be, from a military point of view, considered as neutral until 1 January 1922.
Esthonia undertakes to maintain no troops of any kind in the neutralized zones other than those which are necessary for the frontier service and the maintenance of order, and of which the strength is laid down in Annex 2 of the present Article; not to construct fortifications or observation posts, nor to constitute military depots, nor to deposit any kind of war material whatsoever with the exception of what is indispensable for the effectives allowed for; nor to establish ther bases or depots for the use of any kind of vessels, or of any kind of aerial fleet.
3. Russia for her part undertakes not to maintain troops in the region of Pskov to the west of the line: western bank of the mouth of Velikaja, the villages of Sivtseva, Luhnova, Samulina, Schalki and Sprechtitschi until 1 January 1922, which are indispensable for the frontier service and for the maintenance of order and for the effectives provided for in Annex 2 of the present Article.
4. The contracting parties undertake to have no armed vessels whatsoever on Lakes Peipus and Pihkva.
Article 4
During one year from the day of ratification of the present Treaty, persons of non-Estonian origin living in Estonia, and over eighteen years of age, have the right to opt for Russian nationality; women, and children, less than eighteen years of age, take the nationality of the husband or the father, unless there exists between man and wife any contrary agreement. The people who have opted for Russian nationality must, within a year from the date of their choice, leave Estonian territory; but they maintain their rights over the property and can take with them their movable property. In the same way persons of Estonian origin living in Russia can opt for Estonian nationality within the same length of time and under the same conditions.
Each of the contracting Governments reserves the right to refuse acceptance to its citizenship of such persons.
Note. In case of doubt about tho origin of persons, all those who could have been personally registered or whose parents would have been registered in a rural or urban community, or in a “class” on the territory now composing the State of Estonia, shall be considered as Estonians.
Article 5
In case the perpetual neutrality of Estonia should be internationally recognised, Russia undertakes to respect this neutrality and to take part in guaranteeing it.
Article 6
Should the Gulf of Finland be neutralised, the two contracting Parties undertake to accede to this neutralisation, on conditions determined by common agreement by all the States concerned, and established by the international acts relating thereto; should the international convention referred to be concluded, they also undertake to put their naval forces, or part thereof, into such conditions as this international convention may require.
Article 7
The two Contracting Parties undertake:
1. To prohibit the presence in their territory of any troops with the exception of those of their own Government or of friendly States with whom one of the Contracting Parties may have concluded a military convention, but which are not de facto in a state of war with one of the Contracting Parties, and also to prohibit within the limits of their territory, the recruiting and mobilisation of particular corps by States, organisations and groups, intended for armed conflict against the other Contracting Parties.
2. To disarm those military and naval forces within their territory which did not belong to one of the Contracting Parties on the first of October, One thousand nine hundred and nineteen; to neutralise and immobilise, until the first of January, One thousand nine hundred and twenty-two, all property, artillery and commissariat material (exclusive of food and clothing), engineering and aviational material, i. e., guns, machine guns, rifles, side-arms, munitions, aeroplanes, armoured vehicles, tanks, armoured trains, etc., belonging to the military and naval forces referred to with the exception of such technical and war material as was handed over to these forces, but which belongs to the Contracting Parties or to other States, any portion of this material which belongs to other States shall be returned within six months from the date of the ratification of this Treaty. The disarmament of the above-mentioned irregular military and naval forces, and the immobilisation and neutralisation of their military stocks and of all their technical and war material must be completed: the first 30 per cent. of men and material within the first seven days after the ratification of the present Treaty of Peace, and the remainder within the two following weeks at the rate of thirty-five per cent per week.
3. To prohibit the soldiers and officers of the irregular troops who are subject to disarmament under the conditions laid down by the prececing Point (2) from joining in any capacity whatsoever, as volunteers, the ranks of the Government troops of the Contracting Parties, with the exception of:
(a) Persons of Estonian nationality who reside outside Estonia, but who have opted for that country;
(b) Persons not of Estonian nationality who resided in Estonia before the first of May, One thousand nine hundred and nineteen, and who have not opted to Russia;
(c) Persons not of Estonian nationality who have not opted for Russia and who served in the Estonian army before the twenty-seventh of November, One thousand nine hundred and nineteen.
Persons belonging to the classes mentioned in sub-divisions (a), (b), and (c), may serve with the armies of the Estonian Government.
4. (a) To prohibit any State, which is de facto in a state of war with one of the Contracting Parties, and any organisations or groups intended for an armed conflict with one of the Contracting Parties, for transporting through their ports or their territories anything which might be used for attacking the other Contracting Party, particularly armed forces belonging to these States, organisations or groups, and any article and war material used for artillery, commissariat, engineering, aviation, etc., which may belong to these military formations.
4. (b) To prohibit, exclusive of cases provided for by international law, the launching and navigation in their territorial waters of any warships, gun-boats, mine-layers, etc., belonging either to organisations or groups which are intended to fight against the other Contracting Party or to States which are in a state of war with this party, if those ships are intended to attack it, and if this intention is known to the Contracting Party to whose territory the ports and territorial waters so used belong.
5. Not to authorise the formation or presence in their territory of any organisation or groups whatsoever, which claim to govern the whole or part of the territory of the other Contracting Party, or the presence of representatives or officials of organisations and groups, whose object it is to overthrow the Government of the other party to the Treaty.
6. The Governments of the two Contracting Parties undertake, upon exchanging the ratification of this Treaty of Peace to furnish each other with precise information regarding the strength of the non-Governmental and also of military stocks (stationary or mobile), and of the military and technical material belonging to those irregular forces, which were on their territory at the time when the Armistice was concluded, that is to say, on the thirty-first of December, One thousand nine hundred and nineteen.
7. In order to superintend the carrying out of the military guarantees conceded to each other by the Contracting Parties, a mixed commission is to be established whose composition, rights and obligations shall be determined by “Instructions” which are annxed to the present Article.

@ -0,0 +1,2 @@
Article I
The state of war between the Contracting Parties will end on the day on which the present Treaty of Peace comes into force.

BIN
website/.DS_Store vendored

Binary file not shown.

File diff suppressed because one or more lines are too long

@ -0,0 +1,196 @@
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "SourceCodePro";
src: url("http://bohyewoo.com/webfonts/Source_Code_Pro/SourceCodePro-Regular.ttf");
}
* {
margin: 0;
padding: 0;
}
html, body {
height: 100%;
}
p {
margin-bottom: 30px;
}
.t_wrapper {
font-family: 'Anonymous Pro', monospace;
width: 49%;
float: left;
margin-right: 20px;
}
.t_intro {
width: 75%;
margin-top: 20px;
float: right;
}
.t_img {
font-family: Belgika;
font-size: 20pt;
}
.t_image {
height: 10vh;
margin-top: 30px;
cursor: pointer;
}
.t_img_clicked {
height: calc(20vw);
margin-top: 30px;
}
.t_info {
font-family: Belgika;
font-weight: 16th;
font-size: 8pt;
width: calc(30vw);
float: left;
margin-top: 30px;
column-count: 2;
}
.t_paragraph {
font-size: 16px;
width: 75%;
padding: 10px;
margin-top: 70px;
line-height: 1.5;
float: right;
cursor: pointer;
}
.t_top_words {
background-color: black;
width: 10vw;
height: 100%;
font-family: Belgika;
font-size: 7.5pt;
color: white;
letter-spacing: 0.5px;
margin-left: 2px;
position: fixed;
float: right;
}
.t_top_words_title {
margin: 40px 10px 10px 10px;
width: 80%;
}
.t_chosen_words {
padding: 10px 1px 1px 10px;
}
.t_chosen_words:hover {
background-color: white;
color: red;
}
.hide {
background-color: black;
}
.TO:hover, .DT:hover, .IN:hover, .WDT:hover, .WP:hover, .MD:hover, .PRP:hover, .CC:hover, .marks:hover, .comma:hover, .dot:hover {
background-color: black;
}
.adjective {
color: white;
background-color: blue;
}
.JJ:hover {
color: white;
background-color: blue;
}
.noun {
background-color: springgreen;
}
.NN:hover, .NNS:hover {
background-color: springgreen;
}
.verb {
background-color: yellow;
# color: yellow;
}
.VB:hover, .VBZ:hover, .VBN:hover, .VVD:hover {
background-color: yellow;
}
.propernoun {
background-color: pink;
# color: pink;
}
.NNP:hover, .NNPS:hover {
background-color: pink;
}
.adverb {
background-color: lightgreen;
# color: lightgreen;
}
.RB:hover, .RBR:hover, .JJR:hover, .RBS:hover {
background-color: lightgreen;
}

File diff suppressed because one or more lines are too long

@ -0,0 +1,82 @@
# from __future__ import division
from nltk import sent_tokenize, word_tokenize, pos_tag
from nltk.probability import FreqDist
from nltk.corpus import stopwords
import nltk
import codecs
import base64
nltk.download('stopwords')
with open('treaty_file/russia-estonia.txt', 'r') as russia_file:
russia_text = russia_file.read()
russia_text_list = russia_text.split("\n\n")
t_default_stopwords = set(stopwords.words('english'))
t_custom_stopwords = set(codecs.open('t_stopwords.txt', 'r').read().splitlines())
t_all_stopwords = t_default_stopwords | t_custom_stopwords
print('''<!DOCTYPE>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.5.0.min.js"></script>
<link rel="stylesheet" href="estonia.css">
<script src="highlight.js"></script>
<meta charset="utf-8">
<title></title>
</head>
<body>''')
#t_wrapper (second wrapper)
print('<div class="t_wrapper"><div class="t_intro">')
img_url = base64.b64encode(open('img/tartu.jpeg', 'rb').read()).decode('utf-8')
t_image = '<div class="t_img">Peace Treaty of Tartu, Estonia<br><img class="t_image" src="data:img/tartu.jpeg;base64,{}"></div>'.format(img_url)
print(t_image)
#t_info box
print('<div class ="t_info">')
t_infotext = [('Name of Treaty', 'Peace Treaty of Tartu'), ('Country of Origin', 'Russia'), ('Signed', 'February 2, 1920'), ('Location', 'Tartu, Estonia'), ('Word Counts', '2,104'), ('Type', 'bilateral peace treaty'), ('Original Source', '<a href="https://en.wikipedia.org/wiki/Treaty_of_Tartu_(Russian-Estonian)">link</a>'), ('Description', 'The Tartu Peace Treaty or Treaty of Tartu is a peace treaty between Estonia and Russian Soviet Federative Socialist Republic signed on 2 February 1920, ending the Estonian War of Independence.')]
for t_title, t_info in t_infotext:
print('<div class="t_info-{0}"><div class="info_t_title" ><b>{0}</b></div><div class="t_info_content">{1}</div></div><br>'.format(t_title, t_info))
print('</div></div>')
#Treaty text
print('<div class="t_paragraph">')
for t_paragraph in russia_text_list:
t_tokenized = word_tokenize(t_paragraph)
t_tagged = pos_tag(t_tokenized)
print('<p>')
for t_word, t_pos in t_tagged:
print('<span class="{0} {1}">{2}</span>'.format(t_pos.replace('.', 'dot').replace(',', 'comma').replace('(', 'marks').replace(')', 'marks').replace(':', 'marks').replace(';', 'marks'), t_word.replace('.', 'dot').replace(',', 'comma').replace('(', 'marks').replace(')', 'marks').replace(':', 'marks').replace(';', 'marks').lower(), t_word))
print('</p>')
print('</div>')
#treaty colonial top words list
print('<div class="t_top_words"><div class="t_top_words_title"><b>Frequent words</b></div>')
t_tokens_without_stopwords = nltk.FreqDist(words.lower() for words in t_tokenized if words.lower() not in t_all_stopwords)
t_frequency_word = FreqDist(t_tokens_without_stopwords)
t_top_words = t_tokens_without_stopwords.most_common(20)
for t_chosen_words, t_frequency in t_top_words:
print('<div class="t_chosen_words" >&nbsp;{}&nbsp;({}) </div>'.format(t_chosen_words, t_frequency))
print('</div></div></div>')
print('</div></div>')
print('''</body></html>''')

@ -0,0 +1,190 @@
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-40th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-16th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "Belgika";
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.eot");
src: url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.woff") format("woff"),
url("http://bohyewoo.com/webfonts/belgika/belgika-8th-webfont.svg#filename") format("svg");
}
@font-face {
font-family: "SourceCodePro";
src: url("http://bohyewoo.com/webfonts/Source_Code_Pro/SourceCodePro-Regular.ttf");
}
* {
margin: 0;
padding: 0;
}
html, body {
height: 100%;
}
p {
margin-bottom: 30px;
}
.tos_wrapper {
font-family: 'Anonymous Pro', monospace;
width: 49%;
float: left;
margin-right: 20px;
}
.intro {
width: 75%;
margin-top: 20px;
float: right;
}
.img {
font-family: Belgika;
font-size: 20pt;
}
.image {
height: 10vh;
margin-top: 30px;
cursor: pointer;
}
.img_clicked {
height: calc(20vw);
margin-top: 30px;
}
.info {
font-family: Belgika;
font-weight: 16th;
font-size: 8pt;
width: calc(35vw);
float: left;
margin-top: 30px;
column-count: 2;
}
.paragraph {
font-size: 16px;
width: 75%;
padding: 10px;
margin-top: 70px;
line-height: 1.5;
float: right;
cursor: pointer;
}
.top_words {
background-color: black;
width: 10%;
height: 100%;
font-family: Belgika;
font-size: 7.5pt;
color: white;
letter-spacing: 0.5px;
position: fixed;
float: left;
}
.top_words_title {
margin: 40px 10px 10px 10px;
width: 80%;
}
.chosen_words {
padding: 10px 1px 1px 10px;
}
.chosen_words:hover {
background-color: white;
color: red;
}
.hide {
background-color: black;
}
.TO:hover, .DT:hover, .IN:hover, .WDT:hover, .WP:hover, .MD:hover, .PRP:hover, .CC:hover, .marks:hover, .comma:hover, .dot:hover {
background-color: black;
}
.adjective {
color: white;
background-color: blue;
}
.JJ:hover {
color: white;
background-color: blue;
}
.noun {
background-color: springgreen;
}
.NN:hover, .NNS:hover {
background-color: springgreen;
}
.verb {
background-color: yellow;
# color: yellow;
}
.VB:hover, .VBZ:hover, .VBN:hover, .VVD:hover {
background-color: yellow;
}
.propernoun {
background-color: pink;
# color: pink;
}
.NNP:hover, .NNPS:hover {
background-color: pink;
}
.adverb {
background-color: lightgreen;
# color: lightgreen;
}
.RB:hover, .RBR:hover, .JJR:hover, .RBS:hover {
background-color: lightgreen;
}

File diff suppressed because one or more lines are too long

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

Loading…
Cancel
Save