Guest User

Untitled

a guest
Dec 16th, 2021
570
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 5 32.35 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3.     <head>
  4.         <meta charset="UTF-8">
  5.         <meta name="viewport" content="width=device-width, initial-scale=1">
  6.         <title>Wolfram Key Generator</title>
  7.         <script>
  8.             // Look for magic numbers in DLL and EXE files close to bytes
  9.             // 29 5B 00 00 87 65 00 00 8C 7F 00 00 75 35 00 00 1A 54 00 00 2D 45 00 00 D1 3F 00 00 0A 14 00 00 A5 29 00 00 A4 72 00 00
  10.             const magicNumbersMath = [
  11.                 // Mathematica
  12.                 // 10.0+
  13. //                0x25DB,  // 10.0 - 11.0
  14. //                0x42DD,  // 10.0 - 11.1
  15. //                0x6A91,  // 10.0 - 11.2
  16. //                0x29F8,  // 10.0 - 11.3
  17. //                0xA68B,  // 10.0 - 12.0
  18. //                0xE4A8,  // 10.0 - 12.1
  19. //                0xA439,  // 10.0 - 12.0
  20.                 // 10.2+
  21. //                0x2FDB,  // 10.2 - 12.2
  22. //                0xD227,  // 10.2 - 12.3
  23. //                0xDB75,  // 10.2 - 13.0
  24. //                0xEE71,  // 10.2 - 13.0+
  25. //                0x29C2,  // 10.2 - 13.0+
  26. //                0x44F1,  // 10.2 - 13.0+
  27.                 // 12.0+
  28. //                0x8E3C,  // 12.0 - 13.0+
  29. //                0x60F0,  // 12.0 - 13.0+
  30. //                0xABEB,  // 12.0 - 13.0+
  31. //                0x8250,  // 12.0 - 13.0+
  32. //                0x8C68,  // 12.0 - 13.0+
  33. //                0xE756,  // 12.0 - 13.0+
  34.                 // 13.0+
  35. //                0xB4D0,  // 13.0 - 13.0+
  36. //                0xCD2D,  // 13.0 - 13.0+
  37. //                0x22DD,  // 13.0 - 13.0+
  38. //                0x66C0,  // 13.0 - 13.0+
  39. //                0xD54F,  // 13.0 - 13.0+
  40. //                0xB013,  // 13.0 - 13.0+
  41.                 0x5417   // 13.0 - 13.0+
  42.             ];
  43.  
  44.             const magicNumbersSM = [
  45.                 // SystemModeler
  46.                 // 4.0+
  47. //                0x15BF,  //  4.0
  48. //                0x6897,  //  4.0 -  4.1
  49. //                0x2F33,  //  4.0 -  4.2
  50. //                0x72C4,  //  4.0 -  4.2
  51. //                0x8330,  //  4.0 -  5.0
  52. //                0x81DD,  //  4.0 -  5.1?
  53. //                0x47C5,  //  4.0 - 12.0  
  54. //                0xB4D3,  //  4.0 - 12.1  
  55. //                0xAB0B,  //  4.0 - 12.2  
  56. //                0x6188,  //  4.0 - 12.3
  57.                 // 5.0+
  58. //                0xBF47,  //  5.0 - 13.0
  59. //                0x1330,  //  5.0 - 13.0+
  60. //                0xF536,  //  5.0 - 13.0+  
  61. //                0xA5CE,  //  5.0 - 13.0+  
  62. //                0x755E,  //  5.0 - 13.0+  
  63. //                0x1361,  //  5.0 - 13.0+  
  64. //                0xEEFE,  //  5.0 - 13.0+  
  65. //                0x7C91,  //  5.0 - 13.0+  
  66. //                0x5770,  //  5.0 - 13.0+  
  67.                 // 13.0+
  68. //                0x7C53,  // 13.0 - 13.0+
  69. //                0x64EC,  // 13.0 - 13.0+
  70. //                0x73EE,  // 13.0 - 13.0+
  71. //                0x4209,  // 13.0 - 13.0+
  72.                 0x8C72   // 13.0 - 13.0+
  73.             ];
  74.  
  75.             function testSalt(a, b, c) {
  76.                 for(let i = 0; i < 8; i += 1) {
  77.                    let t = (b >> i) & 1;
  78.                     if (t + ((a - t) & ~1) === a) {
  79.                        a = (a - t) >> 1;
  80.                     } else {
  81.                         a = ((c - t) ^ a) >> 1;
  82.                     }
  83.                 }
  84.  
  85.                 return a;
  86.             }
  87.  
  88.             function genPassword(string, salt) {
  89.                 let uuid = string.split('').map(x => x.charCodeAt());
  90.  
  91.                 let salt1 = salt;
  92.                 for(let i = uuid.length - 1; i >= 0; i -= 1) {
  93.                     salt1 = testSalt(salt1, uuid[i], 0x105C3);
  94.                 }
  95.  
  96.                 let offset1 = 0;
  97.                 while (testSalt(testSalt(salt1, offset1 & 0xFF, 0x105C3), offset1 >> 8, 0x105C3) !== 0xA5B6) {
  98.                    offset1 ++;
  99.                     if (offset1 >= 0xFFFF) {
  100.                         return '';
  101.                     }
  102.                 }
  103.  
  104.                 offset1 = parseInt(((offset1 + 0x72FA) & 0xFFFF) * 99999 / 0xFFFF, 10);
  105.                 offset1 = `0000${offset1}`.substr(-5);
  106.  
  107.                 let salt2 = `${offset1.substr(0, 2)}${offset1.substr(3, 2)}${offset1.substr(2, 1)}`;
  108.                 salt2 = parseInt(salt2, 10);
  109.                 salt2 = parseInt((salt2 / 99999.0) * 0xFFFF, 10) + 1;
  110.                 salt2 = testSalt(testSalt(0, salt2 & 0xFF, 0x1064B), salt2 >> 8, 0x1064B);
  111.                 for(let i = uuid.length - 1; i >= 0; i -= 1) {
  112.                     salt2 = testSalt(salt2, uuid[i], 0x1064B);
  113.                 }
  114.  
  115.                 let offset2 = 0;
  116.                 while(testSalt(testSalt(salt2, offset2 & 0xFF, 0x1064B),
  117.                                offset2 >> 8, 0x1064B) !== 0xA5B6) {
  118.                    offset2 += 1;
  119.                     if (offset2 >= 0xFFFF) { return ''; }
  120.                 }
  121.  
  122.                 offset2 = parseInt((offset2 & 0xFFFF) * 99999 / 0xFFFF, 10);
  123.                 offset2 = `0000${offset2}`.substr(-5);
  124.  
  125.                 return [
  126.                     offset2[3],
  127.                     offset1[3],
  128.                     offset1[1],
  129.                     offset1[0],
  130.                     '-',
  131.                     offset2[4],
  132.                     offset1[2],
  133.                     offset2[0],
  134.                     '-',
  135.                     offset2[2],
  136.                     offset1[4],
  137.                     offset2[1],
  138.                     '::1'
  139. //                    ''
  140.                 ].join('');
  141.             }
  142.  
  143.             function keygenMath(mathID, activationKey = '3893-9258-K6XJLE') {
  144.                 return magicNumbersMath
  145.                     .map(magicNumber => genPassword(`${mathID}$1&${activationKey}`, magicNumber))
  146. //                    .map(magicNumber => genPassword(`${mathID}&${activationKey}`, magicNumber))
  147.                    .filter(password => password !== '');
  148.             }
  149.  
  150.             function keygenSM(mathID, activationKey = '3893-9258-K6XJLE') {
  151.                 return magicNumbersSM
  152.                     .map(magicNumber => genPassword(`${mathID}$1&${activationKey}`, magicNumber))
  153. //                    .map(magicNumber => genPassword(`${mathID}&${activationKey}`, magicNumber))
  154.                    .filter(password => password !== '');
  155.             }
  156.  
  157. //            document.querySelector('#button').onclick = function (e) {
  158.             function genPass(event) {
  159.                 event.preventDefault();
  160.                 let formEl = document.querySelector('#form');
  161.                 if(formEl.reportValidity && !formEl.reportValidity()) { return; }
  162.                 let mathId = document.querySelector('#mathid').value;
  163.                 let activationKey = document.querySelector('#activation-key').value;
  164.  
  165.                 let outputMathEl = document.querySelector('#outputMath');
  166.                 outputMathEl.innerText = 'Password for Mathematica 13.0+:';
  167.                 outputMathEl.append(document.createElement("br"));
  168.                 let passwordEl = document.createElement("pre");
  169.                 let passwordInnerCodeMAthEl = document.createElement("code");
  170.                 passwordEl.append(passwordInnerCodeMAthEl);
  171.                 passwordInnerCodeMAthEl.innerText = keygenMath(mathId, activationKey).join('\n');
  172.                 outputMathEl.append(passwordEl);
  173.  
  174.                 let outputSMEl = document.querySelector('#outputSM');
  175.                 outputSMEl.innerText = 'Password for SystemModeler 13.0+:';
  176.                 outputSMEl.append(document.createElement("br"));
  177.                 let passwordSMEl = document.createElement("pre");
  178.                 let passwordInnerCodeSMEl = document.createElement("code");
  179.                 passwordSMEl.append(passwordInnerCodeSMEl);
  180.                 passwordInnerCodeSMEl.innerText = keygenSM(mathId, activationKey).join('\n');
  181.                 outputSMEl.append(passwordSMEl);
  182.             };
  183.         </script>
  184.         <style>
  185.             /**
  186.              * Forced light theme version
  187.              */
  188.  
  189.             :root {
  190.               --background-body: #fff;
  191.               --background: #efefef;
  192.               --background-alt: #f7f7f7;
  193.               --selection: #9e9e9e;
  194.               --text-main: #363636;
  195.               --text-bright: #000;
  196.               --text-muted: #70777f;
  197.               --links: #0076d1;
  198.               --focus: #0096bfab;
  199.               --border: #dbdbdb;
  200.               --code: #000;
  201.               --animation-duration: 0.1s;
  202.               --button-hover: #ddd;
  203.               --scrollbar-thumb: rgb(213, 213, 213);
  204.               --scrollbar-thumb-hover: rgb(196, 196, 196);
  205.               --form-placeholder: #949494;
  206.               --form-text: #000;
  207.               --variable: #39a33c;
  208.               --highlight: #ff0;
  209.               --select-arrow: url("data:image/svg+xml;charset=utf-8,%3C?xml version='1.0' encoding='utf-8'?%3E %3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' height='62.5' width='116.9' fill='%23161f27'%3E %3Cpath d='M115.3,1.6 C113.7,0 111.1,0 109.5,1.6 L58.5,52.7 L7.4,1.6 C5.8,0 3.2,0 1.6,1.6 C0,3.2 0,5.8 1.6,7.4 L55.5,61.3 C56.3,62.1 57.3,62.5 58.4,62.5 C59.4,62.5 60.5,62.1 61.3,61.3 L115.2,7.4 C116.9,5.8 116.9,3.2 115.3,1.6Z'/%3E %3C/svg%3E");
  210.             }
  211.  
  212.             html {
  213.               scrollbar-color: rgb(213, 213, 213) #fff;
  214.               scrollbar-color: var(--scrollbar-thumb) var(--background-body);
  215.               scrollbar-width: thin;
  216.             }
  217.  
  218.             body {
  219.               font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 'Segoe UI Emoji', 'Apple Color Emoji', 'Noto Color Emoji', sans-serif;
  220.               line-height: 1.4;
  221.               max-width: 800px;
  222.               margin: 20px auto;
  223.               padding: 0 10px;
  224.               word-wrap: break-word;
  225.               color: #363636;
  226.               color: var(--text-main);
  227.               background: #fff;
  228.               background: var(--background-body);
  229.               text-rendering: optimizeLegibility;
  230.             }
  231.  
  232.             button {
  233.               transition:
  234.                 background-color 0.1s linear,
  235.                 border-color 0.1s linear,
  236.                 color 0.1s linear,
  237.                 box-shadow 0.1s linear,
  238.                 transform 0.1s ease;
  239.               transition:
  240.                 background-color var(--animation-duration) linear,
  241.                 border-color var(--animation-duration) linear,
  242.                 color var(--animation-duration) linear,
  243.                 box-shadow var(--animation-duration) linear,
  244.                 transform var(--animation-duration) ease;
  245.             }
  246.  
  247.             input {
  248.               transition:
  249.                 background-color 0.1s linear,
  250.                 border-color 0.1s linear,
  251.                 color 0.1s linear,
  252.                 box-shadow 0.1s linear,
  253.                 transform 0.1s ease;
  254.               transition:
  255.                 background-color var(--animation-duration) linear,
  256.                 border-color var(--animation-duration) linear,
  257.                 color var(--animation-duration) linear,
  258.                 box-shadow var(--animation-duration) linear,
  259.                 transform var(--animation-duration) ease;
  260.             }
  261.  
  262.             textarea {
  263.               transition:
  264.                 background-color 0.1s linear,
  265.                 border-color 0.1s linear,
  266.                 color 0.1s linear,
  267.                 box-shadow 0.1s linear,
  268.                 transform 0.1s ease;
  269.               transition:
  270.                 background-color var(--animation-duration) linear,
  271.                 border-color var(--animation-duration) linear,
  272.                 color var(--animation-duration) linear,
  273.                 box-shadow var(--animation-duration) linear,
  274.                 transform var(--animation-duration) ease;
  275.             }
  276.  
  277.             h1 {
  278.               font-size: 2.2em;
  279.               margin-top: 0;
  280.             }
  281.  
  282.             h1,
  283.             h2,
  284.             h3,
  285.             h4,
  286.             h5,
  287.             h6 {
  288.               margin-bottom: 12px;
  289.               margin-top: 24px;
  290.             }
  291.  
  292.             h1 {
  293.               color: #000;
  294.               color: var(--text-bright);
  295.             }
  296.  
  297.             h2 {
  298.               color: #000;
  299.               color: var(--text-bright);
  300.             }
  301.  
  302.             h3 {
  303.               color: #000;
  304.               color: var(--text-bright);
  305.             }
  306.  
  307.             h4 {
  308.               color: #000;
  309.               color: var(--text-bright);
  310.             }
  311.  
  312.             h5 {
  313.               color: #000;
  314.               color: var(--text-bright);
  315.             }
  316.  
  317.             h6 {
  318.               color: #000;
  319.               color: var(--text-bright);
  320.             }
  321.  
  322.             strong {
  323.               color: #000;
  324.               color: var(--text-bright);
  325.             }
  326.  
  327.             h1,
  328.             h2,
  329.             h3,
  330.             h4,
  331.             h5,
  332.             h6,
  333.             b,
  334.             strong,
  335.             th {
  336.               font-weight: 600;
  337.             }
  338.  
  339.             q::before {
  340.               content: none;
  341.             }
  342.  
  343.             q::after {
  344.               content: none;
  345.             }
  346.  
  347.             blockquote {
  348.               border-left: 4px solid #0096bfab;
  349.               border-left: 4px solid var(--focus);
  350.               margin: 1.5em 0;
  351.               padding: 0.5em 1em;
  352.               font-style: italic;
  353.             }
  354.  
  355.             q {
  356.               border-left: 4px solid #0096bfab;
  357.               border-left: 4px solid var(--focus);
  358.               margin: 1.5em 0;
  359.               padding: 0.5em 1em;
  360.               font-style: italic;
  361.             }
  362.  
  363.             blockquote > footer {
  364.               font-style: normal;
  365.               border: 0;
  366.             }
  367.  
  368.             blockquote cite {
  369.               font-style: normal;
  370.             }
  371.  
  372.             address {
  373.               font-style: normal;
  374.             }
  375.  
  376.             a[href^='mailto\:']::before {
  377.               content: '📧 ';
  378.             }
  379.  
  380.             a[href^='tel\:']::before {
  381.               content: '📞 ';
  382.             }
  383.  
  384.             a[href^='sms\:']::before {
  385.               content: '💬 ';
  386.             }
  387.  
  388.             mark {
  389.               background-color: #ff0;
  390.               background-color: var(--highlight);
  391.               border-radius: 2px;
  392.               padding: 0 2px 0 2px;
  393.               color: #000;
  394.             }
  395.  
  396.             button,
  397.             select,
  398.             input[type='submit'],
  399.             input[type='button'],
  400.             input[type='checkbox'],
  401.             input[type='range'],
  402.             input[type='radio'] {
  403.               cursor: pointer;
  404.             }
  405.  
  406.             input:not([type='checkbox']):not([type='radio']),
  407.             select {
  408.               display: block;
  409.             }
  410.  
  411.             input {
  412.               color: #000;
  413.               color: var(--form-text);
  414.               background-color: #efefef;
  415.               background-color: var(--background);
  416.               font-family: inherit;
  417.               font-size: inherit;
  418.               margin-right: 6px;
  419.               margin-bottom: 6px;
  420.               padding: 10px;
  421.               border: none;
  422.               border-radius: 6px;
  423.               outline: none;
  424.             }
  425.  
  426.             button {
  427.               color: #000;
  428.               color: var(--form-text);
  429.               background-color: #efefef;
  430.               background-color: var(--background);
  431.               font-family: inherit;
  432.               font-size: inherit;
  433.               margin-right: 6px;
  434.               margin-bottom: 6px;
  435.               padding: 10px;
  436.               border: none;
  437.               border-radius: 6px;
  438.               outline: none;
  439.             }
  440.  
  441.             textarea {
  442.               color: #000;
  443.               color: var(--form-text);
  444.               background-color: #efefef;
  445.               background-color: var(--background);
  446.               font-family: inherit;
  447.               font-size: inherit;
  448.               margin-right: 6px;
  449.               margin-bottom: 6px;
  450.               padding: 10px;
  451.               border: none;
  452.               border-radius: 6px;
  453.               outline: none;
  454.             }
  455.  
  456.             select {
  457.               color: #000;
  458.               color: var(--form-text);
  459.               background-color: #efefef;
  460.               background-color: var(--background);
  461.               font-family: inherit;
  462.               font-size: inherit;
  463.               margin-right: 6px;
  464.               margin-bottom: 6px;
  465.               padding: 10px;
  466.               border: none;
  467.               border-radius: 6px;
  468.               outline: none;
  469.             }
  470.  
  471.             input[type='checkbox'],
  472.             input[type='radio'] {
  473.               height: 1em;
  474.               width: 1em;
  475.             }
  476.  
  477.             input[type='radio'] {
  478.               border-radius: 100%;
  479.             }
  480.  
  481.             input {
  482.               vertical-align: top;
  483.             }
  484.  
  485.             label {
  486.               vertical-align: middle;
  487.               margin-bottom: 4px;
  488.               display: inline-block;
  489.             }
  490.  
  491.             input:not([type='checkbox']):not([type='radio']),
  492.             input[type='range'],
  493.             select,
  494.             button,
  495.             textarea {
  496.               -webkit-appearance: none;
  497.             }
  498.  
  499.             textarea {
  500.               display: block;
  501.               margin-right: 0;
  502.               box-sizing: border-box;
  503.               resize: vertical;
  504.             }
  505.  
  506.             textarea:not([cols]) {
  507.               width: 100%;
  508.             }
  509.  
  510.             textarea:not([rows]) {
  511.               min-height: 40px;
  512.               height: 140px;
  513.             }
  514.  
  515.             select {
  516.               background: #efefef url("data:image/svg+xml;charset=utf-8,%3C?xml version='1.0' encoding='utf-8'?%3E %3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' height='62.5' width='116.9' fill='%23161f27'%3E %3Cpath d='M115.3,1.6 C113.7,0 111.1,0 109.5,1.6 L58.5,52.7 L7.4,1.6 C5.8,0 3.2,0 1.6,1.6 C0,3.2 0,5.8 1.6,7.4 L55.5,61.3 C56.3,62.1 57.3,62.5 58.4,62.5 C59.4,62.5 60.5,62.1 61.3,61.3 L115.2,7.4 C116.9,5.8 116.9,3.2 115.3,1.6Z'/%3E %3C/svg%3E") calc(100% - 12px) 50% / 12px no-repeat;
  517.               background: var(--background) var(--select-arrow) calc(100% - 12px) 50% / 12px no-repeat;
  518.               padding-right: 35px;
  519.             }
  520.  
  521.             select::-ms-expand {
  522.               display: none;
  523.             }
  524.  
  525.             select[multiple] {
  526.               padding-right: 10px;
  527.               background-image: none;
  528.               overflow-y: auto;
  529.             }
  530.  
  531.             button,
  532.             input[type='submit'],
  533.             input[type='button'] {
  534.               padding-right: 30px;
  535.               padding-left: 30px;
  536.             }
  537.  
  538.             button:hover {
  539.               background: #ddd;
  540.               background: var(--button-hover);
  541.             }
  542.  
  543.             input[type='submit']:hover {
  544.               background: #ddd;
  545.               background: var(--button-hover);
  546.             }
  547.  
  548.             input[type='button']:hover {
  549.               background: #ddd;
  550.               background: var(--button-hover);
  551.             }
  552.  
  553.             input:focus {
  554.               box-shadow: 0 0 0 2px #0096bfab;
  555.               box-shadow: 0 0 0 2px var(--focus);
  556.             }
  557.  
  558.             select:focus {
  559.               box-shadow: 0 0 0 2px #0096bfab;
  560.               box-shadow: 0 0 0 2px var(--focus);
  561.             }
  562.  
  563.             button:focus {
  564.               box-shadow: 0 0 0 2px #0096bfab;
  565.               box-shadow: 0 0 0 2px var(--focus);
  566.             }
  567.  
  568.             textarea:focus {
  569.               box-shadow: 0 0 0 2px #0096bfab;
  570.               box-shadow: 0 0 0 2px var(--focus);
  571.             }
  572.  
  573.             input[type='checkbox']:active,
  574.             input[type='radio']:active,
  575.             input[type='submit']:active,
  576.             input[type='button']:active,
  577.             input[type='range']:active,
  578.             button:active {
  579.               transform: translateY(2px);
  580.             }
  581.  
  582.             input:disabled,
  583.             select:disabled,
  584.             button:disabled,
  585.             textarea:disabled {
  586.               cursor: not-allowed;
  587.               opacity: 0.5;
  588.             }
  589.  
  590.             ::-moz-placeholder {
  591.               color: #949494;
  592.               color: var(--form-placeholder);
  593.             }
  594.  
  595.             :-ms-input-placeholder {
  596.               color: #949494;
  597.               color: var(--form-placeholder);
  598.             }
  599.  
  600.             ::-ms-input-placeholder {
  601.               color: #949494;
  602.               color: var(--form-placeholder);
  603.             }
  604.  
  605.             ::placeholder {
  606.               color: #949494;
  607.               color: var(--form-placeholder);
  608.             }
  609.  
  610.             fieldset {
  611.               border: 1px #0096bfab solid;
  612.               border: 1px var(--focus) solid;
  613.               border-radius: 6px;
  614.               margin: 0;
  615.               margin-bottom: 12px;
  616.               padding: 10px;
  617.             }
  618.  
  619.             legend {
  620.               font-size: 0.9em;
  621.               font-weight: 600;
  622.             }
  623.  
  624.             input[type='range'] {
  625.               margin: 10px 0;
  626.               padding: 10px 0;
  627.               background: transparent;
  628.             }
  629.  
  630.             input[type='range']:focus {
  631.               outline: none;
  632.             }
  633.  
  634.             input[type='range']::-webkit-slider-runnable-track {
  635.               width: 100%;
  636.               height: 9.5px;
  637.               -webkit-transition: 0.2s;
  638.               transition: 0.2s;
  639.               background: #efefef;
  640.               background: var(--background);
  641.               border-radius: 3px;
  642.             }
  643.  
  644.             input[type='range']::-webkit-slider-thumb {
  645.               box-shadow: 0 1px 1px #000, 0 0 1px #0d0d0d;
  646.               height: 20px;
  647.               width: 20px;
  648.               border-radius: 50%;
  649.               background: #dbdbdb;
  650.               background: var(--border);
  651.               -webkit-appearance: none;
  652.               margin-top: -7px;
  653.             }
  654.  
  655.             input[type='range']:focus::-webkit-slider-runnable-track {
  656.               background: #efefef;
  657.               background: var(--background);
  658.             }
  659.  
  660.             input[type='range']::-moz-range-track {
  661.               width: 100%;
  662.               height: 9.5px;
  663.               -moz-transition: 0.2s;
  664.               transition: 0.2s;
  665.               background: #efefef;
  666.               background: var(--background);
  667.               border-radius: 3px;
  668.             }
  669.  
  670.             input[type='range']::-moz-range-thumb {
  671.               box-shadow: 1px 1px 1px #000, 0 0 1px #0d0d0d;
  672.               height: 20px;
  673.               width: 20px;
  674.               border-radius: 50%;
  675.               background: #dbdbdb;
  676.               background: var(--border);
  677.             }
  678.  
  679.             input[type='range']::-ms-track {
  680.               width: 100%;
  681.               height: 9.5px;
  682.               background: transparent;
  683.               border-color: transparent;
  684.               border-width: 16px 0;
  685.               color: transparent;
  686.             }
  687.  
  688.             input[type='range']::-ms-fill-lower {
  689.               background: #efefef;
  690.               background: var(--background);
  691.               border: 0.2px solid #010101;
  692.               border-radius: 3px;
  693.               box-shadow: 1px 1px 1px #000, 0 0 1px #0d0d0d;
  694.             }
  695.  
  696.             input[type='range']::-ms-fill-upper {
  697.               background: #efefef;
  698.               background: var(--background);
  699.               border: 0.2px solid #010101;
  700.               border-radius: 3px;
  701.               box-shadow: 1px 1px 1px #000, 0 0 1px #0d0d0d;
  702.             }
  703.  
  704.             input[type='range']::-ms-thumb {
  705.               box-shadow: 1px 1px 1px #000, 0 0 1px #0d0d0d;
  706.               border: 1px solid #000;
  707.               height: 20px;
  708.               width: 20px;
  709.               border-radius: 50%;
  710.               background: #dbdbdb;
  711.               background: var(--border);
  712.             }
  713.  
  714.             input[type='range']:focus::-ms-fill-lower {
  715.               background: #efefef;
  716.               background: var(--background);
  717.             }
  718.  
  719.             input[type='range']:focus::-ms-fill-upper {
  720.               background: #efefef;
  721.               background: var(--background);
  722.             }
  723.  
  724.             a {
  725.               text-decoration: none;
  726.               color: #0076d1;
  727.               color: var(--links);
  728.             }
  729.  
  730.             a:hover {
  731.               text-decoration: underline;
  732.             }
  733.  
  734.             code {
  735.               background: #efefef;
  736.               background: var(--background);
  737.               color: #000;
  738.               color: var(--code);
  739.               padding: 2.5px 5px;
  740.               border-radius: 6px;
  741.               font-size: 1em;
  742.             }
  743.  
  744.             samp {
  745.               background: #efefef;
  746.               background: var(--background);
  747.               color: #000;
  748.               color: var(--code);
  749.               padding: 2.5px 5px;
  750.               border-radius: 6px;
  751.               font-size: 1em;
  752.             }
  753.  
  754.             time {
  755.               background: #efefef;
  756.               background: var(--background);
  757.               color: #000;
  758.               color: var(--code);
  759.               padding: 2.5px 5px;
  760.               border-radius: 6px;
  761.               font-size: 1em;
  762.             }
  763.  
  764.             pre > code {
  765.               padding: 10px;
  766.               display: block;
  767.               overflow-x: auto;
  768.             }
  769.  
  770.             var {
  771.               color: #39a33c;
  772.               color: var(--variable);
  773.               font-style: normal;
  774.               font-family: monospace;
  775.             }
  776.  
  777.             kbd {
  778.               background: #efefef;
  779.               background: var(--background);
  780.               border: 1px solid #dbdbdb;
  781.               border: 1px solid var(--border);
  782.               border-radius: 2px;
  783.               color: #363636;
  784.               color: var(--text-main);
  785.               padding: 2px 4px 2px 4px;
  786.             }
  787.  
  788.             img,
  789.             video {
  790.               max-width: 100%;
  791.               height: auto;
  792.             }
  793.  
  794.             hr {
  795.               border: none;
  796.               border-top: 1px solid #dbdbdb;
  797.               border-top: 1px solid var(--border);
  798.             }
  799.  
  800.             table {
  801.               border-collapse: collapse;
  802.               margin-bottom: 10px;
  803.               width: 100%;
  804.               table-layout: fixed;
  805.             }
  806.  
  807.             table caption {
  808.               text-align: left;
  809.             }
  810.  
  811.             td,
  812.             th {
  813.               padding: 6px;
  814.               text-align: left;
  815.               vertical-align: top;
  816.               word-wrap: break-word;
  817.             }
  818.  
  819.             thead {
  820.               border-bottom: 1px solid #dbdbdb;
  821.               border-bottom: 1px solid var(--border);
  822.             }
  823.  
  824.             tfoot {
  825.               border-top: 1px solid #dbdbdb;
  826.               border-top: 1px solid var(--border);
  827.             }
  828.  
  829.             tbody tr:nth-child(even) {
  830.               background-color: #f7f7f7;
  831.               background-color: var(--background-alt);
  832.             }
  833.  
  834.             ::-webkit-scrollbar {
  835.               height: 10px;
  836.               width: 10px;
  837.             }
  838.  
  839.             ::-webkit-scrollbar-track {
  840.               background: #efefef;
  841.               background: var(--background);
  842.               border-radius: 6px;
  843.             }
  844.  
  845.             ::-webkit-scrollbar-thumb {
  846.               background: rgb(213, 213, 213);
  847.               background: var(--scrollbar-thumb);
  848.               border-radius: 6px;
  849.             }
  850.  
  851.             ::-webkit-scrollbar-thumb:hover {
  852.               background: rgb(196, 196, 196);
  853.               background: var(--scrollbar-thumb-hover);
  854.             }
  855.  
  856.             ::-moz-selection {
  857.               background-color: #9e9e9e;
  858.               background-color: var(--selection);
  859.               color: #000;
  860.               color: var(--text-bright);
  861.             }
  862.  
  863.             ::selection {
  864.               background-color: #9e9e9e;
  865.               background-color: var(--selection);
  866.               color: #000;
  867.               color: var(--text-bright);
  868.             }
  869.  
  870.             details {
  871.               display: flex;
  872.               flex-direction: column;
  873.               align-items: flex-start;
  874.               background-color: #f7f7f7;
  875.               background-color: var(--background-alt);
  876.               padding: 10px 10px 0;
  877.               margin: 1em 0;
  878.               border-radius: 6px;
  879.               overflow: hidden;
  880.             }
  881.  
  882.             details[open] {
  883.               padding: 10px;
  884.             }
  885.  
  886.             details > :last-child {
  887.               margin-bottom: 0;
  888.             }
  889.  
  890.             details[open] summary {
  891.               margin-bottom: 10px;
  892.             }
  893.  
  894.             summary {
  895.               display: list-item;
  896.               background-color: #efefef;
  897.               background-color: var(--background);
  898.               padding: 10px;
  899.               margin: -10px -10px 0;
  900.               cursor: pointer;
  901.               outline: none;
  902.             }
  903.  
  904.             summary:hover,
  905.             summary:focus {
  906.               text-decoration: underline;
  907.             }
  908.  
  909.             details > :not(summary) {
  910.               margin-top: 0;
  911.             }
  912.  
  913.             summary::-webkit-details-marker {
  914.               color: #363636;
  915.               color: var(--text-main);
  916.             }
  917.  
  918.             footer {
  919.               border-top: 1px solid #dbdbdb;
  920.               border-top: 1px solid var(--border);
  921.               padding-top: 10px;
  922.               color: #70777f;
  923.               color: var(--text-muted);
  924.             }
  925.  
  926.             body > footer {
  927.               margin-top: 40px;
  928.             }
  929.  
  930.             @media print {
  931.               body,
  932.               pre,
  933.               code,
  934.               summary,
  935.               details,
  936.               button,
  937.               input,
  938.               textarea {
  939.                 background-color: #fff;
  940.               }
  941.  
  942.               button,
  943.               input,
  944.               textarea {
  945.                 border: 1px solid #000;
  946.               }
  947.  
  948.               body,
  949.               h1,
  950.               h2,
  951.               h3,
  952.               h4,
  953.               h5,
  954.               h6,
  955.               pre,
  956.               code,
  957.               button,
  958.               input,
  959.               textarea,
  960.               footer,
  961.               summary,
  962.               strong {
  963.                 color: #000;
  964.               }
  965.  
  966.               summary::marker {
  967.                 color: #000;
  968.               }
  969.  
  970.               summary::-webkit-details-marker {
  971.                 color: #000;
  972.               }
  973.  
  974.               tbody tr:nth-child(even) {
  975.                 background-color: #f2f2f2;
  976.               }
  977.  
  978.               a {
  979.                 color: #00f;
  980.                 text-decoration: underline;
  981.               }
  982.             }
  983.  
  984.             /*# sourceMappingURL=light.css.map */
  985.  
  986.             input[type="text"] {
  987.                 width: calc(100% - 20px);
  988.             }
  989.         </style>
  990.     </head>
  991.     <body>
  992.         <h1>Wolfram Key Generator</h1>
  993.         <ol>
  994.             <li>Install <b>Mathematica</b> from <a href="https://www.wolfram.com/mathematica/trial/">the official website</a>
  995.              or install <b>SystemModeler</b> from <a href="https://www.wolfram.com/system-modeler/trial/">the official website</a>.</li>
  996.             <li>Select <b>Other ways to activate</b> → <b>Activate Manually</b>.</li>
  997.             <li>Input given <b>MathID</b> (xxxx-xxxxx-xxxxx) and any <b>Activation Key</b> below (the default Activation Key will suffice).</li>
  998.             <li>Press <b>Generate Password</b>.</li>
  999.             <li>Input your <b>Activation Key</b> and any generated <b>Password</b> to activate your copy of Mathematica.</li>
  1000.             <li>Ignore the prompt to <b>Register</b>.</li>
  1001.         </ol>
  1002.         <form id="form">
  1003.             <fieldset>
  1004.                 <legend>Generator</legend>
  1005.                 <label for="mathid">MathID: </label>
  1006.                 <input type="text" id="mathid" required pattern="\d{4}-\d{5}-\d{5}">
  1007.                 <label for="activation-key">Activation Key: </label>
  1008.                 <input type="text" id="activation-key" required pattern="\d{4}-\d{4}-[0-9A-Z]{6}" value="3893-9258-K6XJLE">
  1009.                 <button id="button" onclick="genPass(event)">Generate Password</button>
  1010.             </fieldset>
  1011.         </form>
  1012.         <div id="outputMath"></div>
  1013.         <div id="outputSM"></div>
  1014.     </body>
  1015. </html>
  1016.  
Advertisement
Add Comment
Please, Sign In to add comment