function strNumDiscode(e) {
    return e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = e.replace(/&forall;/g, "∀")).replace(/&part;/g, "∂")).replace(/&exists;/g, "∃")).replace(/&empty;/g, "∅")).replace(/&nabla;/g, "∇")).replace(/&isin;/g, "∈")).replace(/&notin;/g, "∉")).replace(/&ni;/g, "∋")).replace(/&prod;/g, "∏")).replace(/&sum;/g, "∑")).replace(/&minus;/g, "−")).replace(/&lowast;/g, "∗")).replace(/&radic;/g, "√")).replace(/&prop;/g, "∝")).replace(/&infin;/g, "∞")).replace(/&ang;/g, "∠")).replace(/&and;/g, "∧")).replace(/&or;/g, "∨")).replace(/&cap;/g, "∩")).replace(/&cap;/g, "∪")).replace(/&int;/g, "∫")).replace(/&there4;/g, "∴")).replace(/&sim;/g, "∼")).replace(/&cong;/g, "≅")).replace(/&asymp;/g, "≈")).replace(/&ne;/g, "≠")).replace(/&le;/g, "≤")).replace(/&ge;/g, "≥")).replace(/&sub;/g, "⊂")).replace(/&sup;/g, "⊃")).replace(/&nsub;/g, "⊄")).replace(/&sube;/g, "⊆")).replace(/&supe;/g, "⊇")).replace(/&oplus;/g, "⊕")).replace(/&otimes;/g, "⊗")).replace(/&perp;/g, "⊥")).replace(/&sdot;/g, "⋅");
}

function strGreeceDiscode(e) {
    return e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = e.replace(/&Alpha;/g, "Α")).replace(/&Beta;/g, "Β")).replace(/&Gamma;/g, "Γ")).replace(/&Delta;/g, "Δ")).replace(/&Epsilon;/g, "Ε")).replace(/&Zeta;/g, "Ζ")).replace(/&Eta;/g, "Η")).replace(/&Theta;/g, "Θ")).replace(/&Iota;/g, "Ι")).replace(/&Kappa;/g, "Κ")).replace(/&Lambda;/g, "Λ")).replace(/&Mu;/g, "Μ")).replace(/&Nu;/g, "Ν")).replace(/&Xi;/g, "Ν")).replace(/&Omicron;/g, "Ο")).replace(/&Pi;/g, "Π")).replace(/&Rho;/g, "Ρ")).replace(/&Sigma;/g, "Σ")).replace(/&Tau;/g, "Τ")).replace(/&Upsilon;/g, "Υ")).replace(/&Phi;/g, "Φ")).replace(/&Chi;/g, "Χ")).replace(/&Psi;/g, "Ψ")).replace(/&Omega;/g, "Ω")).replace(/&alpha;/g, "α")).replace(/&beta;/g, "β")).replace(/&gamma;/g, "γ")).replace(/&delta;/g, "δ")).replace(/&epsilon;/g, "ε")).replace(/&zeta;/g, "ζ")).replace(/&eta;/g, "η")).replace(/&theta;/g, "θ")).replace(/&iota;/g, "ι")).replace(/&kappa;/g, "κ")).replace(/&lambda;/g, "λ")).replace(/&mu;/g, "μ")).replace(/&nu;/g, "ν")).replace(/&xi;/g, "ξ")).replace(/&omicron;/g, "ο")).replace(/&pi;/g, "π")).replace(/&rho;/g, "ρ")).replace(/&sigmaf;/g, "ς")).replace(/&sigma;/g, "σ")).replace(/&tau;/g, "τ")).replace(/&upsilon;/g, "υ")).replace(/&phi;/g, "φ")).replace(/&chi;/g, "χ")).replace(/&psi;/g, "ψ")).replace(/&omega;/g, "ω")).replace(/&thetasym;/g, "ϑ")).replace(/&upsih;/g, "ϒ")).replace(/&piv;/g, "ϖ")).replace(/&middot;/g, "·");
}

function strcharacterDiscode(e) {
    return e = (e = (e = (e = (e = e.replace(/&nbsp;/g, " ")).replace(/&quot;/g, "'")).replace(/&amp;/g, "&")).replace(/&lt;/g, "<")).replace(/&gt;/g, ">");
}

function strOtherDiscode(e) {
    return e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = (e = e.replace(/&OElig;/g, "Œ")).replace(/&oelig;/g, "œ")).replace(/&Scaron;/g, "Š")).replace(/&scaron;/g, "š")).replace(/&Yuml;/g, "Ÿ")).replace(/&fnof;/g, "ƒ")).replace(/&circ;/g, "ˆ")).replace(/&tilde;/g, "˜")).replace(/&ensp;/g, "")).replace(/&emsp;/g, "")).replace(/&thinsp;/g, "")).replace(/&zwnj;/g, "")).replace(/&zwj;/g, "")).replace(/&lrm;/g, "")).replace(/&rlm;/g, "")).replace(/&ndash;/g, "–")).replace(/&mdash;/g, "—")).replace(/&lsquo;/g, "‘")).replace(/&rsquo;/g, "’")).replace(/&sbquo;/g, "‚")).replace(/&ldquo;/g, "“")).replace(/&rdquo;/g, "”")).replace(/&bdquo;/g, "„")).replace(/&dagger;/g, "†")).replace(/&Dagger;/g, "‡")).replace(/&bull;/g, "•")).replace(/&hellip;/g, "…")).replace(/&permil;/g, "‰")).replace(/&prime;/g, "′")).replace(/&Prime;/g, "″")).replace(/&lsaquo;/g, "‹")).replace(/&rsaquo;/g, "›")).replace(/&oline;/g, "‾")).replace(/&euro;/g, "€")).replace(/&trade;/g, "™")).replace(/&larr;/g, "←")).replace(/&uarr;/g, "↑")).replace(/&rarr;/g, "→")).replace(/&darr;/g, "↓")).replace(/&harr;/g, "↔")).replace(/&crarr;/g, "↵")).replace(/&lceil;/g, "⌈")).replace(/&rceil;/g, "⌉")).replace(/&lfloor;/g, "⌊")).replace(/&rfloor;/g, "⌋")).replace(/&loz;/g, "◊")).replace(/&spades;/g, "♠")).replace(/&clubs;/g, "♣")).replace(/&hearts;/g, "♥")).replace(/&diams;/g, "♦")).replace(/&#39;/g, "'");
}

function strMoreDiscode(e) {
    return e = (e = (e = e.replace(/\r\n/g, "")).replace(/\n/g, "")).replace(/code/g, "wxxxcode-style");
}

function strDiscode(e) {
    return e = strMoreDiscode(e = strOtherDiscode(e = strcharacterDiscode(e = strGreeceDiscode(e = strNumDiscode(e)))));
}

function urlToHttpUrl(e, r) {
    return new RegExp("^//").test(e) && (e = r + ":" + e), e;
}

module.exports = {
    strDiscode: strDiscode,
    urlToHttpUrl: urlToHttpUrl
};