whole_func_string: function process(o, force_rich) {
  				var dom = ed.dom, rng;
  
  				// Execute pre process handlers
  				t.onPreProcess.dispatch(t, o);
  
  				// Create DOM structure
  				o.node = dom.create('div', 0, o.content);
  
  				// If pasting inside the same element and the contents is only one block
  				// remove the block and keep the text since Firefox will copy parts of pre and h1-h6 as a pre element
  				if (tinymce.isGecko) {
  					rng = ed.selection.getRng(true);
  					if (rng.startContainer == rng.endContainer && rng.startContainer.nodeType == 3) {
  						// Is only one block node and it doesn't contain word stuff
  						if (o.node.childNodes.length === 1 && /^(p|h[1-6]|pre)$/i.test(o.node.firstChild.nodeName) && o.content.indexOf('__MCE_ITEM__') === -1)
  							dom.remove(o.node.firstChild, true);
  					}
  				}
  
  				// Execute post process handlers
  				t.onPostProcess.dispatch(t, o);
  
  				// Serialize content
  				o.content = ed.serializer.serialize(o.node, {getInner : 1, forced_root_block : ''});
  
  				// Plain text option active?
  				if ((!force_rich) && (ed.pasteAsPlainText)) {
  					t._insertPlainText(o.content);
  
  					if (!getParam(ed, "paste_text_sticky")) {
  						ed.pasteAsPlainText = false;
  						ed.controlManager.setActive("pastetext", false);
  					}
  				} else {
  					t._insert(o.content);
  				}
  			}
func_code_string: function process(o, force_rich) {
  				var dom = ed.dom, rng;
  
  				// Execute pre process handlers
  				t.onPreProcess.dispatch(t, o);
  
  				// Create DOM structure
  				o.node = dom.create('div', 0, o.content);
  
  				// If pasting inside the same element and the contents is only one block
  				// remove the block and keep the text since Firefox will copy parts of pre and h1-h6 as a pre element
  				if (tinymce.isGecko) {
  					rng = ed.selection.getRng(true);
  					if (rng.startContainer == rng.endContainer && rng.startContainer.nodeType == 3) {
  						// Is only one block node and it doesn't contain word stuff
  						if (o.node.childNodes.length === 1 && /^(p|h[1-6]|pre)$/i.test(o.node.firstChild.nodeName) && o.content.indexOf('__MCE_ITEM__') === -1)
  							dom.remove(o.node.firstChild, true);
  					}
  				}
  
  				// Execute post process handlers
  				t.onPostProcess.dispatch(t, o);
  
  				// Serialize content
  				o.content = ed.serializer.serialize(o.node, {getInner : 1, forced_root_block : ''});
  
  				// Plain text option active?
  				if ((!force_rich) && (ed.pasteAsPlainText)) {
  					t._insertPlainText(o.content);
  
  					if (!getParam(ed, "paste_text_sticky")) {
  						ed.pasteAsPlainText = false;
  						ed.controlManager.setActive("pastetext", false);
  					}
  				} else {
  					t._insert(o.content);
  				}
  			}
func_documentation_string: This function executes the process handlers and inserts the contents force_rich overrides plain text mode set by user, important for pasting with execCommand