Annotation of doc/gutshtml/SessionOn2.html, revision 1.2

1.2     ! bowersj2    1: <html>
        !             2: 
        !             3: <head>
        !             4: 
        !             5: <meta name=Title
        !             6: 
        !             7: content="Session One: Problem Engine/Special Targets (grade, edit, print) (Guy)">
        !             8: 
        !             9: <meta http-equiv=Content-Type content="text/html; charset=macintosh">
        !            10: 
        !            11: <link rel=Edit-Time-Data href="Session%20On2_files/editdata.mso">
        !            12: 
        !            13: <title>Session One: Problem Engine/Special Targets (grade, edit, print) (Guy)</title>
        !            14: 
        !            15: <style><!--
        !            16: 
        !            17: .MsoHeader
        !            18: 
        !            19: 	{tab-stops:center 3.0in right 6.0in;
        !            20: 
        !            21: 	font-size:10.0pt;
        !            22: 
        !            23: 	font-family:"Times New Roman";}
        !            24: 
        !            25: .H5
        !            26: 
        !            27: 	{font-size:10.0pt;
        !            28: 
        !            29: 	font-family:"Times New Roman";
        !            30: 
        !            31: 	layout-grid-mode:line;
        !            32: 
        !            33: 	font-weight:bold;}
        !            34: 
        !            35: .Section1
        !            36: 
        !            37: 	{page:Section1;}
        !            38: 
        !            39: .Section2
        !            40: 
        !            41: 	{page:Section2;}
        !            42: 
        !            43: -->
        !            44: 
        !            45: </style>
        !            46: 
        !            47: </head>
        !            48: 
        !            49: <body bgcolor=#FFFFFF link=blue vlink=purple class="Normal" lang=EN-US>
        !            50: 
        !            51: <div class=Section1> 
        !            52: 
        !            53:   <h2>Session One: Problem Engine/Special Targets (grade, edit, print) (Guy)</h2>
        !            54: 
        !            55:   <h3><a name="_Toc421867127">Tags</a></h3>
        !            56: 
        !            57:   <ul type=disc>
        !            58: 
        !            59:     <li><b>Response tags </b></li>
        !            60: 
        !            61:   </ul>
        !            62: 
        !            63:   <p>Arguments for all response tags </p>
        !            64: 
        !            65:   <ul type=disc>
        !            66: 
        !            67:     <ul type=circle>
        !            68: 
        !            69:       <li><i>ID</i><span style='font-style:
        !            70: 
        !            71:       normal'>, if this isn't set it will be set during the publication step. 
        !            72: 
        !            73:         It is used to assign parameters names in a way that can be tracked if 
        !            74: 
        !            75:         an instructor modifies things by hand. </span></li>
        !            76: 
        !            77:       <li><i>name</i><span
        !            78: 
        !            79:       style='font-style:normal'> optional, if set, it will be used by the resource 
        !            80: 
        !            81:         assembly tool when one is modifying parameters. </span></li>
        !            82: 
        !            83:     </ul>
        !            84: 
        !            85:   </ul>
        !            86: 
        !            87:   <p>Implemented response tags </p>
        !            88: 
        !            89:   <ul type=disc>
        !            90: 
        !            91:     <ul type=circle>
        !            92: 
        !            93:       <li><b>&lt;responseparam&gt;</b><span
        !            94: 
        !            95:       style='font-weight:normal'> if it appears it should be inside of a &lt;*response&gt; 
        !            96: 
        !            97:         tag, defines an externally adjustable parameter for this question. Arguments: 
        !            98: 
        !            99:         </span></li>
        !           100: 
        !           101:       <ul type=square>
        !           102: 
        !           103:         <li><i>default</i><span
        !           104: 
        !           105:        style='font-style:normal'> required, specifies a default value for the 
        !           106: 
        !           107:           parameter </span></li>
        !           108: 
        !           109:         <li><i>name</i><span
        !           110: 
        !           111:        style='font-style:normal'> required, specifies an internal name for the 
        !           112: 
        !           113:           parameter </span></li>
        !           114: 
        !           115:         <li><i>type</i><span
        !           116: 
        !           117:        style='font-style:normal'> required specifies the type of parameter, one 
        !           118: 
        !           119:           of &quot;tolerance&quot;, &quot;int&quot;, &quot;float&quot;, &quot;string&quot;, 
        !           120: 
        !           121:           &quot;date&quot; (configuration of paramters is handled by lonparmset.pm 
        !           122: 
        !           123:           and parameter.html) </span></li>
        !           124: 
        !           125:         <li><i>description</i><span
        !           126: 
        !           127:        style='font-style:normal'> a string describing the parameter, this is what 
        !           128: 
        !           129:           is used to talk about a parameter outside of a problem </span></li>
        !           130: 
        !           131:       </ul>
        !           132: 
        !           133:       <li><b>&lt;parameter&gt;</b><span
        !           134: 
        !           135:       style='font-weight:normal'> exactly the same as &lt;responseparam&gt; currently, 
        !           136: 
        !           137:         but should not appear inside of a &lt;*response&gt; </span></li>
        !           138: 
        !           139:       <li><b>&lt;numericalresponse&gt;</b><span
        !           140: 
        !           141:       style='font-weight:normal'> implements a numerical answer, it needs an internal 
        !           142: 
        !           143:         </span><b>&lt;textline&gt;</b><span style='font-weight:normal'> for the 
        !           144: 
        !           145:         response to go in. It checks all styles of numerical supported in CAPA. 
        !           146: 
        !           147:         Possible args are: </span></li>
        !           148: 
        !           149:       <ul type=square>
        !           150: 
        !           151:         <li><i>answer</i><span
        !           152: 
        !           153:        style='font-style:normal'> required, specifies the correct answer, may 
        !           154: 
        !           155:           be either a perl list or scalar</span></li>
        !           156: 
        !           157:         <li><i>units</i><span
        !           158: 
        !           159:        style='font-style:normal'> optional, specifies unit of correct answer, 
        !           160: 
        !           161:           CAPA style</span></li>
        !           162: 
        !           163:       </ul>
        !           164: 
        !           165:       <li><b>&lt;stringresponse&gt;</b><span
        !           166: 
        !           167:       style='font-weight:normal'> implements a string answer, it needs an internal 
        !           168: 
        !           169:         </span><b>&lt;textline&gt;</b><span style='font-weight:normal'> for the 
        !           170: 
        !           171:         response to go in. It can check the string for either case or order. </span></li>
        !           172: 
        !           173:       <ul type=square>
        !           174: 
        !           175:         <li><i>answer</i><span
        !           176: 
        !           177:        style='font-style:normal'> required, specifies the correct answer, may 
        !           178: 
        !           179:           be either a perl list or scalar</span></li>
        !           180: 
        !           181:         <li><i>type</i><span
        !           182: 
        !           183:        style='font-style:normal'> optional, CAPA style str args, cs/ci/mc </span></li>
        !           184: 
        !           185:         <ul type=square>
        !           186: 
        !           187:           <li>cs - case senesitive, order important</li>
        !           188: 
        !           189:           <li>ci - case insenesitive, order important</li>
        !           190: 
        !           191:           <li>mc - case insenesitive, order unimportant</li>
        !           192: 
        !           193:         </ul>
        !           194: 
        !           195:       </ul>
        !           196: 
        !           197:       <li><b>&lt;essayresponse&gt;</b><span
        !           198: 
        !           199:       style='font-weight:normal'> implements a ungraded large text response, it 
        !           200: 
        !           201:         need an internal </span><b>&lt;textarea&gt;</b><span style='font-weight:
        !           202: 
        !           203:       normal'> for the response to go in. </span></li>
        !           204: 
        !           205:       <li><b>&lt;imageresponse&gt;</b><span
        !           206: 
        !           207:       style='font-weight:normal'> implements a image click style image submission, 
        !           208: 
        !           209:         uses the foil structure tags <a href="#foil">below</a>. Additional tags 
        !           210: 
        !           211:         that should appear in a &lt;foil&gt; are: </span></li>
        !           212: 
        !           213:       <ul type=square>
        !           214: 
        !           215:         <li><b>&lt;image&gt;</b><span
        !           216: 
        !           217:        style='font-weight:normal'> required, the contained text specifies a published 
        !           218: 
        !           219:           graphical resource that is the image used, should only appear once per 
        !           220: 
        !           221:           foil</span></li>
        !           222: 
        !           223:         <li><b>&lt;rectangle&gt;</b><span
        !           224: 
        !           225:        style='font-weight:normal'> required, the contained text specifies a rectangular 
        !           226: 
        !           227:           area that is correct, should look like (1,2)-(3,4), at least 1 required</span></li>
        !           228: 
        !           229:         <li><b>&lt;text&gt;</b><span
        !           230: 
        !           231:        style='font-weight:normal'> required, the contained text is printed on 
        !           232: 
        !           233:           top of the image.</span></li>
        !           234: 
        !           235:       </ul>
        !           236: 
        !           237:       <li><b>&lt;optionresponse&gt;</b><span
        !           238: 
        !           239:       style='font-weight:normal'> implements a &quot;select from these choices&quot; 
        !           240: 
        !           241:         style question, the choices are specified by the instructor, it uses the 
        !           242: 
        !           243:         foil structure tags <a href="#foil">below</a> with this additional args: 
        !           244: 
        !           245:         </span></li>
        !           246: 
        !           247:       <ul type=square>
        !           248: 
        !           249:         <li><b>&lt;foilgroup&gt;</b><span
        !           250: 
        !           251:        style='font-weight:normal'> is required to have <i>options</i></span> which 
        !           252: 
        !           253:           should be a perl list of possible options for the student. </li>
        !           254: 
        !           255:       </ul>
        !           256: 
        !           257:       <li><b>&lt;radiobuttonresponse&gt;</b><span
        !           258: 
        !           259:       style='font-weight:normal'> implements a true / false style question with 
        !           260: 
        !           261:         1 correct answer.it uses the foil structure tags <a href="#foil">below</a> 
        !           262: 
        !           263:         but the <i>value</i></span> of a &lt;foil&gt;can only be &quot;true&quot; 
        !           264: 
        !           265:         or &quot;false&quot; or &quot;unused&quot; </li>
        !           266: 
        !           267:       <li><b>&lt;dataresponse&gt;</b><span
        !           268: 
        !           269:       style='font-weight:normal'> implements a straight data storage entry idea, 
        !           270: 
        !           271:         needs and interveing input tag like &lt;textline&gt; to work correctly.<br>
        !           272: 
        !           273:         Arguments: </span></li>
        !           274: 
        !           275:       <ul type=square>
        !           276: 
        !           277:         <li><i>name</i><span
        !           278: 
        !           279:        style='font-style:normal'> internal name for the value, it will have the 
        !           280: 
        !           281:           part id and respose id added on to it </span></li>
        !           282: 
        !           283:         <li><i>type</i><span
        !           284: 
        !           285:        style='font-style:normal'> type of data stored in this response field, 
        !           286: 
        !           287:           should be one of the types supported by parameter.html </span></li>
        !           288: 
        !           289:         <li><i>display</i><span
        !           290: 
        !           291:        style='font-style:normal'> a string that will be used to describe the field 
        !           292: 
        !           293:           when interfacing with humans </span></li>
        !           294: 
        !           295:       </ul>
        !           296: 
        !           297:     </ul>
        !           298: 
        !           299:   </ul>
        !           300: 
        !           301:   <p> <span style='font-size:10.0pt;
        !           302: 
        !           303: font-family:"Courier New"'>o<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !           304: 
        !           305:     </span></span> <b>&lt;externalresponse&gt;</b><span style='font-weight:
        !           306: 
        !           307: normal'> implements the ability to have an external program grade a response, 
        !           308: 
        !           309:     expects either a &lt;textline&gt; or &lt;textfield&gt; inside the tag. </span></p>
        !           310: 
        !           311:   <p>Arguments: </p>
        !           312: 
        !           313:   <ul type=disc>
        !           314: 
        !           315:     <ul type=circle>
        !           316: 
        !           317:       <ul type=square>
        !           318: 
        !           319:         <li><i>url</i><span
        !           320: 
        !           321:        style='font-style:normal'> the url to submit the answer and form to, does 
        !           322: 
        !           323:           not need to be a LON-CAPA machine. </span></li>
        !           324: 
        !           325:         <li><i>answer</i><span
        !           326: 
        !           327:        style='font-style:normal'> a string or scalar variable that can encode 
        !           328: 
        !           329:           something that should encode the correct answer, in some cases this 
        !           330: 
        !           331:           may be nothing. </span></li>
        !           332: 
        !           333:         <li><i>form</i><span
        !           334: 
        !           335:        style='font-style:normal'> a hash variable name that will be submitted 
        !           336: 
        !           337:           to the remote site as a HTTP form. </span></li>
        !           338: 
        !           339:       </ul>
        !           340: 
        !           341:     </ul>
        !           342: 
        !           343:   </ul>
        !           344: 
        !           345:   <p>The response of the remote server needs to be in XML as follows. </p>
        !           346: 
        !           347:   <pre>&nbsp;&lt;loncapagrade&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;awardetail&gt; CORRECT&nbsp;&nbsp;&nbsp;&nbsp; &lt;/awardetail&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;message&gt; A message to be shown to the students&nbsp;&nbsp;&nbsp;&nbsp; &lt;/message&gt; &lt;/loncapagrade&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;</pre>
        !           348: 
        !           349:   <ul type=disc>
        !           350: 
        !           351:     <ul type=circle>
        !           352: 
        !           353:       <ul type=square>
        !           354: 
        !           355:         <li><b>&lt;loncapagrade&gt;</b><span
        !           356: 
        !           357:        style='font-weight:normal'> no arguments but must surround the response. 
        !           358: 
        !           359:           </span></li>
        !           360: 
        !           361:         <li><b>&lt;awardetail&gt;</b><span
        !           362: 
        !           363:        style='font-weight:normal'> required inner tag, the response inside must 
        !           364: 
        !           365:           be one of the detailed responses that appears in the data storage documentation 
        !           366: 
        !           367:           (CVS:loncapa/doce/homework/datastorage) </span></li>
        !           368: 
        !           369:         <li><b>&lt;message&gt;</b><span
        !           370: 
        !           371:        style='font-weight:normal'> optional message to have shown to the student 
        !           372: 
        !           373:           </span></li>
        !           374: 
        !           375:       </ul>
        !           376: 
        !           377:     </ul>
        !           378: 
        !           379:   </ul>
        !           380: 
        !           381:   <ul type=disc>
        !           382: 
        !           383:     <li><a name=foil><b>Foil Structure Tags</b></a><b> </b></li>
        !           384: 
        !           385:   </ul>
        !           386: 
        !           387:   <p>All tags that implement a foil structure have an optional arg of <i>max</i><span style='font-style:normal'> 
        !           388: 
        !           389:     that controls the maximum number of total foils to show. </span></p>
        !           390: 
        !           391:   <ul type=disc>
        !           392: 
        !           393:     <ul type=circle>
        !           394: 
        !           395:       <li><b>&lt;foilgroup&gt;</b><span
        !           396: 
        !           397:       style='font-weight:normal'> required, must be the tag that surrounds all 
        !           398: 
        !           399:         foil definitions </span></li>
        !           400: 
        !           401:       <li><b>&lt;foil&gt;</b><span
        !           402: 
        !           403:       style='font-weight:normal'> required, all data inside is a possible foil 
        !           404: 
        !           405:         </span></li>
        !           406: 
        !           407:       <li><b>&lt;conceptgroup&gt;</b><span
        !           408: 
        !           409:       style='font-weight:normal'> optional, surrounds a collection of &lt;foil&gt;, 
        !           410: 
        !           411:         when a problem is displayed only one of the contained &lt;foil&gt;is selected 
        !           412: 
        !           413:         for display. It receives one required argument <i>concept</i></span>. 
        !           414: 
        !           415:       </li>
        !           416: 
        !           417:     </ul>
        !           418: 
        !           419:     <li><b>Hint structure </b></li>
        !           420: 
        !           421:   </ul>
        !           422: 
        !           423:   <p>All of these tags must appear inside a <b>&lt;*response&gt;</b><span
        !           424: 
        !           425: style='font-weight:normal'> tag. </span></p>
        !           426: 
        !           427:   <ul type=disc>
        !           428: 
        !           429:     <ul type=circle>
        !           430: 
        !           431:       <li><b>&lt;hintgroup&gt;</b><span
        !           432: 
        !           433:       style='font-weight:normal'> Tag that surrounds all of a hint. </span></li>
        !           434: 
        !           435:       <li><b>&lt;hintpart&gt;</b><span
        !           436: 
        !           437:       style='font-weight:normal'> required, Tag to implement conditional hints. 
        !           438: 
        !           439:         It has a required argument <i>on</i></span>. When a &lt;*hint&gt; tag 
        !           440: 
        !           441:         named the same as the value the on attribute evaluates to be correct the 
        !           442: 
        !           443:         &lt;hintpart&gt; will show. If no other &lt;hintpart&gt; are to show then 
        !           444: 
        !           445:         all hintparts with a <i>on</i><span style='font-style:normal'> of &quot;default&quot; 
        !           446: 
        !           447:         will show </span></li>
        !           448: 
        !           449:       <li><b>&lt;numericalhint&gt;</b><span
        !           450: 
        !           451:       style='font-weight:normal'> has all the arguments that &lt;numericalresponse&gt;, 
        !           452: 
        !           453:         does and the required attribute <i>name</i></span> which should be set 
        !           454: 
        !           455:         to the value of which &lt;hintpart&gt; will be shown. </li>
        !           456: 
        !           457:     </ul>
        !           458: 
        !           459:     <li><b>Input Tags </b></li>
        !           460: 
        !           461:   </ul>
        !           462: 
        !           463:   <p>This group of tags implement a mechanism for getting data for students, they 
        !           464: 
        !           465:     will usually be used by a &lt;*response&gt;. </p>
        !           466: 
        !           467:   <ul type=disc>
        !           468: 
        !           469:     <ul type=circle>
        !           470: 
        !           471:       <li><b>&lt;textarea&gt;</b><span
        !           472: 
        !           473:       style='font-weight:normal'> creates a Large text input box, If data appears 
        !           474: 
        !           475:         between the start and end tags, the data will appear i the textarea if 
        !           476: 
        !           477:         the student has not yet made a submission. Additionally it takes two arguments 
        !           478: 
        !           479:         <i>rows</i></span> and <i>cols</i><span
        !           480: 
        !           481:       style='font-style:normal'> which control the height and width of the area 
        !           482: 
        !           483:         respectively. It defaults to 10 and 80. </span></li>
        !           484: 
        !           485:       <li><b>&lt;textline&gt;</b><span
        !           486: 
        !           487:       style='font-weight:normal'> creates a single line of input element, it accepts 
        !           488: 
        !           489:         1 argument <i>size</i></span> which controls the width on the textline, 
        !           490: 
        !           491:         it defaults to 20. </li>
        !           492: 
        !           493:     </ul>
        !           494: 
        !           495:     <li><b>Output Tags </b></li>
        !           496: 
        !           497:   </ul>
        !           498: 
        !           499:   <p>This group of tags generate useful pieces of output. </p>
        !           500: 
        !           501:   <ul type=disc>
        !           502: 
        !           503:     <ul type=circle>
        !           504: 
        !           505:       <li><b>&lt;standalone&gt;</b><span
        !           506: 
        !           507:       style='font-weight:normal'> everything in between the start and end tag 
        !           508: 
        !           509:         is shown only on the web, and only if the resource is not part of a course. 
        !           510: 
        !           511:         </span></li>
        !           512: 
        !           513:       <li><b>&lt;displayduedate&gt;</b><span
        !           514: 
        !           515:       style='font-weight:normal'> this will insert the current duedate if one 
        !           516: 
        !           517:         is set into the document. It is generated to be inside a table of 1x1 
        !           518: 
        !           519:         elements </span></li>
        !           520: 
        !           521:       <li><b>&lt;displaytitle&gt;</b><span
        !           522: 
        !           523:       style='font-weight:normal'> this will insert the title of the problem from 
        !           524: 
        !           525:         the metadata of the problem </span></li>
        !           526: 
        !           527:       <li><b>&lt;window&gt;</b><span
        !           528: 
        !           529:       style='font-weight:normal'> the text in between is put in a popup javascript 
        !           530: 
        !           531:         window </span></li>
        !           532: 
        !           533:       <li><b>&lt;m&gt;</b><span
        !           534: 
        !           535:       style='font-weight:normal'> the inside text is LaTeX, and is converted to 
        !           536: 
        !           537:         HTML (or MathML) on the fly, if the argument <i>eval</i></span> is set 
        !           538: 
        !           539:         to &quot;on&quot; the intervening text will have a perl var expansion 
        !           540: 
        !           541:         done to it before being converted. </li>
        !           542: 
        !           543:       <li><b>&lt;randomlabel&gt;</b><span
        !           544: 
        !           545:       style='font-weight:normal'> shows a specified image with images or text 
        !           546: 
        !           547:         labels randomly assigned to a set of specific locations, those locations 
        !           548: 
        !           549:         may also have values assigned to them. There is a hash generated conating 
        !           550: 
        !           551:         the mapping of labels to locations, labels to values, and locations to 
        !           552: 
        !           553:         values. Example: </span></li>
        !           554: 
        !           555:     </ul>
        !           556: 
        !           557:   </ul>
        !           558: 
        !           559:   <pre>&nbsp; &lt;randomlabel bgimg=&quot;URL&quot; width=&quot;12&quot; height=&quot;45&quot; texwidth=&quot;50&quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;labelgroup name=&quot;GroupOne&quot; type=&quot;image&quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;location x=&quot;123&quot; y=&quot;456&quot; value=&quot;10&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;location x=&quot;321&quot; y=&quot;654&quot; value=&quot;20&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;location x=&quot;213&quot; y=&quot;546&quot; value=&quot;13&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label description=&quot;TEXT-1&quot;&gt;IMG-URL&lt;/label&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label description=&quot;TEXT-2&quot;&gt;IMG-URL&lt;/label&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label description=&quot;TEXT-3&quot;&gt;IMG-URL&lt;/label&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/labelgroup&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;labelgroup name=&quot;GroupTwo&quot; type=&quot;text&quot;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;location x=&quot;12&quot; y=&quot;45&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;location x=&quot;32&quot; y=&quot;65&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;location x=&quot;21&quot; y=&quot;54&quot; /&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;TEXT-1&lt;/label&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;TEXT-2&lt;/label&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;label&gt;TEXT-3&lt;/label&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/labelgroup&gt;&nbsp;&nbsp;&nbsp; &lt;/randomlabel&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;</pre>
        !           560: 
        !           561:   <p>Arguments: </p>
        !           562: 
        !           563:   <ul type=disc>
        !           564: 
        !           565:     <ul type=circle>
        !           566: 
        !           567:       <ul type=square>
        !           568: 
        !           569:         <li><i>bgimg</i><span
        !           570: 
        !           571:        style='font-style:normal'> either a fully qualified URL for an external 
        !           572: 
        !           573:           image, or a loncapa resource, it supports relative references (../images/apicture.gif), 
        !           574: 
        !           575:           the image must either be a GIF or JPEG </span></li>
        !           576: 
        !           577:         <li><i>width</i><span
        !           578: 
        !           579:        style='font-style:normal'> the width of the image in pixels </span></li>
        !           580: 
        !           581:         <li><i>height</i><span
        !           582: 
        !           583:        style='font-style:normal'> the height of the image in pixels </span></li>
        !           584: 
        !           585:         <li><i>texwidth</i><span
        !           586: 
        !           587:        style='font-style:normal'> the width of the image in millimeters </span></li>
        !           588: 
        !           589:       </ul>
        !           590: 
        !           591:     </ul>
        !           592: 
        !           593:   </ul>
        !           594: 
        !           595:   <p>Internal tags: </p>
        !           596: 
        !           597:   <ul type=disc>
        !           598: 
        !           599:     <ul type=circle>
        !           600: 
        !           601:       <ul type=square>
        !           602: 
        !           603:         <li><b>&lt;labelgroup&gt;</b><span
        !           604: 
        !           605:        style='font-weight:normal'> 1 required, multiple allowed. Declares a group 
        !           606: 
        !           607:           of locations and labels associated with them. <br>
        !           608: 
        !           609:           Arguments: </span></li>
        !           610: 
        !           611:         <ul type=square>
        !           612: 
        !           613:           <li><i>name</i><span
        !           614: 
        !           615:         style='font-style:normal'> this is the name of the group, a hash with 
        !           616: 
        !           617:             this name will be generated holding the mappings for later use in 
        !           618: 
        !           619:             the problem. For each location a value will be set for which label 
        !           620: 
        !           621:             is there, (EX. $hash{'1'}=&quot;TEXT-2&quot;). For locations with 
        !           622: 
        !           623:             values the hash will contain 2 items, a location to value mapping 
        !           624: 
        !           625:             ($hash{'value_1'}=10), and a label to value mapping ($hash{'labelvalue_2'}=10). 
        !           626: 
        !           627:             For all image style of labels there will also be a label description 
        !           628: 
        !           629:             to label URL mapping ($hash{'image_2'}=IMG-URL). Also the entry 'numlocations 
        !           630: 
        !           631:             will be set to the total number of locations that exist. (Note that 
        !           632: 
        !           633:             locations and labels start counting from 1.) </span></li>
        !           634: 
        !           635:           <li><i>type</i><span
        !           636: 
        !           637:         style='font-style:normal'> the type of labels in this group, either 'image' 
        !           638: 
        !           639:             or 'text' </span></li>
        !           640: 
        !           641:         </ul>
        !           642: 
        !           643:         <li><b>&lt;location&gt;</b><span
        !           644: 
        !           645:        style='font-weight:normal'> declares a location on the image that a label 
        !           646: 
        !           647:           should appear at <br>
        !           648: 
        !           649:           Arguments: </span></li>
        !           650: 
        !           651:         <ul type=square>
        !           652: 
        !           653:           <li><i>x</i><span
        !           654: 
        !           655:         style='font-style:normal'> the x value of the location in pixels </span></li>
        !           656: 
        !           657:           <li><i>y</i><span
        !           658: 
        !           659:         style='font-style:normal'> the y value of the location in pixels </span></li>
        !           660: 
        !           661:           <li><i>value</i><span
        !           662: 
        !           663:         style='font-style:normal'> a scalar value to associate at this location 
        !           664: 
        !           665:             (optional) </span></li>
        !           666: 
        !           667:         </ul>
        !           668: 
        !           669:         <li><b>&lt;label&gt;</b><span
        !           670: 
        !           671:        style='font-weight:normal'> declaration of a label, if this is a text type 
        !           672: 
        !           673:           labelgroup the internal text should be the text of the label (HTML is 
        !           674: 
        !           675:           not currently supported), if this is an image type of label the internal 
        !           676: 
        !           677:           text must be a LON-CAPA resource specification, and the description 
        !           678: 
        !           679:           filed must be set. <br>
        !           680: 
        !           681:           Arguments: </span></li>
        !           682: 
        !           683:         <ul type=square>
        !           684: 
        !           685:           <li><i>description</i><span
        !           686: 
        !           687:         style='font-style:normal'> a required field for image labels, it will 
        !           688: 
        !           689:             be used when setting values in the hash. </span></li>
        !           690: 
        !           691:         </ul>
        !           692: 
        !           693:       </ul>
        !           694: 
        !           695:     </ul>
        !           696: 
        !           697:     <li><b>Scripting </b></li>
        !           698: 
        !           699:   </ul>
        !           700: 
        !           701:   <p>These tags allow the document to behave programatically </p>
        !           702: 
        !           703:   <ul type=disc>
        !           704: 
        !           705:     <ul type=circle>
        !           706: 
        !           707:       <li><b>&lt;display&gt;</b><span
        !           708: 
        !           709:       style='font-weight:normal'> the intervening perl script is evaluated in 
        !           710: 
        !           711:         the safe space and the return value of the script replaces the entire 
        !           712: 
        !           713:         tag </span></li>
        !           714: 
        !           715:       <li><b>&lt;import&gt;</b><span
        !           716: 
        !           717:       style='font-weight:normal'> causes the parse to read in the file named in 
        !           718: 
        !           719:         the body of the tag and parse it as if the entire text of the file had 
        !           720: 
        !           721:         existed at location of the tag </span></li>
        !           722: 
        !           723:       <li><b>&lt;parserlib&gt;</b><span
        !           724: 
        !           725:       style='font-weight:normal'> the enclosed filename contains definitions for 
        !           726: 
        !           727:         new tags </span></li>
        !           728: 
        !           729:       <li><b>&lt;script&gt;</b><span
        !           730: 
        !           731:       style='font-weight:normal'> if the argument <i>type</i></span> is set to 
        !           732: 
        !           733:         &quot;loncapa/perl&quot; the enclosed data is a perl script which is evaluated 
        !           734: 
        !           735:         inside the perl Safe space. The return value of the script is ignored. 
        !           736: 
        !           737:       </li>
        !           738: 
        !           739:       <li><b>&lt;scriptlib&gt;</b><span
        !           740: 
        !           741:       style='font-weight:normal'> the enclosed filename contains perl code to 
        !           742: 
        !           743:         run in the safe space </span></li>
        !           744: 
        !           745:       <li><b>&lt;block&gt;</b><span
        !           746: 
        !           747:       style='font-weight:normal'> has a required argument <i>condition</i></span> 
        !           748: 
        !           749:         that is evaluated, it the condition is true everything inside the tag 
        !           750: 
        !           751:         is evaluated, if it is false everything inside the block tag is skipped 
        !           752: 
        !           753:       </li>
        !           754: 
        !           755:       <li><b>&lt;notsolved&gt;</b><span
        !           756: 
        !           757:       style='font-weight:normal'> everything inside the tag is skipped if the 
        !           758: 
        !           759:         problem is &quot;solved&quot; </span></li>
        !           760: 
        !           761:       <li><b>&lt;postanswerdate&gt;</b><span
        !           762: 
        !           763:       style='font-weight:normal'> everything inside the tag is skipped if the 
        !           764: 
        !           765:         problem is before the answer date </span></li>
        !           766: 
        !           767:       <li><b>&lt;preduedate&gt;</b><span
        !           768: 
        !           769:       style='font-weight:normal'> everything inside the tag is skipped if the 
        !           770: 
        !           771:         problem is after the due date </span></li>
        !           772: 
        !           773:       <li><b>&lt;randomlist&gt;</b><span
        !           774: 
        !           775:       style='font-weight:normal'> the enclosed tags are parsed in a stable random 
        !           776: 
        !           777:         order, optional argument <i>show</i></span> restricts the number of tags 
        !           778: 
        !           779:         indie that are actually parsed the no more than <i>show</i><span
        !           780: 
        !           781:       style='font-style:normal'>. </span></li>
        !           782: 
        !           783:       <li><b>&lt;solved&gt;</b><span
        !           784: 
        !           785:       style='font-weight:normal'> everything inside the tag is skipped if the 
        !           786: 
        !           787:         problem is &quot;not solved&quot; </span></li>
        !           788: 
        !           789:       <li><b>&lt;while&gt;</b><span
        !           790: 
        !           791:       style='font-weight:normal'> implements a while loop, required argument <i>condition</i></span> 
        !           792: 
        !           793:         is a perl scriptlet that when evaluated results in a true or false value, 
        !           794: 
        !           795:         on true the entirety of the text between the whiles is parsed. The condition 
        !           796: 
        !           797:         is tested again, etc. If false it goes to the next node in the parse. 
        !           798: 
        !           799:       </li>
        !           800: 
        !           801:     </ul>
        !           802: 
        !           803:     <li><b>Structure Tags </b></li>
        !           804: 
        !           805:   </ul>
        !           806: 
        !           807:   <p>These tags give the problem a structure and take care of the recording of 
        !           808: 
        !           809:     data and giving the student messages. </p>
        !           810: 
        !           811:   <ul type=disc>
        !           812: 
        !           813:     <ul type=circle>
        !           814: 
        !           815:       <li><b>&lt;problem&gt;</b><span
        !           816: 
        !           817:       style='font-weight:normal'> must be the first tag in the file, this tag 
        !           818: 
        !           819:         sets up the header of the webpage and generates the submit buttons, it 
        !           820: 
        !           821:         also handles due dates properly </span></li>
        !           822: 
        !           823:       <li><b>&lt;part&gt;</b><span
        !           824: 
        !           825:       style='font-weight:normal'> must be below &lt;problem&gt; if it is going 
        !           826: 
        !           827:         to be used. It does many of the same tasks as &lt;problem&gt; but allows 
        !           828: 
        !           829:         multiple separate problems to exist in a single file. </span></li>
        !           830: 
        !           831:       <li><b>&lt;startouttext&gt;&lt;endouttext&gt;</b><span
        !           832: 
        !           833:       style='font-weight:normal'> these tags are somewhat special, they must have 
        !           834: 
        !           835:         no internal text and occur in pairs. Their use is to mark up the problem 
        !           836: 
        !           837:         so the web editor knows what sections should be edited in a plain text 
        !           838: 
        !           839:         block on the web. </span></li>
        !           840: 
        !           841:     </ul>
        !           842: 
        !           843:   </ul>
        !           844: 
        !           845:   <h3><a name="_Toc421867128">&lt;script&gt; Functions</a></h3>
        !           846: 
        !           847:   <p>A list of functions that have been written that are available in the Safe 
        !           848: 
        !           849:     space scripting environment inside a problem. </p>
        !           850: 
        !           851:   <ul type=disc>
        !           852: 
        !           853:     <li>sin(x), cos(x), tan(x)</li>
        !           854: 
        !           855:     <li>asin(x), acos(x), atan(x), atan2(y,x)</li>
        !           856: 
        !           857:     <li>log(x), log10(x)</li>
        !           858: 
        !           859:     <li>exp(), pow(x,y), sqrt(x)</li>
        !           860: 
        !           861:     <li>abs(x), sgn(x)</li>
        !           862: 
        !           863:     <li>erf(x), erfc(x)</li>
        !           864: 
        !           865:     <li>ceil(x), floor(x)</li>
        !           866: 
        !           867:     <li>min(...), max(...)</li>
        !           868: 
        !           869:     <li>factorial(n)</li>
        !           870: 
        !           871:     <li>N%M</li>
        !           872: 
        !           873:     <li>sinh(x), cosh(x), tanh(x)</li>
        !           874: 
        !           875:     <li>asinh(x), acosh(x), atanh(x)</li>
        !           876: 
        !           877:     <li>roundto(x,n)</li>
        !           878: 
        !           879:     <li>web(&quot;a&quot;,&quot;b&quot;,&quot;c&quot;) or web(a,b,c)</li>
        !           880: 
        !           881:     <li>html(&quot;a&quot;) or html(a)</li>
        !           882: 
        !           883:     <li>j0(x), j1(x), jn(n,x), jv(y,x)</li>
        !           884: 
        !           885:     <li>y0(x), y1(x), yn(n,x), yv(y,x)</li>
        !           886: 
        !           887:     <li>random</li>
        !           888: 
        !           889:     <li>choose</li>
        !           890: 
        !           891:     <li>tex(&quot;a&quot;,&quot;b&quot;) or tex(a,b)</li>
        !           892: 
        !           893:     <li>var_in_tex(a)</li>
        !           894: 
        !           895:     <li>to_string(x), to_string(x,y)</li>
        !           896: 
        !           897:     <li>class(), section()</li>
        !           898: 
        !           899:     <li>name(), student_number()</li>
        !           900: 
        !           901:     <li>open_date(), due_date(), answer_date()</li>
        !           902: 
        !           903:     <li>sub_string()</li>
        !           904: 
        !           905:     <li>array_moments(array)</li>
        !           906: 
        !           907:     <li>format(x,y),prettyprint(x,y)</li>
        !           908: 
        !           909:     <li>map(...)</li>
        !           910: 
        !           911:     <li>caparesponse_check</li>
        !           912: 
        !           913:     <li>caparesponse_check_list</li>
        !           914: 
        !           915:   </ul>
        !           916: 
        !           917:   <h3><a name="_Toc421867129">Detailed descriptions of each function and comparison 
        !           918: 
        !           919:     with CAPA</a></h3>
        !           920: 
        !           921:   <table border=1 cellpadding=0>
        !           922: 
        !           923:     <tr> 
        !           924: 
        !           925:       <td width=131 valign=top class="Normal"> <p><b>CAPA Functions</b></p></td>
        !           926: 
        !           927:       <td width=134 valign=top class="Normal"> <p><b>LON-CAPA</b></p></td>
        !           928: 
        !           929:       <td width=147 valign=top class="Normal"> <p><b>Descriptions</b></p></td>
        !           930: 
        !           931:       <td width=101 valign=top class="Normal"> <p><b>Differences (if any)</b></p></td>
        !           932: 
        !           933:     </tr>
        !           934: 
        !           935:     <tr> 
        !           936: 
        !           937:       <td width=131 valign=top class="Normal"> <p>sin(x), cos(x), tan(x)</p></td>
        !           938: 
        !           939:       <td width=134 valign=top class="Normal"> <p>&amp;sin($x), &amp;cos($x), 
        !           940: 
        !           941:           &amp;tan($x)</p></td>
        !           942: 
        !           943:       <td width=147 valign=top class="Normal"> <p>Trigonometric functions where 
        !           944: 
        !           945:           x is in radians. $x can be a pure number, i.e., you can call &amp;sin(3.1415)</p></td>
        !           946: 
        !           947:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           948: 
        !           949:     </tr>
        !           950: 
        !           951:     <tr> 
        !           952: 
        !           953:       <td width=131 valign=top class="Normal"> <p>asin(x), acos(x), atan(x), atan2(y,x)</p></td>
        !           954: 
        !           955:       <td width=134 valign=top class="Normal"> <p>&amp;asin($x), &amp;acos($x), 
        !           956: 
        !           957:           &amp;atan($x), &amp;atan2($y,$x)</p></td>
        !           958: 
        !           959:       <td width=147 valign=top class="Normal"> <p>Inverse trigonometric functions. 
        !           960: 
        !           961:           Return value is in radians. For asin and acos the value of x must be 
        !           962: 
        !           963:           between -1 and 1. The atan2 returns a value between -pi and pi the sign 
        !           964: 
        !           965:           of which is determined by y. $x and $y can be pure numbers</p></td>
        !           966: 
        !           967:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           968: 
        !           969:     </tr>
        !           970: 
        !           971:     <tr> 
        !           972: 
        !           973:       <td width=131 valign=top class="Normal"> <p>log(x), log10(x)</p></td>
        !           974: 
        !           975:       <td width=134 valign=top class="Normal"> <p>&amp;log($x), &amp;log10($x)</p></td>
        !           976: 
        !           977:       <td width=147 valign=top class="Normal"> <p>Natural and base-10 logarithm. 
        !           978: 
        !           979:           $x can be a pure number</p></td>
        !           980: 
        !           981:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !           982: 
        !           983:     </tr>
        !           984: 
        !           985:     <tr> 
        !           986: 
        !           987:       <td width=131 valign=top class="Normal"> <p>exp(x), pow(x,y), sqrt(x)</p></td>
        !           988: 
        !           989:       <td width=134 valign=top class="Normal"> <p>&amp;exp($x), &amp;pow($x,$y), 
        !           990: 
        !           991:           &amp;sqrt($x)</p></td>
        !           992: 
        !           993:       <td width=147 valign=top class="Normal"> <p>Exponential, power and square 
        !           994: 
        !           995:           root, i.e.,e<sup>x</sup>, x<sup>y</sup> and /x. $x and $y can be pure 
        !           996: 
        !           997:           numbers</p></td>
        !           998: 
        !           999:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !          1000: 
        !          1001:     </tr>
        !          1002: 
        !          1003:     <tr> 
        !          1004: 
        !          1005:       <td width=131 valign=top class="Normal"> <p>abs(x), sgn(x)</p></td>
        !          1006: 
        !          1007:       <td width=134 valign=top class="Normal"> <p>&amp;abs($x), &amp;sgn($x)</p></td>
        !          1008: 
        !          1009:       <td width=147 valign=top class="Normal"> <p>Abs takes the absolute value 
        !          1010: 
        !          1011:           of x while sgn(x) returns 1, 0 or -1 depending on the value of x. For 
        !          1012: 
        !          1013:           x&gt;0, sgn(x) = 1, for x=0, sgn(x) = 0 and for x&lt;0, sgn(x) = -1. 
        !          1014: 
        !          1015:           $x can be a pure number</p></td>
        !          1016: 
        !          1017:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !          1018: 
        !          1019:     </tr>
        !          1020: 
        !          1021:     <tr> 
        !          1022: 
        !          1023:       <td width=131 valign=top class="Normal"> <p>erf(x), erfc(x)</p></td>
        !          1024: 
        !          1025:       <td width=134 valign=top class="Normal"> <p>&amp;erf($x), &amp;erfc($x)</p></td>
        !          1026: 
        !          1027:       <td width=147 valign=top class="Normal"> <p>Error function.&nbsp; erf = 
        !          1028: 
        !          1029:           2/sqrt(pi) integral (0,x) e<sup>t-sq</sup> and <i>erfx(x)</i><span style='font-style:normal'> 
        !          1030: 
        !          1031:           = 1.0 - </span><i>erf(x)</i><span
        !          1032: 
        !          1033:   style='font-style:normal'>.&nbsp; $x can be a pure number</span></p></td>
        !          1034: 
        !          1035:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !          1036: 
        !          1037:     </tr>
        !          1038: 
        !          1039:     <tr> 
        !          1040: 
        !          1041:       <td width=131 valign=top class="Normal"> <p>ceil(x), floor(x)</p></td>
        !          1042: 
        !          1043:       <td width=134 valign=top class="Normal"> <p>&amp;ceil($x), &amp;floor($x)</p></td>
        !          1044: 
        !          1045:       <td width=147 valign=top class="Normal"> <p>Ceil function returns an integer 
        !          1046: 
        !          1047:           rounded up whereas floor function returns and integer rounded down. 
        !          1048: 
        !          1049:           If x is an integer than it returns the value of the integer. $x can 
        !          1050: 
        !          1051:           be a pure number</p></td>
        !          1052: 
        !          1053:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !          1054: 
        !          1055:     </tr>
        !          1056: 
        !          1057:     <tr> 
        !          1058: 
        !          1059:       <td width=131 valign=top class="Normal"> <p>min(...), max(...)</p></td>
        !          1060: 
        !          1061:       <td width=134 valign=top class="Normal"> <p>&amp;min(...), &amp;max(...)</p></td>
        !          1062: 
        !          1063:       <td width=147 valign=top class="Normal"> <p>Returns the minimum/ maximum 
        !          1064: 
        !          1065:           value of a list of arguments if the arguments are numbers. If the arguments 
        !          1066: 
        !          1067:           are strings then it returns a string sorted according to the ASCII codes</p></td>
        !          1068: 
        !          1069:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !          1070: 
        !          1071:     </tr>
        !          1072: 
        !          1073:     <tr> 
        !          1074: 
        !          1075:       <td width=131 valign=top class="Normal"> <p>factorial(n)</p></td>
        !          1076: 
        !          1077:       <td width=134 valign=top class="Normal"> <p>&amp;factorial($n)</p></td>
        !          1078: 
        !          1079:       <td width=147 valign=top class="Normal"> <p>Argument (n) must be an integer 
        !          1080: 
        !          1081:           else it will round down. The largest value for n is 170. $n can be a 
        !          1082: 
        !          1083:           pure number</p></td>
        !          1084: 
        !          1085:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !          1086: 
        !          1087:     </tr>
        !          1088: 
        !          1089:     <tr> 
        !          1090: 
        !          1091:       <td width=131 valign=top class="Normal"> <p>N%M</p></td>
        !          1092: 
        !          1093:       <td width=134 valign=top class="Normal"> <p>$N%$M</p></td>
        !          1094: 
        !          1095:       <td width=147 valign=top class="Normal"> <p>N and M are integers and returns 
        !          1096: 
        !          1097:           the remainder (in integer) of N/M. $N and $M can be pure numbers</p></td>
        !          1098: 
        !          1099:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !          1100: 
        !          1101:     </tr>
        !          1102: 
        !          1103:     <tr> 
        !          1104: 
        !          1105:       <td width=131 valign=top class="Normal"> <p>sinh(x), cosh(x), tanh(x)</p></td>
        !          1106: 
        !          1107:       <td width=134 valign=top class="Normal"> <p>&amp;sinh($x), &amp;cosh($x), 
        !          1108: 
        !          1109:           &amp;tanh($x)</p></td>
        !          1110: 
        !          1111:       <td width=147 valign=top class="Normal"> <p>Hyperbolic functions. $x can 
        !          1112: 
        !          1113:           be a pure number</p></td>
        !          1114: 
        !          1115:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !          1116: 
        !          1117:     </tr>
        !          1118: 
        !          1119:     <tr> 
        !          1120: 
        !          1121:       <td width=131 valign=top class="Normal"> <p>asinh(x), acosh(x), atanh(x)</p></td>
        !          1122: 
        !          1123:       <td width=134 valign=top class="Normal"> <p>&amp;asinh($x), &amp;acosh($x), 
        !          1124: 
        !          1125:           &amp;atanh($x)</p></td>
        !          1126: 
        !          1127:       <td width=147 valign=top class="Normal"> <p>Inverse hyperbolic functions. 
        !          1128: 
        !          1129:           $x can be a pure number</p></td>
        !          1130: 
        !          1131:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !          1132: 
        !          1133:     </tr>
        !          1134: 
        !          1135:     <tr> 
        !          1136: 
        !          1137:       <td width=131 valign=top class="Normal"> <p>/DIS($x,&quot;nn&quot;)</p></td>
        !          1138: 
        !          1139:       <td width=134 valign=top class="Normal"> <p>&amp;format($x,&quot;nn&quot;)</p></td>
        !          1140: 
        !          1141:       <td width=147 valign=top class="Normal"> <p>Display or format $x as nn where 
        !          1142: 
        !          1143:           nn is nF or nE and n is an integer.</p></td>
        !          1144: 
        !          1145:       <td width=101 valign=top class="Normal"> <p>&nbsp;The difference is obvious.</p></td>
        !          1146: 
        !          1147:     </tr>
        !          1148: 
        !          1149:     <tr> 
        !          1150: 
        !          1151:       <td width=131 valign=top class="Normal"> <p>Not in CAPA</p></td>
        !          1152: 
        !          1153:       <td width=134 valign=top class="Normal"> <p>&amp;prettyprint($x,&quot;nn&quot;)</p></td>
        !          1154: 
        !          1155:       <td width=147 valign=top class="Normal"> <p>Display or format $x as nn where 
        !          1156: 
        !          1157:           nn is nF or nE and n is an integer. In E mode it will attempt to generate 
        !          1158: 
        !          1159:           a pretty x10^3 rather than a E3 following the number</p></td>
        !          1160: 
        !          1161:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !          1162: 
        !          1163:     </tr>
        !          1164: 
        !          1165:     <tr> 
        !          1166: 
        !          1167:       <td width=131 valign=top class="Normal"> <p>roundto(x,n)</p></td>
        !          1168: 
        !          1169:       <td width=134 valign=top class="Normal"> <p>&amp;roundto($x,$n)</p></td>
        !          1170: 
        !          1171:       <td width=147 valign=top class="Normal"> <p>Rounds a real number to n decimal 
        !          1172: 
        !          1173:           points. $x and $n can be pure numbers</p></td>
        !          1174: 
        !          1175:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !          1176: 
        !          1177:     </tr>
        !          1178: 
        !          1179:     <tr> 
        !          1180: 
        !          1181:       <td width=131 valign=top class="Normal"> <p>web(&quot;a&quot;,&quot;b&quot;,&quot;c&quot;) 
        !          1182: 
        !          1183:           or web(a,b,c)</p></td>
        !          1184: 
        !          1185:       <td width=134 valign=top class="Normal"> <p>&amp;web(&quot;a&quot;,&quot;b&quot;,&quot;c&quot;) 
        !          1186: 
        !          1187:           or &amp;web($a,$b,$c)</p></td>
        !          1188: 
        !          1189:       <td width=147 valign=top class="Normal"> <p>Returns either a, b or c depending 
        !          1190: 
        !          1191:           on the output medium. a is for plain ASCII, b for tex output and c for 
        !          1192: 
        !          1193:           html output</p></td>
        !          1194: 
        !          1195:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !          1196: 
        !          1197:     </tr>
        !          1198: 
        !          1199:     <tr> 
        !          1200: 
        !          1201:       <td width=131 valign=top class="Normal"> <p>html(&quot;a&quot;) or html(a)</p></td>
        !          1202: 
        !          1203:       <td width=134 valign=top class="Normal"> <p>&amp;html(&quot;a&quot;) or 
        !          1204: 
        !          1205:           &amp;html($a)</p></td>
        !          1206: 
        !          1207:       <td width=147 valign=top class="Normal"> <p>Output only if the output mode 
        !          1208: 
        !          1209:           chosen is in html format</p></td>
        !          1210: 
        !          1211:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !          1212: 
        !          1213:     </tr>
        !          1214: 
        !          1215:     <tr> 
        !          1216: 
        !          1217:       <td width=131 valign=top class="Normal"> <p>jn(m,x)</p></td>
        !          1218: 
        !          1219:       <td width=134 valign=top class="Normal"> <p>&amp;j0($x), &amp;j1($x), &amp;jn($m,$x), 
        !          1220: 
        !          1221:           &amp;jv($y,$x)</p></td>
        !          1222: 
        !          1223:       <td width=147 valign=top class="Normal"> <p>Bessel functions of the first 
        !          1224: 
        !          1225:           kind with orders 0, 1 and m respectively. For jn(m,x), m must be an 
        !          1226: 
        !          1227:           integer whereas for jv(y,x), y is real. $x can be a pure number. $m 
        !          1228: 
        !          1229:           must be an integer and can be a pure integer number. $y can be a pure 
        !          1230: 
        !          1231:           real number</p></td>
        !          1232: 
        !          1233:       <td width=101 valign=top class="Normal"> <p>In CAPA, j0, j1 and jn are contained 
        !          1234: 
        !          1235:           in one function, jn(m,x) where m takes the value of 0, 1 or 2. jv(y,x) 
        !          1236: 
        !          1237:           is new to LON-CAPA.</p></td>
        !          1238: 
        !          1239:     </tr>
        !          1240: 
        !          1241:     <tr> 
        !          1242: 
        !          1243:       <td width=131 valign=top class="Normal"> <p>yn(m,x)</p></td>
        !          1244: 
        !          1245:       <td width=134 valign=top class="Normal"> <p>&amp;y0($x), &amp;y1($x), &amp;yn($m,$x), 
        !          1246: 
        !          1247:           &amp;yv($y,$x)</p></td>
        !          1248: 
        !          1249:       <td width=147 valign=top class="Normal"> <p>Bessel functions of the second 
        !          1250: 
        !          1251:           kind with orders 0, 1 and m respectively. For yn(m,x), m must be an 
        !          1252: 
        !          1253:           integer whereas for yv(y,x), y is real. $x can be a pure number. $m 
        !          1254: 
        !          1255:           must be an integer and can be a pure integer number. $y can be a pure 
        !          1256: 
        !          1257:           real number</p></td>
        !          1258: 
        !          1259:       <td width=101 valign=top class="Normal"> <p>In CAPA, y0, y1 and yn are contained 
        !          1260: 
        !          1261:           in one function, yn(m,x) where m takes the value of 0, 1 or 2. yv(y,x) 
        !          1262: 
        !          1263:           is new to LON-CAPA.</p></td>
        !          1264: 
        !          1265:     </tr>
        !          1266: 
        !          1267:     <tr> 
        !          1268: 
        !          1269:       <td width=131 valign=top class="Normal"> <p>random(l,u,d)</p></td>
        !          1270: 
        !          1271:       <td width=134 valign=top class="Normal"> <p>&amp;random($l,$u,$d)</p></td>
        !          1272: 
        !          1273:       <td width=147 valign=top class="Normal"> <p>Returns a uniformly distributed 
        !          1274: 
        !          1275:           random number between the lower bound, l and upper bound, u in steps 
        !          1276: 
        !          1277:           of d. $l, $u and $d can be pure numbers</p></td>
        !          1278: 
        !          1279:       <td width=101 valign=top class="Normal"> <p>In CAPA, all the 3 arguments 
        !          1280: 
        !          1281:           must be of the same type. However, now you can mix the type</p></td>
        !          1282: 
        !          1283:     </tr>
        !          1284: 
        !          1285:     <tr> 
        !          1286: 
        !          1287:       <td width=131 valign=top class="Normal"> <p>choose(i,...)</p></td>
        !          1288: 
        !          1289:       <td width=134 valign=top class="Normal"> <p>&amp;choose($i,...)</p></td>
        !          1290: 
        !          1291:       <td width=147 valign=top class="Normal"> <p>Choose the ith item from the 
        !          1292: 
        !          1293:           argument list. i must be an integer greater than 0 and the value of 
        !          1294: 
        !          1295:           i should not exceed the number of items. $i can be a pure integer</p></td>
        !          1296: 
        !          1297:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !          1298: 
        !          1299:     </tr>
        !          1300: 
        !          1301:     <tr> 
        !          1302: 
        !          1303:       <td width=131 valign=top class="Normal"> <p>/MAP(seed;w,x,y,z;a,b,c,d)</p></td>
        !          1304: 
        !          1305:       <td width=134 valign=top class="Normal"> <p>Option 1 - &amp;map($seed,[\$w,\$x,\$y,\$z],[$a,$b,$c,$d]) 
        !          1306: 
        !          1307:           or <br>
        !          1308: 
        !          1309:           Option 2 - &amp;map($seed,\@mappedArray,[$a,$b,$c,$d]) <br>
        !          1310: 
        !          1311:           Option 3 - @mappedArray = &amp;map($seed,[$a,$b,$c,$d]) <br>
        !          1312: 
        !          1313:           Option 4 - ($w,$x,$y,$z) = &amp;map($seed,\@a) <br>
        !          1314: 
        !          1315:           where $a='A'<br>
        !          1316: 
        !          1317:           $b='B'<br>
        !          1318: 
        !          1319:           $c='B'<br>
        !          1320: 
        !          1321:           $d='B'<br>
        !          1322: 
        !          1323:           $w, $x, $y, and $z are variables</p></td>
        !          1324: 
        !          1325:       <td width=147 valign=top class="Normal"> <p>Assigns to the variables $w, 
        !          1326: 
        !          1327:           $x, $y and $z the values of the $a, $b, $c and $c (A, B, C and D). The 
        !          1328: 
        !          1329:           precise value for $w .. depends on the seed. (Option 1 of calling map). 
        !          1330: 
        !          1331:           In option 2, the values of $a, $b .. are mapped into the array, @mappedArray. 
        !          1332: 
        !          1333:           The two options illustrate the different grouping. Options 3 and 4 give 
        !          1334: 
        !          1335:           a consistent way (with other functions) of mapping the items. For each 
        !          1336: 
        !          1337:           option, the group can be passed as an array, for example, [$a,$b,$c,$d] 
        !          1338: 
        !          1339:           =&gt; \@a.</p></td>
        !          1340: 
        !          1341:       <td width=101 valign=top class="Normal"> <p>In CAPA, the arguments are divided 
        !          1342: 
        !          1343:           into three groups separated by a semicolon ;. In LON-CAPA, the separation 
        !          1344: 
        !          1345:           is done by using [] brackets or using an array @a. Note the backslash 
        !          1346: 
        !          1347:           (\) before the arguments in the second and third groups.</p></td>
        !          1348: 
        !          1349:     </tr>
        !          1350: 
        !          1351:     <tr> 
        !          1352: 
        !          1353:       <td width=131 valign=top class="Normal"> <p>rmap(seed;a,b,c,d;w,x,y,z)</p></td>
        !          1354: 
        !          1355:       <td width=134 valign=top class="Normal"> <p>Option 1 - &amp;rmap($seed,[\$w,\$x,\$y,\$z],[$a,$b,$c,$d]) 
        !          1356: 
        !          1357:           or <br>
        !          1358: 
        !          1359:           Option 2 - &amp;rmap($seed,\@rmappedArray,[$a,$b,$c,$d]) <br>
        !          1360: 
        !          1361:           Option 3 - @rmapped_array = &amp;rmap($seed,[$a,$b,$c,$d]) <br>
        !          1362: 
        !          1363:           Option 4 - ($w,$x,$y,$z) = &amp;rmap($seed,\@a) <br>
        !          1364: 
        !          1365:           where $a='A'<br>
        !          1366: 
        !          1367:           $b='B'<br>
        !          1368: 
        !          1369:           $c='B'<br>
        !          1370: 
        !          1371:           $d='B'<br>
        !          1372: 
        !          1373:           $w, $x, $y, and $z are variables</p></td>
        !          1374: 
        !          1375:       <td width=147 valign=top class="Normal"> <p>The rmap functions does the 
        !          1376: 
        !          1377:           reverse action of map if the same seed is used in calling map and rmap. 
        !          1378: 
        !          1379:         </p></td>
        !          1380: 
        !          1381:       <td width=101 valign=top class="Normal"> <p>In CAPA, the arguments are divided 
        !          1382: 
        !          1383:           into three groups separated by a semicolon ;. In LON-CAPA, the separation 
        !          1384: 
        !          1385:           is done by using [] brackets (with create an unamed vector reference) 
        !          1386: 
        !          1387:           or using an array @a. Note the backslash (\) before the arguments in 
        !          1388: 
        !          1389:           the second and third groups (Which cause Perl to send to variable locations 
        !          1390: 
        !          1391:           rather than the variable values, similar to a C pointer).</p></td>
        !          1392: 
        !          1393:     </tr>
        !          1394: 
        !          1395:     <tr> 
        !          1396: 
        !          1397:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
        !          1398: 
        !          1399:       <td width=134 valign=top class="Normal"> <p>$a=&amp;xmlparse($string) </p></td>
        !          1400: 
        !          1401:       <td width=147 valign=top class="Normal"> <p>Runs the internal parser over 
        !          1402: 
        !          1403:           the argument parsing for display. <b>Warning</b><span style='font-weight:normal'> 
        !          1404: 
        !          1405:           This will result in different strings in different targets. Don't use 
        !          1406: 
        !          1407:           the results of this function as an answer.</span></p></td>
        !          1408: 
        !          1409:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
        !          1410: 
        !          1411:     </tr>
        !          1412: 
        !          1413:     <tr> 
        !          1414: 
        !          1415:       <td width=131 valign=top class="Normal"> <p>tex(a,b), tex(&quot;a&quot;,&quot;b&quot;)</p></td>
        !          1416: 
        !          1417:       <td width=134 valign=top class="Normal"> <p>&amp;tex($a,$b), &amp;tex(&quot;a&quot;,&quot;b&quot;)</p></td>
        !          1418: 
        !          1419:       <td width=147 valign=top class="Normal"> <p>Returns a if the output mode 
        !          1420: 
        !          1421:           is in tex otherwise returns b</p></td>
        !          1422: 
        !          1423:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !          1424: 
        !          1425:     </tr>
        !          1426: 
        !          1427:     <tr> 
        !          1428: 
        !          1429:       <td width=131 valign=top class="Normal"> <p>var_in_tex(a)</p></td>
        !          1430: 
        !          1431:       <td width=134 valign=top class="Normal"> <p>&amp;var_in_tex($a)</p></td>
        !          1432: 
        !          1433:       <td width=147 valign=top class="Normal"> <p>Equivalent to tex(&quot;a&quot;,&quot;&quot;)</p></td>
        !          1434: 
        !          1435:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !          1436: 
        !          1437:     </tr>
        !          1438: 
        !          1439:     <tr> 
        !          1440: 
        !          1441:       <td width=131 valign=top class="Normal"> <p>to_string(x), to_string(x,y)</p></td>
        !          1442: 
        !          1443:       <td width=134 valign=top class="Normal"> <p>&amp;to_string($x), &amp;to_string($x,$y)</p></td>
        !          1444: 
        !          1445:       <td width=147 valign=top class="Normal"> <p>If x is an integer, returns 
        !          1446: 
        !          1447:           a string. If x is real than the output is a string with format given 
        !          1448: 
        !          1449:           by y. For example, if x = 12.3456, &amp;to_string(x,&quot;.3F&quot;) 
        !          1450: 
        !          1451:           = 12.345 and &amp;to_string(x,&quot;.3E&quot;) = 1.234E+01.</p></td>
        !          1452: 
        !          1453:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !          1454: 
        !          1455:     </tr>
        !          1456: 
        !          1457:     <tr> 
        !          1458: 
        !          1459:       <td width=131 valign=top class="Normal"> <p>capa_id(), class(), section(), 
        !          1460: 
        !          1461:           set(), problem()</p></td>
        !          1462: 
        !          1463:       <td width=134 valign=top class="Normal"> <p>&amp;class(), &amp;section()</p></td>
        !          1464: 
        !          1465:       <td width=147 valign=top class="Normal"> <p>Returns null string, class descriptive 
        !          1466: 
        !          1467:           name, section number, set number and null string.</p></td>
        !          1468: 
        !          1469:       <td width=101 valign=top class="Normal"> <p>capa_id(), set() and problem() 
        !          1470: 
        !          1471:           are no longer used. Currently, they return a null value.</p></td>
        !          1472: 
        !          1473:     </tr>
        !          1474: 
        !          1475:     <tr> 
        !          1476: 
        !          1477:       <td width=131 valign=top class="Normal"> <p>name(), student_number()</p></td>
        !          1478: 
        !          1479:       <td width=134 valign=top class="Normal"> <p>&amp;name(), &amp;student_number()</p></td>
        !          1480: 
        !          1481:       <td width=147 valign=top class="Normal"> <p>Return the full name in the 
        !          1482: 
        !          1483:           following format: lastname, firstname initial. Student_number returns 
        !          1484: 
        !          1485:           the student 9-alphanumeric string. If undefined, the functions return 
        !          1486: 
        !          1487:           null.</p></td>
        !          1488: 
        !          1489:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !          1490: 
        !          1491:     </tr>
        !          1492: 
        !          1493:     <tr> 
        !          1494: 
        !          1495:       <td width=131 valign=top class="Normal"> <p>open_date(), due_date(), answer_date()</p></td>
        !          1496: 
        !          1497:       <td width=134 valign=top class="Normal"> <p>&amp;open_date(), &amp;due_date(), 
        !          1498: 
        !          1499:           &amp;answer_date()</p></td>
        !          1500: 
        !          1501:       <td width=147 valign=top class="Normal"> <p>Problem open date, due date 
        !          1502: 
        !          1503:           and answer date. The time is also included in 24-hr format.</p></td>
        !          1504: 
        !          1505:       <td width=101 valign=top class="Normal"> <p>Output format for time is changed 
        !          1506: 
        !          1507:           slightly. If pass noon, it displays ..pm else it displays ..am. So 23:59 
        !          1508: 
        !          1509:           is displayed as 11:59 pm.</p></td>
        !          1510: 
        !          1511:     </tr>
        !          1512: 
        !          1513:     <tr> 
        !          1514: 
        !          1515:       <td width=131 valign=top class="Normal"> <p>get_seed(), set_seed()</p></td>
        !          1516: 
        !          1517:       <td width=134 valign=top class="Normal"> <p>Not implemented</p></td>
        !          1518: 
        !          1519:       <td width=147 valign=top class="Normal"> <p>Get and set the random seed.</p></td>
        !          1520: 
        !          1521:       <td width=101 valign=top class="Normal">&nbsp; </td>
        !          1522: 
        !          1523:     </tr>
        !          1524: 
        !          1525:     <tr> 
        !          1526: 
        !          1527:       <td width=131 valign=top class="Normal"> <p>sub_string(a,b,c)</p></td>
        !          1528: 
        !          1529:       <td width=134 valign=top class="Normal"> <p>&amp;sub_string($a,$b,$c) <br>
        !          1530: 
        !          1531:           perl&nbsp; substr function. However, note the differences</p></td>
        !          1532: 
        !          1533:       <td width=147 valign=top class="Normal"> <p>Retrieve a portion of string 
        !          1534: 
        !          1535:           a starting from b and length c. For example,&nbsp; $a = &quot;Welcome 
        !          1536: 
        !          1537:           to LON-CAPA&quot;; $result=&amp;sub_string($a,4,4); then $result is 
        !          1538: 
        !          1539:           &quot;come&quot;</p></td>
        !          1540: 
        !          1541:       <td width=101 valign=top class="Normal"> <p>Perl intrinsic function, substr(string,b,c) 
        !          1542: 
        !          1543:           starts counting from 0 (as opposed to 1). In the example to the left, 
        !          1544: 
        !          1545:           substr($a,4,4) returns &quot;ome &quot;.</p></td>
        !          1546: 
        !          1547:     </tr>
        !          1548: 
        !          1549:     <tr> 
        !          1550: 
        !          1551:       <td width=131 valign=top class="Normal"> <p>array[xx]</p></td>
        !          1552: 
        !          1553:       <td width=134 valign=top class="Normal"> <p>@arrayname <br>
        !          1554: 
        !          1555:           Array is intrinsic in perl. To access a specific element use $arrayname[$n] 
        !          1556: 
        !          1557:           where $n is the $n+1 element since the array count starts from 0</p></td>
        !          1558: 
        !          1559:       <td width=147 valign=top class="Normal"> <p>&quot;xx&quot; can be a variable 
        !          1560: 
        !          1561:           or a calculation.</p></td>
        !          1562: 
        !          1563:       <td width=101 valign=top class="Normal"> <p>In LON-CAPA, an array is defined 
        !          1564: 
        !          1565:           by @arrayname. It is not necessary to specify the dimension of the array.&nbsp;</p></td>
        !          1566: 
        !          1567:     </tr>
        !          1568: 
        !          1569:     <tr> 
        !          1570: 
        !          1571:       <td width=131 valign=top class="Normal"> <p>array_moments(B,A)</p></td>
        !          1572: 
        !          1573:       <td width=134 valign=top class="Normal"> <p>@B=&amp;array_moments(@A)</p></td>
        !          1574: 
        !          1575:       <td width=147 valign=top class="Normal"> <p>Evaluates the moments of an 
        !          1576: 
        !          1577:           array A and place the result in array B[i] where i = 0 to 4. The contents 
        !          1578: 
        !          1579:           of B are as follows: B[0] = number of elements, B[1] = mean, B[2] = 
        !          1580: 
        !          1581:           variance, B[3] = skewness and B[4] = kurtosis.</p></td>
        !          1582: 
        !          1583:       <td width=101 valign=top class="Normal"> <p>In CAPA, the moments are passed 
        !          1584: 
        !          1585:           as an array in the first argument whereas in LON-CAPA, the array containing 
        !          1586: 
        !          1587:           the moments are set equal to the function.</p></td>
        !          1588: 
        !          1589:     </tr>
        !          1590: 
        !          1591:     <tr> 
        !          1592: 
        !          1593:       <td width=131 valign=top class="Normal"> <p>array_max(Name), array_min(Name)</p></td>
        !          1594: 
        !          1595:       <td width=134 valign=top class="Normal"> <p>&amp;min(@Name), &amp;max(@Name)</p></td>
        !          1596: 
        !          1597:       <td width=147 valign=top class="Normal"> <p>In LON-CAPA to find the maximum 
        !          1598: 
        !          1599:           value of an array, use &amp;max(@arrayname)&nbsp; and to find the minimum 
        !          1600: 
        !          1601:           value of an array, use &amp;min(@arrayname)</p></td>
        !          1602: 
        !          1603:       <td width=101 valign=top class="Normal"> <p>Combined with the min and max 
        !          1604: 
        !          1605:           functions defined earlier.</p></td>
        !          1606: 
        !          1607:     </tr>
        !          1608: 
        !          1609:     <tr> 
        !          1610: 
        !          1611:       <td width=131 valign=top class="Normal"> <p>init_array(Name)</p></td>
        !          1612: 
        !          1613:       <td width=134 valign=top class="Normal"> <p>undef @name</p></td>
        !          1614: 
        !          1615:       <td width=147 valign=top class="Normal"> <p>To destroy the contents of an 
        !          1616: 
        !          1617:           array, use</p></td>
        !          1618: 
        !          1619:       <td width=101 valign=top class="Normal"> <p>Use perl intrinsic undef function.</p></td>
        !          1620: 
        !          1621:     </tr>
        !          1622: 
        !          1623:     <tr> 
        !          1624: 
        !          1625:       <td width=131 valign=top class="Normal"> <p>random_normal (return_array,item_cnt,seed,av,std_dev)</p></td>
        !          1626: 
        !          1627:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_normal 
        !          1628: 
        !          1629:           ($item_cnt,$seed,$av,$std_dev)</p></td>
        !          1630: 
        !          1631:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !          1632: 
        !          1633:           of normal distribution of average $av and standard deviation $std_dev. 
        !          1634: 
        !          1635:           The distribution is generated from seed $seed</p></td>
        !          1636: 
        !          1637:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
        !          1638: 
        !          1639:           as the first argument whereas in LON-CAPA the results are set equal 
        !          1640: 
        !          1641:           to the function.</p></td>
        !          1642: 
        !          1643:     </tr>
        !          1644: 
        !          1645:     <tr> 
        !          1646: 
        !          1647:       <td width=131 valign=top class="Normal"> <p>random_beta (return_array,item_cnt,seed,aa,bb)</p></td>
        !          1648: 
        !          1649:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_beta 
        !          1650: 
        !          1651:           ($item_cnt,$seed,$aa,$bb) <br>
        !          1652: 
        !          1653:           NOTE: Both $aa and $bb MUST be greater than 1.0E-37.</p></td>
        !          1654: 
        !          1655:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !          1656: 
        !          1657:           of beta distribution. The density of beta is: X^($aa-1) *(1-X)^($bb-1) 
        !          1658: 
        !          1659:           /B($aa,$bb) for 0&lt;X&lt;1.</p></td>
        !          1660: 
        !          1661:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
        !          1662: 
        !          1663:           as the first argument whereas in LON-CAPA the results are set equal 
        !          1664: 
        !          1665:           to the function.</p></td>
        !          1666: 
        !          1667:     </tr>
        !          1668: 
        !          1669:     <tr> 
        !          1670: 
        !          1671:       <td width=131 valign=top class="Normal"> <p>random_gamma (return_array,item_cnt,seed,a,r)</p></td>
        !          1672: 
        !          1673:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_gamma 
        !          1674: 
        !          1675:           ($item_cnt,$seed,$a,$r) <br>
        !          1676: 
        !          1677:           NOTE: Both $a and $r MUST be positive.</p></td>
        !          1678: 
        !          1679:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !          1680: 
        !          1681:           of gamma distribution. The density of gamma is: ($a**$r)/gamma($r) * 
        !          1682: 
        !          1683:           X**($r-1) * exp(-$a*X).</p></td>
        !          1684: 
        !          1685:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
        !          1686: 
        !          1687:           as the first argument whereas in LON-CAPA the results are set equal 
        !          1688: 
        !          1689:           to the function.</p></td>
        !          1690: 
        !          1691:     </tr>
        !          1692: 
        !          1693:     <tr> 
        !          1694: 
        !          1695:       <td width=131 valign=top class="Normal"> <p>random_exponential (return_array,item_cnt,seed,av)</p></td>
        !          1696: 
        !          1697:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_exponential 
        !          1698: 
        !          1699:           ($item_cnt,$seed,$av) <br>
        !          1700: 
        !          1701:           NOTE: $av MUST be non-negative.</p></td>
        !          1702: 
        !          1703:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !          1704: 
        !          1705:           of exponential distribution. </p></td>
        !          1706: 
        !          1707:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
        !          1708: 
        !          1709:           as the first argument whereas in LON-CAPA the results are set equal 
        !          1710: 
        !          1711:           to the function.</p></td>
        !          1712: 
        !          1713:     </tr>
        !          1714: 
        !          1715:     <tr> 
        !          1716: 
        !          1717:       <td width=131 valign=top class="Normal"> <p>random_poisson (return_array,item_cnt,seed,mu)</p></td>
        !          1718: 
        !          1719:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_poisson 
        !          1720: 
        !          1721:           ($item_cnt,$seed,$mu) <br>
        !          1722: 
        !          1723:           NOTE: $mu MUST be non-negative.</p></td>
        !          1724: 
        !          1725:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !          1726: 
        !          1727:           of poisson distribution. </p></td>
        !          1728: 
        !          1729:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
        !          1730: 
        !          1731:           as the first argument whereas in LON-CAPA the results are set equal 
        !          1732: 
        !          1733:           to the function.</p></td>
        !          1734: 
        !          1735:     </tr>
        !          1736: 
        !          1737:     <tr> 
        !          1738: 
        !          1739:       <td width=131 valign=top class="Normal"> <p>random_chi (return_array,item_cnt,seed,df)</p></td>
        !          1740: 
        !          1741:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_chi 
        !          1742: 
        !          1743:           ($item_cnt,$seed,$df) <br>
        !          1744: 
        !          1745:           NOTE: $df MUST be positive.</p></td>
        !          1746: 
        !          1747:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !          1748: 
        !          1749:           of chi_square distribution with $df degrees of freedom. </p></td>
        !          1750: 
        !          1751:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
        !          1752: 
        !          1753:           as the first argument whereas in LON-CAPA the results are set equal 
        !          1754: 
        !          1755:           to the function.</p></td>
        !          1756: 
        !          1757:     </tr>
        !          1758: 
        !          1759:     <tr> 
        !          1760: 
        !          1761:       <td width=131 valign=top class="Normal"> <p>random_noncentral_chi (return_array,item_cnt,seed,df,nonc)</p></td>
        !          1762: 
        !          1763:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_noncentral_chi 
        !          1764: 
        !          1765:           ($item_cnt,$seed,$df,$nonc) <br>
        !          1766: 
        !          1767:           NOTE: $df MUST be at least 1 and $nonc MUST be non-negative.</p></td>
        !          1768: 
        !          1769:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !          1770: 
        !          1771:           of noncentral_chi_square distribution with $df degrees of freedom and 
        !          1772: 
        !          1773:           noncentrality parameter $nonc. </p></td>
        !          1774: 
        !          1775:       <td width=101 valign=top class="Normal"> <p>In CAPA the results are passed 
        !          1776: 
        !          1777:           as the first argument whereas in LON-CAPA the results are set equal 
        !          1778: 
        !          1779:           to the function.</p></td>
        !          1780: 
        !          1781:     </tr>
        !          1782: 
        !          1783:     <tr> 
        !          1784: 
        !          1785:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
        !          1786: 
        !          1787:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_f 
        !          1788: 
        !          1789:           ($item_cnt,$seed,$dfn,$dfd) <br>
        !          1790: 
        !          1791:           NOTE: Both $dfn and $dfd MUST be positive.</p></td>
        !          1792: 
        !          1793:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !          1794: 
        !          1795:           of F (variance ratio) distribution with degrees of freedom $dfn (numerator) 
        !          1796: 
        !          1797:           and $dfd (denominator). </p></td>
        !          1798: 
        !          1799:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
        !          1800: 
        !          1801:     </tr>
        !          1802: 
        !          1803:     <tr> 
        !          1804: 
        !          1805:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
        !          1806: 
        !          1807:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_noncentral_f 
        !          1808: 
        !          1809:           ($item_cnt,$seed,$dfn,$dfd,$nonc) <br>
        !          1810: 
        !          1811:           NOTE: $dfn must be at least 1, $dfd MUST be positive, and $nonc must 
        !          1812: 
        !          1813:           be non-negative.</p></td>
        !          1814: 
        !          1815:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !          1816: 
        !          1817:           of noncentral F (variance ratio) distribution with degrees of freedom 
        !          1818: 
        !          1819:           $dfn (numerator) and $dfd (denominator). $nonc is the noncentrality 
        !          1820: 
        !          1821:           parameter. </p></td>
        !          1822: 
        !          1823:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
        !          1824: 
        !          1825:     </tr>
        !          1826: 
        !          1827:     <tr> 
        !          1828: 
        !          1829:       <td width=131 valign=top class="Normal"> <p>NOT DOCUMENTED IN CAPA</p></td>
        !          1830: 
        !          1831:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_multivariate_normal 
        !          1832: 
        !          1833:           ($item_cnt,$seed,\@mean,\@covar) <br>
        !          1834: 
        !          1835:           NOTE: @mean should be of length p array of real numbers. @covar should 
        !          1836: 
        !          1837:           be a length p array of references to length p arrays of real numbers 
        !          1838: 
        !          1839:           (i.e. a p by p matrix.</p></td>
        !          1840: 
        !          1841:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !          1842: 
        !          1843:           of multivariate_normal distribution with mean vector @mean and variance-covariance 
        !          1844: 
        !          1845:           matrix. </p></td>
        !          1846: 
        !          1847:       <td width=101 valign=top class="Normal"> <p>Note the backslash before the 
        !          1848: 
        !          1849:           @mean and @covar arrays.</p></td>
        !          1850: 
        !          1851:     </tr>
        !          1852: 
        !          1853:     <tr> 
        !          1854: 
        !          1855:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
        !          1856: 
        !          1857:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_multinomial 
        !          1858: 
        !          1859:           ($item_cnt,$seed,@p) <br>
        !          1860: 
        !          1861:           NOTE: $item_cnt is rounded with int() and the result must be non-negative. 
        !          1862: 
        !          1863:           The number of elements in @p must be at least 2.</p></td>
        !          1864: 
        !          1865:       <td width=147 valign=top class="Normal"> <p>Returns single observation from 
        !          1866: 
        !          1867:           multinomial distribution with $item_cnt events classified into as many 
        !          1868: 
        !          1869:           categories as the length of @p. The probability of an event being classified 
        !          1870: 
        !          1871:           into category i is given by ith element of @p. The observation is an 
        !          1872: 
        !          1873:           array with length equal to @p, so when called in a scalar context it 
        !          1874: 
        !          1875:           returns the length of @p. The sum of the elements of the obervation 
        !          1876: 
        !          1877:           is equal to $item_cnt.</p></td>
        !          1878: 
        !          1879:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
        !          1880: 
        !          1881:     </tr>
        !          1882: 
        !          1883:     <tr> 
        !          1884: 
        !          1885:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
        !          1886: 
        !          1887:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_permutation 
        !          1888: 
        !          1889:           ($item_cnt,@array) </p></td>
        !          1890: 
        !          1891:       <td width=147 valign=top class="Normal"> <p>Returns @array randomly permuted.</p></td>
        !          1892: 
        !          1893:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
        !          1894: 
        !          1895:     </tr>
        !          1896: 
        !          1897:     <tr> 
        !          1898: 
        !          1899:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
        !          1900: 
        !          1901:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_uniform 
        !          1902: 
        !          1903:           ($item_cnt,$seed,$low,$high) <br>
        !          1904: 
        !          1905:           NOTE: $low must be less than or equal to $high.</p></td>
        !          1906: 
        !          1907:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !          1908: 
        !          1909:           from a uniform distribution. </p></td>
        !          1910: 
        !          1911:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
        !          1912: 
        !          1913:     </tr>
        !          1914: 
        !          1915:     <tr> 
        !          1916: 
        !          1917:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
        !          1918: 
        !          1919:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_uniform_integer 
        !          1920: 
        !          1921:           ($item_cnt,$seed,$low,$high) <br>
        !          1922: 
        !          1923:           NOTE: $low and $high are both passed through int(). $low must be less 
        !          1924: 
        !          1925:           than or equal to $high.</p></td>
        !          1926: 
        !          1927:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !          1928: 
        !          1929:           from a uniform distribution in integers. </p></td>
        !          1930: 
        !          1931:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
        !          1932: 
        !          1933:     </tr>
        !          1934: 
        !          1935:     <tr> 
        !          1936: 
        !          1937:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
        !          1938: 
        !          1939:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_binomial 
        !          1940: 
        !          1941:           ($item_cnt,$seed,$nt,$p) <br>
        !          1942: 
        !          1943:           NOTE: $nt is rounded using int() and the result must be non-negative. 
        !          1944: 
        !          1945:           $p must be between 0 and 1 inclusive.</p></td>
        !          1946: 
        !          1947:       <td width=147 valign=top class="Normal"> <p>Generate $item_cnt deviates 
        !          1948: 
        !          1949:           from the binomial distribution with $nt trials and the probabilty of 
        !          1950: 
        !          1951:           an event in each trial is $p. </p></td>
        !          1952: 
        !          1953:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
        !          1954: 
        !          1955:     </tr>
        !          1956: 
        !          1957:     <tr> 
        !          1958: 
        !          1959:       <td width=131 valign=top class="Normal"> <p>NOT IMPLEMENTED IN CAPA</p></td>
        !          1960: 
        !          1961:       <td width=134 valign=top class="Normal"> <p>@return_array=&amp;random_negative_binomial 
        !          1962: 
        !          1963:           ($item_cnt,$seed,$ne,$p) <br>
        !          1964: 
        !          1965:           NOTE: $ne is rounded using int() and the result must be positive. $p 
        !          1966: 
        !          1967:           must be between 0 and 1 exclusive.</p></td>
        !          1968: 
        !          1969:       <td width=147 valign=top class="Normal"> <p>Generate an array of $item_cnt 
        !          1970: 
        !          1971:           outcomes generated from negative binomial distribution with $ne events 
        !          1972: 
        !          1973:           and the probabilty of an event in each trial is $p. </p></td>
        !          1974: 
        !          1975:       <td width=101 valign=top class="Normal"> <p>New to LON-CAPA</p></td>
        !          1976: 
        !          1977:     </tr>
        !          1978: 
        !          1979:   </table>
        !          1980: 
        !          1981:   <h3><a name="_Toc421867130">&lt;script&gt; Variables</a></h3>
        !          1982: 
        !          1983:   <ul type=disc>
        !          1984: 
        !          1985:     <li>$external::target - set to the current target the xml parser is parsing 
        !          1986: 
        !          1987:       for </li>
        !          1988: 
        !          1989:     <li>$external::part - set to the <i>id</i><span style='font-style:normal'> 
        !          1990: 
        !          1991:       of the current problem &lt;part&gt;; zero if there are no &lt;part&gt; </span></li>
        !          1992: 
        !          1993:     <li>$external::gradestatus - set to the value of the current resource.partid.solved 
        !          1994: 
        !          1995:       value </li>
        !          1996: 
        !          1997:     <li>$external::datestatus - set to the current status of the clock either 
        !          1998: 
        !          1999:       CLOSED, CAN_ANSWER, CANNOT_ANSWER, SHOW_ANSWER, or UNCHECKEDOUT </li>
        !          2000: 
        !          2001:     <li>$external::randomseed - set to the number that was used to seed the random 
        !          2002: 
        !          2003:       number generator </li>
        !          2004: 
        !          2005:     <li>$pi - set to PI </li>
        !          2006: 
        !          2007:     <li>$rad2deg - converts radians to degrees </li>
        !          2008: 
        !          2009:     <li>$deg2rad - converts degrees to radians </li>
        !          2010: 
        !          2011:   </ul>
        !          2012: 
        !          2013:   <h3><a name="_Toc421867131">Form internals</a> </h3>
        !          2014: 
        !          2015:   <p>Form elements used for homework editing/response </p>
        !          2016: 
        !          2017:   <p>the form is named lonhomework </p>
        !          2018: 
        !          2019:   <h3><a name="_Toc421867132">Viewing a problem (either CSTR or RES space)</a></h3>
        !          2020: 
        !          2021:   <ul type=disc>
        !          2022: 
        !          2023:     <li>grade_target, grade_username, grade_domain, grade_symb - the vaules take 
        !          2024: 
        !          2025:       precedence over the the normal ENV settings of these, use &amp;Apache::lonxml::whichuser() 
        !          2026: 
        !          2027:       to get back the correct vaues of the items </li>
        !          2028: 
        !          2029:     <li>HWVAL_response:number - the name of the input elements for each response. 
        !          2030: 
        !          2031:       The response is the response's ID, and the :number part exists only for 
        !          2032: 
        !          2033:       response with multiple foils, and is a unique number in order of the submission 
        !          2034: 
        !          2035:     </li>
        !          2036: 
        !          2037:     <li>changerandseed - the 'Change' button, only exists right after the Change 
        !          2038: 
        !          2039:       button is clicked </li>
        !          2040: 
        !          2041:     <li>problemmode - in CSTR, it is either 'View','Edit','EditXML' or 'Analyze' 
        !          2042: 
        !          2043:       depending on the desired view </li>
        !          2044: 
        !          2045:     <li>rndseed - the currently requested random seed </li>
        !          2046: 
        !          2047:     <li>showallfoils - if it exists, and we are in CSTR space, the problem should 
        !          2048: 
        !          2049:       ignore &lt;conceptgroup&gt; and the response's max setting and show all 
        !          2050: 
        !          2051:       possible foils </li>
        !          2052: 
        !          2053:     <li>submit - the name of the Submit button </li>
        !          2054: 
        !          2055:     <li>submitted - a hidden form parameter that can be used to tell if the student 
        !          2056: 
        !          2057:       has submitted answers or not, if it is set, there should be answers to grade. 
        !          2058: 
        !          2059:     </li>
        !          2060: 
        !          2061:   </ul>
        !          2062: 
        !          2063:   <h3><a name="_Toc421867133">Editing a problem (Edit mode)</a></h3>
        !          2064: 
        !          2065:   <p>tagdepth referes to the current value of the xmlparsers tagdepth couter ($Apache::lonxml::currentdepth)</p>
        !          2066: 
        !          2067:   <p>Note: the file edit.pm has many helper functions for creating the standard 
        !          2068: 
        !          2069:     elements for editing a tag and it's attributes, all of those functions follow 
        !          2070: 
        !          2071:     these conventions </p>
        !          2072: 
        !          2073:   <ul type=disc>
        !          2074: 
        !          2075:     <li>tagdepth_argname - I.E. 1_3.max, a parameter editing value, max is the 
        !          2076: 
        !          2077:       name of the parameter and it is for the third tag inside the first tag </li>
        !          2078: 
        !          2079:     <li>delete_tagdepth - if set to yes, delete tag tagdepth and all tags inside 
        !          2080: 
        !          2081:       of it </li>
        !          2082: 
        !          2083:     <li>homework_edit_tagdepth - used by both &amp;Apache::edit::editline and 
        !          2084: 
        !          2085:       &amp;Apache::edit::editfield for the &lt;textarea&gt; and &lt;input&gt; 
        !          2086: 
        !          2087:       form elements they create </li>
        !          2088: 
        !          2089:     <li>insert_tagdepth - used to request an tag insert, it is set to the id number 
        !          2090: 
        !          2091:       of the requested tag in the %Apache::lonxml::insertlist </li>
        !          2092: 
        !          2093:   </ul>
        !          2094: 
        !          2095:   <ul type=disc>
        !          2096: 
        !          2097:     <li> &nbsp; </li>
        !          2098: 
        !          2099:   </ul>
        !          2100: 
        !          2101:   <h3><a name="_Toc421867134">Symbs</a></h3>
        !          2102: 
        !          2103:   <p>To identify a specific instance of a resource, LON-CAPA uses symbols or Òsymbs.Ó 
        !          2104: 
        !          2105:     These identifiers are built from the URL of the map, the resource number of 
        !          2106: 
        !          2107:     the resource in the map, and the URL of the resource itself. The latter is 
        !          2108: 
        !          2109:     somewhat redundant, but might help if maps change.</p>
        !          2110: 
        !          2111:   <p>An example is</p>
        !          2112: 
        !          2113:   <p class=MsoHeader><span style='font-family:"Courier New"'>&nbsp;msu/korte/parts/part1.sequence___19___msu/korte/tests/part12.problem</span></p>
        !          2114: 
        !          2115:   <p class=MsoHeader>The respective map entry is</p>
        !          2116: 
        !          2117:   <p class=MsoHeader><span style='font-family:"Courier New"'>&nbsp;&lt;resource 
        !          2118: 
        !          2119:     id=&quot;19&quot; src=&quot;/res/msu/korte/tests/part12.problem&quot;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2120: 
        !          2121:     </span></p>
        !          2122: 
        !          2123:   <p class=MsoHeader><span style='font-family:"Courier New"'>&nbsp; title=&quot;Problem 
        !          2124: 
        !          2125:     2&quot;&gt;</span></p>
        !          2126: 
        !          2127:   <p class=MsoHeader><span style='font-family:"Courier New"'>&nbsp;&lt;/resource&gt;</span></p>
        !          2128: 
        !          2129:   <p class=MsoHeader>Symbs are used by the random number generator, as well as 
        !          2130: 
        !          2131:     to store and restore data specific to a certain instance of for example a 
        !          2132: 
        !          2133:     problem.</p>
        !          2134: 
        !          2135:   <h3><a name="_Toc421867135">Store / Restore</a></h3>
        !          2136: 
        !          2137:   <p><span style='color:black'>2 important functions in lonnet.pm are </span><span style='font-family:"Courier New";color:black'>&amp;Apache::lonnet::cstore()</span><span
        !          2138: 
        !          2139: style='color:black'> and </span><span style='font-family:"Courier New";
        !          2140: 
        !          2141: color:black'>&amp;Apache::lonnet:restore()</span><span style='color:black'> (and 
        !          2142: 
        !          2143:     </span><span style='font-family:"Courier New";color:black'>&amp;Apache::lonnet::store()</span><span
        !          2144: 
        !          2145: style='color:black'>, which is is the non-critical message twin of </span><span
        !          2146: 
        !          2147: style='font-family:"Courier New";color:black'>cstore</span><span
        !          2148: 
        !          2149: style='color:black'>). These functions are for handlers to store a perl hash to 
        !          2150: 
        !          2151:     a userÕs permanent data space in an easy manner, and to retrieve it again 
        !          2152: 
        !          2153:     on another call. It is expected that a handler would use this once at the 
        !          2154: 
        !          2155:     beginning to retrieve data, and then again once at the end to send only the 
        !          2156: 
        !          2157:     new data back. </span></p>
        !          2158: 
        !          2159:   <p><span style='color:black'>The data is stored in the userÕs data directory 
        !          2160: 
        !          2161:     on the userÕs homeserver under the ID of the course.</span></p>
        !          2162: 
        !          2163:   <p><span style='color:black'>The hash that is returned by </span><span
        !          2164: 
        !          2165: style='font-family:"Courier New";color:black'>restore</span><span
        !          2166: 
        !          2167: style='color:black'> will have all of the previous value for all of the elements 
        !          2168: 
        !          2169:     of the hash. </span></p>
        !          2170: 
        !          2171:   <p><span style='color:black'>Example: </span></p>
        !          2172: 
        !          2173:   <p><span style='font-family:"Courier New";color:black'>#creating a hash</span></p>
        !          2174: 
        !          2175:   <p><span style='font-family:"Courier New";color:black'>my %hash;</span></p>
        !          2176: 
        !          2177:   <p><span style='font-family:"Courier New";color:black'>$hash{'foo'}='bar';</span></p>
        !          2178: 
        !          2179:   <p><span style='font-family:"Courier New";color:black'>#storing it</span></p>
        !          2180: 
        !          2181:   <p><span style='font-family:"Courier New";color:black'>&amp;Apache::lonnet::cstore(\%hash);</span></p>
        !          2182: 
        !          2183:   <p><span style='font-family:"Courier New";color:black'>#changing a value </span></p>
        !          2184: 
        !          2185:   <p><span style='font-family:"Courier New";color:black'>$hash{'foo'}='notbar';</span></p>
        !          2186: 
        !          2187:   <p><span style='font-family:"Courier New";color:black'>#adding a new value</span></p>
        !          2188: 
        !          2189:   <p><span style='font-family:"Courier New";color:black'>$hash{'bar'}='foo';</span></p>
        !          2190: 
        !          2191:   <p><span style='font-family:"Courier New";color:black'>&amp;Apache::lonnet::cstore(\%hash);</span></p>
        !          2192: 
        !          2193:   <p><span style='font-family:"Courier New";color:black'>#retrieving the hash</span></p>
        !          2194: 
        !          2195:   <p><span style='font-family:"Courier New";color:black'>my %history=&amp;Apache::lonnet::restore();</span></p>
        !          2196: 
        !          2197:   <p><span style='font-family:"Courier New";color:black'>#print the hash</span></p>
        !          2198: 
        !          2199:   <p><span style='font-family:"Courier New";color:black'>foreach my $key (sort(keys(%history))) 
        !          2200: 
        !          2201:     {</span></p>
        !          2202: 
        !          2203:   <p><span style='font-family:"Courier New";color:black'>&nbsp;&nbsp;&nbsp; print(&quot;\%history{$key} 
        !          2204: 
        !          2205:     = $history{$key}&quot;);</span></p>
        !          2206: 
        !          2207:   <p><span style='font-family:"Courier New";color:black'>}</span></p>
        !          2208: 
        !          2209:   <p><span style='color:black'>Will print out: </span></p>
        !          2210: 
        !          2211:   <p><span style='font-family:"Courier New";color:black'>%history{1:foo} = bar</span></p>
        !          2212: 
        !          2213:   <p><span style='font-family:"Courier New";color:black'>%history{1:keys} = foo:timestamp</span></p>
        !          2214: 
        !          2215:   <p><span style='font-family:"Courier New";color:black'>%history{1:timestamp} 
        !          2216: 
        !          2217:     = 990455579</span></p>
        !          2218: 
        !          2219:   <p><span style='font-family:"Courier New";color:black'>%history{2:bar} = foo</span></p>
        !          2220: 
        !          2221:   <p><span style='font-family:"Courier New";color:black'>%history{2:foo} = notbar</span></p>
        !          2222: 
        !          2223:   <p><span style='font-family:"Courier New";color:black'>%history{2:keys} = foo:bar:timestamp</span></p>
        !          2224: 
        !          2225:   <p><span style='font-family:"Courier New";color:black'>%history{2:timestamp} 
        !          2226: 
        !          2227:     = 990455580</span></p>
        !          2228: 
        !          2229:   <p><span style='font-family:"Courier New";color:black'>%history{bar} = foo</span></p>
        !          2230: 
        !          2231:   <p><span style='font-family:"Courier New";color:black'>%history{foo} = notbar</span></p>
        !          2232: 
        !          2233:   <p><span style='font-family:"Courier New";color:black'>%history{timestamp} = 
        !          2234: 
        !          2235:     990455580</span></p>
        !          2236: 
        !          2237:   <p><span style='font-family:"Courier New";color:black'>%history{version} = 2</span></p>
        !          2238: 
        !          2239:   <p><span style='color:black'>Note that the special hash entries <i>keys</i></span><span style='color:black'>, 
        !          2240: 
        !          2241:     <i>version</i></span><span
        !          2242: 
        !          2243: style='color:black'> and <i>timestamp</i></span><span style='color:black'> were 
        !          2244: 
        !          2245:     added to the hash. <i>version</i></span><span style='color:black'> will be 
        !          2246: 
        !          2247:     equal to the total number of versions of the data that have been stored. The 
        !          2248: 
        !          2249:     <i>timestamp</i></span><span
        !          2250: 
        !          2251: style='color:black'> attribute will be the UNIX time the hash was stored. <i>keys</i></span><span
        !          2252: 
        !          2253: style='color:black'> is available in every historical section to list which keys 
        !          2254: 
        !          2255:     were added or changed at a specific historical revision of a hash. </span></p>
        !          2256: 
        !          2257:   <p><span style='color:black'><b>Warning</b></span><span
        !          2258: 
        !          2259: style='color:black'> do not store the hash that restore returns directly. This 
        !          2260: 
        !          2261:     will cause a mess since it will restore the historical keys as if the were 
        !          2262: 
        !          2263:     new keys. I.E. </span><span style='font-family:"Courier New";color:black'>1:foo</span><span
        !          2264: 
        !          2265: style='color:black'> will become </span><span style='font-family:"Courier New";
        !          2266: 
        !          2267: color:black'>1:1:foo</span><span style='color:black'> etc. </span></p>
        !          2268: 
        !          2269:   <p><span style='color:black'><b>Calling convention: </b></span></p>
        !          2270: 
        !          2271:   <p><span style='font-size:8.0pt;font-family:"Courier New";
        !          2272: 
        !          2273: color:black'>&nbsp; my %record=&amp;Apache::lonnet::restore($symb,$courseid,$domain,$uname,$home);</span></p>
        !          2274: 
        !          2275:   <p><span style='font-size:8.0pt;font-family:"Courier New";
        !          2276: 
        !          2277: color:black'>&nbsp; &amp;Apache::lonnet::cstore(\%newrecord,$symb,$courseid,$domain,$uname,$home);</span></p>
        !          2278: 
        !          2279:   <p><span style='color:black'><b>Arguments (only %newrecord is required the rest 
        !          2280: 
        !          2281:     are somewhat optional, read the details): </b></span></p>
        !          2282: 
        !          2283:   <p> <span style='font-family:Symbol;
        !          2284: 
        !          2285: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2286: 
        !          2287:     </span></span> <span style='color:black'><i>$symb</i></span><span
        !          2288: 
        !          2289: style='color:black'> - a string containing the internal name of the specific instance 
        !          2290: 
        !          2291:     of a resource. Usually this value can be gotten from </span><span
        !          2292: 
        !          2293: style='font-family:"Courier New";color:black'>&amp;Apache::lonnet::symbread($filename)</span><span
        !          2294: 
        !          2295: style='color:black'>. If the argument is blank, it will attempt to use </span><span
        !          2296: 
        !          2297: style='font-family:"Courier New";color:black'>symbread()</span><span
        !          2298: 
        !          2299: style='color:black'> for it. If the result is ambiguous store/restore will fail. 
        !          2300: 
        !          2301:     </span></p>
        !          2302: 
        !          2303:   <p> <span style='font-family:Symbol;
        !          2304: 
        !          2305: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2306: 
        !          2307:     </span></span> <span style='color:black'><i>$courseid</i></span><span
        !          2308: 
        !          2309: style='color:black'> - the internal name for a course, usually found in </span><span
        !          2310: 
        !          2311: style='font-family:"Courier New";color:black'>$ENV{'request.course.id'}</span><span
        !          2312: 
        !          2313: style='color:black'> which is what will be looked at if no value is passed to 
        !          2314: 
        !          2315:     the functions. </span></p>
        !          2316: 
        !          2317:   <p> <span style='font-family:Symbol;
        !          2318: 
        !          2319: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2320: 
        !          2321:     </span></span> <span style='color:black'><i>$domain</i></span><span
        !          2322: 
        !          2323: style='color:black'> - the domain that the user belongs to, usually found in </span><span
        !          2324: 
        !          2325: style='font-family:"Courier New";color:black'>$ENV{'user.domain'}</span><span
        !          2326: 
        !          2327: style='color:black'> which is what will be looked at if no value is passed to 
        !          2328: 
        !          2329:     the functions. </span></p>
        !          2330: 
        !          2331:   <p> <span style='font-family:Symbol;
        !          2332: 
        !          2333: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2334: 
        !          2335:     </span></span> <span style='color:black'><i>$uname</i></span><span
        !          2336: 
        !          2337: style='color:black'> - the login name for the user, usually found in </span><span
        !          2338: 
        !          2339: style='font-family:"Courier New";color:black'>$ENV{'user.name'}</span><span
        !          2340: 
        !          2341: style='color:black'> which is what will be looked at if no value is passed to 
        !          2342: 
        !          2343:     the functions. </span></p>
        !          2344: 
        !          2345:   <p> <span style='font-family:Symbol;
        !          2346: 
        !          2347: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2348: 
        !          2349:     </span></span> <span style='color:black'><i>$home</i></span><span
        !          2350: 
        !          2351: style='color:black'> - the homeserver for the user, usually found in </span><span
        !          2352: 
        !          2353: style='font-family:"Courier New";color:black'>$ENV{'user.home'}</span><span
        !          2354: 
        !          2355: style='color:black'> but can be easily gotten from a domain and name through </span><span
        !          2356: 
        !          2357: style='font-family:"Courier New";color:black'>&amp;Apache::lonnet::homeserver($uname,$domain)</span><span
        !          2358: 
        !          2359: style='color:black'>. If no value is passed to store/restore the value in %ENV 
        !          2360: 
        !          2361:     will be used. </span></p>
        !          2362: 
        !          2363:   <p> <span style='font-family:Symbol;
        !          2364: 
        !          2365: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2366: 
        !          2367:     </span></span> <span style='color:black'><i>%newrecord</i></span><span
        !          2368: 
        !          2369: style='color:black'> - the hash to store being passed by reference </span></p>
        !          2370: 
        !          2371:   <p><span style='color:black'><b>Return values: </b></span></p>
        !          2372: 
        !          2373:   <p> <span style='font-family:Symbol;
        !          2374: 
        !          2375: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2376: 
        !          2377:     </span></span> <span style='color:black'><i>an empty string</i></span><span
        !          2378: 
        !          2379: style='color:black'> - the function was unable to determine exactly where to store 
        !          2380: 
        !          2381:     or restore from. At least one of the &quot;optional&quot; arguments was unable 
        !          2382: 
        !          2383:     to be determined. </span></p>
        !          2384: 
        !          2385:   <p> <span style='font-family:Symbol;
        !          2386: 
        !          2387: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2388: 
        !          2389:     </span></span> <span style='color:black'><i>a hash</i></span><span
        !          2390: 
        !          2391: style='color:black'> - restore successfully read a old hash for this specific 
        !          2392: 
        !          2393:     user / resource instance. </span></p>
        !          2394: 
        !          2395:   <p> <span style='font-family:Symbol;
        !          2396: 
        !          2397: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2398: 
        !          2399:     </span></span> <span style='color:black'><i>no_such_host</i></span><span
        !          2400: 
        !          2401: style='color:black'> - the <i>$home</i></span><span style='color:black'> specfied 
        !          2402: 
        !          2403:     desn't exist in the network. </span></p>
        !          2404: 
        !          2405:   <p> <span style='font-family:Symbol;
        !          2406: 
        !          2407: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2408: 
        !          2409:     </span></span> <span style='color:black'><i>con_delayed</i></span><span
        !          2410: 
        !          2411: style='color:black'> - the <i>$home</i></span><span style='color:black'> was uncontactable 
        !          2412: 
        !          2413:     at this time. The store will be delayed until it is again available. </span></p>
        !          2414: 
        !          2415:   <p> <span style='font-family:Symbol;
        !          2416: 
        !          2417: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2418: 
        !          2419:     </span></span> <span style='color:black'><i>con_failed</i></span><span
        !          2420: 
        !          2421: style='color:black'> - the <i>$home</i></span><span style='color:black'> was uncontactable 
        !          2422: 
        !          2423:     at this time and store was unable to delay the store until a later time. The 
        !          2424: 
        !          2425:     store failed. </span></p>
        !          2426: 
        !          2427:   <p> <span style='font-family:Symbol;
        !          2428: 
        !          2429: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2430: 
        !          2431:     </span></span> <span style='color:black'><i>ok</i></span><span
        !          2432: 
        !          2433: style='color:black'> - the store completed succesfully </span></p>
        !          2434: 
        !          2435:   <p> <span style='font-family:Symbol;
        !          2436: 
        !          2437: color:black'>á<span style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2438: 
        !          2439:     </span></span> <span style='color:black'><i>error:</i></span><span
        !          2440: 
        !          2441: style='color:black'> - remote server failied to store or restore the reason follows 
        !          2442: 
        !          2443:     the </span><span style='font-family:"Courier New";color:black'>:</span><span
        !          2444: 
        !          2445: style='color:black'> </span></p>
        !          2446: 
        !          2447:   <h3><a name="_Toc421867136">Mandatory Homework Data</a></h3>
        !          2448: 
        !          2449:   <pre>&nbsp;</pre>
        !          2450: 
        !          2451:   <pre><span
        !          2452: 
        !          2453: style='font-size:9.0pt'>&lt;Provided by &amp;EXT() and set external to the resource, required&gt;</span></pre>
        !          2454: 
        !          2455:   <pre><span
        !          2456: 
        !          2457: style='font-size:9.0pt'>resource.partid.opendate&nbsp;&nbsp; #unix time of when the local machine should let the</span></pre>
        !          2458: 
        !          2459:   <pre><span
        !          2460: 
        !          2461: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #student in</span></pre>
        !          2462: 
        !          2463:   <pre><span
        !          2464: 
        !          2465: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          2466: 
        !          2467:   <pre><span
        !          2468: 
        !          2469: style='font-size:9.0pt'>resource.partid.duedate&nbsp;&nbsp;&nbsp; #unix time of when the local machine should stop</span></pre>
        !          2470: 
        !          2471:   <pre><span
        !          2472: 
        !          2473: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #accepting answers</span></pre>
        !          2474: 
        !          2475:   <pre><span
        !          2476: 
        !          2477: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          2478: 
        !          2479:   <pre><span
        !          2480: 
        !          2481: style='font-size:9.0pt'>resource.partid.answerdate #unix time of when the local machine should</span></pre>
        !          2482: 
        !          2483:   <pre><span
        !          2484: 
        !          2485: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #provide the correct answer to the student</span></pre>
        !          2486: 
        !          2487:   <pre><span
        !          2488: 
        !          2489: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          2490: 
        !          2491:   <pre><span
        !          2492: 
        !          2493: style='font-size:9.0pt'>resource.partid.weight&nbsp;&nbsp;&nbsp;&nbsp; # points the problem is worth</span></pre>
        !          2494: 
        !          2495:   <pre><span
        !          2496: 
        !          2497: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          2498: 
        !          2499:   <pre><span
        !          2500: 
        !          2501: style='font-size:9.0pt'>resource.partid.maxtries&nbsp;&nbsp; # maximum number of attempts the student can have</span></pre>
        !          2502: 
        !          2503:   <pre><span
        !          2504: 
        !          2505: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          2506: 
        !          2507:   <pre><span
        !          2508: 
        !          2509: style='font-size:9.0pt'>resource.partid.type&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;# type of problem homework can be:</span></pre>
        !          2510: 
        !          2511:   <pre><span
        !          2512: 
        !          2513: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # homework - randomized, graded, stored with </span></pre>
        !          2514: 
        !          2515:   <pre><span
        !          2516: 
        !          2517: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; requesting user, full feeback</span></pre>
        !          2518: 
        !          2519:   <pre><span
        !          2520: 
        !          2521: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # exam - randomized, graded, stored with </span></pre>
        !          2522: 
        !          2523:   <pre><span
        !          2524: 
        !          2525: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; requesting user, minimal feedback</span></pre>
        !          2526: 
        !          2527:   <pre><span
        !          2528: 
        !          2529: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # form - unrandomized, ungraded, stored with </span></pre>
        !          2530: 
        !          2531:   <pre><span
        !          2532: 
        !          2533: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; specified user, full feedback</span></pre>
        !          2534: 
        !          2535:   <pre><span
        !          2536: 
        !          2537: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # survey - unrandomized, ungraded, stored with </span></pre>
        !          2538: 
        !          2539:   <pre><span
        !          2540: 
        !          2541: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; requesting user, full feedback</span></pre>
        !          2542: 
        !          2543:   <pre><span
        !          2544: 
        !          2545: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          2546: 
        !          2547:   <pre><span
        !          2548: 
        !          2549: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          2550: 
        !          2551:   <pre><span
        !          2552: 
        !          2553: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          2554: 
        !          2555:   <pre><span
        !          2556: 
        !          2557: style='font-size:9.0pt'>&lt;numerical/formula/response needed: (has a default if nonexistant)&gt;</span></pre>
        !          2558: 
        !          2559:   <pre><span
        !          2560: 
        !          2561: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          2562: 
        !          2563:   <pre><span
        !          2564: 
        !          2565: style='font-size:9.0pt'>resource.partid.responseid.tol&nbsp;&nbsp; # lots of possibilities here</span></pre>
        !          2566: 
        !          2567:   <pre><span
        !          2568: 
        !          2569: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # percentage, range (inclusive and exclusive),</span></pre>
        !          2570: 
        !          2571:   <pre><span
        !          2572: 
        !          2573: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; # variable name, etc</span></pre>
        !          2574: 
        !          2575:   <pre><span
        !          2576: 
        !          2577: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 3%</span></pre>
        !          2578: 
        !          2579:   <pre><span
        !          2580: 
        !          2581: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 0.5</span></pre>
        !          2582: 
        !          2583:   <pre><span
        !          2584: 
        !          2585: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # .05+</span></pre>
        !          2586: 
        !          2587:   <pre><span
        !          2588: 
        !          2589: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 3%+</span></pre>
        !          2590: 
        !          2591:   <pre><span
        !          2592: 
        !          2593: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 0.5+,.005</span></pre>
        !          2594: 
        !          2595:   <pre><span
        !          2596: 
        !          2597: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          2598: 
        !          2599:   <pre><span
        !          2600: 
        !          2601: style='font-size:9.0pt'>resource.partid.responseid.sig&nbsp; # one or two comma sepearted integers,&nbsp;&nbsp;&nbsp; </span></pre>
        !          2602: 
        !          2603:   <pre><span
        !          2604: 
        !          2605: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# specifying the number of significatn figures</span></pre>
        !          2606: 
        !          2607:   <pre><span
        !          2608: 
        !          2609: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # a student must use</span></pre>
        !          2610: 
        !          2611:   <pre><span
        !          2612: 
        !          2613: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          2614: 
        !          2615:   <pre><span
        !          2616: 
        !          2617: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          2618: 
        !          2619:   <pre><span
        !          2620: 
        !          2621: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          2622: 
        !          2623:   <pre><span
        !          2624: 
        !          2625: style='font-size:9.0pt'>&lt;Problem sets using cstore (required):&gt;</span></pre>
        !          2626: 
        !          2627:   <pre><span
        !          2628: 
        !          2629: style='font-size:9.0pt'>resource.partid.solved # if not set, problem yet to be viewed</span></pre>
        !          2630: 
        !          2631:   <pre><span
        !          2632: 
        !          2633: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # incorrect_attempted == incorrect and attempted</span></pre>
        !          2634: 
        !          2635:   <pre><span
        !          2636: 
        !          2637: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # correct_by_student == correct by student work</span></pre>
        !          2638: 
        !          2639:   <pre><span
        !          2640: 
        !          2641: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # correct_by_override == correct, instructor override</span></pre>
        !          2642: 
        !          2643:   <pre><span
        !          2644: 
        !          2645: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # incorrect_by_override == incorrect, instructor override</span></pre>
        !          2646: 
        !          2647:   <pre><span
        !          2648: 
        !          2649: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # excused == excused, problem no longer counts for student</span></pre>
        !          2650: 
        !          2651:   <pre><span
        !          2652: 
        !          2653: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # '' (empty) == not attempted</span></pre>
        !          2654: 
        !          2655:   <pre><span
        !          2656: 
        !          2657: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # ungraded_attempted == an ungraded answer has been</span></pre>
        !          2658: 
        !          2659:   <pre><span
        !          2660: 
        !          2661: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sumbitted and stored</span></pre>
        !          2662: 
        !          2663:   <pre><span
        !          2664: 
        !          2665: style='font-size:9.0pt'>resource.partid.tries&nbsp; # positive integer of number of unsuccessful attempts</span></pre>
        !          2666: 
        !          2667:   <pre><span
        !          2668: 
        !          2669: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # made, malformed answers don't count if feedback is</span></pre>
        !          2670: 
        !          2671:   <pre><span
        !          2672: 
        !          2673: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # on</span></pre>
        !          2674: 
        !          2675:   <pre><span
        !          2676: 
        !          2677: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          2678: 
        !          2679:   <pre><span
        !          2680: 
        !          2681: style='font-size:9.0pt'>resource.partid.awarded # float between 0 and 1, percentage of</span></pre>
        !          2682: 
        !          2683:   <pre><span
        !          2684: 
        !          2685: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# resource.weight that the stundent earned.</span></pre>
        !          2686: 
        !          2687:   <pre><span
        !          2688: 
        !          2689: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          2690: 
        !          2691:   <pre><span
        !          2692: 
        !          2693: style='font-size:9.0pt'>resource.partid.award # final detailed award that was applied to the entire</span></pre>
        !          2694: 
        !          2695:   <pre><span
        !          2696: 
        !          2697: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # part of the question, check awarddetail below for</span></pre>
        !          2698: 
        !          2699:   <pre><span
        !          2700: 
        !          2701: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # possibilities</span></pre>
        !          2702: 
        !          2703:   <pre><span
        !          2704: 
        !          2705: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          2706: 
        !          2707:   <pre><span
        !          2708: 
        !          2709: style='font-size:9.0pt'>resource.partid.previous # boolean, is this submission a previous submission</span></pre>
        !          2710: 
        !          2711:   <pre><span
        !          2712: 
        !          2713: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          2714: 
        !          2715:   <pre><span
        !          2716: 
        !          2717: style='font-size:9.0pt'>resource.partid.responseid.submissons</span></pre>
        !          2718: 
        !          2719:   <pre><span
        !          2720: 
        !          2721: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # the student submitted string for the part.response</span></pre>
        !          2722: 
        !          2723:   <pre><span
        !          2724: 
        !          2725: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          2726: 
        !          2727:   <pre><span
        !          2728: 
        !          2729: style='font-size:9.0pt'>resource.partid.responseid.awarddetail</span></pre>
        !          2730: 
        !          2731:   <pre><span
        !          2732: 
        !          2733: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # list of all of the results of grading the submissions</span></pre>
        !          2734: 
        !          2735:   <pre><span
        !          2736: 
        !          2737: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # in detailed form of the specific failure</span></pre>
        !          2738: 
        !          2739:   <pre><span
        !          2740: 
        !          2741: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; #Possible values:</span></pre>
        !          2742: 
        !          2743:   <pre><span
        !          2744: 
        !          2745: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # EXACT_ANS, APPROX_ANS : student is correct</span></pre>
        !          2746: 
        !          2747:   <pre><span
        !          2748: 
        !          2749: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # NO_RESPONSE : student submitted no response</span></pre>
        !          2750: 
        !          2751:   <pre><span
        !          2752: 
        !          2753: style='font-size:9.0pt'>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# MISSING_ANSWER : student submitted some but not</span></pre>
        !          2754: 
        !          2755:   <pre><span
        !          2756: 
        !          2757: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; all parts of a response</span></pre>
        !          2758: 
        !          2759:   <pre><span
        !          2760: 
        !          2761: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # WANTED_NUMERIC : expected a numeric answer and</span></pre>
        !          2762: 
        !          2763:   <pre><span
        !          2764: 
        !          2765: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; didn't get one</span></pre>
        !          2766: 
        !          2767:   <pre><span
        !          2768: 
        !          2769: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # SIG_FAIL : incorrect number of Significant Figures</span></pre>
        !          2770: 
        !          2771:   <pre><span
        !          2772: 
        !          2773: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # UNIT_FAIL : incorrect unit</span></pre>
        !          2774: 
        !          2775:   <pre><span
        !          2776: 
        !          2777: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # UNIT_NOTNEEDED : Submitted a unit when one shouldn't</span></pre>
        !          2778: 
        !          2779:   <pre><span
        !          2780: 
        !          2781: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # NO_UNIT : needed a unit but none was submitted</span></pre>
        !          2782: 
        !          2783:   <pre><span
        !          2784: 
        !          2785: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; # BAD_FORMULA : syntax error in submitted formula</span></pre>
        !          2786: 
        !          2787:   <pre><span
        !          2788: 
        !          2789: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # INCORRECT : answer was wrong</span></pre>
        !          2790: 
        !          2791:   <pre><span
        !          2792: 
        !          2793: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # SUBMITTED : submission wasn't graded</span></pre>
        !          2794: 
        !          2795:   <pre><span
        !          2796: 
        !          2797: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # ERROR : unable to get a grade</span></pre>
        !          2798: 
        !          2799:   <pre><span
        !          2800: 
        !          2801: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          2802: 
        !          2803:   <pre><span
        !          2804: 
        !          2805: style='font-size:9.0pt'>resource.partid.responseid.message (optional) (not yet supported)</span></pre>
        !          2806: 
        !          2807:   <pre><span
        !          2808: 
        !          2809: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; # a message that should be shown to the student</span></pre>
        !          2810: 
        !          2811:   <pre><span
        !          2812: 
        !          2813: style='font-size:9.0pt'>&nbsp;</span></pre>
        !          2814: 
        !          2815:   <pre><span
        !          2816: 
        !          2817: style='font-size:9.0pt'>resource.partid.bonustries (optional) (not yet supported)</span></pre>
        !          2818: 
        !          2819:   <pre><span
        !          2820: 
        !          2821: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # if set, added to the maxtries parameter for student </span></pre>
        !          2822: 
        !          2823:   <pre><span
        !          2824: 
        !          2825: style='font-size:9.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# total number of tries overall</span></pre>
        !          2826: 
        !          2827:   <pre>&nbsp;</pre>
        !          2828: 
        !          2829:   <h3><a name="_Toc421867137">Sample Problems</a></h3>
        !          2830: 
        !          2831:   <p class=H5><span style='layout-grid-mode:
        !          2832: 
        !          2833: both'>A Simple Problem</span></p>
        !          2834: 
        !          2835:   <p style='
        !          2836: 
        !          2837: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;problem&gt;</span></p>
        !          2838: 
        !          2839:   <p style='
        !          2840: 
        !          2841: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2842: 
        !          2843:     &lt;script type=&quot;loncapa/perl&quot;&gt;</span></p>
        !          2844: 
        !          2845:   <p style='
        !          2846: 
        !          2847: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>$length=&amp;random(10,99,.1);</span></p>
        !          2848: 
        !          2849:   <p style='
        !          2850: 
        !          2851: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>$width=&amp;random(1,10,.01);</span></p>
        !          2852: 
        !          2853:   <p style='
        !          2854: 
        !          2855: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>@area=($length*($width*10));</span></p>
        !          2856: 
        !          2857:   <p style='
        !          2858: 
        !          2859: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2860: 
        !          2861:     &lt;/script&gt;</span></p>
        !          2862: 
        !          2863:   <p style='
        !          2864: 
        !          2865: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>What 
        !          2866: 
        !          2867:     is the area of a box $length mm in length and </span></p>
        !          2868: 
        !          2869:   <p style='
        !          2870: 
        !          2871: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&amp;format($width,&quot;2E&quot;) 
        !          2872: 
        !          2873:     cm in width.</span></p>
        !          2874: 
        !          2875:   <p style='
        !          2876: 
        !          2877: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2878: 
        !          2879:     &lt;numericalresponse id=&quot;11&quot; answer=&quot;@area&quot; units=&quot;mm^2&quot;&gt;</span></p>
        !          2880: 
        !          2881:   <p style='
        !          2882: 
        !          2883: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2884: 
        !          2885:     &lt;textline&gt;&lt;/textline&gt;</span></p>
        !          2886: 
        !          2887:   <p style='
        !          2888: 
        !          2889: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2890: 
        !          2891:     &lt;responseparam name=&quot;tol&quot; type=&quot;tolerance&quot; default=&quot;5%&quot;&gt;&lt;/responseparam&gt;</span></p>
        !          2892: 
        !          2893:   <p style='
        !          2894: 
        !          2895: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2896: 
        !          2897:     &lt;/numericalresponse&gt;</span></p>
        !          2898: 
        !          2899:   <p style='
        !          2900: 
        !          2901: line-height:50%'><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;/problem&gt;</span></p>
        !          2902: 
        !          2903:   <p class=H5><span
        !          2904: 
        !          2905: style='layout-grid-mode:both'>A More Complex Problem</span></p>
        !          2906: 
        !          2907:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;problem&gt;</span></p>
        !          2908: 
        !          2909:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;displayduedate 
        !          2910: 
        !          2911:     /&gt;</span></p>
        !          2912: 
        !          2913:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;p&gt;&lt;displaytitle 
        !          2914: 
        !          2915:     /&gt;&lt;/p&gt;</span></p>
        !          2916: 
        !          2917:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;script type=&quot;loncapa/perl&quot;&gt;</span></p>
        !          2918: 
        !          2919:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$vF=&quot;&lt;b&gt; 
        !          2920: 
        !          2921:     F&lt;sub&gt;1&lt;/sub&gt; &lt;/b&gt;&quot;;</span></p>
        !          2922: 
        !          2923:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$vF1=&quot;&lt;b&gt; 
        !          2924: 
        !          2925:     F&lt;sub&gt;1&lt;/sub&gt; &lt;/b&gt;&quot;;</span></p>
        !          2926: 
        !          2927:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$vF2=&quot;&lt;b&gt; 
        !          2928: 
        !          2929:     F&lt;sub&gt;2&lt;/sub&gt; &lt;/b&gt;&quot;;</span></p>
        !          2930: 
        !          2931:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$mF=&quot;|&lt;b&gt;F&lt;/b&gt;|&quot;;</span></p>
        !          2932: 
        !          2933:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$F1mag=&quot;|&lt;b&gt;F&lt;sub&gt;1&lt;/sub&gt;&lt;/b&gt;|&quot;;</span></p>
        !          2934: 
        !          2935:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$F2mag=&quot;|&lt;b&gt;F&lt;sub&gt;2&lt;/sub&gt;&lt;/b&gt;|&quot;;</span></p>
        !          2936: 
        !          2937:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$trq1mag=&quot;|&lt;b&gt; 
        !          2938: 
        !          2939:     &lt;font face=symbol&gt;t&lt;/font&gt;&lt;sub&gt;1&lt;/sub&gt;&lt;/b&gt;|&quot;;</span></p>
        !          2940: 
        !          2941:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$trq2mag=&quot;|&lt;b&gt; 
        !          2942: 
        !          2943:     &lt;font face=symbol&gt;t&lt;/font&gt;&lt;sub&gt;2&lt;/sub&gt;&lt;/b&gt;|&quot;;</span></p>
        !          2944: 
        !          2945:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$Q1=&quot;Q&lt;sub&gt;1&lt;/sub&gt;&quot;;</span></p>
        !          2946: 
        !          2947:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$Q2=&quot;Q&lt;sub&gt;2&lt;/sub&gt;&quot;;</span></p>
        !          2948: 
        !          2949:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$tau=&quot;&lt;font 
        !          2950: 
        !          2951:     face=symbol&gt;t&lt;/font&gt;&quot;;</span></p>
        !          2952: 
        !          2953:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$tau1=&quot;&lt;font 
        !          2954: 
        !          2955:     face=symbol&gt;&lt;b&gt;t&lt;/b&gt;&lt;/font&gt;&lt;sub&gt;1&lt;/sub&gt;&quot;;</span></p>
        !          2956: 
        !          2957:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp; $val=&amp;random(1,4,1);</span></p>
        !          2958: 
        !          2959:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp; $tp=&amp;choose($val,&quot;her&quot;,&quot;her&quot;,&quot;his&quot;,&quot;his&quot;);</span></p>
        !          2960: 
        !          2961:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp; $sd=&amp;choose($val,&quot;daughter&quot;,&quot;niece&quot;,&quot;nephew&quot;,&quot;son&quot;);</span></p>
        !          2962: 
        !          2963:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;/script&gt;</span></p>
        !          2964: 
        !          2965:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;startouttext 
        !          2966: 
        !          2967:     /&gt;</span></p>
        !          2968: 
        !          2969:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$trq1mag and $trq2mag 
        !          2970: 
        !          2971:     are the magnitudes of the torques produced repectively by </span></p>
        !          2972: 
        !          2973:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>forces $vF1 and $vF2 
        !          2974: 
        !          2975:     with respect the pivot P. The magnitudes of $vF1 is </span></p>
        !          2976: 
        !          2977:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>$F1mag and that of 
        !          2978: 
        !          2979:     $vF2 is $F2mag. $Q1 and $Q2 are the locations </span></p>
        !          2980: 
        !          2981:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>on a rigid body where 
        !          2982: 
        !          2983:     $vF1 and $vF2 act.&nbsp; </span></p>
        !          2984: 
        !          2985:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;endouttext /&gt;</span></p>
        !          2986: 
        !          2987:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;optionresponse 
        !          2988: 
        !          2989:     max=&quot;600&quot;&gt;</span></p>
        !          2990: 
        !          2991:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2992: 
        !          2993:     &lt;foilgroup options=&quot;('Correct','Incorrect','Can not tell')&quot;&gt;</span></p>
        !          2994: 
        !          2995:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          2996: 
        !          2997:     &lt;conceptgroup concept=&quot;Effect of the moment-arm on the torque&quot;&gt;</span></p>
        !          2998: 
        !          2999:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3000: 
        !          3001:     &lt;foil name=&quot;1a&quot; value=&quot;Incorrect&quot;&gt;</span></p>
        !          3002: 
        !          3003:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3004: 
        !          3005:     For $F1mag larger than $F2mag , $trq1mag is larger than $trq2mag</span></p>
        !          3006: 
        !          3007:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3008: 
        !          3009:     &lt;/foil&gt;</span></p>
        !          3010: 
        !          3011:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3012: 
        !          3013:     &lt;foil name=&quot;1b&quot; value=&quot;Incorrect&quot;&gt;</span></p>
        !          3014: 
        !          3015:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3016: 
        !          3017:     For $F1mag smaller than $F2mag , $trq1mag is smaller than $trq2mag</span></p>
        !          3018: 
        !          3019:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3020: 
        !          3021:     &lt;/foil&gt;</span></p>
        !          3022: 
        !          3023:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3024: 
        !          3025:     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;foil 
        !          3026: 
        !          3027:     name=&quot;1c&quot; value=&quot;Correct&quot;&gt;</span></p>
        !          3028: 
        !          3029:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3030: 
        !          3031:     For $F1mag larger than $F2mag , $trq1mag can be less&nbsp; than $trq2mag</span></p>
        !          3032: 
        !          3033:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3034: 
        !          3035:     &lt;/foil&gt;</span></p>
        !          3036: 
        !          3037:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3038: 
        !          3039:     &lt;foil name=&quot;1d&quot; value=&quot;Correct&quot;&gt;</span></p>
        !          3040: 
        !          3041:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3042: 
        !          3043:     For $F1mag smaller than $F2mag , $trq1mag can be larger&nbsp; than $trq2mag</span></p>
        !          3044: 
        !          3045:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3046: 
        !          3047:     &lt;/foil&gt;</span></p>
        !          3048: 
        !          3049:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3050: 
        !          3051:     &lt;/conceptgroup&gt; </span></p>
        !          3052: 
        !          3053:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3054: 
        !          3055:     &lt;conceptgroup concept=&quot;For a given pivot, relation of force vector 
        !          3056: 
        !          3057:     to torque.&quot;&gt;</span></p>
        !          3058: 
        !          3059:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3060: 
        !          3061:     &lt;foil name=&quot;2a&quot; value=&quot;Correct&quot;&gt;</span></p>
        !          3062: 
        !          3063:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3064: 
        !          3065:     The moment-arm of $vF is the shortest distance from P to the line along $vF 
        !          3066: 
        !          3067:     .</span></p>
        !          3068: 
        !          3069:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3070: 
        !          3071:     &lt;/foil&gt;</span></p>
        !          3072: 
        !          3073:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3074: 
        !          3075:     &lt;foil name=&quot;2b&quot; value=&quot;Incorrect&quot;&gt;</span></p>
        !          3076: 
        !          3077:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3078: 
        !          3079:     The moment-arm of $vF is the shortest distance from P to $vF vector.</span></p>
        !          3080: 
        !          3081:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3082: 
        !          3083:     &lt;/foil&gt;</span></p>
        !          3084: 
        !          3085:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3086: 
        !          3087:     &lt;foil name=&quot;2c&quot; value=&quot;Correct&quot;&gt;</span></p>
        !          3088: 
        !          3089:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3090: 
        !          3091:     The moment-arm of $vF is not the distance from P to Q&lt;sub&gt;1&lt;/sub&gt;.</span></p>
        !          3092: 
        !          3093:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3094: 
        !          3095:     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/foil&gt;</span></p>
        !          3096: 
        !          3097:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3098: 
        !          3099:     &lt;foil name=&quot;2d&quot; value=&quot;Incorrect&quot;&gt;</span></p>
        !          3100: 
        !          3101:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3102: 
        !          3103:     The moment-arm of $vF is the distance from P to Q&lt;sub&gt;1&lt;/sub&gt;.</span></p>
        !          3104: 
        !          3105:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3106: 
        !          3107:     &lt;/foil&gt; </span></p>
        !          3108: 
        !          3109:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3110: 
        !          3111:     &lt;/conceptgroup&gt;</span></p>
        !          3112: 
        !          3113:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3114: 
        !          3115:     &lt;conceptgroup concept=&quot;Torque is force x moment-arm.&quot;&gt;</span></p>
        !          3116: 
        !          3117:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3118: 
        !          3119:     &lt;foil name=&quot;3a&quot; value=&quot;Correct&quot;&gt;</span></p>
        !          3120: 
        !          3121:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3122: 
        !          3123:     $trq1mag equals to the product of the moment-arm and $F1mag .</span></p>
        !          3124: 
        !          3125:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3126: 
        !          3127:     &lt;/foil&gt;</span></p>
        !          3128: 
        !          3129:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3130: 
        !          3131:     &lt;foil name=&quot;3b&quot; value=&quot;Incorrect&quot;&gt;</span></p>
        !          3132: 
        !          3133:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3134: 
        !          3135:     $trq1mag equals to $F1mag times the distance from Q&lt;sub&gt;1&lt;/sub&gt; 
        !          3136: 
        !          3137:     to P.</span></p>
        !          3138: 
        !          3139:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3140: 
        !          3141:     &lt;/foil&gt;</span></p>
        !          3142: 
        !          3143:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3144: 
        !          3145:     &lt;foil name=&quot;3c&quot; value=&quot;Correct&quot;&gt;</span></p>
        !          3146: 
        !          3147:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3148: 
        !          3149:     $trq1mag is not equal to the product of $F1mag and the distance from Q&lt;sub&gt;1&lt;/sub&gt; 
        !          3150: 
        !          3151:     to P.</span></p>
        !          3152: 
        !          3153:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3154: 
        !          3155:     &lt;/foil&gt;</span></p>
        !          3156: 
        !          3157:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3158: 
        !          3159:     &lt;foil name=&quot;3d&quot; value=&quot;Incorrect&quot;&gt;</span></p>
        !          3160: 
        !          3161:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3162: 
        !          3163:     $trq1mag is not equal to the product of the moment-arm and $F1mag .</span></p>
        !          3164: 
        !          3165:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3166: 
        !          3167:     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/foil&gt;</span></p>
        !          3168: 
        !          3169:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3170: 
        !          3171:     &lt;/conceptgroup&gt;</span></p>
        !          3172: 
        !          3173:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3174: 
        !          3175:     &lt;conceptgroup concept=&quot;Pivot point is required to calculate torque&quot;&gt;</span></p>
        !          3176: 
        !          3177:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3178: 
        !          3179:     &lt;foil name=&quot;4a&quot; value=&quot;Correct&quot;&gt;</span></p>
        !          3180: 
        !          3181:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3182: 
        !          3183:     $tau1 vector depends on the location of P.</span></p>
        !          3184: 
        !          3185:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3186: 
        !          3187:     &lt;/foil&gt;</span></p>
        !          3188: 
        !          3189:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3190: 
        !          3191:     &lt;foil name=&quot;4b&quot; value=&quot;Incorrect&quot;&gt;</span></p>
        !          3192: 
        !          3193:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3194: 
        !          3195:     $tau1 vector does not depend on the location of P.</span></p>
        !          3196: 
        !          3197:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3198: 
        !          3199:     &lt;/foil&gt;</span></p>
        !          3200: 
        !          3201:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3202: 
        !          3203:     &lt;foil name=&quot;4c&quot; value=&quot;Correct&quot;&gt;</span></p>
        !          3204: 
        !          3205:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3206: 
        !          3207:     $tau1 vector has no meaning unless a pivot is selected.</span></p>
        !          3208: 
        !          3209:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3210: 
        !          3211:     &lt;/foil&gt;</span></p>
        !          3212: 
        !          3213:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3214: 
        !          3215:     &lt;foil name=&quot;4d&quot; value=&quot;Incorrect&quot;&gt;</span></p>
        !          3216: 
        !          3217:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3218: 
        !          3219:     $tau1 vector can be determined without selecting P. </span></p>
        !          3220: 
        !          3221:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3222: 
        !          3223:     &lt;/foil&gt;</span></p>
        !          3224: 
        !          3225:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3226: 
        !          3227:     &lt;/conceptgroup&gt; </span></p>
        !          3228: 
        !          3229:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3230: 
        !          3231:     &lt;conceptgroup concept=&quot;torque from 2 forces acting along same line&quot;&gt;</span></p>
        !          3232: 
        !          3233:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3234: 
        !          3235:     &lt;foil name=&quot;5a&quot; value=&quot;Correct&quot;&gt;</span></p>
        !          3236: 
        !          3237:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3238: 
        !          3239:     Two equal forces, acting on a body along the same line but at different positions, 
        !          3240: 
        !          3241:     produce equal torques with respect to a given pivot.&quot;</span></p>
        !          3242: 
        !          3243:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3244: 
        !          3245:     &lt;/foil&gt;</span></p>
        !          3246: 
        !          3247:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3248: 
        !          3249:     &lt;foil name=&quot;5b&quot; value=&quot;Incorrect&quot;&gt;</span></p>
        !          3250: 
        !          3251:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3252: 
        !          3253:     Two equal forces, along the same line, produce equal torques with respect 
        !          3254: 
        !          3255:     to a given pivot only if they act at the same point on a body.&quot;</span></p>
        !          3256: 
        !          3257:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3258: 
        !          3259:     &lt;/foil&gt;</span></p>
        !          3260: 
        !          3261:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3262: 
        !          3263:     &lt;foil name=&quot;5c&quot; value=&quot;Incorrect&quot;&gt;</span></p>
        !          3264: 
        !          3265:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3266: 
        !          3267:     Two equal forces acting on a body along the same line but at different positions, 
        !          3268: 
        !          3269:     produce equal torques for only one pivot.&quot;</span></p>
        !          3270: 
        !          3271:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3272: 
        !          3273:     &lt;/foil&gt;</span></p>
        !          3274: 
        !          3275:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3276: 
        !          3277:     &lt;/conceptgroup&gt;</span></p>
        !          3278: 
        !          3279:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3280: 
        !          3281:     &lt;foil name=&quot;6&quot; value=&quot;unused&quot;&gt;</span></p>
        !          3282: 
        !          3283:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3284: 
        !          3285:     This foil will never display since it is unused.</span></p>
        !          3286: 
        !          3287:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3288: 
        !          3289:     &lt;/foil&gt;</span></p>
        !          3290: 
        !          3291:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3292: 
        !          3293:     &lt;/foilgroup&gt;</span></p>
        !          3294: 
        !          3295:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3296: 
        !          3297:     &lt;notsolved&gt;</span></p>
        !          3298: 
        !          3299:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3300: 
        !          3301:     &lt;hintgroup&gt;</span></p>
        !          3302: 
        !          3303:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>Think the definition 
        !          3304: 
        !          3305:     of the torque. The force and the moment-arm respect to the pivot.&nbsp; </span></p>
        !          3306: 
        !          3307:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3308: 
        !          3309:     &lt;/hintgroup&gt;</span></p>
        !          3310: 
        !          3311:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
        !          3312: 
        !          3313:     &nbsp;&nbsp;&lt;/notsolved&gt;</span></p>
        !          3314: 
        !          3315:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;/optionresponse&gt;</span></p>
        !          3316: 
        !          3317:   <p><span style='font-size:8.0pt;font-family:"Courier New"'>&lt;/problem&gt;</span></p>
        !          3318: 
        !          3319:   <h3>&nbsp; </h3>
        !          3320: 
        !          3321:   <p> <img border=0 width=432 height=370
        !          3322: 
        !          3323: src="Session%20On2_files/image003.png" v:shapes="_x0000_i1025"> </p>
        !          3324: 
        !          3325:   <p><span style='font-size:14.0pt'><b>Fig. 3.1.1</b></span><span
        !          3326: 
        !          3327: style='font-size:14.0pt'> Ð Internal Structure of Homework Handler</span></p>
        !          3328: 
        !          3329: </div>
        !          3330: 
        !          3331: <br
        !          3332: 
        !          3333: clear=ALL style='page-break-before:always;'>
        !          3334: 
        !          3335: <div class=Section2> </div>
        !          3336: 
        !          3337: </body>
        !          3338: 
        !          3339: </html>
        !          3340: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>