ࡱ> lnghijk7  bjbjUU q7|7|Wl, , , , , , , 4` fffh~f g4` !,i6qqqqrxmz! ! ! ! ! ! !$# %z-!, Y{rrY{Y{-!, , qqB!Y{, q, q!Y{! , , qi E` [fY TX!0!&N&?N& ` ` , , , , eHealth Sizing Wizard Design Specification Create Date: Feburary 23, 2004 Last Modified Date:  SAVEDATE \@ "MMMM d yyyy" \* MERGEFORMAT March 8 2004 Version 1.4 Prepared By: Joe Kuefler AUTHOR\* Caps \* MERGEFORMAT  AUTHOR\* Caps \* MERGEFORMAT  Copyright  DATE \@ "yyyy" \* MERGEFORMAT 2004 Concord Communications, Inc. 600 Nickerson Rd. Marlborough, MA 01752 All Rights Reserved Abstract This document explains the design of the eHealth sizing wizard. It covers overall architecture, as well as design decisions for the sub-problems encountered. The document will be updated over time to reflect future design decisions. The document steers away from the actual functionality of the wizard, since the functionality will assuredly change over time. The authors intention is that this document will remain relevant however long the wizard is in use. Legal Copyright  DATE \@ "yyyy" \* MERGEFORMAT 2004 Concord Communications, Inc. All rights reserved. The information provided in this document is the proprietary and confidential information of Concord Communications, Inc. (Concord). You may use this information solely for your internal evaluation as requested by Concord. This information is subject to change at any time without notice, and Concord makes no representation, warranty or covenant regarding this information or any software or other products related thereto. Revision History DateAuthorComments CREATEDATE \@ "M/d/yyyy" \* MERGEFORMAT 3/8/2004Rich HawkesV1.4, Added minutes and issues from first review meeting CREATEDATE \@ "M/d/yyyy" \* MERGEFORMAT 2/26/2004Joe KueflerDraft 1.3, first complete version CREATEDATE \@ "M/d/yyyy" \* MERGEFORMAT 2/25/2004Joe KueflerDraft 1.2, more meat, about 80% done with spec CREATEDATE \@ "M/d/yyyy" \* MERGEFORMAT 2/24/2004Rich HawkesDraft 1.1, comments and questions in red CREATEDATE \@ "M/d/yyyy" \* MERGEFORMAT 2/23/2004Joe KueflerDraft 1.0Related Documents Sizing Wizard Product Requirements:  HYPERLINK "http://coogle.concord.com/dir/unbranched-vobs/specs/product/utilities/DB_SizingWizardPRD.doc" http://coogle.concord.com/dir/unbranched-vobs/specs/product/utilities/DB_SizingWizardPRD.doc Sizing Wizard Approach Document:  HYPERLINK "http://coogle.concord.com/dir/unbranched-vobs/specs/product/utilities/DB_SizingWizardApproach.doc" http://coogle.concord.com/dir/unbranched-vobs/specs/product/utilities/DB_SizingWizardApproach.doc Original Sizing Spreadsheets shipped with eHealth 4.8, 5.02, 5.50, 5.60a and 5.6.1. eHealth 4.5 documentation, which still embodies the doc teams efforts to grapple with the sizing problem before the Sizing Spreadsheet came about.  TOC \o "1-2" \h \z  HYPERLINK \l "_Toc66506712" eHealth Sizing Wizard  PAGEREF _Toc66506712 \h 1  HYPERLINK \l "_Toc66506713" Design Specification  PAGEREF _Toc66506713 \h 1  HYPERLINK \l "_Toc66506714" Version 1.4  PAGEREF _Toc66506714 \h 1  HYPERLINK \l "_Toc66506715" Prepared By:  PAGEREF _Toc66506715 \h 1  HYPERLINK \l "_Toc66506716" Joe Kuefler  PAGEREF _Toc66506716 \h 1  HYPERLINK \l "_Toc66506717" Abstract  PAGEREF _Toc66506717 \h 2  HYPERLINK \l "_Toc66506718" Legal  PAGEREF _Toc66506718 \h 2  HYPERLINK \l "_Toc66506719" Revision History  PAGEREF _Toc66506719 \h 2  HYPERLINK \l "_Toc66506720" Related Documents  PAGEREF _Toc66506720 \h 2  HYPERLINK \l "_Toc66506721" 1 Introduction  PAGEREF _Toc66506721 \h 4  HYPERLINK \l "_Toc66506722" 1.1 Design Requirements  PAGEREF _Toc66506722 \h 4  HYPERLINK \l "_Toc66506723" 1.2 Gets  PAGEREF _Toc66506723 \h 4  HYPERLINK \l "_Toc66506724" 1.3 Dont Gets  PAGEREF _Toc66506724 \h 4  HYPERLINK \l "_Toc66506725" 1.4 Assumptions  PAGEREF _Toc66506725 \h 5  HYPERLINK \l "_Toc66506726" 1.5 Dependencies  PAGEREF _Toc66506726 \h 5  HYPERLINK \l "_Toc66506727" 1.6 Intended Audience  PAGEREF _Toc66506727 \h 5  HYPERLINK \l "_Toc66506728" 1.7 Glossary of Terms  PAGEREF _Toc66506728 \h 5  HYPERLINK \l "_Toc66506729" 2 Solution Overview  PAGEREF _Toc66506729 \h 8  HYPERLINK \l "_Toc66506730" 2.1 Summary of Use Cases  PAGEREF _Toc66506730 \h 9  HYPERLINK \l "_Toc66506731" 2.2 Error Handling and Logging Approach  PAGEREF _Toc66506731 \h 9  HYPERLINK \l "_Toc66506732" 2.3 Testing Approach  PAGEREF _Toc66506732 \h 10  HYPERLINK \l "_Toc66506733" 3 Design Details  PAGEREF _Toc66506733 \h 11  HYPERLINK \l "_Toc66506734" 3.1 Basic CGI Operation  PAGEREF _Toc66506734 \h 11  HYPERLINK \l "_Toc66506735" 3.2 Copy&Paste from Snoopers  PAGEREF _Toc66506735 \h 14  HYPERLINK \l "_Toc66506736" 3.3 Template Merge Operation  PAGEREF _Toc66506736 \h 15  HYPERLINK \l "_Toc66506737" 3.4 Language (Localization) Considerations  PAGEREF _Toc66506737 \h 19  HYPERLINK \l "_Toc66506738" 3.5 Snooper Design  PAGEREF _Toc66506738 \h 20  HYPERLINK \l "_Toc66506739" 3.6 eHealth Sizing Computations  PAGEREF _Toc66506739 \h 21  HYPERLINK \l "_Toc66506740" 3.7 Layout Configuration File (LCF) Generation  PAGEREF _Toc66506740 \h 22  HYPERLINK \l "_Toc66506741" 3.8 Error Handling  PAGEREF _Toc66506741 \h 22  HYPERLINK \l "_Toc66506742" 3.9 Debug and Performance Instrumentation  PAGEREF _Toc66506742 \h 22  HYPERLINK \l "_Toc66506743" 4 Testing Details  PAGEREF _Toc66506743 \h 24  HYPERLINK \l "_Toc66506744" 4.1 Smoke Test  PAGEREF _Toc66506744 \h 24  HYPERLINK \l "_Toc66506745" 4.2 Specific Use-Cases  PAGEREF _Toc66506745 \h 24  HYPERLINK \l "_Toc66506746" 5 CM Changes  PAGEREF _Toc66506746 \h 26  HYPERLINK \l "_Toc66506747" 6 Review Minutes  PAGEREF _Toc66506747 \h 27  Introduction The eHealth sizing wizard (aka SWIZ) is a CGI application hosted on  HYPERLINK "http://www.concord.com" www.concord.com that complements the eHealth product installer, and the pre-sales process. In pre-sales situations, and for existing customers to plan hardware upgrades, SWIZ can generate system specifications appropriate for a specified eHealth configuration. SWIZ can also generate a layout configuration file (LCF), which can be fed into the actual eHealth installer, to limit manual input of data during the installation process. SWIZ includes several downloadable utilities that aid in analyzing (i.e. snooping) customer systems, and thereby automatically generate the inputs from which the sizing results are calculated. Design Requirements For a full list of requirement, please consult the PRD:  HYPERLINK "http://coogle.concord.com/dir/unbranched-vobs/specs/product/utilities/DB_SizingWizardPRD.doc" http://coogle.concord.com/dir/unbranched-vobs/specs/product/utilities/DB_SizingWizardPRD.doc Gets The current design yields: Fully functional wizard for deployment on both: Solaris+Apache (our standard development platform) and Win32+IIS (the MIS platform for  HYPERLINK "http://www.concord.com" www.concord.com). Binary-specific, downloadable snoopers for all supported eHealth platforms: Solaris, HP-UX, Win32. (Note: one of the snoopers cannot depend on eHealth framework in any way whatsoever, since it must run on systems that do not have eHealth installed). Support for international versions of the web-based wizard and snooper executables. Localized versions may be created on an as needed basis. Creation of a new localized version of the wizard is a matter of translating the component web page contents. Use of the Business Service Console look and feel in the sizing wizard. Ability to easily modify the look and feel of the sizing wizard without recompiling any C/C++ code. Dont Gets A few features and approaches were discussed that are not being attempted in the initial release of the wizard: Incomplete Sizing Models: The first incarnation of the sizing wizard will not claim to solve all sizing problems, especially with respect to AR. We have known holes in the modelling of AR systems. Although this wizard will give us a framework for implementing those models, we cannot initially commit to any accuracy beyond what the Sizing Spreadsheet offers us today. No Generalized Framework: This project will not provide Concord with a generic framework to allow applications to avoid use of MKS NutCracker on Windows platforms. While the DEKAF framework could potentially provide that capability, much more thought and technical review is necessary before this issue can be properly addressed. Not Part of eHealth Builds: The sizing wizard is a stand-alone project that does not depend on eHealth, nor any of the eHealth building infrastructure within the VOBs (Imakefiles, InstallTree.dat, etc.). The wizards code has been checked-into the VOBs in a convenient location ($TOP/wsCore/oracle/sizingWizard) but could easily be moved, it this gives people the (false) impression that it is part of eHealth. The nightly CMS build scripts ignore the sizingWizard directory (by design) because the $TOP/wsCore/oracle/Imakefile does not list this directory as a child. Assumptions Approval was reached to build SWIZ on an open-source framework called DEKAF, developed by Joe Kuefler (before joining Concord). The use of DEKAF made it easier for SWIZ to meet its requirements. There is concern that the DEKAF framework provides more baggage than is needed for this project, which is a primary reason why it would need more review before adopting it for general use in eHealth. Because of Joes familiarity with DEKAF, however, and the stability of the framework, it was felt that it provided a solid solution for us to expediently solve the sizing problem. Dependencies The sizing wizard depends on the DEKAF framework for its core CGI capabilities. It has no dependencies on existing eHealth projects. A sizing solution is needed expediently to address field issues with sizing eHealth v5.6.5. The project schedule allows delivery of the wizard to  HYPERLINK "http://www.concord.com" www.concord.com in Q1 2004. The wizard is dependent upon the general operating environment on  HYPERLINK "http://www.concord.com" www.concord.com (win32 machine running IIS) and has several code dependencies within the VOBs: $TOP/wsCore/oracle/ libNoNutC.h/.C libLayout.h/.C libSnoop.h/.CThe 5.6 sizing code (C/C++), designed without NutCracker or RogueWave dependencies, is being recompiled and included in the wizards snooping executables.$TOP/tools/eng_tools/dekaf/ dekaf.h solaris.g++/ win32/ hpux.g++/The Open Source DEKAF framework: a header file and a set of libraries for each eHealth platform. In addition to these code dependencies, the sizing wizard (and the snoopers) are built with g++ (the GNU C++ compiler) on both Solaris and HP. The Microsoft compiler is being used for Win32 builds. The version of g++ in /home/cms/3rdParty is badly mangled and as such, the Solaris and HP builds are restricted to the machines: titus and ahab respectively. Both of these machines were found with a complete (and properly functioning) g++ compiler. For win32 builds, any PC in Concord Engineering should work. Intended Audience Anyone interested in supporting or contributing to the sizing wizard project MIS (for planning future wizard deployment) Glossary of Terms TermDefinition1MMAbbreviation for Single Machine Migration which implies that a customer wants to upgrade from eHealth 4.8 or 5.02 to the current version without changing hardware.1MUAbbreviation for Single Machine Upgrade which implies that a customer wants to upgrade from eHealth 5.5 (or above) to the current version without changing hardware.2MMAbbreviation for Two Machine Migration which implies that a customer wants to upgrade from eHealth 4.8 or 5.02 to the current version by bringing up a 2nd machine.2MUAbbreviation for Two Machine Upgrade which implies that a customer wants to upgrade from eHealth 5.5 (or above) to the current version by bringing up a 2nd machine. Note: this may not be supported in many situations, but the wizard needs to handle it anyway.CGICommon Gateway Interface (see  HYPERLINK "http://www.w3c.org/CGI" www.w3c.org/CGI ) CookieAn HTTP method for a server process to place small amounts of data into a web browser, with some sort of permanency (see www.w3c.org).Cookied DataData that is stored on the server-side of the web, but is associated with unique number (KID) that is placed into the users browser via the HTTP cookie mechanism. Note that SWIZ (like most DEKAF applications) only relies on the cookie mechanism for storing the KID on the client. Everything else is stored on the server and the KID is used as the primary key.DEKAFOpen Source framework for producing CGIs with C/C++DEKAF tokenSee token.FastCGIA CGI accelerator, already integration with the DEKAF framework. See:  HYPERLINK "http://www.fastcgi.com" http://www.fastcgi.com .Form-variableAn HTML mechanism for passing both hidden data and user-entered data from a web screen to a web-server program. GETHTTP method for transferring data from a browser to a web server (see  HYPERLINK "http://www.w3c.org" www.w3c.org).KIDA unique visitor ID, provided by the DEKAF framework. This differs slightly from a session ID in the sense that the KID remains consistent with a browser, even after the PC is rebooted. A new KID is issued each time a unique visitor runs a DEKAF application, or when a user switches from IE to Mozilla, or when the web site is moved from test.fubar.com to  HYPERLINK "http://www.fubar.com" www.fubar.com. Cookies (and thus KIDs) are associated with the fully qualified domain name.nhi1The eHealth snooper which snoops both system attributes and eHealth attributes. This snooper expects to find eHealth installed and will complain if it doesnt find itnhi2Simplified snooper that only snoops system attributes (used for fresh installs and the 2nd machine in 2MM).POSTHTTP method for transferring data from a browser to a web server (see  HYPERLINK "http://www.w3c.org" www.w3c.org).SnoopA verb which means analyze a system.SnooperAn executable that snoopsSWIZAcronym for eHealth sizing wizardTemplate (html template)An HTML file that is processed by a DEKAF executable before it is served. Depending on the design, templates are usually renderable, but will typically be littered with DEKAF tokens.TokenAn embedded DEKAF token, usually in an HTML template. There are three types of DEKAF tokens: {{V=FUBAR}} :: a value token (the token, including its curlies gets replaced by a corresponding value at runtime) {{FUBAR}} :: a full-line token (the entire line of the HTML template gets replaced by the value at runtime) {{beg:fubar}} . . . {{end:fubar}} :: a special type of full-line token pair to delimit a section of the template. Solution Overview SWIZ is a CGI program that produces HTML output, based on a directory full of supporting files, a language specification, cookied data and its own compiled logic. The SWIZ program (and its supporting files) can be placed anywhere within a document root. The only web server configuration change that needs to be made is to enable execution of the swiz executable (as a script or CGI). The diagram below shows the architecture at a glance and the table below it explains various things you see in the diagram:  SWIZ ComponentBrief Explanationswiz[.exe]The SWIZ executable which processes the CGI requests and holds most of the sizing wizard logic.images/, swiz.css, swiz.jsSupport content for the sizing wizard (served-up directly by the web server, not through swiz[.exe]).swiz.ini, swiz.varsInitialization files which are [re]read for each CGI request. These INI files give the swiz executable much more flexibility, allowing many program changes without recompiling the program.eng, fre, spa, jpn, Each language specification for the wizard becomes a skin. It consists of an INI file with localized strings, plus a set of HTML templates that override the default language. Each language directory is named according to ISO-639-2 standard (a three character abbreviation). A customers language selection is cookied and directs swiz.exe to pull HTML templates (and the language.ini file) from a specific directory.solaris, hpux, windowsThese platform-specific directories have nothing to do with the wizard deployment platform (and will be part of  HYPERLINK "http://www.concord.com" www.concord.com, too). They hold the snooper executables for downloading onto target systems. There are two snoopers (currently nhi1.exe and nhi2.exe). For each snooper, the wizard maintains one executable per language per platform (24 distinct executables in all, all built by the sizing wizard makefile)./var/tmp or \\unc\pathSWIZ uses a tiny database to store cookied data. This allows the wizard to retain customer preferences and is also used for the uploading of snooped data. Concords final deployment scenario poses one wrinkle that the design must address, since a load balancer sits between the cloud and a bank of Concord web servers:  Each web server should have a redundant install of the sizing wizard, but cookie storage must be provided on a location that is shared between the web servers. Summary of Use Cases The sizing wizard has currently one runtime use case: it runs on  HYPERLINK "http://www.concord.com" www.concord.com. (Functional use cases are described in a separate document see the Sizing Wizard Approach document.) Placing a version of this wizard on the eHealth media has been discussed, but this is not feasible, since we would need to ship a mini-version of Apache (and probably a web browser for UNIX) in order to serve up the wizard. While this concept could provide a future general replacement of the two eHealth installers (InstallShield on Win32 and Bourne Shell on UNIX), it is not currently a scoped project. Error Handling and Logging Approach The sizing wizard leverages both server-side and client-side debugging. The server-side debugging leverages the DEKAF log and is similar to Concord CuDebug classes. The client-side debugging is via a JavaScript api called swizDebug(). These are fully described in section 3. Testing Approach The bulk of the testing can be done on the development platform: Solaris+Apache. Currently, the database team machine titus is set up for this purpose (on port 81, so as not to interfere with any eHealth installation on the same machine). As we get close to deployment, the wizard will need to be tested on Win32+IIS and eventually, with the load balancer in place. Design Details Basic CGI Operation The numbers in the diagram correspond to the detailed steps explained below:  (1)Request comes from browser. When someone initially navigates to the wizard, this will be a GET request with an empty query string. The wizard uses POST requests to pass data to itself through the browser. This prohibits bookmarking any individual screens within the wizard, but the POST is necessary because of the amount of data going between the browser and the web server (especially for actions like posting snooped data). The first time the user reaches the wizard (with a particular browser like IE), the incoming HTTP header will have no cookie information. Each subsequent visit to SWIZ will include a standard DEKAF cookie called KID, which is a pseudo-random number, which uniquely identifies the visitor. Cookies (including the DEKAF KID) are stored within the browser. When someone switches browsers, switches to a different PC, re-installs the PCs operating system or simply clears cookies they will be issued a new KID by the DEKAF framework and will appear to SWIZ as a new visitor. This is never a problem for SWIZ, since there is no expectation to maintain the Wizards state when switching from one PC to another. The only exception to this rule is when an SE is presenting to Concord prospect on a different laptop than the one they used in their hotel room the night before. In this guess, we are hoping to provide them with save/load capability, tied to their concord email address.(2)Web server calls swiz[.exe] program. GET or POST data is processed by DEKAF API kGetNextRequest() and chopped up into name-value pairs by kParseNameValuePairs(). See  HYPERLINK "http://www.w3c.org/CGI" www.w3c.org/CGI for a full list of the standard CGI environment variables.(3)SWIZ loads its INI files Swiz.ini contains a few variables that were not efficacious to hardcode into the swiz executable, including: LANGS=eng,fre,spa,jpn -- list of language codes DLANG=eng -- the default language CACHEDIR=/var/tmp/swiz - where cookied data is to be stored When the wizard is deployed in the DMZ, the CACHEDIR would be altered to something like this: CACHEDIR=\\dmzhost\\C$\\swizdir Swiz.vars contains a list of variables (and default values) that will be propagated from screen to screen as hidden HTML form variables. The swiz.vars file constitutes the template for one of the two cookied data files. These SWIZVARS include: LANG= UseCase= SourceSystem= SourceSystemType= TargetSystem= TargetSystemType=(4)SWIZ Loads Cookied Data (if any) Example cookie data: /var/tmp/swiz/1634786127.vars -- SWIZVARS for this unique visitor /var/tmp/swiz/1634786127.ssf -- Sizing Data for this unique visitor At this point, all prior state information (if any) has been restored to the SWIZ executable.(5)The Request is Classified SWIZ Requests are one of three types: Normal CGI Requests as part of the Wizard user-interface See (6n) below Snooper Downloads (requested by a user by clicking in the wizard) See (6d) below Snooped Data Uploads (direct POST data from the snooper executables, acting as browsers) See (6u) below The $REQUEST_URI variable is matched against $SCRIPT_NAME to discern whether or not the request constitutes a snooper download request (see Download Request below). Cont: Normal Request (wizard user interface): (6n)SWIZ outputs one HTML page (wizard screen) that is now tailored according to LANG: SWIZ merges POST data into SWIZVARS and into the SSF data. Not every html form-variable matches variables in SWIZVARS or the SSF. Only form-variables that match them are merged. A few key variables that are included in every POST are: Commit=xxx :: the screen that the user is leaving (or attempting to leave) Goto=xxx :: the screen that the user wants to go to (usually the next screen) CheckVals=xxx :: 0: user is moving backwards, 1: user is moving forwards Each screen typically corresponds to the basename of a language-specific html template. For instance, Goto=WELCOME would fetch the template eng/WELCOME.html whenever the LANG variable is unset or set to eng. See Template Merging below to understand more about how HTML is served by a DEKAF application. If the user is moving forward in the wizard, then the form-variable CheckVals will be set to 1. This causes the commit logic to validate required fields (server-side) and formulate appropriate error messages when violations occur. When a violation occurs, the Goto variable is ignored and the user is forced to be stuck at the Commit screen.(7n)SWIZ [re]writes cookied data after every normal wizard screen interaction. Cont: Download Request (user clicked on a snooper download) (6d)In order to give the Save As dialog of the browser the best possible chance of getting the filename correct, SWIZ makes its download requests look like this: {SWIZ}/download/{OS}/nhi1{LANG}.exe e.g. http://fubar/sizing/swiz/download/solaris/nhi1eng.exe There is no download directory underneath the swiz tree. This is a fake pathname that the SWIZ program interprets (much like a query string, or POST data). Note that there are currently two snoopers: nhi1 and nhi2, three supported eHealth platforms (Solaris, Win32 and HP-UX) and currently at least four language localizations, which yields 24 distinct snoopers:  After parsing the fake pathname, translating it to the real pathname of a snooper executable, and validating that the executable is installed in the correct place, SWIZ does an HTTP REDIRECT to the physical file, allowing the web server to set the mime type and other header attributes. The net result is the browsers Save As dialog:  Cont: Upload Request (POST data from a snooper)  (6u)Each of the snooper executables is equipped with knowledge of sockets and enough HTTP to perform a POST back to the wizard. In this case, the snooper (which is another DEKAF executable) is actually not a CGI program at all, but is acting as a browser. While the initial wizard session waits for the user to download and run the snooper (or snoopers), it uses a JavaScript timer to check for the POST data (every 15 seconds or so). The net result is the illusion that the snooper has actually talked to the browser. There are certain scenarios where the snoopers will fail to POST their data back to concord.com. A fall-back method is provided for these (few) customers and is explained in the next section Copy&Paste from Snoopers. Copy&Paste from Snoopers Since the snooper exes maintain their own IP Stack, they require a direct browser tunnel and do not know how to navigate through proxy servers and a few other network/security complexities. Proxy servers have become pass and are rarely in use: most corporations use various address translation schemes for routing HTTP requests from browsers inside their enterprise to web sites that are outside their enterprise. A small percentage of Concords customers apparently cannot browse the Internet. This type of corporate restriction is becoming less common, but at these sites the snoopers will fail to POST their data back to concord.com. Both snoopers have been coded to detect this condition (i.e. the failed POST) and will prompt the user with a small ASCII-style menu that gives them re-try options, and the alternative for copy&paste. The copy&paste or block method is also available on the command line of both snoopers by making use of either -b or block. When a data block is requested or otherwise generated, great care is taken to generate a block that is visually inspectable by an average computer person. The output is Hex encoded (which will preserve all localized strings) and formatted for 79 characters per line, with a start and stop delimiter and a padding sequence to maintain a rectangular shape: [[BEGIN:43666746696C6556657273696F6E3D31265F43666746696C6556657273696F6E3D2654 617267657454696D6547617468657265643D323030342D30322D32302031313A34323A3230265F 54617267657454696D6547617468657265643D265461726765744F733D77696E3332265F546172 6765744F733D265461726765744F735665723D352E302E323139352E322E536572766963652050 61636B2033265F5461726765744F735665723D77696E333273646B3A47657456657273696F6E45 7828292654617267657452616D4D6567733D32303437265F54617267657452616D4D6567733D77 696E333273646B3A476C6F62616C4D656D6F727953746174757328292654617267657453776170 4D6567733D32303437265F546172676574537761704D6567733D6E6F2073776170206F6E207769 6E3332000000000000000000000000000000000000000000000000000000000000000000:END]] The data block needs to make its way back into the wizard, through the browser session that is looping for the POST data (which it will never find). If an SE has a laptop that can browse the Internet, a floppy disk and the notepad program could be used to accomplish this. It can be copy&pasted in pieces, as long as they are all present when the [NEXT] button is clicked in the brower. The wizard uses a scrollable HTML textarea control to receive the data. For some number of customers (probably small), the pain that this data block will cause them (or the SE) will pale in comparison to the benefit that the wizard provides. If we find that more than a handful of customers are resorting to the data block, then we can consider some improvements: Data compression before encoding (to shorten the number of lines). The wizard would have to be coded for decompression after de-encoding the block. Other encoding schemes when no localized strings are involved (like Base-64 which would result in as much data). File saving options on the snoopers. If HTTP is closed, but FTP is possible (it is unclear why this would be prevalent), FTP options could be added to the snoopers:  HYPERLINK "ftp://ftp.concord.com" ftp.concord.com and the FTP sockets protocol could automatically be wired in. The wizard would have to be enhanced to poll for data on  HYPERLINK "ftp://ftp.concord.com" ftp.concord.com, as well as in the cookie storage area. Template Merge Operation Template merging is a cooperative effort between a DEKAF executable and HTML templates. Although both are usually developed simultaneously, after a DEKAF application is done, the templates can usually be modified substantially without touching the DEKAF applications code. Templates are HTML files that are processed by SWIZ and served through the CGI mechanism (never directly by the web server). All SWIZ templates are stored in language-specific sub-directories:  Although DEKAF template are normally renderable by themselves, they are typically peppered with DEKAF tokens: funny looking variable names encased in double curlies. DEKAF Tokens There are three types of DEKAF tokens. Token TypeExampleCommentsValue Token{{V=FUBAR}}At runtime, the token (including its curlies) gets replaced by a programmatic value within the DEKAF application.Full-line Token{{FUBAR}}At runtime, the entire line that contains the token gets replaced by a programmatic value within the DEKAF application.Section Token {{beg:fubar}} . . . {{end:fubar}}Sections within a template are marked by a special type of full-line token pair (by convention). Delimited sections can be used to: Output a template, piece by piece. Hide part of a template. Re-arrange the order of things in a template. Repeat a portion of a template (oftentimes driven by database data or some such dynamic source). Separation between Form and Function Template-driven applications require slightly more thought when being developed, but the pay off is huge. By separating form (or GUI presentation) from function (the workings and flow of the program), the application logic can be put to bed while UI development continues ad infinitum. 100% Pure Java may be Java that does not include OCX controls, but 100% pure DEKAF is a program contains no HTML at all, but rather relies on templates (*.html), style sheets (*.css) and INI files to compose the GUI at runtime. DEKAF vs. SHTML, ASP, JSP, PHP, etc. There are two fundamental differences between a CGI program written in DEKAF verses the myriad of other server-side web technologies. The first difference is the fact that DEKAF applications are compiled once but run everywhere. The second fundamental difference between DEKAF applications and other server-side technologies is a paradigm-shift of programming control from the template back into the CGI program. In essence, DEKAF applications are a conscious step backward from where web development has gone. A simple programming example demonstrates this, and will be carried through the server-side technologies in the following sections. These sections will also aid someone who is already familiar with any of these technologies and wants to understand DEKAF. Flat Content Lets look at this flat HTML and its rendering: Flat HTMLBrowsers Rendering HELLO
HELLO
HELLO
HELLO HELLO HELLO Early CGI Below is a programmatic approach as a CGI program: CGI Program written in PERLResulting HTML sent to Browser#! /bin/perl print "Content-type: text/html\n\n"; print "\n"; print "\n"; for ($ii=1; $ii<=3; $ii++) printf ("\tHELLO
\n", $ii); print "\n"; print "\n"; HELLO
HELLO
HELLO
This style of CGI programming was prevalent in the early years. Perl was a logical pick, since most people were not C programmers and since perl beat the heck out of Bourne shell. Note that CGI programs have to output the HTTP header as well as the content. A minimum header boils down to the MIME TYPE (in this case text/html), which explains the first print statement. This programming approach was easy to write but very difficult to maintain. With full-blown CGI programs, the HTML pages are interleaved with code and the whole thing became a goopy mess. The other killer for CGI was that things like database connections had to continually be re-opened because the CGI programs go in and out of memory with each HTTP request. Server-side Includes (SSI/SHTML) The server-side include (SSI) concept gave programmers a way to keep most of the HTML out of their CGI programs by embedding special include and exec statements into their HTML. Since the web server had to look for these statements, purely flat content was typically left as *.html and content that might include these server-side exec statements was typically named *.shtml. The apache configuration was adjusted accordingly to enable text/x-server-parsed-html when serving *.shtml. SHTML and Corresponding Perl ProgramResulting HTML sent to Browser #! /bin/perl for ($ii=1; $ii<=3; $ii++) printf ("\tHELLO
\n", $ii);  HELLO
HELLO
HELLO
A few sites still use SSI, but it really only served to start a trend toward ASP, JSP and (now) PHP. Microsoft ASP Microsoft created a way to embed programs directly into the HTML (instead of just an exec directive like SSI). Very suitably named, these are called active server pages (ASP). Here is an example ASP. Notice the logical progression from SSI, but how the VisualBasic (VB) code is actually embedded into the HTML. ASP CodeResulting HTML sent to Browser <% For i = 1 To 3 %> >HELLO
<% Next %>  HELLO
HELLO
HELLO
This brilliant move by Microsoft caused an explosive growth Microsofts market-share. VB is easy for people to pick up and existing VB programmers became web developers over night. The problems with ASP are two fold: (1) despite solutions that provide ASP on other platforms, it really is a Windows-only solution, (2) BASIC is not much of a programming language (assuming of course that it can even be considered one). Suns JSP Feeling the heat, the UNIX community quickly followed suit, but settled on a real programming language, the new Holy Grail: Java. JSP CodeResulting HTML sent to Browser <% for (int ii = 1; ii <= 3; ++ii) { out.println ("HELLO
"); } %>  HELLO
HELLO
HELLO
 PHP Despite how vigorously Java has been thrust forward, not everyone buys the merits of Java, as evidenced by the PHP phenomenon. PHP CodeResulting HTML sent to Browser HELLO
" } ?>  HELLO
HELLO
HELLO
 DEKAF: One Step Backward, Two Steps Forward DEKAF puts control back into a program, without resorting to the spaghetti hacks that typify Perl CGIs (and which consequently gave CGI a black eye). DEKAF Code and HTML TemplateComments About the Codeint main_dekaf (ULONG iKID, int argc, char* argv[]) { kInit (HELLO); kOutputHttpHeader (iKID, TEXTHTML, NULL); KPROPS Tokens; kOutputTemplate ("hello.html", &Tokens, NULL, "{{beg:row}}"); for (int ii=1; ii<=3; ++ii) { Tokens.Add ("{{V=N}}", ii); kOutputTemplate ("hello.html", &Tokens, "{{beg:row}}", "{{end:row}}"); } kOutputTemplate ("hello.html", &Tokens, "{{end:row}}", NULL); return (0); } HELLO
( Looks like a standard C program ( DEKAF Bootstrap call ( Outputs the MIME TYPE ( output template UP TO the beg:row ( output each row ( output the rest of the template ( the HTML template The sample program above is 100% pure DEKAF in the sense that there is no HTML embedded into the source code. Language (Localization) Considerations Since DEKAF is built on the native C string (char*), unless one mishandles these strings, any DEKAF application should be localizable. Localization issues will be handled by local Concord offices, in conjunction with localization of Concord.com. SWIZ has been internationalized, able to use template files and executables depending on language settings. Currently, SWIZ confirms with ISO-639-2 for its language settings, although this can be easily changed if needed. SWIZ maintains a list of supported languages in its swiz.ini file: LANGS=eng,fre,spa,jpn -- list of language codes DLANG=eng -- the default language In order to display the language navigation on the bottom of the wizard, each language must also define an ALTxxx variable in the swiz.ini file: ALTeng=English ALTfre=Français ALTspa=Española ALTjpn=\227\234\236\203\220\203\202\203\203 In the current UI design, these language options manifest themselves as a bottom nav-bar:  Hidden Language Feature Each and every language can be hidden from the language nav-bar by removing it from the LANGS variable. This causes no harm to the user interface, nor does it prevent the language from being used: it just hides it from view. To demonstrate this, a German (ger) translation is also being maintained. It is accessible by adding LANG=ger to the URL as a query string. Once this choice is made, the LANG variable becomes associated with the cookie and the choice will stick until the user clicks on another language (or sets it using the query string again). Languages that are under development do not affect the buttons in the language nav-bar, nor are they reflected as an active choice (since they are hidden). The picture below demonstrates this for LANG=ger :  Adding New Languages The SWIZ source directory ($WSC/oracle/sizingWizard) must contain a three-letter subdirectory for each of the languages, and $WSC/oracle/sizingWizard/eng (the default) cannot be removed without some additional thought. Each of the language subdirectories must contain: language.CLocalized char* style strings that are embedded into the snooperslanguage.iniLocalized strings that are merged with swiz.ini and are used within the SWIZ code and within HTML templates*.htmlLocalized HTML template overrides (optional) The makefile needs to be informed of any new languages being built (since a set of two snoopers are built for each language): LANGS :=$(ARCH)/eng.o $(ARCH)/fre.o $(ARCH)/spa.o $(ARCH)/jpn.o The devinstall program (the development installer) also needs to know which languages are being deployed: for LANG in eng fre spa jpn do o o o done Snooper Design The goals of the snoopers are two-fold: (1) to gather information that the wizard needs and (2) to give the customer a heads-up that their machine is missing patches or pre-requisites for running/upgrading eHealth. Number (2) is a nice to have and is not part of the requirements, but would greatly aid the customer if we could work it in. System and Disk Specifications This table shows how different items are snooped: Snooped ItemSolarisWin32HP-UXOS Versionuname aGetVersionEx()uname aPhysical Memory/usr/sbin/prtconfGlobalMemoryStatus()echo phys_mem_pages/D | adb -k /stand/vmunix /dev/meVirtual Memory/usr/sbin/swap -l--/usr/sbin/swapinfo -dftDisk Infodf -kGetDriveType()df -kKernel Settings and Pre-req Checking Although this is not yet implemented, the Bourne shell logic in InstallNH.sh would need to be rewritten in C++. If this were done, it would be ideal if the logic was then removed from InstallNH.sh and the installer changed to invoke a compiled support program (similar to nhiComputeDbSpace, nhiCreateDbLayout, and nhiProcessDbLayout). eHealth settings Snooping eHealth settings involves connecting to the eHealth database and performing database queries. Since the snooper is downloaded before we know what version of eHealth they are running, it would seem unfair to ask them to download another utility once we discovered that they were running Ingres instead of Oracle (or vice versa). Therefore, the snoopers leverage a framework that was developed in eHealth 5.6 that allows database queries to be issued against any version of eHealth. The framework determines (at runtime) which version of eHealth it is running against and uses popen() to manipulate the appropriate command-line utility. The table below shows how this is done, especially with respect to database authentication: eHealth VersionCommand-LineComments4.8 and 5.02sql v= -s {NH_RDBMS_NAME}The ingres sql utility uses OS-authentication. 5.5sqlplus S {NH_USER}/{NH_USER}eHealth 5.5 had a hard-coded password for $NH_USER. The snooper call Oracles sqlplus utility directly.5.6 and upnhisql -eHealth 5.6 (and up) require the password interface and so the snooper tunnels all SQL traffic through our own nhisql wrapper script around sqlplus. eHealth Sizing Computations The first pass at the Sizing Wizard simply compiles and links with the sizing models that were placed into C++ code in eHealth 5.6. There are numerous problems with the actual models. Sizing eHealth is a challenging science that was probably unsolvable with spreadsheet formulas. The new sizing wizard will give us a platform upon which better modeling can be developed. Layout Configuration File (LCF) Generation LCF generation is straight from the eHealth 5.6 code. The code in $WSC/wsCore/oracle is being compiled and linked into the SWIZ executable. Error Handling Error Handling can be broken into a few genres. The table below summarizes each genre and the general approach that the SWIZ project is taking. Wizard (in general)Not that we should lower the bar, but the fact that the Wizard is not embedded in the installer and it runs on  HYPERLINK "http://www.concord.com" www.concord.com, takes an enormous amount of pressure off it working perfectly. We can fix egregious problems as they occur and log the others into Remedy. The wizard does not have a hot link for filing a bug report (or enhancement), but maybe that is something that we can consider.DEKAF LogMIS will want to place the DEKAF log(s) in places that they can occasionally be examined and truncated (if necessary). The default win32 location is c:\dekaf.log which can be overridden in the SWIZ code. When debugging is turned off, the only items in the DEKAF log are bona fide errors that should probably be studied and addressed.Browser ProblemsWell make a genuine effort to support all current browsers in terms of rendering and JavaScript support, but well have to address problems as they are reported or discovered. The standard browser should be considered InternetExplorer. Small issues in rendering on other browsers will probably be ignored.Snooper ProblemsThis is covered pretty well in the preceding sections and in the snooper code itself.Cookied DataThe wizard will cease functioning properly if the cookie data cannot be written to its storage area (either because of misconfiguration or because of a disk-full condition). As soon as the problem is repaired, the wizard will resume normal functions.Data SecurityBy design, the cookied data is not sensitive data. No IP addresses, hostnames, customer names or any other sensitive information is being stored.Site Side EffectsWe do not expect that SWIZ will create any additional security holes for  HYPERLINK "http://www.concord.com" www.concord.com, nor do we expect it to consume any significant resources (memory or disk). Debug and Performance Instrumentation CGI Performance SWIZ is instrumented with a crude performance measure that should be adequate for our needs. In the swiz.ini file is a parameter called MaxRequestSecs which is currently set to 4 seconds. If any CGI request takes more than this number of seconds to process, the DEKAF log will be issued a warning statement. If we see a pattern of this behaviour, we can deploy the FastCGI version of SWIZ. The FastCGI version is already wired into the makefile and is already being built, but since it requires special web-server configuration settings, I usually wait until there is a need before deploying it. Server-Side Debugging: The DEKAF Log The server-side debugging leverages the DEKAF log and is similar to Concord CuDebug classes. The application programmer embeds DEKAF logging into the code. CGI programs are notoriously difficult to debug without such a mechanism, since requests are processed within apache (or IIS) program space, prohibiting the normal code-level debugging techniques. DEKAF provides a generalized debugging level: 0 (debug off), 1 (debug on), 2 (high) and 3 (very very verbose). A programmer codes to these levels appropriately and the DEKAF framework itself uses the same mechanism. Normally, debug output is routed to /tmp/dekaf.out (on UNIX) and c:\temp\dekaf.out (on Windows), but this can be overridden. This statement is ignored when debugging is turned off: kDebugLog ("SNOOP DATA UPLOAD: %s (KID=%lu)", _Commit, iKID); This code block shows how to restrict debugging output to higher levels: if (kIsDebug() > 1) { kDebugLog ("main(): MaxPairs=%u, MaxBuffer=%u, ContentLength=%u", iMaxPairs, iMaxBuffer, iContentLength); } This statement is never ignored (even Debug=0 will not suppress it): kWarningLog ("WARNING: '%s' could not read '%s'", kwhoami(), "swiz.ini"); This statement is treated like a warning, but also places an error message in the CGI output stream: kErrorLog ("Malformed Post: missing KID="); Server-side debug output can viewed several different ways: Commandline klogA command line interface that allows setting/resetting the debug level, clearing the log and performing a tail f on the log.CGI klogYou can point a web-browser at the same klog executable and it serves these same features up as a web-enabled user-interface.tail f /tmp/dekaf.logYou can always use basic operating system commands on the dekaf.log (which is a flat file). Client-Side Debugging: SwizDebug The sizing wizard also contains debugging in the client-side HTML and JavaScript, which manifests itself as simple JavaScript alert() calls. The APIs look like this: This statement turns debugging ON: swizDebug (1); This statement turns debugging OFF: swizDebug (0); This statement equates to an alert() when debugging is enabled: swizDebug (swizSetUseCase: setting to: + pszNew); Testing Details Smoke Test (Note: the Concord smoke test runs for 36 hours or so. My traditional understanding of a smoke test is that you plug in a piece of equipment for a few minutes to see if it smokes or not). Bring up wizard and click on each of the language settings. Close your browsers, restart one and go back to wizard- it should remember the last language setting. Get to one of the download pages and ensure that the snooper download links are valid and correspond to the current language setting. Run at least one snooper with the -h option on each of the three platforms to ensure that they are built properly: on UNIX, use ldd to ensure that there are no dependencies on SOs and SLs that are not part of the operating system. Specific Use-Cases I have tried to order these use-cases according to prevalence in the field, so the QA effort may be prioritized with that same understanding. EH5.02/4.8 Single Machine Migration: Stats TODO: Walk through basic expectations, especially with respect to what should be snooped (if anything) and what the ultimate output of the Wizard should be. EH 5.02/4.8 Single Machine Migration: TA TODO: Walk through basic expectations, especially with respect to what should be snooped (if anything) and what the ultimate output of the Wizard should be. EH 5.02/4.8 Single Machine Migration: TA-Combo TODO: Walk through basic expectations, especially with respect to what should be snooped (if anything) and what the ultimate output of the Wizard should be. EH 5.02/4.8 Two Machine Migration TODO: Walk through basic expectations, especially with respect to what should be snooped (if anything) and what the ultimate output of the Wizard should be. Sales Call: Specs for Stats Poller TODO: Walk through basic expectations, especially with respect to what should be snooped (if anything) and what the ultimate output of the Wizard should be. Sales Call: Specs for TA System TODO: Walk through basic expectations, especially with respect to what should be snooped (if anything) and what the ultimate output of the Wizard should be. Sales Call: Specs for Custer FrontEnd TODO: Walk through basic expectations, especially with respect to what should be snooped (if anything) and what the ultimate output of the Wizard should be. EH 5.5 Upgrade: Normal TODO: Walk through basic expectations, especially with respect to what should be snooped (if anything) and what the ultimate output of the Wizard should be. EH 5.5 Upgrade: Cluster FrontEnd TODO: Walk through basic expectations, especially with respect to what should be snooped (if anything) and what the ultimate output of the Wizard should be. EH 5.5 Upgrade: Cluster BackEnd TODO: Walk through basic expectations, especially with respect to what should be snooped (if anything) and what the ultimate output of the Wizard should be. EH 5.60a Single Machine Upgrade TODO: Walk through basic expectations, especially with respect to what should be snooped (if anything) and what the ultimate output of the Wizard should be. EH 5.02 TA-Combo Split to Two Machines TODO: Walk through basic expectations, especially with respect to what should be snooped (if anything) and what the ultimate output of the Wizard should be. EH 5.5 Two Machine Upgrade (Negative Test) Note: this is an unsupported operation and the wizard should deal with it gracefully and explain to the customer their options. EH 4.5 Migration (Negative Test) Note: this is an unsupported operation and the wizard should deal with it gracefully and explain to the customer their options. CM Changes Since the sizing wizard has nothing to do with eHealth kits, CM does not need visibility into the code or the build process at this time. Review Minutes The following are the issues raised, and comments, during the March 2, 2004 Design Specification review meeting. Action items are in red. Participants: Larry Stabile (e-mail), Gordon Booman, Will Lauer, Anil DSilva, Robin Trei, Ravi Pattabhi, Eric Karten, Monique Boucher, Bob Keville, Don Gray, Rich Hawkes LS 1Issue: It says on page 4 that it will not be a framework, yet on page 22 it says that it will provide a "platform" for better modeling. I had not heard this as a goal before, and there is no description which says anything about what we need for a modeling tool. At the least, I imagine we would need to address the compiled versus interpretive code issue, and how it needs to be modified, and by whom.Response: DEKAF does not provide a framework for eHealth, but the sizing wizard provides an interface for modeling eHealthLS 2Issue: It really needs to be part of the ehealth builds, and use our normal compilers and make. Disconnecting this project so completely from the rest of our system just doesn't hold together. At some point more people will need to understand it, we will want to use it with our other framework code, have CM maintain the build -- and embed it further into the productResponse: We will do this. Gnu is useful because it catches more errors than Forte. We will try to do this for v1, and if not we commit to getting it there as soon after as possibleLS 3Issue: Similarly, I am very concerned about introducing another form of I18N parameterization into the system. How does this mesh with our current form? How will translation occur, and what is the cost of a new method? What is the encoding?Response: This is not part of eHealth. It is part of Concord.com. It will be translated the same way that Concord.com pages are translated by the local offices who localize them. We need to investigate to be sure this proposal is consistent with concord.com.LS 4Issue: Cookies are mentioned, but I didn't follow whether users need to enable true browser cookies on their clients. Some of them may objectResponse: If they dont enable cookies, snoopers cant get their results to the wizard. The alternative is copy/paste. Without cookies, shutting and restarting browser loses all wizard valuesLS 5Issue: 3.3.2, Separation of form and function -- I don't see the point. What development needs to occur without code change? Is it useful to enable this? I can imagine adding a new dialog for a new parameter, but I need to add C code for the model anyway. If not all the things which need to be changed are brought into the external, language, I don't see why it's needed.Response: You want to be able to modify UI features spelling corrections and text modifications, color changes, etc. -- without recompiling. We may want MIS to do this quickly. The documentation team will be able to change wording without involving development.RP 1Issue: Sec 2.1 Pg 9 You are saying that placing the sizing spreadsheet on a CD is not required as you need to ship a mini-version of Apache etc. However I thought we needed to be able to size eHealth on systems with no internet connectivity and the CD was the way we were resolving this issue?Response: Yes, we do need to be able to do this. SE could run wizard on laptop. SE could transfer data in/out via paper or floppy if allowed. Joel Kaufman is reviewing options. The functional specification will address how we handle this situation. RP 2Issue: Sec 3.2 Pg 14 Can we use standard text encoding such as WE8859P1 or JA16SJIS or JA16EUC? These are the encodings we use currently for all eHealth apps. The problem with hex encoding is that it does not give the user the ability to inspect the information we snoop to see there is no breach of security. i.e., there isn't any sensitive information being sent back to Concord. I thought there was a requirement to allow users to inspect snooped informationResponse: PM needs to assess whether we provide a block upload, text cut/paste upload, and/or file upload capability.RP 3Issue: Sec 3.4.3.1 Pg 21: Using the dictionary translation solution does not give you the ability to do context sensitive translations. That is, some languages use different translations for the same English string depending on context.Response: Localization proposal removed. Not a requirement. Remove from spec.RP 4Issue: Sec 3.9.2 Pg 23: Using a single dekaf.log for all web server sessions sounds like you will get totally mangled logs where in multiple sessions are writing to the file at the same timeResponse: They include interleaved lines, but the result is readable. The streams are handled by the OS. Each output line identifies the PID of the source of the next, so the log file can be PID-sorted to see just the output from one source.RP 5Issue: Sec 3.9.3 Pg 24: How will we get debug from the snoop executables nhi[1].exe nhi[2].exe etc?Response: The snoop executables have debug options to provide this. The snoopers are manually invoked by users, so they can invoke with debug options if we need them to.RP 6Issue: Sec 3.2 Pg 14 How do you plan to handle buffer overflow? Many security breaches arise from buffer overflows giving users the ability to run arbitrary code on the web server host machineResponse: This is an issue with anything that runs on Concord.com. It is unlikely that the sizing wizard has any more security hazards than other code. We will discuss this with MIS to see if they want us to take any action.RP 7Issue: Sec 2 Pg 9: Cookie handling: How does stale / abandoned cookie information get removed from the server side. For each KID I presume there will be a ton of snooped information. If a session dies mid way because of a network outage / a crash how will old information get removed. Will there be a mechanism to remove old logs / cookies / files from the web server without removing active files?Response: The cookie data is less than 1K per KID. If 4,000 eHealth users snoop, this results in 4MB of data not a huge amount. Log files could grow large if a problem occurs. Sizing wizard maintenance will be coordinated with MIS. We will write proper instructions to ensure that e.g. log file sizes are checked routinely. RP 8Issue: Sec 3.4.3.1 Pg 21: How do you handle the case where the result of a translation embeds an English string that in turn could have a different translation. This would result in incorrect translations, right?Response: Localization has been removed from this specification.AD 1Issue: Sec 2.1 I thought having a version of this sizing wizard on a CD was an absolute requirement. I do not see why this is not feasible. However for the DoD and companies like Raytheon, Boeing, Lockheed Martin etc that need security clearance, no information can be gathered and taken out of the lab either on Paper, floppy or any media. This design hence precludes us from competing in those markets unless we have a version of this sizing utility on a CD. We can take software in, but we cannot take information out. Thus not having this feature will worsen our position with respect to the Database STIG requirements for the DoD.Response: See RP 1.AD 2Issue: Sec 1.2 Use of BSC look and feel, BSC look and feel is targeted towards the Execs, you prob want to use the admin look and feel which is sucky at the moment, but soon to be moved to the web console look and feel . With css you should be able to easily accommodate both, current admin look and feel and web console style when we get thereResponse: BSC look and feel is an approved requirement (see the PRD and the Requirements Review Meeting notes.) If we need to change this we can run the change process.AD 3Issue: What about support on Win 32 Apache if you agree about issue 1Response: It can be supported if needed.AD 4Issue: Sec 1.4 DEKAF is an open-source framework? What license is it under GPL or LGPL? We prefer LGPLResponse: Its not GPL. Its MIT, which allows the publishing of private products. (GPL prohibits this.) Not sure if its LGPL The decision to use this needs to be reviewed by Legal. See:  HYPERLINK "http://www.opensource.org/licenses/mit-license.php" http://www.opensource.org/licenses/mit-license.php .AD 5Issue: Sec 3.1: point 1: So what happens if I put a bookmark in the middle of my sizing wizard? Would it end up going back to the start pageResponse: Yes.AD 6Issue: Sec 3.1: point 1: What information will we be storing at Concord using the cookie? Will we be keeping details about their installation?Response: We will only keep info on things they type into the wizard no IP addresses or host names. (Note: The wizard does have host name fields, and host names could appear in e.g. mount point data that is uploaded, but we will provide disclaimers saying they should not enter info if they do not want it collected. PM needs to review this.)AD 7Issue: Sec 3.1: point 1: What happens if someone disables their cookies or clears it out, will they have to run the snooper every time?Response: It wont save values across a browser restart, or go to a different non-wizard site. Not a requirement but its possible to make it work w/o cookies.AD 8Issue: Sec 3.1: point 1 :You talk about a save/load functionality tied to a concord email addr, what happens if some enduser wants to use this move his information from say a laptop to another system? Response: Nice to have. The spec references a Concord e-mail address and that is misleading. If we implement this feature (not expected in v1) we will provide the ability to tie it to any e-mail address.AD 9Issue: Sec 3.1: point 6d: You use the browser save as dialog box, if they click open? Will it run the executable? So lets say they hit save as, then they have to run the executable correct?Response: There is a problem if the user loads a Sol snooper to Win sys and clicks Open in the dialog. We will address this in the help section that describes problems running the snooper executables.AD 10Issue: What does the user do with the results at the end of the wizard? Do they get to save an SSF file or LCF file or is it printed on screen? Can they do what if scenarios?Response: This is described in the Functional Specification it can save an LCF.AD 11Issue: I feel differently about proxy servers, can you prove to me that no one uses proxy servers? I bought Quicken 2004 the other day and they allowed me to set a proxy server, so why cannot the SWIZ.Response: The need for this was not specified as a requirement. If proxy servers are an issue, this falls back to the situation described in RP1. This can be added as an enhancement request if needed.AD 12Issue: 3.3.3.x does not seem to be part of a design spec, I think 3.3.3.7 would be only relevant section hereResponse: Noted this section could go in the Functional Specification, but since it provide code examples, it was thought that the Design Specification was a better place.AD 13Issue: sec 3.8: Browser Problems: You say the standard browser to be considered is IE, however, you also require snoopers to be run, these will be run from the eHealth machine itself. Given 30% of our customer base is on NT, that means 70% of the people will either be using Netscape or Mozilla so default browser for testing should be??Response: See the Testing Section of the Functional Specification for more information on this. We expect to fully support the common UNIX browsers.AD 14Issue: Your testing section seems weak, dont we need to test the snooper on all platforms and languages? Will we be testing this against the www.concord main site or testing against a test mirror site? What are specifics of each test that will be preformed and the desired outcomes or negative outcomes? The key here is that someone else should be able to take the test cases you specify and run through them without you having to walk them through the testingResponse: See the Testing Section of the Functional Specification for more information on this. GB 1Issue: Why can't this be part of the nightly build? CMS needs to be able to recreate itResponse: See LS 2. GB 2Issue: What is the copyright of DEKAF?Response: Does this mean the Open Source license? See AD 4.GB 3Issue: Are you really using bsc.css? This is a dependency that we ought to think throughResponse: See AD 2.GB 4Issue: Use of /var/tmp (SWIZ uses a tiny "database"...) I assume this location is settable. How big does this get?Response: Yes, it is settable. It gets about 1K bytes per unique visitor.GB 5Issue: What are the two snoopers?Response: They are functionally described in the Functional Specification. The main design points for them are described in this document.GB 6Issue: i18n. Why aren't you using standard locale names, like "C","de", "fr", etc.?Response: These are not the standard locale names for Win32. Joe needed a single cross-platform locale. Win and UNIX use different ones. If needed this is easy to change. We will investigate what standard is used on Concord.com.GB 7Issue: i18n. Need to look at how the translation process will work, especially given that we already translate stuff. If you are going to use a different format file, there needs to be a very good reason, since it will increase the cost of translation. You should talk with John and Rich about this proposalResponse: Local Concord.com translators will take this issue. We were told that we are not localizing this. We will confirm this with Kathy Hickey.GB 8Issue: I'm confused about the data block. Is it user visible ("great care is taken to generate a block that is visually inspectable by than average computer person")? In what sense?Response: A visually symmetrical object so it is easy for people to know they copied/pasted the whole thing.GB 9 Issue: Could you explain the ALT thing? what character set is it encoded in?Response: Does 3.4 need more detail? More information is provided in the Functional Specification. It is the values of the strings that get output at the bottom of the screen for each language. These must match the browsers encoding. Can be easily changed. We need to look at how Concord.com is translated (mentioned previously.) We need to worry about how people will really translate it. Should we have a resource file? We would need to download multiple files for snoop Solvable issue.GB 10Issue: You don't really explain the HTML and JavaScript at all.Response: Client-side Javascript is used as much as possible to aid the UI. This will be detailed in the v2 design spec. Uses .js filesGB 11Issue: Are you going to use frames? Is there one html template, or dozens? What browser features will you rely on? what about error handling? Can we standardize on indentation and case?Response: No frames. Dozens of templates. Relies on style sheets, cookies, Javascript, DOM. Server side error handling, or client-side? Joe is using the CCRD standard for indentation; all function names begin with swiz.GB 12Issue: Is the JS in a separate file or files? How much JavaScript is there? If there's a lot, we should standardize on JS style. (We're paying for failing to do this with BSC.)Response: A separate file swiz.js. Arch should provide a Javascript standardGB 13Issue: Will you browser sniff? How?Response: Yes for now, but very little is browser specific. Document.all is being used in a few casesRH 1Issue: Cookies mean that users may forget to restore default values when they run it againResponse: A reset button has been added to cover this case.WL 1Issue: What is the license for DEKAF? Has legal bought into its use? GPL might be allowed if this runs only on the concord web site, but it sounds like we may eventually need to package this onto a self contained CD that could be run at the customers sight.Response: See AD 4.WL 2Issue: G++ is not allowed. We have standard C++ compilers. You must use them, even if you don't use the standard build options.Response: See LS 2.WL 3Issue: This must be buildable by CM in a standard way. Building only on titus or ahab is not acceptable. This must be able to be integrated into an automated build process running on any of the standard CM build machines.Response: See LS 2.WL 4Issue: What is the OS dependency? You are building snoop executables. What versions of the OS must they run on? This has impact on the build environment that CM uses to produce this kitResponse: We will explore this and document the issue and resolution in this specification. WL 5Issue: The location $TOP/tools/eng_tools is incorrect. If you use DEKAF, it should be placed in $TOP/sys/toolkitsResponse: We do not want Dekaf to appear to be an acceptable published toolkit. People could misconstrue it as something that can be used in eHealth. More review is needed before that can happen.WL 6Issue: Where in the vob is the rest of this code going to go?Response: It is in wsCore/oracle/sizingWizard. We should confirm that that is the right place for it.WL 7Issue: What are the differences between IIS and Apache that we will have to be aware of?Response: We are not aware of anything significant minor config changes.WL 8Issue: What about people whose security policy forbids cookies?Response: See LS 4.WL 9Issue: What tests need to be run. Does QA agree that these are the right tests?Response: See AD 14.WL 10Issue: Why is the cookie named KID? Has NRB reviewed this? Will they? This should be named something more Concord specificResponse: The name KID is used by the Dekaf framework. It is not publically visible. It will be reviewed by the NRB and usability committee.WL 11Issue: The encoding of uploaded data makes the data collected by the snoop tools very opaque. It would be easier to convince users of its safety if it was plain textResponse: See RP 2.WL 12Issue: Comment: your examples in the history of web programming section make DEKAF seem harder than JSP. Why wouldn't we use JSP here?Response: The runtime environment to get JSP on Concord.com is harder for MIS. There is a paradigm shift as well. See section 3.3.WL 13Issue: Consider short time outs on cookies to not expose customers stuff to other customers when SEs run it. Also a clear button.Response: We consider timeouts to not be user friendly. See RH 1 re clear button.JKeats 1Issue: On page 4, section 1.2, bullet 2; you state that that the snoopers must run on systems w/o eHealth...I thought that one of the snoopers (nhi1) was snooping the DB. So is only the other snooper (nhi2) required to run w/o eHealth?Response: Yes this has been corrected. It is further explained in the Functional Specification.JKeats 2Issue: On page 4, section 1.3, bullet 3; you state that the SWIZ is not part of the nightly builds. Does this include the code that contains the sizing algorithms? If so, how do you make changes (e.g. what if some extent sizes change?)?Response: The code would be recompiled as needed and then reposted to Concord.com.JKeats 3Issue: On page 9, section 2.1 you state that you won't be able to run from an "isolated" network (i.e. no connection to the cloud). I thought this was required. Are you requiring these customers to take extra steps (i.e. work from a different system that IS connected and switch back and forth?). If so you should state that there is a work-around.Response: See RP 2.JKeats 4Issue: Pages 12 and 14...you have two steps labeled "6n".Response: Yes, the second is 6u corrected.JKeats 5Issue: Pages 14 and 15, you state that the number/percentage of customers w/o internet connectivity is "small". You should say "small but probably vocal". :)Response: See RP 2.JKeats 6Issue: You still don't address the incompatibility between "snooped" data and "what-if" data.Response: Yes, this is a big issue. We need PM direction on this.JKeats 7Issue: Will we be able to use this to collect data on how customers use our product (i.e. how many elements of each type, etc.)Response: Not in v1 Brian Burba has expressed interest in this too. PM should consider it as a future enhancement.JKeats 8Issue: 2MM for 5.5 (or later) to current version is not supported? Too bad as this would help customers who purchase a new server for reasons other than eHealth requires it (e.g. mgt finally realized that they need to invest more $$ in infrastructure)Response: True.  TIME \@ "MMMM d, yyyy" March 8, 2004  TITLE \* MERGEFORMAT eHealth Sizing Wizard  TIME \@ "MMMM d, yyyy" March 8, 2004 Concord Company Confidential  PAGE \* Arabic \* MERGEFORMAT 30 of  NUMPAGES \* Arabic \* MERGEFORMAT 32  TITLE \* MERGEFORMAT eHealth Sizing Wizard  SAVEDATE \@ "MMMM d, yyyy" March 8, 2004  PAGE \* Arabic \* MERGEFORMAT 10 of  NUMPAGES \* Arabic \* MERGEFORMAT 32 Concord Company Confidential Concord Company Confidential  PAGE \* Arabic \* MERGEFORMAT 8 of  NUMPAGES \* Arabic \* MERGEFORMAT 8 Concord Company Confidential ,_`./34~ ' ( Q R [ \ ( ) 2 3 j k X Y Z I ĺǵ0JCJjCJUCJ jCJU>* mHnHu jUOJQJmHnHuOJQJjOJQJUmH sH OJQJmH sH D+,Kklmnt $If$a$  & ' ] i qkkkqkkkqkk$If$$IflFj`'  t0'    4 la $If^ ` 4 @ i j yy4ywrr & FS$$IflFj`'  t0'    4 la$If I J K      ()*+̲Ԩua&j>*B*UmHnHphu!5;CJOJQJaJmHnHujaUmHnHujUmHnHumHnHu0JaJ(mHnHu&j>*B*UmHnHphu mHnHu0JmHnHuj0JUmHnHu jUCJ0JCJ jCJUjCJU#  `E%wgWW  !  !  !  !  & FS+?@AZ[\]^_`ab}~ƶƮƊ|ƶƮhƊ&j>*B*UmHnHphujMUmHnHu0JaJmHnHu&j>*B*UmHnHphu mHnHu0JmHnHu:CJOJQJaJmHnHuj0JUmHnHujWUmHnHujUmHnHumHnHu0JaJ mHnHu$$%&?@ABCDEFGbcdemnoѹѹޑѹ}sej/ UmHnHu0JaJmHnHu&j>*B*UmHnHphuj9UmHnHu&j>*B*UmHnHphu mHnHu0JmHnHu:CJOJQJaJmHnHuj0JUmHnHumHnHujUmHnHujCUmHnHu% !"#$%&'BCٿᵭᵭqj UmHnHu&j >*B*UmHnHphuj% UmHnHujUmHnHumHnHu0JaJmHnHu&j >*B*UmHnHphu mHnHu0JmHnHuj0JUmHnHu!5;CJOJQJaJmHnHu%CDEVWXqrstuvwxyͳߢߚբrߢߚ^&j >*B*UmHnHphuj UmHnHu&j >*B*UmHnHphu mHnHu0JmHnHu!5;CJOJQJaJmHnHuj UmHnHujUmHnHumHnHu0JaJmHnHuj0JUmHnHu&j >*B*UmHnHphu$ ;<=>ABFGHabcdefghiѶ嶮݆Ѷ嶮r&jn>*B*UmHnHphujUmHnHu&jx>*B*UmHnHphu mHnHu0JmHnHuj0JUmHnHuj UmHnHujUmHnHumHnHu:CJOJQJaJmHnHu0JaJmHnHu*#$%&)*678QRSTѹѕއѹsѕejUmHnHu&jZ>*B*UmHnHphujUmHnHu0JaJmHnHu&jd>*B*UmHnHphu mHnHu0JmHnHu:CJOJQJaJmHnHuj0JUmHnHumHnHujUmHnHujUmHnHu'TUVWXYtuvwz{ !δ֪΀֪rjUmHnHu&jF>*B*UmHnHphujUmHnHumHnHu0JaJmHnHu&jP>*B*UmHnHphu mHnHu0JmHnHu:CJOJQJaJmHnHuj0JUmHnHujUmHnHu+!"#$%678QRSTUVWXYtuvwz{Ӻߘ~tdtVdjUmHnHu:CJOJQJaJmHnHu0JaJmHnHu&j2>*B*UmHnHphu mHnHu0JmHnHujUmHnHujUmHnHumHnHu!5;CJOJQJaJmHnHu0JaJmHnHsH uj0JUmHnHu&j<>*B*UmHnHphu!5678;<LMNghiklmnopƶƮжƶƮrжjUmHnHu&j>*B*UmHnHphujUmHnHujUmHnHumHnHu:CJOJQJaJmHnHu0JaJmHnHuj0JUmHnHu&j(>*B*UmHnHphu mHnHu0JmHnHu'nwAf%x n !   ! Ӻߘ~tdtVdjUmHnHu:CJOJQJaJmHnHu0JaJmHnHu&j >*B*UmHnHphu mHnHu0JmHnHujUmHnHujUmHnHumHnHu!5;CJOJQJaJmHnHu0JaJmHnHsH uj0JUmHnHu&j>*B*UmHnHphu!6789<=UVWpqrtuvwxyƶƮжƶƮrжjqUmHnHu&j>*B*UmHnHphuj{UmHnHujUmHnHumHnHu:CJOJQJaJmHnHu0JaJmHnHuj0JUmHnHu&j>*B*UmHnHphu mHnHu0JmHnHu' !:;<>?@ABC^_`adestuսߛսsߛ_&j>*B*UmHnHphuj]UmHnHu&j>*B*UmHnHphu mHnHu0JmHnHujgUmHnHujUmHnHumHnHu:CJOJQJaJmHnHu0JaJmHnHuj0JUmHnHu&j>*B*UmHnHphu%DEF_`acdefghѷ󯩯ч󯩯s&j>*B*UmHnHphujIUmHnHu&j>*B*UmHnHphu mHnHu0JmHnHujSUmHnHujUmHnHumHnHu:CJOJQJaJmHnHu0JaJmHnHuj0JUmHnHu+ "#$%&'BCDEFGVѹѕއѹsgVg!5;CJOJQJaJmHnHu0JaJmHnHsH u&j!>*B*UmHnHphuj5!UmHnHu0JaJmHnHu&j >*B*UmHnHphu mHnHu0JmHnHu:CJOJQJaJmHnHuj0JUmHnHumHnHujUmHnHuj? UmHnHu!VWXqrsuvwxyzѸєvфѸbє&j#>*B*UmHnHphuj!#UmHnHu:CJOJQJaJmHnHu0JaJmHnHu&j">*B*UmHnHphu mHnHu0JmHnHu!5;CJOJQJaJmHnHuj0JUmHnHuj+"UmHnHujUmHnHumHnHu& !"=>?@ABLMNghiklmnopѹѓtтѹ`ѓ&j%>*B*UmHnHphuj %UmHnHu!5;CJOJQJaJmHnHu0JaJmHnHsH u&j$>*B*UmHnHphu mHnHu0JmHnHu:CJOJQJaJmHnHuj0JUmHnHujUmHnHuj$UmHnHumHnHu%;<=LMnopuvX"c"""H$`$%%''*}vnnn5\mH sH  0JmH sH j,)UmH sH jUmH sH 0JCJjC'CJUCJ jCJUmH sH 0Jj~&U jU!5;CJOJQJaJmHnHuj0JUmHnHumHnHujUmHnHuj&UmHnHu+ !!W"X"c""H$%''*+*++U,z,,6-$If & FT & FR*+*E+F+j+k+l+{+|++++++,,U,h,7-R--/2/7/;////q00022226383C333333333U6Z66666666777j>,U5\0Jj{+U jU6]H*5h aJmH sH 6]mH sH 5\mH sH j*UmH sH  0JmH sH j)UmH sH jUmH sH mH sH 86-7-l-----///D0p0q00{{y & FU &dP$Ifk$$Ifl0,"LL064 la 000000?1@1D11112223,i$$Ifl0$ t" P0"4 la$If@^@333344444 6 66D6E6Q6\6]6x<`D$Ifi$$Ifl0$ t" P0"4 la]6e6666m7n7r77778999::i$$Ifl0$ t" P0"4 la$If77777X9Y9{9|9}9999:::::G;H;h;i;j;u;v;(=3===>>>>2>?>|>>>>???@ @ @@@@@WDnDDDEEEE◣ 0JmH sH j1fUmH sH jUmH sH  aJmH sH j8/UmH sH 5\mH sH 6]mH sH h>*5\j.U H*mH sH mH sH j-U0J jUj-U8::::;y;z;;;;;;;;;; <Hi$$Ifl0$ t" P0"4 la$If <<<<=(==>>>>>>3@4@D  & F[$Ifi$$Ifl0$ t" P0"4 la$If4@@@@@@@@@AABA]AAAABBLk$$Ifl0 (# 0#64 la$IfBBVDWDnD>F?FXFFFFGGG}x}}$$$&dIfPk$$Ifl0 (# 0#64 la$If EEGGAHVHHHHHHHHJJ LLMNNN N&NSSSSS%T;TATBTfTgThTwTxTTTTTDUEUUBVaVbV_W`WWWWWWW X>XLXXXXXUYûûûûûOJQJ^JmH sH  OJQJ^JjUmH sH 5\mH sH OJQJmH sH j@UmH sH  0JmH sH j{UmH sH jfUmH sH mH sH jUmH sH >GG@HAHVH8I9IJJJ L L LLMMMMMMMMNN N&NNO$If $$Ifa$OQSSSS=TTTTTEUU| {m 6$If^  & FW$If $$Ifa$k$$Ifl0Z!064 la$If UbV`WWWWWW0XyXXXwqqggq  & FX$If$If $$Ifa$k$$Ifl0Z!064 la $If^  & FW$If XXXYeYY ZZZZZZP[{yyk$$Ifl0Z!064 la  & FY$If$If $$Ifa$ UYYY]YdYYYYYZZZZZZZZZZO[P[\\=\G\R\\\\\\\\]<]]]u^^^{_______"`#`$```e`a aaaa$a)a/b3b8b*mH sH aJOJQJOJQJmH sH 5\mH sH 5\mH sH 56\]mH sH 6]mH sH FP[\=]u^___"`#`$```e`aL{yv{$$If $$Ifa$k$$Ifl0Z!064 la  & F]$If a)adabbbc%d'd(d)dYd[d`dv $$Ifa$$k$$Ifl0Z!064 la$If $If^ )dYdZd[d`d?gAgBg[g5iOi-kkkl[o=pDpq q+qst#t$t%t4t5ttttttttvwwwwxxxxxy&y'y4yFyTyzz{{}}}}}}K~Y~~~~~?^ʿʿaJ>* j9Uj8U0Jj7U jU]5CJOJQJ\^J6]6]mH sH mH sH OJQJmH sH  jU5\D`d]efdf@gAgBg[gi-kl[o+qRrr} & F^h^hk$$Ifl0Z!064 la$IfrZssu(u=vvwwwwwww$If & F^ wwxxxxxxyy&yUyyy,{{{L{{{8{{{{$If~$$IflFT f!T06    4 la yyzDzzzzz{|}}}wusuupuu$~$$IflFT f!T06    4 la  & F_$If }?I]^6Ts`k$$Ifl0,"k-064 la$If^6tɂʂ˂6;mr)*+7=Êˊۊ&6-V.89:3ٔڔ=>RS :Qhijęř6; j rU6OJQJ]^J5OJQJ\^J j6]6]CJ5\CJCJCJaJCJOJQJ^JLstEʂ˂GхD\$Ifk$$Ifl0#8 0#64 laDQ*+Rۊnljllk$$Ifl0#8 0#64 la$If$$d%d'dIfNOQ u-6UV$Ifk$$Ifl0,"k-064 la-.9:;g20k$$Ifl0,"k-064 la$If 23RSÕė nhfdfff$If$$d%d'dIfNOQ$Ifk$$Ifl0"j0"64 la ijęƙޙӝT$If$a$h^h;'/՜ݜuUbў؞ǟ3_;Ԣբ] FLȧ17NUWXJ^ϬЬ s孹 0JmH sH j0UmH sH jUmH sH ;\aJmH sH >* aJmH sH 5\mH sH 6]mH sH mH sH 5OJQJ\^JaJ jzU5\ATUbОў؞ǟ3^_nȡ^$Ifk$$Ifl0f064 laȡ&.4:;FO^gd$$Ifl\ !f 064 la$If ghxԢբnhhhhnhhhhnh$If$$Ifl\ !f 064 la "178]Ehfdfddd$$Ifl\ !f 064 la$If ǧȧէ !%D¨W{d{4{~$$IflF! 06    4 la$IfWXYuIJ}{{}}~$$IflF! 06    4 la J^ rs˰!"/+,t(k$$Ifl0!t064 la$If $If˰"/,:β)*NOP_`׳سt[byFk-i׺#$(/Ryľž @S^6I|ϽϯϯϯϽϽϽ >*mH sH  aJmH sH 5CJOJQJ\mH sH "5CJOJQJ\^JaJmH sH 6]mH sH  0JmH sH jUmH sH jUmH sH 5\mH sH mH sH @,:Ͳβ׳س!"k$$Ifl0!t064 la$If"EFkɶʶϷз,-iW׺#$ $If &dP+QRy(}{}}}q &dP$&dIfP$Ifk$$Ifl0!(064 la ľž @ABRS^!]I6If2T & Fb &dPf2Tn1H`D 2E^-P]GSNO\"..;ZgZg.;OJQJ^JmH sH B*OJQJ^JmH phsH B*OJQJ^JaJphOJQJ^JaJB*mH phsH  >*mH sH mH sH JTn1H`D -.9^__  !&QRWk$$Ifl0*,"064 la$IfWHIJPQV#$% P0$Ifk$$Ifl0*,"064 la $7$8$H$If%/05[\][\a/01P$Ifk$$Ifl0*,"064 la $7$8$H$IfHk$$Ifl0*,"064 la$If!iv JKX&3ivw`l Xdw*+-:frQ]0JOJQJ^JaJjOJQJU^JaJjOJQJU^JaJB*OJQJ^JaJph OJQJ^JB*mH phsH B*OJQJ^JmH phsH OJQJ^JmH sH mH sH OJQJ^JaJ:jkpLMR'T4lk$$Ifl0*,"064 la$If'()jkpabc  X| $7$8$H$If$Ifk$$Ifl0*,"064 la YZ[./40L $7$8$H$If$Ifk$$Ifl0*,"064 laghiRSTDTt8$Ifk$$Ifl0*,"064 la]^&Xd&41?DPQMYZ{3@"tP]x`lLY+IW>*OJQJ^JaJB*mH phsH OJQJ^JmH sH B*OJQJ^JaJphOJQJ^JaJmH sH  OJQJ^JLTYZ['(<D8$Ifk$$Ifl0*,"064 la $7$8$H$If(.239EFGPD4k$$Ifl0*,"064 la$IfGNOP45:d`xk$$Ifl0*,"064 la$Ifuvw`|X$Ifk$$Ifl0*,"064 laQRWyz{ abc48hk$$Ifl0*,"064 la$IfcMNS %JKQ`hk$$Ifl0*,"064 la$If2jkq+0 $7$8$H$If$Ifk$$Ifl0*,"064 laiw*6       # @ L      J W X R _ g u v             +,^kl jmvB*OJQJ^JmH phsH  aJmH sH OJQJ^JaJOJQJ^JmH sH B*mH phsH  OJQJ^JB*mH phsH B*OJQJ^JaJphOJQJ^JaJmH sH @+,-          A D $7$8$H$If$Ifk$$Ifl0*,"064 laA B C       K L Q S T U  yX $7$8$H$If $If$Ifk$$Ifl0*,"064 laU i j o           XXt$&dIfP $7$8$H$Ifk$$Ifl0*,"064 la$If  %_`e  $7$8$H$If$Ifk$$Ifl0*,"064 la  klm|4tX $7$8$H$If$&dIfP$Ifk$$Ifl0*,"064 la vw  !iv^BNOXfgm}QdIViv .fw<j{r߷߾ OJQJ^JB*OJQJ^JmH phsH OJQJ^JaJOJQJ^JaJmH sH  aJmH sH OJQJ^JmH sH B*mH phsH GjklX\L $7$8$H$Ifk$$Ifl0*,"064 la$IfCDEYZ`nouX84\ $7$8$H$Ifk$$Ifl0*,"064 la$IfRS\JKLX $7$8$H$Ifk$$Ifl0*,"064 la$If jklXXk$$Ifl0*,"064 la $7$8$H$If$If!"#ghqkl,  $7$8$H$Ifk$$Ifl0*,"064 la$Iflustu~Lk$$Ifl0*,"064 la$If  -.MNPQUVyz|}    * + - . l m             mHnHu jUBM N          h$dN]h $1h/R / =!"#$%# 0/R / =!"#$%$1h/R / =!"#$%DyK ]http://coogle.concord.com/dir/unbranched-vobs/specs/product/utilities/DB_SizingWizardPRD.docyK http://coogle.concord.com/dir/unbranched-vobs/specs/product/utilities/DB_SizingWizardPRD.docDyK bhttp://coogle.concord.com/dir/unbranched-vobs/specs/product/utilities/DB_SizingWizardApproach.docyK http://coogle.concord.com/dir/unbranched-vobs/specs/product/utilities/DB_SizingWizardApproach.doc{DyK  _Toc66506712{DyK  _Toc66506712{DyK  _Toc66506713{DyK  _Toc66506713{DyK  _Toc66506714{DyK  _Toc66506714{DyK  _Toc66506715{DyK  _Toc66506715{DyK  _Toc66506716{DyK  _Toc66506716{DyK  _Toc66506717{DyK  _Toc66506717{DyK  _Toc66506718{DyK  _Toc66506718{DyK  _Toc66506719{DyK  _Toc66506719{DyK  _Toc66506720{DyK  _Toc66506720{DyK  _Toc66506721{DyK  _Toc66506721{DyK  _Toc66506722{DyK  _Toc66506722{DyK  _Toc66506723{DyK  _Toc66506723{DyK  _Toc66506724{DyK  _Toc66506724{DyK  _Toc66506725{DyK  _Toc66506725{DyK  _Toc66506726{DyK  _Toc66506726{DyK  _Toc66506727{DyK  _Toc66506727{DyK  _Toc66506728{DyK  _Toc66506728{DyK  _Toc66506729{DyK  _Toc66506729{DyK  _Toc66506730{DyK  _Toc66506730{DyK  _Toc66506731{DyK  _Toc66506731{DyK  _Toc66506732{DyK  _Toc66506732{DyK  _Toc66506733{DyK  _Toc66506733{DyK  _Toc66506734{DyK  _Toc66506734{DyK  _Toc66506735{DyK  _Toc66506735{DyK  _Toc66506736{DyK  _Toc66506736{DyK  _Toc66506737{DyK  _Toc66506737{DyK  _Toc66506738{DyK  _Toc66506738{DyK  _Toc66506739{DyK  _Toc66506739{DyK  _Toc66506740{DyK  _Toc66506740{DyK  _Toc66506741{DyK  _Toc66506741{DyK  _Toc66506742{DyK  _Toc66506742{DyK  _Toc66506743{DyK  _Toc66506743{DyK  _Toc66506744{DyK  _Toc66506744{DyK  _Toc66506745{DyK  _Toc66506745{DyK  _Toc66506746{DyK  _Toc66506746{DyK  _Toc66506747{DyK  _Toc66506747DyK www.concord.comyK 0http://www.concord.com/DyK ]http://coogle.concord.com/dir/unbranched-vobs/specs/product/utilities/DB_SizingWizardPRD.docyK http://coogle.concord.com/dir/unbranched-vobs/specs/product/utilities/DB_SizingWizardPRD.docDyK www.concord.comyK 0http://www.concord.com/DyK www.concord.comyK 0http://www.concord.com/DyK www.concord.comyK 0http://www.concord.com/DyK www.w3c.org/CGIyK .http://www.w3c.org/CGIDyK http://www.fastcgi.comyK 0http://www.fastcgi.com/DyK  www.w3c.orgyK (http://www.w3c.org/DyK www.fubar.comyK ,http://www.fubar.com/DyK  www.w3c.orgyK (http://www.w3c.org/6Dd   C ArV:\wsCore\oracle\sizingWizard\image-source\swizarch1.gifb5I ZLݷ%5|/n5I ZLݷ%PNG  IHDR3PPLTE@@@'''ooo˘mºՅZnϔͶgȵXXXվ͞Iw̐`_բpH[/F}č%@tRNS{DbKGD?>c0u cmPPJCmp0712Hs4DIDATx^] cʒAd(fgCx&jK_hpoϛ燰m6 hiov_ƭvqR!ea6Y8U&3f<0<6yyk0LhӁdӘk, lI=ES3I|=l|FǪrb&솭~Ыg3s7_ P窪V(yLO?|/d:Lsa"^48fz( ,Ψtr2`uz}}}>8z2lzx5xC:6a?hxUeԢϚZo;S`bIxDv/U,DA'I0Bgt wx#hp,Q E[,KY98tof/afU3%&a3I 1C8rg\=:1#+{#̬<my}:J)Vr4`d8k23 $3 9 L7<3{8<1x1`qoySzoKȸD;8ymI132Mfd0&L( ffA[b.U5yVxe2ό`wWޱ )h5 -T$ 1'As̼~hW-+ ҅ 3_< {4~tϸ+kcS@i2h\ؠѴoq\  UO qw,LР" 7$kq`E`Hi6u1{[Y*pt5k^ʢX=3 /?=:jU3^;t;gLn`]&; ]3[>LfϓR궩8Ibۿ v'$̌[E{BQ72<ӭAQw(ӑ ,;wpԬ)3}~ƪai$p6GB4N~9=DnWk诇WA{ѯ妻8Fh:n4m6f>CL8; HN}~ϕ }GԠ9L /]l營ҟm~uyk^jeN/dҚ[Km<;8/ L7&4=j$h#S|G ߦaƷr46ͿVo ?{w~39enYlR>;[”WIWWT.9 DMj: R@#)8[lݳn0#@7:4/{7P"ow>Wg*|i𧻓; Y0#mS`t Q zy?2f1jnyι]L$UwM$jWWdLЁNQ0 ބJLgtXw(ěS)EܲZK3-\YKc/EgOR'@L}SϤ p%Y+q1˜ގ`6k݁E,h )~ZFKsf̧;^n<3~z3ڙ1S'1It5y|:GjJɋ,Xsv!1#0'`ZO^yg䙐7 LւT .Y›@2^=M>f4YyόGˋbI]\@Jo !̜љ3z<~fmQeޱNDɃMv.*2Gqy&tz{duz7]3|60\0/L2L7p`Aԭ@W x:K9o&ϔC$k283mD{f?px9ꃙ<Mn~&7E33_ L&~z* 1QGq.] E_MnCDsmNa\NƵ>\G|$45h `4<(^{S9Bd:rc3Q2\1 T`F';=p5XLW2M؆w)3#$Qa bd`؟VY$` uJz 'Ǣ!9{e[ws%^ԧhRFO47.e):?S?U$d&Z`Mi3" i+ȁ%̣(+hm\YTS庬(#d I&ׯsJ餋ڇQc>mfʗg]|6) IfYKG:<8s ?fbcmDik{ږ:o |f4x6Δoo¤ZLtq@qFIeryK;8ۭe-4SvkzB03 7rJBMf?Ol{;,4TTFϲ 2 )í%mm !_\) 3X`WR:kn-Dʳf_j;`Gޮ4dz*3Cۈ@N*yfR;L\ch0l b>Dyƶ Yk.̙کfPڱmʢXv; 0cm v\+tPO g3&lo39jRB`VJTA8G!LJ.4K(}K P&~LPeBޚH@~\X1Rluҏ;+}ya41.-wM@,P[VRQ|8^*6ɲ :5>f$oSk07CeDSX?}+lPbkmv[)imAmxD5ZiŜ(kB>˜,7 3MS*϶ɴ] @NT`2Gbe2 V ztxYmjuXLAI"ogz{ӻ;_ɪ`܌w{^5Fδ>`K}r̄*Δo:pP@?<,F U2x%56%g ̼ afo! z,*zfIF!?}__Fg|4kbT>FL' >/dyhP iTq;\at:͵% 40sꧧ77SlEEl!""* yәphRb!mcJel&(5{ӫW+YIcoZp꼴yص):ix"t,~z%aFʾΓ"|(\q??{zٜ+Q!rb_ SA<)&{ČtH=< `FSedNJB[a""M=\iBgRQ^ (c@du# 6 6(&s{S-q\M&,[Q3]+-B^`ն9;Y?/ (_8Á6̬Dzw_Ȇ`,֫_g$U8\59f\y6i |8!9QޟPb;==~?^I7zǩO:GJF'$+F(Wr7mTACԈ!fTef@g(;`HP1sfoz~Wuie/^ kRި_^PǗXp!b@d淋Q rSCP(ϤrK@n'NgȮ뵭 ǰuǹsi_Ҕi.Y- 8'Aecuvam qGۛD6J7 cq΢2gk}a'B#|BwCwɬ f20L( ΔL. 0n`̀eN@Q#o!eYfC`q@ ULf s[; ,q\|0*XnRKB>4v5Lk y{vȹM` M"zlbo?(Ēq%4 Ow\|0cM*-3aѯ <GL1 b$cd QR: c%afpVQY_ 3^۹dK늩GzsFWYH_ϿffΜ;9 W:갠Zf-Gx+ $w*4*o"'IC34&%N1s Y'ȠJ($WOA9Ā a;ΤTr$YpWj_3˹ŎXC;]M'& iCe73WgF1njZS1do 43C~b 3NMG-}{,KHW&H֠*+kbsjTece`b4*:#46ً]{58ۛ,2|9G8h\s%ɑsBJ2eL:Wj_7ߣ"1F7Vs%؛ ybO/pTJ^k {`$!PEᔩWҗf.ooTφ(iZ xQ3E$fT~f /zWa&\M{--f=w؛tMX4tUUaʚ(T>gӉpcUZbM( лAH(L"+̈Z`3&tM}ڀ PS,ƀhoPc&s/n"뒤*JPɏt"Touч^@M [iu&/*׉U)<@E?z~08"lt=?)LJm'OR7pNOfrLڥKNMNK 5A*.@+9=:T>g87ɖ+?Dezj@n.9=W3kQDۛ &>BOnx4STZŌsq  b.9=W3kQDۛ`[T4\^ʂ@͏N[#(lKn`HЙ9WI^t=MӰWBTҌ֝#V#;]eۆT{I1.ޫŒ)7qH(G I-M27aIrp}47Va&\]m;0cR ,MN@z\@EO0m{_ be C,*PjH3.{}^QU51&rRxS<8 O m67Ei[yOLY7nm hfD5Ǩ0s 愨&; 㤍{tJӱ+)'➎枎䞺 Ko0BHFyh.R T"j?QO\eL%#&OcR0#<30@P LP$)5Wv({]p& l2 ?iKCY@30:P.CP6~0o0Sp_mo%nM9}*ul+sk>f`"B4Mnt@g}|+-nh{/D)ZţyMA&>Ye3fϋ8Mge3FȔ,hp '+f-Md;tx<"ΏyBv{,zȋ}n[ *%)P"M(I xJ0|p1юG!$SgvNSxۈvҌt*143sW?wWFcp0- fkB=pRYd* YǞ&٣LŒ7[*,#;TnDZ{lsPa&|-4d6O Qv0S ǭoENY;f#LYD&I bc-H:QWtFڛiC@1|B['h{mYځr0{/XiFy8)| ^?LVR/ɧG|pم''1C#ss {ʷծ0#rn4Vl|CUqD HC&hn[|:đH&n 5Aa>ssF*DzYM$^ĉەo ,jccU8fȀb77:&Qwe 3YfR &ܤ#jIgLٺ7&ɯdVwL2f|7T1i7 kB|ŒUoRɲm˳nw4IfDc,$j8M:4Uzx&QDܢ1*$h"cUܻ6zl󕱷MfJ^QJɬW:cg/Ek, 3Wfn'S]LyL" Y9˵ 316~ AkD&\~*\ t6C lZqmO3@3 y%bZc>Cd 3gd`3."}:S n(P0SxzCXUeoCU)u  X!}⧢a,Wlx.h{Œb1LoK| 3Wo[УV40ffM4L?h=jA SaFb8Gf+D=Fq*̤T]2Va/0#|Jf  3¦ԴK9";|Vwv93p1\z"3:*Ō"Suϑh!#FY |5r\Ov*oVI+I%OR "\>XT~ /rZT|XYM~` 3gR)#l3fB\fYCFպ yҢ| 3`;cFuiMfHVi~Va JgJ:*AN=T1( ʌU8. ,n34d|]+:s+sUa~^̽W]{ 32{_fwm*}Uߵ;0s+sUaFTMfosֺzҬ3P3V0Sa ?/%geNoIENDB`DyK www.concord.comyK 0http://www.concord.com/EDd  C ArV:\wsCore\oracle\sizingWizard\image-source\swizarch2.gifbD6b51~k3Xʮ_D:gnWD6b51~k3XʮPNG  IHDRPLTE(((iiiƠ@@@SSS͢oܰWmݩʼn͵ٶ竧zսg_=S̄㩧PPP\(c@tRNS{DbKGD?>c0u cmPPJCmp0712HsBIDATx^} C:vKZ3NG=ԙS{V .:8ئmu{K]9\Y4V?D]6_z6jOstب3l9ac?fi? 7}##J!NFMW gk]u 7Kj&T2u6V `n|l.v {#w~A UEFlwQAXF߇}_|]~p;ďy[y>B9>1XTF2oua)p揵Eힱ!5kB PB{L8~>\<I3ll,VfTg36oƿNnw:Gٗ:GRBm˜bh EG9ld6[m {흸,sѿ Eyx|雧'cI4\R2dmx`576_olXrik{؀cuIlŻo+[/t?KǿG?כj~zT8Xޖފ &Szy/qرYG%;z^ q 7qɿ:_bu'oήC:=Xl x8si6;v,!:+9[9l7>?77|߄-qϗwkN^(AI1RH8PLY:=,]2j,C텅 Aapw;P=p'Sl3ms' >sۿ{!w:Ԗʢ^n93aCPπ )ZHTkOm)mu CFH6;_!}>ݍ8U{9 I";v)7f =ES6X"@2ltR$N bR6I=d͡܈<9#:1^_WDk`eIQيSe=6tAA_Vȭ 6($y:ʱ׉ik`"4|tXF'ODi\|>_?}ƟF?~\^~>;:qmoF e`ѷfuؘ0\S@V@ "3lt"`g[zkI*6`08vuЮ˧볳_^kp~+ӫzMJ+v(z2?]@e*Da+ЕSI4rCLI)B^LJ 9Z};?-t[ /bkiׂ%6!7,Y%7 2SX3a4O:r~yyԑ7!7~#Q=0!vy= +ξy3l   ^c64eT,N*9TT ׯ_X%oA@ ^G_6%'蘧'o9Jl, h˛sl,=E_aɍ5:~G?N/\#q&7A{ѥ/}ldY" XS2lkJٚB h\Re+aBKkϲF=؆?ێ˛08vUpf.}BŸ%?lߘ Jgؘˍ po1>F%"#q]h[* ղТћyVuب$7 9Vȍ6ڄ6^pFi) [GX}?LpYSxY&)m ڽ)3R<뱱p=,*s7$%€5jtm._4~|T?(M.ϐ9}qX8.fZl-_%ОFze16UM^k0db_[!7_rrP` yy_]qw1p<#Z5 r`xsbz[ 8*%/!]o4掼ڙ͜w'gǗGGdlZe<0kpi`cEdc#RRyAd(0c|^IlL=\I 3'6ȾƯW-FŸ/k=9:`#2*96 > dl$HY5E% ֫6vJrÒ7kbcA 7\3(e@B >͌jX4J=>t{|~;zNΓ\8ZL!7BcxCN^jV !ldF}!{w6)8VE{w8hqğRAnXʒ&1l*FrӢWf[bfl^EaKjl֧q85ӡiFcCNpG=F,{y 9xyfGճ`t|}C?lsa-RTfM˙@Λ){lj6"̵SN5~%i,N`4=/DTUl[~r2Anzuo_!7i#B-ްqZ6TbڕI"DPKN5]'`M'P 0>2ft`#5% ښR%w6Ӳ'*ْyV T'+A2}dO^ Cw.~0~c-6KfM0v,kڀ`OFc=b'pMD,z*֗hSYF{'YNRA5YCT X#`αIT"^J&fJﳴY7lWJ̞F'i"dN ?qbx %DHyy^]E`'>3lh L3lJYl`)4ThFDDPG|vQؘgKJP/zrc?M]B`mDZ@n3D",7eQ8x~âuczm ,E!RC )L%A JHA#)^5;zXSהxgXnS^s,Է†.onϻH?F)G38^# Xf9)_,+rY$ #=xy qr=]韶Fj3 0{M[ml[N{(Q-e%k=TŔŽcttz@ȍˇ3=B\62[F؋K>lk1[#X[EL<4(>7: [i8J5 K[tED}};Ctywˇ])7~WFZ-EV}m#p b1ӻiv+j+k,W77Zq5l'v"U"AP͹9+V~ ~yN/^eKOy=u-,ͯg`2Rv{9Hl,\p5kJ>wRJOZlyO} 6'56m#XSDcobJQӈA_qIP걏kT_(ж0^*/[ý?lA oE$kWd_{oǗِ7û]p8~*l8o/G76^$,U']2(7*1%#_#MWkkMVþy E1D'` flJ0y(8wd H#&<׏=!7 W=]Gox?i^6($I'x8'_iȳE/ʙwXJmv; v81#Kv[Hm(XGgHG$!rQ[֭%oz= )F9JNZׅyN`|MYI]OUwQَycBFc@" 4w mM:m&Yh%xQpIFצbGڶ٠YyOusX}~Q=:@`jX8W5v:HsZL殰}Ƚ˔$hHCǶRT-mDq/e xr` Ybڃ< Z[: @HlTL^(qyl3ϫq-Φ6pCǠp>#Pӥ*LY~cb"47#.8%#ڕ!(}Z!:Do {:QYi9ѡ1?*6KhtF Z0iAU %бud)O=\"=& =1QbTCNʂ.!پX}yѦǓ-ˌ %D-7h?yk(ދnV\:"O@㸃֔y` 6me0ځGWD=eEwxDyqT\$e "} z w* Ckb̨ou; 6p+ J,FۨXrؠP!}~B()#C ۏP \F#**'? #(ǔaxQ >7<|!'FHq( S/"z^Ip/# Pu00wd]!UqBؠ?ga\H v'}u@H.y1M̌%%"&1J9rbQ>;T}gs(Qc anڣM0A!Mg)_>q ] c1~`8qrx,~Dl1(Ja& Ne|NXq2T|skJudl,ƋRP@YKr >ARզ  (4c{* %a@oh_P!|ea-?jaonF78blR(p˱uب;%+þ9>P ԬE@|7%aeBc=U0T^$ІQXmGrgA"դ}Q 12D -4aɘnܢFPTKtk*)HYW lO겎XqdԀѣ5ΨU8HOAն>Lwfߠj(6@@0nX%eqQarh6TMb FgJ$+3Ҡ"ˮ6l&qrc/s^xϰAQȍx( Fم!@#u X=W˭)e'qugA-Ne5U]8an .80Qm.7&XIq=9Ig^ۼUصnwbգ:sk^tc9lX%]Ѝ$+7VH:%6*OC`#yL0+ar!Ⱦl4 @4 m[,u'yڈA 1ݣGaxE!CߴAF0Oh-sب8`U/aYđ\p\Z$L`$ez.<N"6Nv㋰AN/΢\pAax-e38Be1⬕θ("I"vٜh7\A7LqKz %dƆaPAT/6 -dc0U.0 yCGfLpL9y@y/8nMQ$gEu/6d\p"mcE~ DqD} c ;)VXbk_zHd0LJ ͙:&ڸ@o;bcsy#a .8U 9lk*I}m\K\pc#rТm+֫NnTVjY"SŒ EraU"V⒫.gel9|ج.J1 4nH&fQrf[Я` ϮFI/y^l\p5^]{Vg- %Qj6hɑqFfR#tbC aqS \EXp`D{) GC@̱:Qei-6 #+$9\'&RIhDyȅMm , C9lX]|؜gP׏``f\p^Āw1o9"K87oL%bZ}g0/K>6c(3.8zmB\p&=T0-z+FiDHӗ& -xVaW 6n#`4 ޶Z|^ccD@(d^!a.rA?B 'N Vv{ ikAs8l2:S~*Y\Gց\eǸ<[+{[e[F2.Fc`#}A3 oҖx)lF ,%*1(sr&6^l_- .s[& &C|d%qs:=4836"'a,)XFLҋ{JRWa#_SdL1OU? wCyɍ[BOK^ ⇳|X₣H#Ȋo1x$ݶjE_Q?ŷ%lePOY( X T8n=62ZSRz+bC0kgYOȰɍFsl+vnX$הElFurcKhUuzqXSJ#c'L#IPپB>7)&JV>ÚRqNnT"l,$k<*=%rO%OPT ywNnX]%]4 `s2w^j7]ÎFTK~]H=G),7eO~at|l9Zo(r@f_o؞?w㰑sxU }!9a,tgI*obs9݇ϼ,2>КB({W a?ANnEG^Th5q}evvXz 3WPE8'pذ Q[ +1;|NbÆ%lfmƆq(;YƾQ~H9l?@?nK?Ft㦼;l?@?nK?Ft㦼;l?@?nK?F| PVr- 6L̸A6vF.T6J S tXii6lk36M-3 4<@_@аo.OtF3A&ĺ3RSyʏ / U@D9jD+/2ZgN )I#qijGjZapg`X IN@86T+6 P/ <aְ$L"lkhܦ>ϱ7ڔ^th6~;{~tN a#Б{6 {/ݞe3Yn+Ͱ1M3Ds# kp)ڦ4ST6:hn l߈Æb5ua<= ;;=ܦ\r56)7 .6Wbdl9llg\Jlk-tذ9[k%604-ϧWb$BZbuذ9y[KeWmŷǗ\'bZoQSڶMhqkWcC!+9lXf`6F2љJͦ١@`9ڼhV*;l4 =X̨F,AQ a 6"F8VL(i9lX \+l'\VJ"zwg40i,]a<>[P*FB4 cCQNbC5aƉe-  \>TRHE}VA@r9~XO1N6ck߅Z _&b0m'5^  t2E Æ#&SMn[;@F/gN԰jXSD ;koԣe@=b 9 xˤkي $nq+ی $U8Ŝܨ:j{<,Uςַ[S΢܇l5,-)3w0Å{1b٘%a7?MsC ${% ErWCB֔\Le'FRl$2 RTԩFzi-YLUHJdExn&Gx1F㿿`=̕șcA687Jv [=j-J]n1Copب2Z[<)*/cCMA3m7%gM3P !uZ^N9afhCi$O$0bPH %8`PȱT bRkB6j ۚWa'>x#5Ur24>My ?=\ B|i5='8l"Ex =eCmy"Q2tig:!ae8hOp @#ߢax U8a17Q))Fp `%M) ՟perF("Kqc) J`<A!mtHi(tSf(MÄSȤ LN7' o9l }58`Ѡ4$>w_ rST#Nno%0e~dRZJ$<83m Z :ҭ) iOQȎQ9@Ub]t'; q l^4&w60r8mr{RI/K?ӫ+gAԔop5ys~PJ(kS(868ɣo* "JcZQN)+40^;ASQ64:xiab$`@^oD Vli|:ph<҈6Ӡ_<{{5&7T3"fx2a3˛5x( $ {S\ UOƦ1uw {Y+AVJ9`rՌڻ`QxI" JJJa: iG aovړy^S)5|=mRg ʳ}遐#@FOn Q` $j+c | X% .JbiZo.l j8l4ӳ"̚ |cPҀ #`ͩ jl*.>d'i,$(|YKOJΚÆ!(-v(M Tz'( 6`#!- 0b,T|mai`cAIK:eHbIuUڍÆ |E$ }eq*;,9ll; W7T#39lǼBɾ! jIE`D66*/nz7l]6>4=rV28ӈA7IiYdz̠oa6K@ɔ6MBSW3R,de#g['wذ }ul_ b"{L &|P`.D[P,۫ӍFQ[qW 8T}?뛾7Gc{qFA[uDM.",^>D""Q\.9<61[Har(ձ66;3Z"9dSnȄcQK aKG `QXZXb:N6lvzc߈`&0$ FCt1BF0?{iGF_#11oX7 ;R챏#}|S>t4\qkJZ{4 f؋wm2i -duD_!alawLVoK@Iv80}dėk(>RF!;ȣxʆ睐&cC'Wr)4ᕼ4֔ Uq_`UrDd>!A~&LK܍Æa] b˰`h~P=R-pq7cT*L8;7]sҚ 閛Y_K]\6J Sb`*HEY)"vwب>zF( g}r پzaI}%~ʤa= \p~ NS QYi/!)6Oyb;KV4f10pB$]5 o!sIS`Ȱ):lFfbinҦZIs.8 C\pZhe%6, 8ˇ}U9 \6(,b7lዶ4\p0 .8t ҠnZqޏ r.@A/"\>oNWC'pIͲ ࢌ͉oF()$A%s 9&}5'7ltjky $Ŝ_sذ4A3.8XIB\p\DG\p/du tb6>8lXjKt3 \ն_ - J4R_Qؾ:lWAR~f! 5b#ԈX){qSH WuzzqKr,3Eg\pg._%n'/na6, "6Zu d;̇Ŏ=r/Æ%l,rKQ ->T !W\vn%A#;l]6gw]o=Aցᛦ4ܣY R͹S;!9]MUלܰ99HQͱъӑjur4MwB }M`7ÞAڌ{ {czrh3jy6,%VdR 8lXSB5 KF71x8+qOa!d|SeG[w` [#*_6o1zlZ<*Љ鄱  ST֧2a1B|Ծ\|`,G-_&$V(H6ϙfm䪁- A{@0}QՔr#x.ot퀙QA w32`"+7D0F&(.R44L]u6566v1svqy 9ok [0qذ4B%IF2qÆ fa0ag0lC5IENDB`DyK www.concord.comyK 0http://www.concord.com/=Dd   C ArV:\wsCore\oracle\sizingWizard\image-source\swizarch3.gifb<jѤv~#1֯R<n<jѤv~#1֯RPNG  IHDR3PPLTE@@@'''pppmºօYnЕݞȸ```ľ͞ꪩﰰōigg0G}PPPH[㐏}xWsO@tRNS{DbKGD?>c0u cmPPJCmp0712Hs;"IDATx^] cHyqhe\~WWT7 ((O3gm^'8R9oz/u7%n>^}Ě>oҴCf6^BT /y`8rfՃ/?o5"%֠R!CSO{cs~Ui*<;jUhBH9W3u^2h2QP4ߙfSF>M%k̕RJCu)QGUZoѮD$fJBo,Ua돠IߋP39TG͆= j+@$f3FIŒ& >AB 0,Xeq-*Jm;8D8E(ֿJ)(oۿ~=?wzv{;)lC&~kOڬu-[myju8#2v7gH"fdǿI3spytL&Oϻ_Od2[Od4y/m]=p&Ki7˥ھnj ٻ΀F(ˑ&bƔC g4K5 跭oq9z!UTs] =ɏ1#ba"t\*>3~{k=*l7jQdѩ5l,fѱ:$ 7~lmh] KⲘapx#if:YNqZcg>-gkltY-YyT Yl41W SYtLMo0`Ȣd[  Җ|OS#X93Ƿ״6m6aU7zzt~_Y*ke,%첡8}: 6T`Qg~9Y7\njW)a)5_2Eu`yੌ;ru 3*Y,|˅8 V 0n{`]ˎc隥*^wHB\lqI3[`f}fR7N_ګ7Wml瑎4crvE7 `+oHQc6zp,0n[Qdh'}TV9`;}NWoj=kSq.{W g cOvU1%(RfLFuth%D 훰.i0+MKVMk-$$Lv ^oXLxu4f$hn^[ޢIG9oQ|QQ ־Q*f6p8.gD-qͮ?0'%UmT5k1_2aƀw͉uOo>}kwƽI(XƐ1\zcjfNA,g0bj3Y9v']<]AV8f2]>#]FV45 gk8AMq4!gd+U(܁$ JcSDv 5wsbƪOf˅! +t}Y<)a˥άM24p1]#: LhlkȾfI>P*>fB#u.1&3}&"g/31ׂcr&L IL gtWsKBsUWh i\̯ITQTQ62]Ixa#sf"drc Nvk3bc8B.ﵣ3r&Xrc c9'gt$nmF&X"lE6`8:g ?f"L͗e|m1yۋ M/_Gr3\ά,gФS\ Ub!a-9u ̔+aF\fP~he$Eu+5!9i--%c#njs ~wQΜ3!AsIY^]jw)z>ڋ˅IRrMװ%&ڕ9fftTD  x?@nj?džb-+\ M#E w mF;Mn{2$p ?~iPDM&ҩ3bFA'F s_OS!>&n wCk7HLg x/* V(6||PW3QӳhgA8ez h=;ŒH;߸)Epԩ L6?xq0<.&Hu`m` lA->!w.|^@EMr *&AZd9X X`400#RzVk8A(hfX?' 3m,)Eľ ڻi8ܵB^vwIK0C ~'brc7$`ZErnʯ\$N>er 0TJrr9آ##S o>1AA*I<8fhayV) 0FZ<8SA!! 3ވ7UbRAvYzڭEov3쾑 |6ޥ60Pkcx``,Z/i2$wc1.8T@IM>- ӎcB X"gFA.}fW6,tn $:i GPb4:2bMMr\BIؼ#ic[3\j*y5ML̸{= y8Z@⨾;pz5*U,K&;Z(:=F-2s2mp>`4dhЁIðI StM/Z1æ|-I)k)M,0"Ey幩mޜ-~߃|gi\#r\8d>ʘ0fj9PYxshLXcs8⊿̶%'1p1i"ОCl ^u`/GgzO ƭf;o,V*!VЬ_kg9kImǻ`{Ev1̔A}]BHT Q2 {= :6XļPr6@$g qVб-3_{5ܯ0l[%!GdP^ 0h0B714v=rJ '렟FsU}HภI-6,t8b\f6IJhKNZ~j7Zu^|̜7mV]Ebhfqzg3use.`^jm)gKz7qph#uC M̪7ΣO\Q|Oydu1!̔ /_Ϗ0sYhŐND(6r Ȝ*ƙLf}/y}&KeNa}E BpxqtC <(wrg~'3sjM =aY1!nLQ+Wu_&2#c)<Ľe ə\ڱ:MW34fLj& kS gtɌx JNLY|ՉRְ=.Brtv|v99G rs5ETQ2E`^!ZJdo9q^3ʝ̦;^\I7ړ^MGP=vO9pvip bɔ],~ZSULC$"{'ҕg/}f~#Js5pC0$B M`Bӹ[;șMRgN1 ?oqx,Ep#y@E 6r1y~fPAX xioM6D n3فaA!kAN&5؁104%BM"Ud*C!P1ލP3ZQE{ >uI:EV|+:LdN MocmJ៩c߄Ys[£+V… g$?KRXO:E1)d9/A@_ @(y0踒hg3Q~zĐs}nF\hOVAADm>IK\T6`bxH8HC 1 eh8DtQov$~kQ^ rVc |3V]JEVr.dJ/!PA'xh al2AJ@Q`U$2eګTMh8f`-KahuSmځ8BwOo\3C[|&.-P[A)@ hd(3o(y°جkp,3$k8fLCK61LŽ,_PI3~~H_ 2!A[plh+ /}G aF[^7{u/dDb(ɤמHZQ^ۚA`Xڽ,Wop|!Zq0O]ႈH3 0ScQ!LkSu]@Ȭ;0)Rf)$7\X`S`+Pcku ZVgK'ٯmKWw#dgkdDMz`^,85 =pbmAs0bt21G(C*^-*x>_xG+i\\ [,wn/, iUJ#y)\3&f&!#꣼o3$m.RC%G,gXR\$'xey#˨YfFFGtz RtjKvB?>+E_STdbDԀr6E˼>Tm U1,%f>Eٷ:plݯr=ٌ~+:k\ֳst.ۙ6Vb&;˫3HDsXSq lxDd p,UAL`e-IiЁ5ƹrpM 5ZY/g9[/Av 2 /!fri_ 3|H <;Tec$WD{JFM1~T>"4R;O苵9Ln?%2*: *k: X\1f<ځD>Wz9ɰ%,خ%UaC )J\b' -]q 3^D9+\3fkW˧ 39csW 3^eqmz'ua/DU^UVVf\y.vEV9S](g0SӑJ1S!obUMhuaƗ3c%HAlLW TecR2ꬵGר3*o QrJLW;gEIoZTTԪ;$Y׋f}֒+OUA?"=IPUh N(jNJGrj}HGIL}`* fH@:u blz`V۶eiѫ"1H +ahEP70cT*|$U0W'73Hm"02!%(rQqE&Y?|UdRa(C0uQfI*Lyn~Ma)Wj$5ي떂I"sUAn pX=EVAUWLY䎂`Iofî[>ܛȩc  P*Ǵ/r)H7 w82a]:%kx9#X ' xB9 bVSa!~(8 `{TL0$<;XV 9S_ 3^Qzq5iO!aovfVPi-ްrW$dO4*)@ ;PTOWP|[ƮD 4 #&:SJb2TeX#Y?숨;aF'h6_3^'u2!"a3`.W?"s%e7@t:IF$^k8 0_ }0m {߁FL(QaЮIHӕrMfCb0kACG15hƂo PY֔G *M l/䕈"5vC $&rg>ad,,/: '`匏WӁÁyeH_˫O  C \徎u#(x[%n>ZV>00Ll .bWf^;6.Y͋ NFY]_`#]Яb-.GKS$̈`/A#4FE*#}uDΜh_Vz، K}<ߔ0D`A~_)[/2r:0Q[LA;'l!b$%91tv 0=g6xPNb> ־8f8p 8t8h>ߘUM@k=`F2rϏvy=I9c/֖ toE\7a^2zD u`oUGeY'1WIf3e1sQ49|mȀlxf1SZ Cߔp@+!?wy@'Q$`̤}!,ߤ<8ɲ ?F%"h _d0s1XLD*k/o >w%*P&I GEO[k0SxQQ6a=4 =&YOf`M]PX 8L'rM|{>T)MM#TΚ+.qL۟#urU AE` 211sg <` F$XfEl&ߤrkе5s`lQ΅jt +A|ǂ`$B .2 1Aeå]oG"bopn!RM(-=/ iSxP\"O i#Eya?W4`JA!L7-(NU F9?U}3U h"cVU*؎wU@G(ùx⥱[2lLaK8(3(F1 0%jy/ (y ,Ql|;P* H3Ua< 8PEx-L-EpHaeQ,B X掘S~SAmUC֜'@ `3wYtJ{8(K8TlTI/z]kH@x,ev]*Yj0eҴPt /j ^w")y!>]#v ON$IN%8 R6b)+Lo0qom)  <[[ ݜr|qT0&ut!Չ ShiQ XsR'o0St䎏K7a+AUU`a-̏NlLEW:8Ys} 9힪z4jMdS wJn@Fbݺ;2a;1Ƃյ)#6P#]52iY$fh԰::5#ԯpcvIraܺ08SF. fɾ3*顸$O,ח/oq-vS˓Y`muͳOy=qj̄ }@T1`P.۝`ǧP AZfߢBG䊺԰>rߪ8\\ q~=tȆ`1q&vW y_|+mB@&tt Ǜ džP~׈g~CF{"{#gT~7'E6AAyDnU~wPX#A\GG3Sr Ed˿ f.P+oډя&'̥u_a@B]H OPࡢ39g)Mؤ<) % 9TmfH\ZѸtb!6H?̈~ ŷ79Oob%@7Bs`Y3o]qu2clH b7c^,8$gm˙``&L^{YNrԚu}L)OgjSaq8/`Q6d!Bʔڈ[|`z yd+*]eEuxI1}*^$I00.ݲQ3Ē; Hy lF*9*{W0)*1#X3H{$@\Dٝ9!mBCIY 3Ny3F(ɘa%4B6b]GWQ< ~FZOXdF+'.еT5&$ XǶ(D/9)pBY^3-f!a4Z +W\GEW:΋Vm F@N|N3fP˜I"SVqz[ԀN=8L*ڵ(Ii.&)p&ɊD3ES;7U$ ܕԬDq [Be= f ro""-SZ-JV.QL! Hk0St?+Q(9\VwS  Q4ExFjSȔUD4If o:$'041WW.o*W鸨J6U8O|IqŐ׫Ш6:/3JU\_z:rsa8J/))nP8yF }+oNzM(bs/5A XK#xt|Mt~a[w2Ɍ*~5jSJo l 3T>VNHOLU#o*Yɧ9",Tj9Wh0i2tJ7^Z3c&ℏսp47^齓M%7r !(Ɯ: 4j ~8z3UcG"-^~7olm Z4 1iv`N7 z/fnLc 1iM73Eε=9S.\]0*Wl f0%1ë7"2fk0s.Z)%6E,ŦlzMI"镩^hWOFh"*~5xMe7nmi:můT5)2"&@uUzi0y.tL+S)zE9VH)i0S75Vq c4Tf/^ oܚmY2Sd׾ n1so1S~ɝY!#^1*v+ fLߤHSM w[V]~Jk0Sհ7ߔ|g(()`ޱ/S;+~3.Ñ7e8ti0S밗T띕8y=\}XaLQ: fN`t`g]M*|N`l ɰ6YaFBXmUN`L)(Ԥ:nj'!6W2'h0Sz*Ϙd#uX1c$b>˸_ΟL&cD#3`y7Zs`P긖*QucWEN`D  H[}g⻤Ha3Ldx/4hOQ̫V(N`elS T4 es*k5Fk]ךk4 f1_ fOlK̿yT5#ۡN /<95E'3`QhYTgrz3U$꣜w̔ŌTM'̨D'O g`,f$yL爚-E:Y(!P B>@$.:*o'^o0Svu 'N4`CƓ@컵=ѕых^So0Sz]Y\(3 3A?LS$= K?Vp3}khi 1abTK]OXާL)8<`F5U:a*H~KiU.\'h0S~lSԅtSO$'[A#ġr _%%V:7o f:q?~3z f~94k0ᵟ̵G^ f=sx'h0SՈ7MUޘ``> FDNpl$(wHԇ[VSZ:U(Tpc/v Y+zc>| 6lvJ:O.xי}wK i^08xrȿ B |Ȕ ็+^`t:]z4:u|>1?۪cb6[xvMҺeNùT;2|k\G9glKK|@78n<q; 5 VwRr6_F [iPd DT|}CN§M"i >ʌ ҁY cs2] QRwuyF/282VГwB99lltL$9-r3)Rє?x}LNmAx2Xi~k_3eY*ceyœ.\LkR*ha 9ì`a'2rFsN;}C&c(àvFW0Hi?c0>J懤4t1|'(q&R-ljL&$?%tʙUےfݮfIwnt0M6Oruz%]:2*Rx28O.lgKm2\G7qK=5g[jE:q}Yw[FTH"*h*W ʽ1>(1vE- $=7A.9ho3%Yc̯|eVVcVȁȔ uެ#NLyp}kE6]fi90ױmv}Xm[~,X棾c#MiécnCL ~bljCl|=ʃ4N 8Ch!Zu~ 2FY[ l/4'LLj jA7?Lyaf GCȼd;N9.ҭo8:_ך(L}-7g:-ui|]A6oaEGReQu~\]6i8u2$cN\:$h11>J _C=\sj۠fyhtIGhOP,}QSr5Sٰolyˢ/ao/7ӿ&IENDB`N$DdR0  # Ab#hń'I #yn#hń'I PNG  IHDR ,psRGB#GIDATx^۳oGQs,'EJ_D"$ XT}򘇼XxNZD}C#(#(D2Wx 8>}zwYY_OOg}3.=O߆1|R;^׎Dh CxGNOOϥg+'zT?P/]tٯTǬ {GG,}?'Z/_ģ_D$ >f !>~#곿^x߇@`w# E|Vy;nW__-%=oxǫ?V`G'@Kz_?xx/_>l/_v4GKȯV iťJ.mxp|wZxW+nt*<Oy[co9 qc{jx??W׼x&m/o/~v& Fy7LeElgU{ (j3LY+X/?s ? ЖgU~@`iSV~ʓ {l*oM:Cw=w%Ͽ6 PSգ{Ua3~g~Ӷzxozm'?ql*lTߴ_K ϱBmA`^A=zk&Bxo ߻v|_Úy~b Ru@*kc)pآ*| Ru>p-P[OY|0ZG IU$fU<qoA U^݌7 qe hh \x3@CWP .|j#@F6rn @-@F6rn @-@F6rn @-@F6rn @-@F6rn @-@F6rn ye(ﻷ[>@`cte{Qi]v-tCY݃@f*BY YG B^*"u;̂qhZ'nF@zHI$X|> =ZDےO{.RHgHJA+YT~=*|zxl<`S#US%^3zu~z#МqTx9TT\cvX>ӫsXZ񴔕sh,N]kׯ.Vr2-tALh*XpZE ֽfȪUZ-f֏ѥO-?S,Ϭ\G3"#Qd$'#0٣3i\-=fp2}ZѶEQqY-¥DGζV&URqCVN>;D쪐rf֏vf:Om_46AfϚ[3w*:zLN^|Dl{Tl&Eό%?s`LbQLlE5 WVU^Uɷn|fQi,:8ڥEL?UEM4/R$LO2_Ƞ@SKE!Zҏ\ 4tX"y~q5kﬢ|˪HyE6)-JE]W$ߓ?k3o eR;m'rJ)tb5җ"{WR#;w4$w5cG`J(@& l6&U2R9u"G>˺.VK3,r)JG{%(K 3Y2ԧ:GRK!hYl4VݥKvUnf+L|nryZX3G&rVACzS<@hu۰7` *,r.yOWyd(|V "/{ &]e-J5chς=,vrZ8kXBm4ڼL+grJu=zgu=+h Qz0 z;!P&U!)ovgAS@ {&P,U!0GȨ,SZTlwy$jqeOޔꝛ'϶(@\%+]I7Bf 3JOv+bR4UʓCh2YItx:ZmJ#HdTZUl6&j>ըSw.-.>x6 %D0W*.N .bˆ׸")?J|S!˓JYHʑ*i5yYIѣMTQa)SHԟZtʟ91e{&O6DRZYcYjQ'jyMR C?Q͢iH ~ Z%Gda҅tdt;[hh,TKq6־BxljwiK#U WO'{YDC'',Oߨ[9옱ALuQ\!u^!>}QE`陶4QEuƀm~,LvN`nK}]9HRg2:3 loCȢ4rvѯ}^U*j?9@Va䗒*Zbn`E 7 JU_N 5Vc T@]g >HREjՅ`aLRPG"vN#%2S620늛ȶ6/B4MW}*DGTIF}vNع];:xBv ^DJUY]']U-4^vXJMrgUZM.xf;O<;$z*|ЫQU/J]aiU` *U$Ck.nbkrƤ#Q2b(]YdA@` K}]yX@`p./@F8. @,@F8. @,@F8. @,@F8. @,@F8. @,@F8. @,@F8. @,@F8. @,@F8. .U|?`n;wB ѥ*Q7ENFE{;c^yyn_ݞ"1H.ZXn/Di?ՊZI;Cu_ITHѥe#,9w|j-4Hh~1ůr[^K#ҺLlwjjI INHխ(Ԭ6YθM ]FXț#jn5]}vLR5Q<鞱w;("UG H*xv:V-1SDG"UW:\Hn=y9Fn=Yv;.=t M\ l=:!.0ltTO>)fUGoY^r"V^ Aܱa_X<`6)@WSd$:`Qx5EF p@)@WSd$:`Qx5EF p@).U %|ـPy?<׸J&UFE_Ea EF6} *$ U9]/3J_iARjmMԑF]֭рxj"AT"R7=ZwEkH,׳Vm$Q{W KsKi~@@Kfjw2%QElyc @&?˅fqR)#[N&aTy;NSu+&)(r! =fWIKh - U9z=#vZ(-zWl$6Ö PD(7=oRնrl_k>8iʄfiT8xK Αtlپ @!HU!0lARu  PHRU [TmA}T9 U[PG  U` H'@!HU!0lA`tb]Fr/qnqҡKU`6Ťjؗ3:!(#TORKLKB:.)V(MMT6${Q g=Rd N?&f+ TEnM/-u"K8ؤtR^NO56VJbd Ug2Qy4s(J5E`L U )GRu=Zmյn:X* ;stɢwgrRGxc= ZL+i}ib!Tn1bՑ3tJ N A`,lASN A`,lASN A`,lASN A`,lASN A`,lASN A`,lASG'aD JB^r[x+%kG  p"*իW'Պ6\,4_yߚJu/o)ګ+:TtڵKn YlI>炅FݸEGp'u=2N>>K9<"U41:UX2n@`Q*R)RΉUotI(Nե\d jծ"*VrI+>UT6Z'-Q7]Yd-$Oj4*5UYAxJe8wlPQ{Ajr{WGڎ8*{R؞O&x&if'4̨mՌq0KT;UR)}dAĹ&VJ^ {ry)R+#FnG~7!cȥ4_d!9筴4eitCR&V |*|"][!}<ƒܲTMruN6Ky;YU\8Ax Uu/UOS0c8TS?Hk߱~pF/ dj度X`\t7?0Z/ K`tܤ/`qԇluGHFPZmȏ?ecj@#zնI:`Ej#T%UY]*!TE>q<ʑ@E3U³" A`VϠ,Zuf:}Z #|:)=f4Wi.:N/617(sDv ڂ~#"HG@18@!nJ@A`dAnJ@A`dAnJ@A`dAnJ@A`dAnJ@A`dAnJ@A`dAnJ@A`dAnJ@A`dAnJ@A`dAnJ@A`d]JU.R{LYKAC&{0(%4KC RB>+n#U)R"ͅ+nf|׉O"V3R>%}>yV#@`vFRĭKrf&J{,+|D>JTNe̼fg&;BifzQ3G@ rS5p5OB*fۯ?;N{-=cko"o۫TOG;7F\])Wl%+眷!t,U4<'ǍOn=oGVxz5s'Kp';CO:QIclK]hnVKڷ*soV:[:+ZK E]y#zItgb)hB⸢\MrF$L\+L66Y5C|, UIjU].O;Z?q؞Ei`3UΘ{K䩶TSzSQtɒ3#;ԋ' *`hN7;{Mj|=-}eڮ3Z(]HC/nY)(?X?NCK>hP>̉Ar UWC>}EV_+϶#<ԙ j muޫTt䯭~rrҙ\xr3q5d: >]5lÖ{ď#U]"UUaC#-/[PG  U` H'@!HU!0lARu  PHRU [TmA}T9`$+W,}` NR;tVz{:"k2IgD]3:Cr-/?p>8JjGm< q,%ICN-uE*K"9wCxGd]+m ؙȤ"(R$S0cϹb;4WKj99{ɔ\YZDO-j6L%BS{(ԵWBM`^\קQMY9S4WR'90i@S. %ۆRq$,R=Daˎ R*Kp2H\$@`A$UpABp  ݔ @0:@: H@R1 HUEB *@:(BTa t@RA" c@gWVH]W".srr2@H@o1 IENDB`>Dd   C ArV:\wsCore\oracle\sizingWizard\image-source\swizarch4.gifb<~F7^q%'n~F7^q%'PNG  IHDR3 TtRNS["bKGD̿ cmPPJCmp0712`IDATx^] pu~TCH%j(Qv鈵8m&PڌݎEm'u'nt2&`OILqt&mچ'M+r:ig:q;iʃj:&JLމXз$H;Gقݷo?yzշ.5睰wjضjg`/׉vp1.]m,~n.llŋ$w,뜝1+KMh5MzcV[ilp_+vӴ"wc-GZjEiZ1sZXIwMR[MVs89÷k-fW[ﰼ3ѷ͡l 7 5dI]ƌǖj̄v&cZ.o7/fJ1|g1ѿiL7I3X6B2J]OJ&/Zl^gϕMTxZMo]kمx,K]%Zp=ބS]z˥u/K1󊭽5NLVfj'6N̬52{bŗ#H9Ʊ ei|4Eo})$spd0Zșh8͆6&wbGK6i%:c~~4j*O _8-ByM ˤ)TDl 3!Ȋhے+1jas91arⴀz0JͱI"%17eA 3{" /ۖ\םuJp|\@X'YN_̗JOCA0&Nh#c/_UL$ nے+1sq`Ǣ?'h BF1+UI:yCbD]k@"4Č=hÜ&q|, 1,`&c >&Rx%qlJ4,'dԞu.fjzdԛOS?%3 j@!"&×jPod1RMh2(fCL:;>.Md  -LLҚaZ 37L'*IdL$ ! B$+FQP`c`==N TUUdֺjewOos8xx#02r?Pu9̬hA#-( vmsИΝ+||:rk  ̉anܜ@{kff^hr|L-́ #032 L,Αi =ɘ rk7P| Lt7L$ҵ"]OƋH;gl>{{y?6[VIH ~`lQp{Lּ58S0yl DmLY2\(xgԶC‘nt+<mUZ{T)eS<.E--.q itRLRHSS 50!@Hk3B'dn:l&e>'PlΗ8z!@ 0,M;M&7$-a5zGYΙPʶ3w9ck{zui"%Z8"X  ŧaabb"QV[F=!ycz֒ےu[&4aN,gҐ|ɠ3zգ <ѺH"(@JS/]8hج…Y|8۹X"-.tZiŽӦg9̦ =hhz45 RFs*dوZ#O~N0lVEB

$є Bqi|AA*ٽw0}:TFQ2Ŭ0ÅWbn {j ϧMmx!]`, h@ ?&1<)m9IM*M[`1A}|y&b"aꁓ>4r3GGy՗}C]*%ΛP8SǪ *O'&uSs-{ ĸ[1rΎ+26%.:Xh1H Ale)TBes 8m@NRϬs҅Ipu`( bҴNVP*~i4|^8%A5^R)ŅY]p1 4D9=%ΣkYH<!Ar 2N{Hڥu*y] }kmFsqԤ|}eb(Cc2}2ʙkpTZ;G\o.+5syَY-ľus,r"/s72H%,RPwx3a*nPv؝ϛ=H8@->eY}I{R~g{ٶι3B4`Lٸi; 3/9tF;w4hg=DHV"m{iAݬ|Ẃl][':́yE](.T>wf7X1^bnL~~X\1â) +Wu_f3?|Mqtem iʴȚ`nM]vիWyMk핮Mff qX 'Ẃ[;ۿlں^Z 7ZDC]CTplԑH]䠉)5.$`|rg##sn&=S F_v3u˔=O B%DH4c9ss'皋gܼn'bb'FS %~# jèuai8: ~+xr o?j63p+3]Q3Rp. }Ѻ_5^ "\^ް EaJCG3/яO~tt3qƖ5&(6^WO"_mEC?Āǹ}:8; .=}|j5hwMxuͼU7ulZ:zH4tP agMm,(> dĻpA-'T;3Ȭ78ĖT,/SI8}އ BzƸk>*G'w8I& Q`V,0>h _dm~NgXtpɍ'8F7YVL D7 1S(<]6 >OpvK| cxpf.e ^4ă 6+M6 1zvdC4x!exɂ:ic4E$dS0 ^tZ]YۿTS=%G@f6ty|8f/LLe:LB*q%`_B= ;l"3)H -]2eo8@(TIqC fuЎs( oDټt`2u~%0E4lSj|bY&mfwF=Z;qbƆ{t?!>2d"'!OF1ID=8AHP! 9h|um{ш z@ϩxy阹 *ar5|x^ QӛT DǮbP2{e_*iV~sS_ 5HV=Ú7*n7lV50 ŵ֥X"R$4>t#j x<CWT?df="s\)GO|w&v1:Ht IL9 I ),!'Y]+˃+L~ii׀ܬgJk?oפB[ٍLhDf'm"Vdoh>/S29(+CF{jr=SBᱶm nkZC?5"_ Q7R)LB4"dd{ߺ$oZ*}Y ӵ6;֚RwpAڪLDj{گAer3pT90d}aO_yoW}.!ZvAlc>L3A/-{ɧ/g\֎36q犭" Fg/,뙅@7ή|_Z7l{Lګg.j[- q6YLF1x̢y8|-7N=po]_jϹ)s; 2{X,#Rཇo4؟W݋;R⌽H w5x1z6dU}Eiv-UϟYcK0A;vmȞdzd_1Jۊ6n*VaGzM,l뎄M ;w–s 3n08ty3陖ڤhzfg8%д ԣ(BZ2qyz+Pf G(q19I#BKy(1cASl t>:éh&%f0E;F-3 X%b&sMCv`:v}Y3ذ|&?|G[u<Ga|VI; 3-s̰SPuY[ yv/mGa32=\75Vwmb;(kmw\kAWkRCMุ7P;h; 3mwG_""pվ[U^ s"OҶj]) d!AI<<&o:L2$Ic0u cmPPJCmp0712Hs5IDATx^] cFPJqzA:(3dJ|R/h4Q˿BO[=[MzR?bue | \zxYjT/VKI?|"I`8fИ5/13oKgoݠlhDl|I8%ؚRa)CcO۬_=i3o~(EdD[fMdf $R/fk /, P 0sL ;kI*DN28 Y ~~f~6&H3ThH۩W\Ì:ki H mgLWگo?o_DgoFh{MM}5;1#kgZ(f\7Z9OßwoNhNehzo]?>Z?_E`fai)H~EI3x+8v( 1 vWEJ `Y͙L_%Bԅ7ZQo⟠,yl+Qۤ3k9jT]^ܤBꎯ5ffi\RXsҕ.dEnerD&- h5y6N{ؙM Atӣwn[Gjx}wDG}檢iEUj$dhfƁAklΈx A_k:0":ec{ jg3ߟU7>?OcuǮx!N4~~4oʹ/V(Z4kWcҋU x\0Nq=8aޱpLf$>΄tp,tbO_8t/ ~go*g1tl. y3#@bq-;z-'f:΄"$ DZYýG8|@g☑-5`e痹טQT*W7#:3c:t/l(tb Kcox`Ag\1|9f.=:h{kzڑ߾E[oo7G^);flRng&hB@g,w <1} cfa5Q,S[!]^ 0/lGSaYm%;4|1z! 2yg?ܐ24ߟ?ߧB"G?x~HMUWwt]npϟσ_)H"I/YV̆\3$v3.7qؕ|PX063x7"?Ync<?.J:5 6[Z6%[3Z|wOc]W 0+?`f<է0m^_ +.?{?̸N+}I}ES-Xz`$2HۘԄgqy:C|a533߯Ծ;]_ 5}':3σN/ן?߁LpU&G >'`&2713pČ&ԯ ј Ddμ~~&=I`j MAPt2sа-kɒD Nl͂7a~# u%(| gۦ$~jO{]_#d`Di`sǑn3Q^L}nGCdOǬ;2T&Ny3/Nj=u;[۷{mn-6W}ߎg]V]ׯfq̔|$sBg'HyxmE7s?֥;[7|w/p"D[)5j0{SMxB&AGR~f ƒ>ny!ѰܽuAf..&÷hmr;# }iùx9fof:7S(dcCqBH-y#MҍO!aF58qfȍZI0 &VM (k%&^+fJ!I0) 2`>1]δ}|ý71Rصi<+fy}BB1M"iޛS{}mClN &ɐZcڰ>[wc3`١3J^mT 0Jրל&dž^װm,f WCpg3sC Ama~ 3v]MaM%ڏ]g4Q`!ބbR6jk e$`99/mjijÝb0s|ۏa9Ěfo8M~!B%4ޠd2jmڏhk1ac1n)j2 !i|\!wH )$x`TiQi< Imc@g&v#IzD]PTCf~oX~Qnj{L/{K~ٛB( ؛؛c#5e, clL&Ed]~&̔(ik.`IJ+UO3}_y;wv3/f"3hv<0bW6gX?R]A/.dt]+1C<03 tFPAg"IN+i_l+\ٗ!9 + t;G&+萘Zt '/UGnRt&s[,8Yyix1x |j@U8|1Dg}|;ɸG3Fx`33,iRtxS |eL4蝴]f,DG\nw75<0 Qk 35uEŴVqx¿Insu)NBBȸ݀u\wl5qQ{ |l}RL:Rr37! 3֬5:Ow# tFqdZit;wwݻNmrv:oK?][D&1)kگznFت#.wwӰm~1\D2xRj c>~[Bi M,ƆϢ1äY #yQ$fVr;)zHzvvKu1TSvd4xĪS<7(ꞑ̬\Ib6wӈk?Q$B ^Wg:7}eԱQE9t8+#@bƀ^ƪT{ HfFBsׇrt=uɤq UoѬ5IMh v'=H}#-bByY^o1iGi@+Afa盬`7zŇpX# t3R )iN\'c]I װuJӝt;=X @t f9vaGBag͝|25)E}CƷ&mbd-ČG);h Pi *ČEUg<0Aޓz Hgz4GH,x¼md}5p bdv,i,n)%aASJHٲ=0DȱG> 32D\FO409Cg:s v*=uPg;T饶QfLdĀI`f֌ ,AN2=)aC,@EI]<0X~`GrZ=ö-AiBZ>yY]!%n<&fF3 8[ 4za{SFD%=غmJ]):PtzaYpŕq ]!]DpR( `@Va_K B. W Eg dLOao<֊t>WYSrCJXo%G`S\؄𐠐ma #3,AN!~z駶XM<5f:4*Л1?4Œr3j DLqGNVv4$mk$ә2y[ʜLrːi"e9P۠(r["fF~9ykcQ@ܹlt?!Ϭ ۉvNDBz"S>R9iGpc7:E`&|O i W&QL ѸdlJ(Ͷ4*s<uЙGa;'?·<_B $B;ٙNw) DͷH: `pTuUU`&Y?3~[3zC܎}~!;Ih5.3K?-m6Gb&:e3,)_]=OhNG"/f, /Qԑ?k&0f":s\ hKEm R·0BFDma&3+$g>N .3! 612i"q""";ȳ7, QEWBW Ds.-=[aʌxfB@3NeYOϛ-n> vYB{BM9`ozZKE_L^xR4bi#0"S?[f,}n,oƒa-E-Me`~zemlM؛Rltz7($3)';Ol?D%19B2+}C&3S7ZJ}DB4?-m3bor]2m' W/3цK9 4zfǷ3YnY hD*^{ߝ<) x):w:"K'TxG+@ Y -;L(Nhh3^Mcb|E,7|ȗkdɪGΰ6Bڤ3A^aW4샤tڪ1(zU,2a30H2X90v{b@e4 e|ڛ@Si _ */%ޚ: o6f۵Gt觇 iZݧ4/G$)5G5IWcCmC4D(A d9a``M6F`]0 1*u w :!|#Nhk|`ԟ`v1\聭~z#cC8Ωq3?{Anƪ.ZK FHd#^oLja)Hf΢D{Z?=}{{@?~ۿE~h$D NHS %/oYtf|҂,cv3|"ٻ>co乚=6[OOQa( Dm{2iC]ïav Io* 3҂,y61d7KvZ7A޻bq?3I,53}3{p&]Y `fa.=mɯ̑YC؇KldFASy!rQcjgG,G# 3ٳqWVLB9 #)+xcM(%Fz[>8!f+傃uWѐSVm{3{̵Zr$ԯD4H̊6j|H2F⮋W^G,4_I_8Z:fiX0eᅘ_cf_n׸rq)3]3납8CCp :eRA >Dbqf\oi.P+c)TC=gMJ]$әY,.a]OuGb?ktqTw\6Og$b&?0L^װQZ+熁Sr$Wa6J{9{ب̃@n|s|]OdiSzM11󟿧l_7~b(b&ĉ8T H RYB mY4XDv{2hNm "D:YA#BLOXڷe6դJ\XB/q#l{7=M. 3I~zIs% 醐+yv5-{0OOHFuUNb&3ײ, ީ]]RbŦ\ VfQ}繺,̤3;)`~i1-ms*dVPYIIg|8Hct$yg7Qn&f$+f؛|4n~k49aB`lQzқD:5 2ߡI&NIMn I.5u A:q4: :p7> SkM"XR1~I-8Y/&̀ 0B[Q@Y5d0#34Zا7vhSǐIEx$R/E8e*4!}(V|MriTr\\~ŗ U@L pTKs4ڗgJajO33")Su0Sdބ&Z8JNT͉"*z3'LlXnڛn 3ao:}U9Ǭg{+ۦ{*$#Wa&"L'b(TeEbW40舘Am#0#y?1yc'ٛGm]`fRER׉;Hv1lXzhQOD)HTtNv8֒M:{:f#IXv0#kpއf@ b )ِ Q.̹1ޜ# q:p.M(0 e7A"e1 u28ET6PVE& ÑgL7.Ow*x$e#~&4w)J!qNPГp 3I&[:cݰ3Bxqf*:# 1CG3 / :`:|buBVaFւcfkE/#$!9(NVaFjT &!R'rS eQ=HVa愫 5夵ynܽVFʏwNCszRa&Ǥedӂs4$G=Tt( d"('Uѻ0stuص7ir+(YA7KHrN|]a&`01cﭓ{_ h7>#ousP|脷=JP K3)INɫ^R|]3@r*csȘ4Xot2ֹBU)炏\a^^R|f0_8t]0 \ɹi[1: 30DMm L} `M`s oNPa%2jE@OL@B"yuf$L"$J8]0 -q1XR߂B5tΉ sݛ(šZa&䞡cIp"0cLQE@>j ;T6W0/H,at@n{a!-9[љT|Nz`QITrB/8APiR'RhӌIO]4˿w(w?MrBSMif}lT #}G0.&߀];>kD[MԪ!5U3)'hx(dB :T$߳4CC^a=n?@<pmTk3$P#3+M`H!$J8YYst@i(;~5?κ&it'$w0Sx P0)RS1q.tv0sl$/^b;ioy^%c&x VaF<8U&u QIu\+JA/QZ 7ZaF$nko5`ɐ>(2_1#/^+{)WΐtE0& - {O*UEg$ii%؛0EomqgVO`j0 R>?S8!UP0:Q=2Hwn<Ɍ 33H%7YHYD2=27y\Ҙ3d֎*3~淄gb܁pbAh 㚔0,86m6UzMc*6YD')5_G#cm`fmn¶D$ks3's sK&lpMkdpȚτ&ESt[q^qGiMmk@3ٴ=(ԑ'\SaFn'*_ DžT'ڟh^`a'l·1-p"yIeYٷ7HR&#:jLr&aFyGϑ4anhZ|mfaf7ʪDId] \9TPKL[ Ԅ0B(em:h$s G8OPoڀ=  7`ѷڛd!&C#6ک7358=&TETt^ k ˩xq?<_\d4JޤGڵ7!^Z׵o"`iS"Pu #hF`3!% L) dռW5D" Ss>F9G0# &$΃v3!x@fڈ6WcAgBT a@# hI"OAM]xUTɭgsB!/> rNXݩ 6,ME 0nWTY]a&RK$~^l>l" .( :E^9&g> SB/9nT4D$ $~9m7\ʣ'zS}bsu5|ez}Nɘٵ7Ig[3Rҥ6UK^?j5f"{Q ϷHѦt4f2Mׁ&IHW8;EUo&Y˧G&IpHF6yvMfa&$~ơy ݬќ_M9'n7ITIV& f̭!8f^&YLwZG3>$~a)3'X"A_U9bV9$W;@Eg$ήx&7X| 3pk$`*p{SMnP8fdMeB>= dݡq*Țp]u?ws}eb|M(fY~ɺBT)4}'7 $&SaF4b&䜗PImJŒIC$7ɪ$6%SaF$BVr2fW7eRW)uzeo*&^a&?-8[V Pa<9~*[(.aض.^ A~~VaRo\ 7^PJd^A\,a 3gcJ92x P1/uC:4@K i0 A!n8cOu` 3gw㚎`5`uPk+y 3'wr u*zd9g^Pa"c^e9s**ES7~)u Q|`KHZ/TI3Pљ YgLW0u*d YgLW0u*d1aŒ%֜@qϙYփ):@ YgLWc+)̑ёf$M$̟$\a(f(ɂ/QN53.E<w2|Mp0S3 8&5U N1x\ePژ /OybWߥE0+mnc*0Cӌ!0n4uxBh[L_9ESX+S](5δw+f Ϥʸ/5fM @R@r8^i[Kr'0|bF.,q+*MKPaLa9FB=;ʩ{gj툈's WQIOq|Xr+Za+n9VayʣVʫ[γU)g^flfʙׯ+I\rf2lcC#;+}le+K饍66\cf :|ixcBX0ijV`!,]"+ZV`լeYA` !*0O][5gfkdv\YAj/K>`~qu>  O" ҞdB>},s3ʗ[f?s,>ɲd(˓SfxUpgVdҘXdxex,@k2Gby .XG #Yf>{ЖawɲY`-Y[y,*Y6@g=rgona:Jq5CkgE& XE˻!=g>#lry,m)_r}ɻdvXJ-̲/!e*,Ryl/ m1[/dnuG%+9, ٺke `g, 50YA)ĵ%HJwS q :`%.yei![7CnXu < QE-t48€l}j%%}eIU _wƥ%{8K>,!vv2')62} ,Dx-KE>/K˲eytK2/9dj*0`_F{}F#m _eﳌmǢƲecx؛ƖX/j%ؒ/}l/k m]A+hع@'$P}Y$:>}k܇$5"]jkDj$,YjYd?̭I$+v+L,'Ik*i}lZ:iz2?I'yB2CWIENDB`Ddl  C AtV:\wsCore\oracle\sizingWizard\image-source\langhidden.gifC"bh b&ϊ(AE:Dzn< b&ϊ(AE:PNG  IHDR53PLTEٮ⯷췽ɹͽϼ涼ҿѱƴȸ޾ְŵ㳹س粸վִj ebKGDH cmPPJCmp0712HsAIDAThC [Te,lS3"I( ;Z{wns {z530gefr\miKz$] mHO'˗B__ ]=..C<^~][ gh:HR@?BBnI.a J:z/Pjm{zst;?JKкS׫W_JBCJsi9t@3izt_z7Nhf9Rs2oWʍwJQݯ4y9HckVWƚMuLCil|ss?HcvϪ9ssj+TrNԒj.0\sY2as*? B|@||a>$PYz |UjTWrU ,11x[(fiG)XGi~ T[ZF*ӡ#UJp$THGWA7ݰFh_P%YT^i> )o eŔDAv*2[TqK~MPvB5~AUō@/KN JT] #*23mzM"5/zZYRFPUkj@H%2Pq>txNyܜ.uUݯԪHMeGjTYTvF N7j*;@M(AE[fa>$w~g$QSFLV>#Mt+N(\0()`Cc996!dp9xSP'Y,/<˫ jBKDѼ7͋;/=Wc~\(kIENDB`DyK www.concord.comyK 0http://www.concord.com/DyK www.concord.comyK 0http://www.concord.com/ADyK 3http://www.opensource.org/licenses/mit-license.phpyK fhttp://www.opensource.org/licenses/mit-license.php* i<@< NormalOJQJ_HaJmH sH tH h@h Heading 1+$$ & F<&d@&P5CJKHOJQJaJZ@Z Heading 2$ & F<@&56CJOJQJaJmH sH Z@Z Heading 3$ & F<@&5CJOJQJ\aJmH sH L@L Heading 4$ & F<@&5OJQJaJ@@ Heading 5 & F<@&CJaJDD Heading 6 & F<@& 6CJaJHH Heading 7 & F<@&CJOJQJaJLL Heading 8 & F<@&6CJOJQJaJN N Heading 9 & F<@&56CJOJQJaJ<A@< Default Paragraph Font2B@2 Body TextxCJaJ:1: List Number  & FCJaJ>6> List Bullet 2  & FCJaJ>7"> List Bullet 3  & FCJaJ>V@1> FollowedHyperlink >*B* phH>@BH Title$@ <@&a$5CJ(KHOJQJaJBJ@RB Subtitle$<@&a$CJ OJQJaJBOQbB Title Text5CJKHmHnHu:Oar: Title Subtextx5CJJOJ Copyright $a$5CJKHaJmHnHuHOH Heading$x@&5CJKHOJQJaJ(U@( Hyperlink>*B*0@0 TOC 1 xx 5;aJ.@. TOC 2 ^:aJZ@Z Header/ !$d&dNP 5CJaJP @P Footer !$dN5CJOJQJaJFOF First Header&dPCJaJ&& TOC 3 ^&& TOC 4 !X^X&& TOC 5 " ^ && TOC 6 #^&& TOC 7 $^&& TOC 8 %x^x&& TOC 9 &@^@BPrB Body Text 2'5B*\mH phsH e HTML Preformatted7( 2( Px 4 #\'*.25@9B*OJPJQJ^JaJphrQr Body Text 3F)$d%d&d'dNOPQCJ &K+,Kklmnt&']i4@ij  ` E % w gWWnwAf%x nWXcH !##&+&''U(z((6)7)l)))))+++D,p,q,,,,,,,?-@-D----...////00000 2 22D2E2Q2\2]2e2222m3n3r33334555666667y7z7777777777 88889(99::::::3<4<<<<<<<<<A=B=]====>>>V@W@n@>B?BXBBBBCCCC@DADVD8E9EFFF H H HHIIIIIIIIJJ J&JJKMOOOO=PPPPPEQQbR`SSSSSS0TyTTTTTUeUU VVVVVVPWX=YuZ[[["\#\$\`\e\])]d]^^^_%`'`(`)`Y`[```]abdb@cAcBc[ce-gh[k+mRnnZooq(q=rrssssssssttttttuu&uUuuuuvDvvvvvwxyyy{||?|I|]|^|||||}6}T}s}t}}E~~~GсDQ*+Rۆu-6UV-.9:;g23RSÑē ijĕƕޕәTUbКњؚǛ3^_nȝ&.4:;FO^ghxԞ՞"178]Eǣȣգ !%D¤WXYuIJ^ rsˬ!"/+,:ͮήׯد!"EFkɲʲϳг,-iW׶#$ +QRyĺź @ABRS^!]üI6I׾ؾɿf2Tn1H`D -.9^_  !&QRWHIJPQV#$%/05[\][\a/01jkpLMR'()jkpabc YZ[./4ghiRSTYZ['(.239EFGNOP45:uvwQRWyz{ abcMNS %JKQ2jkq+,- ABC   KLQSTUijo              %    _ ` e       k l m      jklCDEYZ`nouRS\JKL jkl!"#ghqklustuN0000+0+000000`000000000n0n0n0n00000000000000000000000000S 0S 0S 0S 000`00000000000000000000000000000000000000 00000 000 00R 0R 0R 0R 0R 00 00XT 0XT 0XT 0X 00# 00&0&0&0&0&0&0&0&0&0&0&0&0&0& 0U 0+U 0+0+ 00q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,0q,[ 0q,[ 0q,[ 0q,0q,0q, 00:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0: 0::0uD0uD0uD0uD 0::0G0G0G 0::0@H0@H0@H0@H 00I 0II0I0I0I0I0I0I0I0I0I0I0I0I0I0I0I0I0IW 0I0IW 0IW 0I0I0I0I0I0IX 0IX 0I0I0I0I0I0IY 0IY 0IY 0I0I0I0I0I0I0I] 0I] 0I] 0I] 0I0I0I0I0I0I0I0I0I0I0I0I0I0I0I0I0I0I0I0I0I0I0I0I0I0I0I0I 0II0vc0vc0vc0vc0vc0vc^ 0vc^ 0vc^ 0vc^ 0vc 0II0Cq0Cq0Cq0Cq( 0CqCq0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s0s_ 0s_ 0s_ 0s_ 0s0s0s( 0CqCq0v0v( 0CqCq0y0y0y0y8 0yy05|05|05|05|05|05|05|05|8 0yy0+}0+}0+}0+}0+}0+}0+}0+}0+}0+}0+}8 0yy000000000008 0yy0ą0ą0ą0ą0ą0ą0ą0ą0ą0ą8 0yy0Ӊ0Ӊ0Ӊ0Ӊ0Ӊ0Ӊ0Ӊ0Ӊ8 0yy000000008 0yy0o0o0o0o0o0o0o0o0o 0II00000000( 000000( 000000000000000000 0II0( 000000000000000000000000000( 00l( 000000000000000000000 0II00 0II0 0 0 0  0II0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ0ۧ 0II0( 00 0 0 0 0 ( 00z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z0z( 0000000000000 00v 0vv0b 0b 0b 0b 0 0vv0j0j( 0jj0 ( 0jj0Կ( 0jj0( 0jj0f( 0jj0%( 0jj0( 0jj0( 0jj0e( 0jj0( 0 jj0( 0 jj0( 0 jj0Q( 0 jj0( 0 jj00 00b0b 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0@0@0@0@0@0@0@0@0 0ZZZZU37VVVVVVVYI +CT!V*7EUY)d^;]v  6-03]6: <4@BGOUXP[a`drwy}sD2 TȡgWJ,"T_W%' T(Gc+A U  l  _.3~'Q[(2jYJ   * @ [ ] ^ `   % @ B C E d n  " # % D W r t u w =Gbdeg%7RTUWv"7RTUWv7Mhkln8Vqtuw ;>?A`tE`cdf"#%DWruvx ?Mhkln<LouE'k'{'''(///222333X5|55G7i7u7@AADDDAPgPwPo$p4ppppϨ)O_*XX tX%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4X%4̕XXXXXXXXXXXXXXXXXX')AW\u%'DRUux} .0Y  !!!8@0(  B S  ?: _Toc66506712 _Toc66506713 _Toc465587485 _Toc66506714 _Toc465587486 _Toc66506715 _Toc66506716 _Toc465587488 _Toc66506717 _Toc66506718 _Toc66506719 _Toc465587489 _Toc66506720 _Hlt65296562 _Hlt65296570 _Hlt65296571 _Toc465587491 _Toc66506721 _Toc11836000 _Toc66506722 _Toc11836001 _Toc66506723 _Toc11836002 _Toc66506724 _Toc11836003 _Toc66506725 _Toc11836004 _Toc66506726 _Toc66506727 _Toc66506728 _Toc11836007 _Toc66506729 _Toc11836008 _Toc66506730 _Toc11836010 _Toc66506731 _Toc11836011 _Toc66506732 _Toc11836012 _Toc66506733 _Toc66506734 _Toc66506735 _Toc66506736 _Toc66506737 _Toc66506738 _Toc66506739 _Toc66506740 _Toc11836013 _Toc66506741 _Toc11836014 _Toc66506742 _Toc11836015 _Toc66506743 _Toc66506744 _Toc66506745 _Toc11836018 _Toc66506746 _Toc66506747n XX##&&+q,::ADADFF H HIIIBcqÑ_YBBS6..  @@@ !"#$%&'()*+,-./0123456789*s bb##*&*&+,::UDUDFFHHIIIZc'qmt֯֯QQ]H889Aah9?, 5"9";"E"G"V"""""Y#e###:$A$O(S(Z(`(k(v(|((((((((B)Q)U)\)_)h)w)})-+2+7+;+004282]2d255E5S5555576>66688c9j9::4:=:%;,; < <<<K=S=U=\=======0>4>>>>>??W@^@`@d@-A4AAA3B;B@BGB}BBwFFGGGGGG^HlHHHJJOOOO%P9P)Q-QKQZQQQQQMRaRbRkRRR0S7SfSmSoS{S}SSSSSSSSeUlUUUVVXXXXfYnYYYYYZZ{[[[[]]_%_l`s```aa8b?bbb%c/cBcLceclceeffffggzllllm m's1sss7t>t)u2uIuRuxx|}}}}Z^IN׃ۃ!$&.LPpv@Auxčȍɍ͍367AIMORSW_cmrŎԎ׎:D^mpzǏʏԏ)0gn֒Ք۔ $%./5ߖ,/_bژݘ+ ƛ̛֛CFKNUVWX_fFKO[^cyŞ˞ ".13PS"n07 գأ%,}17NU`f`p ")IPOWt[by04Ѵ޴kt)16?DQajlvxٶ *en{ %7=Za̽Ͻ  OVCN" fjUYpw"{8?LRVX@Krvacz   ( S X \ ` D M   y |     -2ISSYhnlrl i(v(|(())5)S)\)n)s)1*4*-+2+//002255556677297999::4:=:<<< =B=H=======>>W@^@_FjFGGLLOOOONQZQ@RJRUUXUDXSX[[[[]])]*]bbhhsstttu)u2uIuRuuuxxxx4y;y}}QTlsHK36%'tژߘUaњך36FKO\^c"/13գأ%,DK}¤ɤY`tktajٶ(.{ X+-+/^34l333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333339J_4~ MuE'|''(//2233X55G7v7DDo5pppt“]^__-j~ -QU}.lrhawkes>Y:\top\misc\specs\product\utilities\DB_SizingWizard_DSpec1.docrhawkes>Y:\top\misc\specs\product\utilities\DB_SizingWizard_DSpec1.docrhawkes>Y:\top\misc\specs\product\utilities\DB_SizingWizard_DSpec1.docrhawkes>Y:\top\misc\specs\product\utilities\DB_SizingWizard_DSpec1.docrhawkes>Y:\top\misc\specs\product\utilities\DB_SizingWizard_DSpec1.docrhawkes>Y:\top\misc\specs\product\utilities\DB_SizingWizard_DSpec1.docrhawkes=Y:\top\misc\specs\product\utilities\DB_SizingWizard_DSpec.docjkuefler)U:\jkuefler\doc\DB_SizingWizard_DSpec.docjkueflerqC:\Documents and Settings\jkuefler\Application Data\Microsoft\Word\AutoRecovery save of DB_SizingWizard_DSpec.asd Joe&Joannie)U:\jkuefler\doc\DB_SizingWizard_DSpec.doc`|\%}R~ƺj3&"^^?K6 .;$x &;"1~JSp&-qM^OhAi;xy2ZOL X~5  o\af+b"RWX~8+6XRf<?X~ hR2  8D!=7B"X~?#p&-p(p&-)p&-s*p&-I+T .6v{M.~>E-0p&-s1TDSn1p&-*3>Mp88 {8  C9dmCT;"?p&-`A9ZsA (fBH B55(BX~b<C4[==Cn;Df?"SF 52;sGt(},H^o(I&kCKP|uOp&-sOTF?PQLl$%fTT, LyU [4V곚KV 4RzqyVٶGiYlZhBa N[>u*\ڊ`2]p&-418_ڊ`wbf-d "d  gkt'yu C5up&-(uX~9Uxf|y"{f% |DpJ@|}2m}ժ2R0^`.^`.88^8`.^`. ^`OJQJo( ^`OJQJo( 88^8`OJQJo( ^`OJQJo(hh^h`. hh^h`OJQJo(*hh^h`o(. hh^h`OJQJo(808^8`0o(^`.pLp^p`L.@ @ ^@ `.^`.L^`L.^`.^`.PLP^P`L.hh^h`.h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo(hh^h`56.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`.hh^h`o(.^`o(.hh^h`.hh^h`.h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo(^`o(. ^`o(hH.0P^`Po(G CJOJQJ^J_HaJsHtH hH.. ^`o(hH... (xp^(`xo(hH.... , @ ^ `o(GCJOJQJ_HaJsHtH hH .....  X ^ `Xo(hH ...... ^`o(hH.......  8H^`8o(hH........  H`H^H``o(hH.........hh^h`.hh^h`.^`o(.hh^h`o()hh^h`o()hh^h`^`o(.hh^h`56.hh^h`56.hh^h`56.hh^h`56.hh^h`.^`o(.hh^h`.^`.88^8`.^`()^`()pp^p`()  ^ `.@ @ ^@ `.  ^ `.hh^h`56.hh^h`o(^`o(.0^`0o(..0^`0o(... h0h^h`0o( .... v v ^v `o( ..... &&^&`o( ...... *-`*-^*-``o(....... 2`2^2``o(........hh^h`56.hh^h`.^`.88^8`)^`()^`()pp^p`()  ^ `.@ @ ^@ `.  ^ `.hh^h`. hh^h`OJQJo(h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo(h0^`0o(h 88^8`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo(hh^h`56.h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo(hh^h`.h^`OJQJo(hHh^`CJOJQJo(hpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hHhh^h`o(.^`o(.^`o(.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(hh^h`56.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(^`o()hh^h`.h hh^h`OJQJo(88^8`OJPJQJ^Jo(-h ^`OJQJo(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo(hh^h`56.h ^`OJQJo(h ^`OJQJo(oh pp^p`OJQJo(h @ @ ^@ `OJQJo(h ^`OJQJo(oh ^`OJQJo(h ^`OJQJo(h ^`OJQJo(oh PP^P`OJQJo(h^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hHP^`P@@^@`.0^`0..``^``... ^` .... ^` ..... ^` ...... `^``....... 00^0`........ hh^h`OJQJo(h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo(hh^h`.h^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hH^`o(.h^`OJQJo(hHh^`OJQJ^Jo(hHohpp^p`OJQJo(hHh@ @ ^@ `OJQJo(hHh^`OJQJ^Jo(hHoh^`OJQJo(hHh^`OJQJo(hHh^`OJQJ^Jo(hHohPP^P`OJQJo(hH hh^h`OJQJo(hh^h`56. hh^h`OJQJo(hh^h`.hh^h`.hh^h`)hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.hh^h`56.h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo(hh^h`)^`)88^8`)^`()^`()pp^p`()  ^ `.@ @ ^@ `.  ^ `. ^`o(hH. ^`hH. pLp^p`LhH. @ @ ^@ `hH. ^`hH. L^`LhH. ^`hH. ^`hH. PLP^P`LhH.hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo( hh^h`OJQJo(hh^h`56.^`o(.hh^h`.h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo(hh^h`.h hh^h`OJQJo(h 88^8`OJQJo(oh ^`OJQJo(h   ^ `OJQJo(h   ^ `OJQJo(oh xx^x`OJQJo(h HH^H`OJQJo(h ^`OJQJo(oh ^`OJQJo(hh^h`o()hhh^h`.h88^8`.hL^`L.h  ^ `.h  ^ `.hxLx^x`L.hHH^H`.h^`.hL^`L.hh^h`.bI~}|8D!%fTI+-dMp8Ai;R2RKVx Ih&9Uxwb{t&"d65 o\abk,H@|{82 yuy)?2] B(us*.ZLyUp(t C9+b% |mCT;|y;sGCK g"1`A@& @h ^`OJQJo(``"                                            "                  ?                          dbp                                                                                                          &']i4@ijU((6)7))))q,,,,,,,?-@-D----...////00000 2 22D2E2Q2\2]2e2222m3n3r3333555666667y7z7777777777 8888::<<<<<A=B=]====>>>V@W@n@>B?BXBBBJ JOOOPPPSSSTTTVVVV[[["\#\`\e\'`(`[```@cAcsssssttttttuu&uUuvv?|I|]|^||||6}T}s}t}E~~~*+ۆu-6UV-.9:23RSTUbКњؚ&.4:;FO^ghxԞ՞"178ǣȣգ !%D¤WXJ^ rsˬ!"/+,:ͮή +  !&QRWHIJPQV#$%/05[\][\a/01jkpLMR'()jkpabc YZ[./4ghiRSTYZ['(.239EFGNOP45:uvwQRWyz{ abcMNS %JKQjkq+,- ABC   KLQSTUijo              %    _ ` e       k l m      jklCDEYZ`nouRS\JKL jkl!"#ghqklustu@ԘAP@Unknown Gz Times New Roman5Symbol3& z Arial?& Arial Black?5 z Courier New;Wingdings3z Times;& z HelveticaI& ??Arial Unicode MS"1h  C&(w$0dVD 2QeHealth Sizing Wizardjkuefler Joe&JoannieOh+'0  , H T ` lxeHealth Sizing Wizard9Hea jkueflerizikuekue Normal.doti Joe&Joannie2e&Microsoft Word 9.0r@F#@dK@J[E@J[E(՜.+,D՜.+,D hp  Concordw eHealth Sizing Wizard TitleX 8@ _PID_HLINKSAh&03http://www.opensource.org/licenses/mit-license.phpo#-http://www.concord.com/o#*http://www.concord.com/'+'ftp://ftp.concord.com/'+$ftp://ftp.concord.com/w=!http://www.w3c.org/CGIo#http://www.concord.com/o#http://www.concord.com/?7http://www.w3c.org/Shttp://www.fubar.com/?7http://www.w3c.org/c:http://www.fastcgi.com/w= http://www.w3c.org/CGIo# http://www.concord.com/o#http://www.concord.com/o#http://www.concord.com/,_]http://coogle.concord.com/dir/unbranched-vobs/specs/product/utilities/DB_SizingWizardPRD.doco#http://www.concord.com/1 _Toc665067471 _Toc665067461 _Toc665067451 _Toc665067441 _Toc665067431 _Toc665067421 _Toc665067411 _Toc665067406 _Toc665067396 _Toc665067386 _Toc665067376 _Toc665067366 _Toc665067356 _Toc665067346 _Toc665067336 _Toc665067326 _Toc665067316 _Toc665067307 _Toc665067297 _Toc665067287~ _Toc665067277x _Toc665067267r _Toc665067257l _Toc665067247f _Toc665067237` _Toc665067227Z _Toc665067217T _Toc665067204N _Toc665067194H _Toc665067184B _Toc665067174< _Toc6650671646 _Toc6650671540 _Toc665067144* _Toc665067134$ _Toc66506712pbhttp://coogle.concord.com/dir/unbranched-vobs/specs/product/utilities/DB_SizingWizardApproach.doc,_]http://coogle.concord.com/dir/unbranched-vobs/specs/product/utilities/DB_SizingWizardPRD.docbG@9V:\wsCore\oracle\sizingWizard\image-source\swizarch1.gifbDG9V:\wsCore\oracle\sizingWizard\image-source\swizarch2.gifbEN9V:\wsCore\oracle\sizingWizard\image-source\swizarch3.gifB6b8V:\wsCore\oracle\sizingWizard\image-source\snoopers.gifbBYd9V:\wsCore\oracle\sizingWizard\image-source\swizarch4.gifbCv9V:\wsCore\oracle\sizingWizard\image-source\swizarch5.gifwZę1V:\wsCore\oracle\sizingWizard\images\langbar.gif0C:V:\wsCore\oracle\sizingWizard\image-source\langhidden.gif  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPRSTUVWXZ[\]^_`abcdefmRoot Entry FEoData 1TableN&WordDocumentqSummaryInformation(QDocumentSummaryInformation8YCompObjjObjectPoolEE  FMicrosoft Word Document MSWordDocWord.Document.89q