Reset Password - Disqus

From disqus.com, 1 Week ago, written in Plain Text, viewed 3 times.
URL https://pastebin.freepbx.org/view/4c80985e Embed
Download Paste or View Raw
  1.  
  2.  
  3.  
  4.  
  5.  
  6. <!DOCTYPE html>
  7. <html lang="en-us">
  8. <head>
  9.    
  10.     <link rel="shortcut icon" href="//a.disquscdn.com/1602103160/img/favicon16-32.ico" type="image/vnd.microsoft.icon">
  11.  
  12.  
  13.     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
  14.     <meta http-equiv="Content-Language" content="en-us">
  15.     <meta name="keywords" content="Disqus, disqus.com, comments, blog, blogs, discussion">
  16.     <meta name="google" value="notranslate" />
  17.     <title>
  18.    
  19.     Reset Password - Disqus
  20.  
  21.     </title>
  22.  
  23.     <meta name="description" content="Disqus is a global comment system that improves discussion on websites and connects conversations across the web.">
  24.  
  25.    
  26.         <script type="text/javascript" charset="utf-8">
  27.     document.domain = 'disqus.com';
  28.     if (window.context === undefined) {
  29.         var context = {};
  30.     }
  31.     context.disqusUrl = 'https://disqus.com';
  32.     context.revealUrl = 'http://hubspot.disqus.biz/reveal-by-disqus-organic';
  33.     context.disqusDomain = 'disqus.com';
  34.     context.mediaUrl = '//a.disquscdn.com/1602103160/';
  35.     context.uploadsUrl = '//a.disquscdn.com/uploads';
  36.     context.sslUploadsUrl = '//a.disquscdn.com/uploads';
  37.     context.loginUrl = 'https://disqus.com/profile/login/';
  38.     context.signupUrl = 'https://disqus.com/profile/signup/';
  39.     context.apiUrl = '//disqus.com/api/3.0/';
  40.     context.apiPublicKey = 'Y1S1wGIzdc63qnZ5rhHfjqEABGA4ZTDncauWFFWWTUBqkmLjdxloTb7ilhGnZ7z1';
  41.    
  42.     context.forum = null;
  43.     context.adminUrl = 'https://disqus.com';
  44.    
  45.     context.urlMap = {
  46.         'signup': 'http://disqus.com/admin/signup/',
  47.         'dashboard': 'http://disqus.com/dashboard/',
  48.         'admin': 'https://disqus.com/admin/',
  49.        
  50.         'logout': '//disqus.com/logout/',
  51.         'home': 'https://disqus.com',
  52.         'home_settings_profile': 'https://disqus.com/home/settings/profile/',
  53.         'for_websites': 'http://disqus.com/websites/',
  54.         'for_publishers': 'http://hubspot.disqus.biz/reveal-by-disqus-organic',
  55.         'login': 'https://disqus.com/profile/login/'
  56.     };
  57.     context.navMap = {
  58.         'signup': '',
  59.         'dashboard': '',
  60.         'admin': '',
  61.         'addons': ''
  62.     };
  63. </script>
  64.  
  65.         <script src="//a.disquscdn.com/1602103160/js/src/auth_context.js" type="text/javascript" charset="utf-8"></script>
  66.    
  67.  
  68.     <link rel="stylesheet" href="//a.disquscdn.com/1602103160/build/css/f657bd03b179.css" type="text/css" />
  69.  
  70.    
  71.    
  72.  
  73.    
  74.    
  75.  
  76.    
  77.        
  78.  
  79.  
  80. <script type="text/javascript" src="//a.disquscdn.com/1602103160/build/js/abadd50d331d.js"></script>
  81.  
  82. <script>
  83. //
  84. // shared/foundation.js
  85. //
  86. // This file contains the absolute minimum code necessary in order
  87. // to create a new application in the DISQUS namespace.
  88. //
  89. // You should load this file *before* anything that modifies the DISQUS global.
  90. //
  91.  
  92. /*jshint browser:true, undef:true, strict:true, expr:true, white:true */
  93. /*global DISQUS:true */
  94.  
  95. var DISQUS = (function (window, undefined) {
  96.     "use strict";
  97.  
  98.     var DISQUS = window.DISQUS || {};
  99.  
  100.     // Exception thrown from DISQUS.assert method on failure
  101.     DISQUS.AssertionError = function (message) {
  102.         this.message = message;
  103.     };
  104.  
  105.     DISQUS.AssertionError.prototype.toString = function () {
  106.         return 'Assertion Error: ' + (this.message || '[no message]');
  107.     };
  108.  
  109.  
  110.     // Raises a DISQUS.AssertionError if value is falsy
  111.     DISQUS.assert = function (value, message, soft) {
  112.         if (value)
  113.             return;
  114.  
  115.         if (soft)
  116.             window.console && window.console.log("DISQUS assertion failed: " + message);
  117.         else
  118.             throw new DISQUS.AssertionError(message);
  119.     };
  120.  
  121.  
  122.     // Functions to clean attached modules (used by define and cleanup)
  123.     var cleanFuncs = [];
  124.  
  125.     // Attaches a new public interface (module) to the DISQUS namespace.
  126.     // For example, if DISQUS object is { 'a': { 'b': {} } }:
  127.     //
  128.     //   DISQUS.define('a.b.c', function () { return { 'd': 'hello' }; }); will transform it into
  129.     //     -> { 'a': { 'b': { 'c': { 'd' : hello' }}}}
  130.     //
  131.     //   and DISQUS.define('a', function () { return { 'x': 'world' }; }); will transform it into
  132.     //     -> { 'a': { 'b': {}}, 'x': 'world' }
  133.     //
  134.     // Attach modules to DISQUS using only this function.
  135.  
  136.     DISQUS.define = function (name, fn) {
  137.         /*jshint loopfunc:true */
  138.         if (typeof name === 'function') {
  139.             fn = name;
  140.             name = '';
  141.         }
  142.  
  143.         var parts = name.split('.');
  144.         var part  = parts.shift();
  145.         var cur   = DISQUS;
  146.  
  147.         var exports = (fn || function () { return {}; }).call({
  148.             overwrites: function (obj) {
  149.                 obj.__overwrites__ = true;
  150.                 return obj;
  151.             }
  152.         }, window);
  153.  
  154.         while (part) {
  155.             cur = (cur[part] ? cur[part] : cur[part] = {});
  156.             part = parts.shift();
  157.         }
  158.  
  159.         for (var key in exports) {
  160.             if (!exports.hasOwnProperty(key))
  161.                 continue;
  162.  
  163.             /*jshint eqnull:true */
  164.             if (!exports.__overwrites__ && cur[key] !== null) {
  165.                 DISQUS.assert(!cur.hasOwnProperty(key),
  166.                               'Unsafe attempt to redefine existing module: ' + key,
  167.                               true /* soft assertion */);
  168.             }
  169.  
  170.             cur[key] = exports[key];
  171.             cleanFuncs.push(function (cur, key) {
  172.                 return function () { delete cur[key]; };
  173.             }(cur, key));
  174.         }
  175.         return cur;
  176.     };
  177.  
  178.  
  179.     // Alias for DISQUS.define for the sake of semantics.
  180.     // You should use it when you need to get a reference to another
  181.     // DISQUS module before that module is defined:
  182.     //
  183.     //   var collections = DISQUS.use('lounge.collections');
  184.     //
  185.     // DISQUS.use is a single argument function because we don't
  186.     // want to encourage people to use it instead of DISQUS.define.
  187.  
  188.     DISQUS.use = function (name) {
  189.         return DISQUS.define(name);
  190.     };
  191.  
  192.     DISQUS.cleanup = function () {
  193.         for (var i = 0; i < cleanFuncs.length; i++) {
  194.             cleanFuncs[i]();
  195.         }
  196.     };
  197.  
  198.     return DISQUS;
  199. })(window);
  200.  
  201. /*jshint expr:true, undef:true, strict:true, white:true, browser:true */
  202. /*global DISQUS:false*/
  203. //
  204. // shared/corefuncs.js
  205. //
  206.  
  207. DISQUS.define(function (window, undefined) {
  208.     "use strict";
  209.  
  210.     var DISQUS     = window.DISQUS;
  211.     var document   = window.document;
  212.     var head       = document.getElementsByTagName('head')[0] ||
  213.                      document.body;
  214.     var jobs       = { running: false, timer: null, queue: [] };
  215.     var uid        = 0;
  216.  
  217.     // Taken from _.uniqueId
  218.     DISQUS.getUid = function (prefix) {
  219.         var id = ++uid + '';
  220.         return prefix ? prefix + id : id;
  221.     };
  222.  
  223.     /* Defers func() execution until cond() is true */
  224.     DISQUS.defer = function (cond, func) {
  225.         function beat() {
  226.             /*jshint boss:true */
  227.             var queue = jobs.queue;
  228.  
  229.             if (queue.length === 0) {
  230.                 jobs.running = false;
  231.                 clearInterval(jobs.timer);
  232.             }
  233.  
  234.             for (var i = 0, pair; pair = queue[i]; i++) {
  235.                 if (pair[0]()) {
  236.                     queue.splice(i--, 1);
  237.                     pair[1]();
  238.                 }
  239.             }
  240.         }
  241.  
  242.         jobs.queue.push([cond, func]);
  243.         beat();
  244.  
  245.         if (!jobs.running) {
  246.             jobs.running = true;
  247.             jobs.timer = setInterval(beat, 100);
  248.         }
  249.     };
  250.  
  251.     DISQUS.isOwn = function (obj, key) {
  252.         // The object.hasOwnProperty method fails when the
  253.         // property under consideration is named 'hasOwnProperty'.
  254.         return Object.prototype.hasOwnProperty.call(obj, key);
  255.     };
  256.  
  257.     DISQUS.isString = function (str) {
  258.         return Object.prototype.toString.call(str) === "[object String]";
  259.     };
  260.  
  261.     /*
  262.      * Iterates over an object or a collection and calls a callback
  263.      * function with each item as a parameter.
  264.      */
  265.     DISQUS.each = function (collection, callback) {
  266.         var length = collection.length,
  267.             forEach = Array.prototype.forEach;
  268.  
  269.         if (!isNaN(length)) {
  270.             // Treat collection as an array
  271.             if (forEach) {
  272.                 forEach.call(collection, callback);
  273.             } else {
  274.                 for (var i = 0; i < length; i++) {
  275.                     callback(collection[i], i, collection);
  276.                 }
  277.             }
  278.         } else {
  279.             // Treat collection as an object
  280.             for (var key in collection) {
  281.                 if (DISQUS.isOwn(collection, key)) {
  282.                     callback(collection[key], key, collection);
  283.                 }
  284.             }
  285.         }
  286.     };
  287.  
  288.     // Borrowed from underscore
  289.     DISQUS.extend = function (obj) {
  290.         DISQUS.each(Array.prototype.slice.call(arguments, 1), function (source) {
  291.             for (var prop in source) {
  292.                 obj[prop] = source[prop];
  293.             }
  294.         });
  295.         return obj;
  296.     };
  297.  
  298.     DISQUS.serializeArgs = function (params) {
  299.         var pcs = [];
  300.         DISQUS.each(params, function (val, key) {
  301.             if (val !== undefined) {
  302.                 pcs.push(key + (val !== null ? '=' + encodeURIComponent(val) : ''));
  303.             }
  304.         });
  305.         return pcs.join('&');
  306.     };
  307.  
  308.     DISQUS.serialize = function (url, params, nocache) {
  309.         if (params) {
  310.             url += (~url.indexOf('?') ?
  311.                         (url.charAt(url.length - 1) == '&' ? '': '&') : '?');
  312.             url += DISQUS.serializeArgs(params);
  313.         }
  314.  
  315.         if (nocache) {
  316.             var ncp = {};
  317.             ncp[(new Date()).getTime()] = null;
  318.             return DISQUS.serialize(url, ncp);
  319.         }
  320.  
  321.         var len = url.length;
  322.         return (url.charAt(len - 1) == "&" ? url.slice(0, len - 1) : url);
  323.     };
  324.  
  325.     var TIMEOUT_DURATION = 2e4; // 20 seconds
  326.     var addEvent, removeEvent;
  327.  
  328.     // select the correct event listener function. all of our supported
  329.     // browsers will use one of these
  330.     if ('addEventListener' in window) {
  331.         addEvent = function (node, event, handler) {
  332.             node.addEventListener(event, handler, false);
  333.         };
  334.         removeEvent = function (node, event, handler) {
  335.             node.removeEventListener(event, handler, false);
  336.         };
  337.     }
  338.     else {
  339.         addEvent = function (node, event, handler) {
  340.             node.attachEvent('on' + event, handler);
  341.         };
  342.         removeEvent = function (node, event, handler) {
  343.             node.detachEvent('on' + event, handler);
  344.         };
  345.     }
  346.  
  347.     DISQUS.require = function (url, params, nocache, success, failure) {
  348.         var script = document.createElement('script');
  349.         var evName = script.addEventListener ? 'load' : 'readystatechange';
  350.         var timeout = null;
  351.  
  352.         script.src = DISQUS.serialize(url, params, nocache);
  353.         script.async = true;
  354.         script.charset = 'UTF-8';
  355.  
  356.         function handler(ev) {
  357.             ev = ev || window.event;
  358.             if (!ev.target) {
  359.                 ev.target = ev.srcElement;
  360.             }
  361.  
  362.             if (ev.type != 'load' && !/^(complete|loaded)$/.test(ev.target.readyState)) {
  363.                 return; // Not ready yet
  364.             }
  365.  
  366.             if (success) {
  367.                 success();
  368.             }
  369.  
  370.             if (timeout) {
  371.                 clearTimeout(timeout);
  372.             }
  373.  
  374.             removeEvent(ev.target, evName, handler);
  375.         }
  376.  
  377.         if (success || failure) {
  378.             addEvent(script, evName, handler);
  379.         }
  380.  
  381.         if (failure) {
  382.             timeout = setTimeout(function () {
  383.                 failure();
  384.             }, TIMEOUT_DURATION);
  385.         }
  386.  
  387.         head.appendChild(script);
  388.         return DISQUS;
  389.     };
  390.  
  391.     DISQUS.requireStylesheet = function (url, params, nocache) {
  392.         var link = document.createElement('link');
  393.         link.rel = 'stylesheet';
  394.         link.type = 'text/css';
  395.         link.href = DISQUS.serialize(url, params, nocache);
  396.         head.appendChild(link);
  397.         return DISQUS;
  398.     };
  399.  
  400.     DISQUS.requireSet = function (urls, nocache, callback) {
  401.         var remaining = urls.length;
  402.         DISQUS.each(urls, function (url) {
  403.             DISQUS.require(url, {}, nocache, function () {
  404.                 if (--remaining === 0) { callback(); }
  405.             });
  406.         });
  407.     };
  408.  
  409.     DISQUS.injectCss = function (css) {
  410.         var style = document.createElement('style');
  411.         style.setAttribute('type', 'text/css');
  412.  
  413.         // Make inline CSS more readable by splitting each rule onto a separate line
  414.         css = css.replace(/\}/g, "}\n");
  415.  
  416.         if (window.location.href.match(/^https/))
  417.             css = css.replace(/http:\/\//g, 'https://');
  418.  
  419.         if (style.styleSheet) { // Internet Explorer only
  420.             style.styleSheet.cssText = css;
  421.         } else {
  422.             style.appendChild(document.createTextNode(css));
  423.         }
  424.  
  425.         head.appendChild(style);
  426.     };
  427.  
  428.     DISQUS.isString = function (val) {
  429.         return Object.prototype.toString.call(val) === '[object String]';
  430.     };
  431. });
  432.  
  433. /*jshint boss:true*/
  434. /*global DISQUS */
  435. DISQUS.define('Events', function (window, undefined) {
  436.     "use strict";
  437.  
  438.     // Returns a function that will be executed at most one time, no matter how
  439.     // often you call it. Useful for lazy initialization.
  440.     var once = function (func) {
  441.         var ran = false, memo;
  442.         return function () {
  443.             if (ran) return memo;
  444.             ran = true;
  445.             memo = func.apply(this, arguments);
  446.             func = null;
  447.             return memo;
  448.         };
  449.     };
  450.     var has = DISQUS.isOwn;
  451.     var keys = Object.keys || function (obj) {
  452.         if (obj !== Object(obj)) throw new TypeError('Invalid object');
  453.         var keys = [];
  454.         for (var key in obj) if (has(obj, key)) keys[keys.length] = key;
  455.         return keys;
  456.     };
  457.     var slice = [].slice;
  458.  
  459.     // Backbone.Events
  460.     // ---------------
  461.  
  462.     // A module that can be mixed in to *any object* in order to provide it with
  463.     // custom events. You may bind with `on` or remove with `off` callback
  464.     // functions to an event; `trigger`-ing an event fires all callbacks in
  465.     // succession.
  466.     //
  467.     // var object = {};
  468.     // _.extend(object, Backbone.Events);
  469.     // object.on('expand', function(){ alert('expanded'); });
  470.     // object.trigger('expand');
  471.     //
  472.     var Events = {
  473.  
  474.         // Bind an event to a `callback` function. Passing `"all"` will bind
  475.         // the callback to all events fired.
  476.         on: function (name, callback, context) {
  477.             if (!eventsApi(this, 'on', name, [callback, context]) || !callback) return this;
  478.             this._events = this._events || {};
  479.             var events = this._events[name] || (this._events[name] = []);
  480.             events.push({callback: callback, context: context, ctx: context || this});
  481.             return this;
  482.         },
  483.  
  484.         // Bind an event to only be triggered a single time. After the first time
  485.         // the callback is invoked, it will be removed.
  486.         once: function (name, callback, context) {
  487.             if (!eventsApi(this, 'once', name, [callback, context]) || !callback) return this;
  488.             var self = this;
  489.             var onced = once(function () {
  490.                 self.off(name, onced);
  491.                 callback.apply(this, arguments);
  492.             });
  493.             onced._callback = callback;
  494.             return this.on(name, onced, context);
  495.         },
  496.  
  497.         // Remove one or many callbacks. If `context` is null, removes all
  498.         // callbacks with that function. If `callback` is null, removes all
  499.         // callbacks for the event. If `name` is null, removes all bound
  500.         // callbacks for all events.
  501.         off: function (name, callback, context) {
  502.             var retain, ev, events, names, i, l, j, k;
  503.             if (!this._events || !eventsApi(this, 'off', name, [callback, context])) return this;
  504.             if (!name && !callback && !context) {
  505.                 this._events = {};
  506.                 return this;
  507.             }
  508.  
  509.             names = name ? [name] : keys(this._events);
  510.             for (i = 0, l = names.length; i < l; i++) {
  511.                 name = names[i];
  512.                 if (events = this._events[name]) {
  513.                     this._events[name] = retain = [];
  514.                     if (callback || context) {
  515.                         for (j = 0, k = events.length; j < k; j++) {
  516.                             ev = events[j];
  517.                             if ((callback && callback !== ev.callback && callback !== ev.callback._callback) ||
  518.                                 (context && context !== ev.context)) {
  519.                                 retain.push(ev);
  520.                             }
  521.                         }
  522.                     }
  523.                     if (!retain.length) delete this._events[name];
  524.                 }
  525.             }
  526.  
  527.             return this;
  528.         },
  529.  
  530.         // Trigger one or many events, firing all bound callbacks. Callbacks are
  531.         // passed the same arguments as `trigger` is, apart from the event name
  532.         // (unless you're listening on `"all"`, which will cause your callback to
  533.         // receive the true name of the event as the first argument).
  534.         trigger: function (name) {
  535.             if (!this._events) return this;
  536.             var args = slice.call(arguments, 1);
  537.             if (!eventsApi(this, 'trigger', name, args)) return this;
  538.             var events = this._events[name];
  539.             var allEvents = this._events.all;
  540.             if (events) triggerEvents(events, args);
  541.             if (allEvents) triggerEvents(allEvents, arguments);
  542.             return this;
  543.         },
  544.  
  545.         // Tell this object to stop listening to either specific events ... or
  546.         // to every object it's currently listening to.
  547.         stopListening: function (obj, name, callback) {
  548.             var listeners = this._listeners;
  549.             if (!listeners) return this;
  550.             var deleteListener = !name && !callback;
  551.             if (typeof name === 'object') callback = this;
  552.             if (obj) (listeners = {})[obj._listenerId] = obj;
  553.             for (var id in listeners) {
  554.                 listeners[id].off(name, callback, this);
  555.                 if (deleteListener) delete this._listeners[id];
  556.             }
  557.             return this;
  558.         }
  559.  
  560.     };
  561.  
  562.     // Regular expression used to split event strings.
  563.     var eventSplitter = /\s+/;
  564.  
  565.     // Implement fancy features of the Events API such as multiple event
  566.     // names `"change blur"` and jQuery-style event maps `{change: action}`
  567.     // in terms of the existing API.
  568.     var eventsApi = function (obj, action, name, rest) {
  569.         if (!name) return true;
  570.  
  571.         // Handle event maps.
  572.         if (typeof name === 'object') {
  573.             for (var key in name) {
  574.                 obj[action].apply(obj, [key, name[key]].concat(rest));
  575.             }
  576.             return false;
  577.         }
  578.  
  579.         // Handle space separated event names.
  580.         if (eventSplitter.test(name)) {
  581.             var names = name.split(eventSplitter);
  582.             for (var i = 0, l = names.length; i < l; i++) {
  583.                 obj[action].apply(obj, [names[i]].concat(rest));
  584.             }
  585.             return false;
  586.         }
  587.  
  588.         return true;
  589.     };
  590.  
  591.     // A difficult-to-believe, but optimized internal dispatch function for
  592.     // triggering events. Tries to keep the usual cases speedy (most internal
  593.     // Backbone events have 3 arguments).
  594.     var triggerEvents = function (events, args) {
  595.         var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];
  596.         switch (args.length) {
  597.         case 0:
  598.             while (++i < l) {
  599.                 (ev = events[i]).callback.call(ev.ctx);
  600.             }
  601.             return;
  602.         case 1:
  603.             while (++i < l) {
  604.                 (ev = events[i]).callback.call(ev.ctx, a1);
  605.             }
  606.             return;
  607.         case 2:
  608.             while (++i < l) {
  609.                 (ev = events[i]).callback.call(ev.ctx, a1, a2);
  610.             }
  611.             return;
  612.         case 3:
  613.             while (++i < l) {
  614.                 (ev = events[i]).callback.call(ev.ctx, a1, a2, a3);
  615.             }
  616.             return;
  617.         default:
  618.             while (++i < l) {
  619.                 (ev = events[i]).callback.apply(ev.ctx, args);
  620.             }
  621.         }
  622.     };
  623.  
  624.     var listenMethods = {listenTo: 'on', listenToOnce: 'once'};
  625.  
  626.     // Inversion-of-control versions of `on` and `once`. Tell *this* object to
  627.     // listen to an event in another object ... keeping track of what it's
  628.     // listening to.
  629.     DISQUS.each(listenMethods, function (implementation, method) {
  630.         Events[method] = function (obj, name, callback) {
  631.             var listeners = this._listeners || (this._listeners = {});
  632.             var id = obj._listenerId || (obj._listenerId = DISQUS.getUid('l'));
  633.             listeners[id] = obj;
  634.             if (typeof name === 'object') callback = this;
  635.             obj[implementation](name, callback, this);
  636.             return this;
  637.         };
  638.     });
  639.  
  640.     // Aliases for backwards compatibility.
  641.     Events.bind = Events.on;
  642.     Events.unbind = Events.off;
  643.  
  644.     return Events;
  645. });
  646.  // used for /follow/ /login/ /signup/ social oauth dialogs
  647. // faking the bus
  648. DISQUS.use('Bus');
  649. _.extend(DISQUS.Bus, DISQUS.Events);
  650. </script>
  651.  
  652.  
  653.  
  654.    
  655.  
  656.    
  657.     <script src="//a.disquscdn.com/1602103160/js/src/global.js" charset="utf-8"></script>
  658.     <script type="text/javascript">
  659.     if (window.AB_TESTS === undefined) {
  660.         var AB_TESTS = {};
  661.     }
  662. </script>
  663. <script type="text/javascript" charset="utf-8">
  664.     // Global tests
  665.     $(document).ready(function() {
  666.         $('a[rel*=facebox]').facebox();
  667.     });
  668. </script>
  669.  
  670.     <script type="text/x-underscore-template" data-template-name="global-nav">
  671.  
  672. <% var has_custom_avatar = data.avatar_url && data.avatar_url.indexOf('noavatar') < 0; %>
  673. <% var has_custom_username = data.username && data.username.indexOf('disqus_') < 0; %>
  674. <% if (data.username) { %>
  675.     <% if (data.has_forums) { %>
  676.         <li class="admin<% if (has_custom_avatar || !has_custom_username) { %> avatar-menu-admin<% } %>" data-analytics="header admin"><a href="<%= data.urlMap.admin %>"><strong>Admin</strong></a></li>
  677.     <% } %>
  678.     <li class="user-dropdown dropdown-toggle<% if (has_custom_avatar || !has_custom_username) { %> avatar-menu<% } else { %> username-menu<% } %>" data-analytics="header username dropdown" data-floater-marker="<% if (has_custom_avatar || !has_custom_username) { %>square<% } %>">
  679.         <a href="<%= data.urlMap.home %>/<%= data.username %>/">
  680.             <% if (has_custom_avatar) { %>
  681.                 <img src="<%= data.avatar_url %>" class="avatar">
  682.             <% } else if (has_custom_username) { %>
  683.                 <%= data.username %>
  684.             <% } else { %>
  685.                 <img src="<%= data.avatar_url %>" class="avatar">
  686.             <% } %>
  687.             <span class="caret"></span>
  688.         </a>
  689.         <ul class="clearfix dropdown">
  690.             <li data-analytics="header view profile"><a href="<%= data.urlMap.home %>/<%= data.username %>/">View Profile</a></li>
  691.             <li class="js-edit-profile" data-analytics="header edit profile"><a href="<%= data.urlMap.home_settings_profile %>">Edit Profile</a></li>
  692.             <li class="logout" data-analytics="header logout"><a href="<%= data.urlMap.logout %>">Logout</a></li>
  693.         </ul>
  694.     </li>
  695. <% } else { %>
  696.     <li class="link-login" data-analytics="header login"><a href="<%= data.urlMap.login %>?next=<%= encodeURIComponent(document.location.href) %>">Log in</a></li>
  697. <% } %>
  698.  
  699.  
  700. </script>
  701.  
  702.     <!--[if lte IE 7]>
  703.   <script src="//a.disquscdn.com/1602103160/js/src/border_box_model.js"></script>
  704. <![endif]-->
  705. <!--[if lte IE 8]>
  706.   <script src="//cdnjs.cloudflare.com/ajax/libs/modernizr/2.5.3/modernizr.min.js"></script>
  707.   <script src="//a.disquscdn.com/1602103160/js/src/selectivizr.js"></script>
  708. <![endif]-->
  709.  
  710.    
  711.  
  712.    
  713.     <meta name="referrer" content="never">
  714.     <meta name="robots" content="noindex,nofollow">
  715.    
  716.     <meta name="viewport" content="width=device-width, user-scalable=no">
  717.     <meta name="apple-mobile-web-app-capable" content="yes">
  718.  
  719.  
  720.  
  721.    
  722.         <script type="text/javascript" charset="utf-8">
  723.             // Global tests
  724.             $(document).ready(function() {
  725.                 $('a[rel*=facebox]').facebox();
  726.             });
  727.         </script>
  728.        
  729.    
  730.    
  731. </head>
  732. <body class="" id="">
  733.    
  734.    
  735.  
  736.    
  737.     <div class="container--narrow content forgot-password">
  738.         <h1 class="text-heading text-center spacing-bottom">Reset your password</h1>
  739.        
  740.  
  741.        
  742.            
  743.                 <div class="status alert">OK. We've sent you an email describing how to reset your password.</div>
  744.            
  745.        
  746.         <form class="forgot-form" action="https://disqus.com/forgot/?lang=null" method="POST" accept-charset="utf-8" name="forgot">
  747.  
  748.             <p class="text-center">If you've forgotten your password, we'll send you an email to reset your password.</p>
  749.             <fieldset class="input-group">
  750.                 <input name="user" type="text" class="form-text" placeholder="Email">
  751.             </fieldset>
  752.  
  753.            
  754.             <div class="button-container">
  755.                 <button type="submit" class="button submit"><span>Continue</span></button>
  756.             </div>
  757.  
  758.         </form>
  759.         <div class="note">
  760.             <h3>Can't log in?</h3>
  761.             <p>
  762.                 If you can't log in or have trouble staying logged in, it may be due to a web browser setting.
  763.                 <a href="https://docs.disqus.com/help/27/">
  764.                     Here's how to fix it &raquo;
  765.                 </a>
  766.             </p>
  767.         </div>
  768.     </div>
  769.  
  770.    
  771.    
  772.  
  773.  
  774. <div class="text-center">
  775.     <a href="/" class="logo" data-analytics="site logo">
  776.         <img src="//a.disquscdn.com/1602103160/img/disqus-logo-alt-hidpi.png" width="102" height="20" alt="Disqus" title="Disqus - Discover your community" style="padding-bottom: 20px;"/>
  777.     </a>
  778. </div>
  779.  
  780.  
  781.  
  782.    
  783.    
  784.    
  785.  
  786.    
  787.    
  788.         <script>
  789.         (function (){
  790.             // adds a classname for css to target the current page without passing in special things from the server or wherever
  791.             // replacing all characters not allowable in classnames
  792.             var newLocation = encodeURIComponent(window.location.pathname).replace(/[\.!~*'\(\)]/g, '_');
  793.             // cleaning up remaining url-encoded symbols for clarity sake
  794.             newLocation = newLocation.replace(/%2F/g, '-').replace(/^-/, '').replace(/-$/, '');
  795.             if (newLocation === '') {
  796.                 newLocation = 'homepage';
  797.             }
  798.             $('body').addClass('' + newLocation);
  799.         }());
  800.  
  801.         $(function ($) {
  802.             // adds 'page-active' class to links matching the page url
  803.             $('a[href="' + window.location.pathname + '"]').addClass('page-active');
  804.         });
  805.  
  806.         $(document).delegate('[data-toggle-selector]', 'click', function (e) {
  807.             var $this = $(this);
  808.             $($this.attr('data-toggle-selector')).toggle();
  809.             e.preventDefault();
  810.         });
  811.         </script>
  812.    
  813.    
  814. <script src="https://c.disquscdn.com/next/current/jester.js"></script>
  815. <script>
  816.     var jesterObj = {
  817.         product: 'dotcom',
  818.         zone: 'login',
  819.     };
  820.    
  821.     jesterObj.section = 'forgotpassword';
  822.    
  823.    
  824.     window.DISQUS.jester.pv(jesterObj);
  825. </script>
  826.  
  827.  
  828.  
  829.  
  830.    
  831.     <!-- helper jQuery tmpl partials -->
  832.     <script type="text/x-jquery-tmpl" id="profile-metadata-tmpl">
  833.        
  834.         data-profile-username="${username}" data-profile-hash="${emailHash}" href="/${username}"
  835.        
  836.     </script>
  837.     <script type="text/x-jquery-tmpl" id="profile-link-tmpl">
  838.        
  839.         <a class="profile-launcher" {{tmpl "#profile-metadata-tmpl"}} href="/${username}">${name}</a>
  840.        
  841.     </script>
  842.  
  843.     <script src="//a.disquscdn.com/1602103160/js/src/templates.js"></script>
  844.    
  845.  
  846.     <script src="//a.disquscdn.com/1602103160/js/src/modals.js"></script>
  847. <script>
  848.   DISQUS.ui.config({
  849.     disqusUrl: 'https://disqus.com',
  850.     mediaUrl: '//a.disquscdn.com/1602103160/'
  851.   });
  852. </script>
  853.  
  854. </body>
  855. </html>
  856.  

Reply to " Reset Password - Disqus"

Here you can reply to the paste above