function onFinish( cmd, success ) {
			var desc;
			var vars;
			var FLG;
			var ws;
			var v;
			var i;
			var j;

			// NOTE: the following is a bit of a hack. Because creating a presentation instance automatically switches the workspace (and thus creates a **new** evaluation context), we need to manually assign the returned identifier (if assigned) and any other declared variables (!) in the invoking workspace to allow the presentation identifier and other variables to be correctly tracked...

			// Get the list of variables in the invoking evaluation context AFTER having run the command:
			vars = properties( ctx ).sort( propertyComparator );

			// Get the list of user-defined workspace variables in the invoking evaluation context:
			vars = setdiff( repl._workspace, vars );

			// Manually append the variables to the workspace which were assigned but not captured upon creating a presentation instance...
			ws = repl._workspaces[ cs ];
			for ( i = 0; i < vars.length; i++ ) {
				FLG = false;
				v = vars[ i ];
				desc = propertyDescriptor( ctx, v );

				// Search for an existing workspace variable to overwrite...
				for ( j = 0; j < ws.length; j += 2 ) {
					if ( ws[ j ] === v ) {
						ws[ j+1 ] = desc;
						FLG = true;
						break;
					}
				}
				// Create a new workspace variable:
				if ( FLG === false ) {
					ws.push( v, desc );
				}
			}

			// Only show the presentation if the command successfully executed...
			if ( success === false ) {
				return;
			}
			debug( 'Showing presentation...' );
			p.show();
		}
Callback invoked once the `presentationStart()` command finishes.

@private
@param {string} cmd - command
@param {boolean} success - boolean indicating whether the command successfully executed
@returns {void}