Sunday Feb 09, 2014

Oracle Enterprise Repository Reports and International Number Formats

(Author: Marcelo Parisi, Staff Consultant, Oracle Brazil)

Oracle Enterprise Repository (OER) provides several enterprises, across the globe, the ability to manage their service lifeycles, perform advanced registration workflows, publish their services catalogue, monitor metrics and analytics, implement security policies, while providing extended metadata management and IDE plugins

One of the most useful features of OER is its ability to generate reports which not only help you manage your runtime but also provide high level metrics which give you visibility into your performance around Service Level Agreements (SLA), Return on Investments (ROI) and more.

As an Oracle consultant, I have installed and configured OER in several customer environments in Portuguese (in Brazil). This article aims to document my experience in making OER reports more useful to non-English speaking environments in international environments.

Number Formats – A Comma Can Change Everything

Number formatting has a small but crucial difference across some major languages. For example, 1234.56 written in English, would be written as 1234,56 in Portuguese (and many Latin American and European languages). The comma and dot in a number can have totally opposite meanings in two languages. For example, a comma is treated as a unit separator in English whereas it signifies a decimal place in Portuguese, Spanish, Dutch, German and several other languages. It’s easy to see how this can be misleading.

Since the client side of OER typically runs in the local language (based on browser setting), numbers are stored in OER in their native format.

When you try to then run an out-of-the-box OER report, say, Consumer Reported Asset Value (by Asset), you might hit this:

This happens due to the difference in numbering format. Taking a closer look at the report you can see that it is running this:

After taking a look at that SQL we can find that the value that is giving us problems, in this case, is from here:

If you run that SQL directly in the database, the following result is shown:

This happens because the value is stored in a string format in the database, and there are some functions in the Reports that are used to convert these from string to numeric, in order to perform calculations on it, such as TO_NUMBER, CONVERT and CAST.

Making Numbers More Relevant

There are several ways to make this work – here I have chosen to use a replace function. However, the solution needs to be as per your specific requirement and case.

The solution applied here is to utilise replace() SQL function to replace the comma character with a point. We can do this either by editing the report through BI Publisher interface (OER comes with a restricted use licence for BI), or by editing the .xdo file directly. I prefer editing the .xdo file directly. Here’s a step-by-step description:

1. Open the .xdo file related to the report we want to fix, in this case Consumer Reported Asset Value (by Asset).xdo, and find the locations where it is converting the number. In this particular file, for e.g., that is on lines 46, 62, 65, 78, 79, 177, 190, 193, 290, 311 and 312:

to_number(NVL(axi.stringvalue, 0)) AS PNHS
CASE :p_order_by WHEN 'PNHS' then to_number(NVL(axi.stringvalue, 0)) end desc,
CASE :p_order_by WHEN 'PNHR' then to_number(NVL(axi.stringvalue, 0))  end ]]>
to_number(DECODE(nvl(survey2.value, 0), '-', 0, nvl(survey2.value, 0)), '99999999D99', 'nls_numeric_characters = ''. ''') AS ConsumerGrossSavings,
to_number(DECODE(nvl(survey3.value, 0), '-', 0, nvl(survey3.value, 0)), '99999999D99', 'nls_numeric_characters = ''. ''') AS ConsumerTimeToReuse,
CONVERT(numeric,ISNULL(axi.stringvalue,'0')) AS PNHS
CASE :p_order_by WHEN 'PNHS' then CONVERT(numeric,ISNULL(axi.stringvalue,'0')) end,
CASE :p_order_by WHEN 'PNHR' then CONVERT(numeric,ISNULL(axi.stringvalue,'0')) end DESC]]>
CAST(COALESCE(axi.stringvalue, '0') as decimal(9,2)) AS PNHS,
CASE ORD5 WHEN 1000 then CAST(COALESCE(axi.stringvalue, '0') as decimal(9,2)) end,
CASE ORD6 WHEN 2000 then CAST(COALESCE(axi.stringvalue, '0') as decimal(9,2)) end desc]]>

2. Now, add the replace() function as seen below, so that the commas are replaced with a dot:

to_number(NVL(replace(axi.stringvalue,',','.'), 0)) AS PNHS
CASE :p_order_by WHEN 'PNHS' then to_number(NVL(replace(axi.stringvalue,',','.'), 0)) end desc,
CASE :p_order_by WHEN 'PNHR' then to_number(NVL(replace(axi.stringvalue,',','.'), 0))  end ]]>
to_number(DECODE(nvl(replace(survey2.value,',','.'), 0), '-', 0, nvl(replace(survey2.value,',','.'), 0)), '99999999D99', 'nls_numeric_characters = ''. ''') AS ConsumerGrossSavings,
to_number(DECODE(nvl(replace(survey3.value,',','.'), 0), '-', 0, nvl(replace(survey3.value,',','.'), 0)), '99999999D99', 'nls_numeric_characters = ''. ''') AS ConsumerTimeToReuse,
CONVERT(numeric,ISNULL(replace(axi.stringvalue,',','.'),'0')) AS PNHS
CASE :p_order_by WHEN 'PNHS' then CONVERT(numeric,ISNULL(replace(axi.stringvalue,',','.'),'0')) end,
CASE :p_order_by WHEN 'PNHR' then CONVERT(numeric,ISNULL(replace(axi.stringvalue,',','.'),'0')) end DESC]]>
CAST(COALESCE(replace(axi.stringvalue,',','.'), '0') as decimal(9,2)) AS PNHS,
CASE ORD5 WHEN 1000 then CAST(COALESCE(replace(axi.stringvalue,',','.'), '0') as decimal(9,2)) end,
CASE ORD6 WHEN 2000 then CAST(COALESCE(replace(axi.stringvalue,',','.'), '0') as decimal(9,2)) end desc]]>

3. Save the file, and run your report again. That’s it – success!

I have used the same approach for other out-of-the-box OER Reports such as Asset Portfolio Valuation, Asset Production Detail by Project, Asset Use (by Project) and Submission Status (by Producer) with success.

Hope this goes further in making your SOA Governance and OER initiatives even more productive and rewarding.

Friday Oct 04, 2013

Introducing Oracle Enterprise Repository Express Workflows - Simplified Lifecycle Management

As announced at Oracle Open World 2013 last week, we are delighted to introduce an exciting, new feature for Oracle Enterprise Repository 11g PS6 - Express Workflows.

OER provides a set of features and options for moving an asset from an initial to a final lifecycle state. Express Workflows are a mechanism for    automating these asset lifecycle approval processes in OER.

Express Workflows help automate this process for any given type of assets that are produced by your project(s). It allows you to easily assign approvers and define the flow of approvals from one approver to the next.

You can use Express Workflows to pre-define, automate and ensure that assets submitted or harvested into your OER projects go through as much or as less of an approval process as per your requirement - in a few, simple steps.

Download the OER 11g Express Workflows here - requirements and detailed instructions are available in the PDF bundled within the patch.

Tuesday Oct 01, 2013

Announcing Oracle Enterprise Manager 12c Cloud Control Integration with Oracle Enterprise Repository 11g for Runtime Metrics

Whether you are a service consumer, producer (developer), architect or manager, getting regular updates on runtime metrics of your assets is critical for many reasons. OER 11g PS6 can now gather runtime metrics for harvested assets from EM 12c Cloud Control. These metrics will then show under respective assets at regular, configured intervals.

To achieve this, you need to point the EM Integration Utility (already included in your OER), to your EM 12c and OER 11g instances. A new configuration file for EM 12c integration is now available. Get the patch and the new settings file from here. Instructions for applying the patch and configuring the utility are bundled in the patch as well.

Monday Sep 09, 2013

Oracle Fusion Middleware: Meet This Year's Most Impressive Customer Projects 2013 Oracle Excellence Award Ceremony for Fusion Middleware Innovation

If you are planning to attend Oracle OpenWorld in San Francisco or plan to be in the area, we hope you will join us at our Award Ceremony for Fusion Middleware Innovation. These awards honor customers for their most innovative and cutting-edge solutions using Oracle Fusion Middleware. This was a highly competitive year with record numbers of nominations. This is their opportunity to be recognized for this great achievement and be honored by their industry peers. You are invited to attend and join in the celebration.

Oracle Fusion Middleware:
Meet This Year's Most Impressive Customer Projects
2013 Oracle Excellence Award Ceremony
for Fusion Middleware Innovation.

Session ID: CON8082
Monday September 23, 2013 @ 4:45 pm (PST)
Yerba Buena Center for the Arts
Lam Research Theater (next to Moscone North)
700 Howard St., San Francisco, CA, 94103


Oracle OpenWorld Badges are required to attend this event. You can register for this event through the Schedule Builder on the Oracle OpenWorld website or if you are not attending but will be in the area and would like to join the celebration – please RSVP HERE and we will provide a complementary Discovery Pass code that you can use to register, pick up your badge and attend the Award Ceremony session.

We hope to see you there.

Thursday Jul 25, 2013

SOA Governance Training, August 26th–30th 2013 - EMEA (Lisbon)

As a part of the Oracle Fusion Middleware Summer Camps III for our Partners, we are delighted to offer a SOA Governance Hands-on training session delivered by Oracle SOA Governance Product Management.

SOA Governance Hands-on Training

The Oracle SOA Governance Session focuses on introducing you to the crucial discipline of managing your SOA/Integration projects using the Oracle Enterprise Repository (OER), based on SOA Governance principles.

Whether you are a Developer, an Architect or a Business Manager, OER has a lot to offer to help you make the most of your SOA initiatives – a Service Catalogue, Automated Publishing, Lifecycle Management, Policies and Reporting, to name a few. OER is a powerful and flexible tool that you can leverage to manage all aspects of SOA Governance – People, Processes and Tools.

What’s more – we will also talk about our popular OER Rapid Start 30-day program delivered exclusively by Oracle Partners or Oracle Consulting. OER Rapid Start is a 30-day program, delivered to many of our customers, to kick start their  SOA Governance initiative right from engaging the right stakeholders, defining lifecycles, publishing their services to tracking ROI on their SOA investments.

The session will be lab-based giving you hands-on experience on the most popular customer use cases with OER.

Trainer:

Yogesh Sontakke, Principal Product Manager, Oracle

Additional trainings during the OFM Summer Camps III:

  • BPM: Adaptive Case Management & forms builder by Niall Commiskey
  • B2B & Adapters by Scott Haaland
  • Advanced SOA Suite by Geoffroy de Lamalle
All sessions will be given by our HQ Product Management and PTS  team. The sessions will take place in Lisbon, Portugal from August 26th to 30th 2013. Participation is limited to two people per company and training track. Registration will be handled on a first-come-first-serve basis. Please note the skill requirements, the pre-requisitions and follow up. For details, please visit the registration page.

Tuesday Apr 02, 2013

Oracle Enterprise Repository 11gR1 (11.1.1.7.0) - Released

Part of Oracle Fusion Middleware11g R1 (11.1.1.7.0), Oracle Enterprise Repository (OER) 11g R1 (11.1.1.7.0) was made generally available on April 1, 2013.

For more information, please look at the Oracle Enterprise Repository page on Oracle Technology Network (OTN):

This Oracle Enterprise Repository 11g R1 (11.1.1.7.0) release introduces the following new features:

  • Code Compliance Inspector
    • Built-in, design-time rule validation, e.g. WS-I BP compliance & Oracle Foundation Pack  Best Practices (optional)
    • Centralized reporting published within OER
  • Contracts Solution Pack
    • Formal capture of consumer-provider relationship
  • Harvesting enhancements
  • BI Publisher 11g support
  • And more…
For more information on those OER new features, please click HERE.

Friday Mar 22, 2013

Community Management: The Next Wave of SOA Governance and API Management

While SOA Governance, as a discipline, has been around for a number of years, not every company that embarks on the adoption of SOA has decided to embrace it. In some cases, the runtime management of service is implemented, but not the design-time aspects. Now, with the introduction of Cloud Computing and the proliferation of mobile devices, the “new” discipline of API Management is surfacing. This session explores why API Management has emerged, its relationship with SOA governance, and why both of these disciplines will ultimately take a page from the business-to-business world and evolve into a new discipline called “Community Management”.

Tim Hall, VP of Oracle Product Management discusses, compares and contrasts SOA Governance and API Management, explaining why he believes they will evolve into a new discipline called “Community Management”.

You can access the video HERE or download the slides HERE.

Thursday Oct 18, 2012

Oracle SOA Governance EMEA Workshop for Partners & System Integrators: Nov 5-7th | Madrid, Spain

The EMEA Fusion Middleware Product Management team is delighted to announce an exciting and a much-awaited workshop on our market-leading SOA Governance offering.

Oracle SOA Governance solution is Oracle Fusion Middleware's strategic approach to governing SOA. Whether just embarking on an SOA program, or expanding from project or pilot to broader deployment, the Oracle SOA Governance solution closes the loop on measuring SOA success from project inception through to realization, and providing the proof of ROI on SOA.

Would your prospects and customers like to:

  • Align their SOA Vision and Execution
  • Improve Decision Making
  • Effectively Manage Business and Technology Change
  • Enable Control
  • Foster Enterprise-wide Collaboration
  • Reduce Development Costs
  • Track their SOA Investments and Returns
  • Demonstrate business value and ROI of SOA

This FREE hands-on workshop is dedicated to EMEA Partners & System Integrators (SIs).

It'll be delivered by Oracle HQ Product Management and will primarily focus on :

  • SOA Governance as a Strategy and Methodology
  • Hands-on with Oracle Enterprise Repository (OER) and Oracle Service Registry (OSR)
  • When, how and whom to position our SOA Governance offerings
  • Our SOA Governance Rapid Start Service
  • Hands-on sessions for the most popular customer use cases

Seats are limited, book now - you cannot afford to miss this training!

If you're interested, please contact Yogesh Sontakke from Product Strategy & Management.

Monday Oct 08, 2012

Fast Data: Go Big. Go Fast.

Cross-posting Dain Hansen's excellent recap of the Big Data/Fast Data announcement during OOW:

For those of you who may have missed it, today’s second full day of Oracle OpenWorld 2012 started with a rumpus. Joe Tucci, from EMC outlined the human face of big data with real examples of how big data is transforming our world. And no not the usual tried-and-true weblog examples, but real stories about taxi cab drivers in Singapore using big data to better optimize their routes as well as folks just trying to get a better hair cut. Next we heard from Thomas Kurian who talked at length about the important platform characteristics of Oracle’s Cloud and more specifically Oracle’s expanded Cloud Services portfolio. Especially interesting to our integration customers are the messaging support for Oracle’s Cloud applications. What this means is that now Oracle’s Cloud applications have a lightweight integration fabric that on-premise applications can communicate to it via REST-APIs using Oracle SOA Suite. It’s an important element to our strategy at Oracle that supports this idea that whether your requirements are for private or public, Oracle has a solution in the Cloud for all of your applications and we give you more deployment choice than any vendor.

If this wasn’t enough to get the juices flowing, later that morning we heard from Hasan Rizvi who outlined in his Fusion Middleware session the four most important enterprise imperatives: Social, Mobile, Cloud, and a brand new one: Fast Data. Today, Rizvi made an important step in the definition of this term to explain that he believes it’s a convergence of four essential technology elements:

  • Event Processing for event filtering, business rules – with Oracle Event Processing
  • Data Transformation and Loading - with Oracle Data Integrator
  • Real-time replication and integration – with Oracle GoldenGate
  • Analytics and data discovery – with Oracle Business Intelligence

Each of these four elements can be considered (and architect-ed) together on a single integrated platform that can help customers integrate any type of data (structured, semi-structured) leveraging new styles of big data technologies (MapReduce, HDFS, Hive, NoSQL) to process more volume and variety of data at a faster velocity with greater results. 

Fast data processing (and especially real-time) has always been our credo at Oracle with each one of these products in Fusion Middleware. For example, Oracle GoldenGate continues to be made even faster with the recent 11g R2 Release of Oracle GoldenGate which gives us some even greater optimization to Oracle Database with Integrated Capture, as well as some new heterogeneity capabilities. With Oracle Data Integrator with Big Data Connectors, we’re seeing much improved performance by running MapReduce transformations natively on Hadoop systems. And with Oracle Event Processing we’re seeing some remarkable performance with customers like NTT Docomo. Check out their upcoming session at Oracle OpenWorld on Wednesday to hear more how this customer is using Event processing and Big Data together.

If you missed any of these sessions and keynotes, not to worry. There's on-demand versions available on the Oracle OpenWorld website. You can also checkout our upcoming webcast where we will outline some of these new breakthroughs in Data Integration technologies for Big Data, Cloud, and Real-time in more details.

Sunday Sep 30, 2012

Tuesday at Oracle OpenWorld 2012 - Must See Session: “Oracle Fusion Applications: Best Practices in Integration Design Patterns”

Don’t miss this “CON8685 - Oracle Fusion Applications: Best Practices in Integration Design Patterns “ session:

  • Speakers:
    • Rajesh Raheja - Senior Director, Development, Oracle
    • Ravi Sankaran - Director, Applications Development, Oracle
  • Date: Tuesday, Oct 2
  • Time: 1:15 PM - 2:15 PM
  • Location: Palace Hotel - Telegraph

Oracle Fusion Applications provide various ways to integrate their functional capabilities with other Oracle applications as well as third-party and legacy applications. In this session, you will learn the patterns used when communicating with Oracle Fusion Applications with a SOA approach. It addresses items related to identifying the integration artifacts available, also known as assets, in Oracle Enterprise Repository; how to invoke synchronous and asynchronous Web services; importing and exporting bulk data; and any integration issues to look out for. The patterns will be applicable to on-premises and SaaS/cloud deployment modes and are indicated as such.

Objectives for this session are to:

  1. Highlight the various ways to integrate with Oracle Fusion Applications
  2. Showcase use of Oracle Fusion Middleware technologies for integration
  3. Describe best practices and design patterns for integration

Friday Sep 28, 2012

Tuesday at Oracle OpenWorld 2012 - Must See Session: “Jump-starting Integration Projects with Oracle AIA Foundation Pack”

Don’t miss this “CON8769 - Jump-starting Integration Projects with Oracle AIA Foundation Pack“session:

  • Date: Tuesday, Oct 2
  • Time: 1:15 PM - 2:15 PM
  • Location: Marriott Marquis - Salon 7
  • Speakers:
    • Robert Wunderlich - Principal Product Manager, Oracle
    • Munazza Bukhari - Group Manager, AIA FP Product Management, Oracle

The Oracle Application Integration Architecture Foundation Pack development lifecycle prescribes the best practice methodology for developing integrations between applications. The lifecycle is supported by a toolset that focuses on the architects and developers. Attend this session to understand how Oracle AIA Foundation Pack can jump-start integration project development and boost developer productivity. It demonstrates what the product does today and showcases new features such as support for building direct integrations.

Objectives for this session are to:

  1. Understand how to boost developer productivity
  2. Hear about support for direct integrations
  3. Learn what’s new in Oracle AIA Foundation Pack

Monday at Oracle OpenWorld 2012 - Must See Session: “Using the Right Tools, Techniques, and Technologies for Integration Projects”

Don’t miss this “CON8669 - Using the Right Tools, Techniques, and Technologies for Integration Projects“ session with Timothy Hall - Sr. Director, Oracle:

  • Date: Monday, Oct 1,
  • Time: 3:15 PM - 4:15 PM
  • Location: Moscone South - 308

Every integration project brings its own unique set of challenges. There are many tools and techniques to choose from. How do you ensure that you have a means of consistently and repeatedly making decisions about which tools, techniques, and technologies are used? In working with many customers around the globe, Oracle has developed a set of criteria to help evaluate a variety of common integration questions. This session explores these criteria and how they have been further organized into decision trees that offer a repeatable means for ensuring that project teams are given the same guidance from project to project. Using these techniques, the presentation shows how you can reduce risk and speed productivity for your projects

Objectives for this session are to:

  1. Discuss common questions that arise at the start of integration projects
  2. Review various decision criteria and approaches for getting to a consistent set of answers
  3. Explore how these techniques can be used to reduce risk and speed productivity

Monday Sep 24, 2012

Partner Webcast: Oracle SOA Governance - 4 October 2012

Oracle is pleased to invite you to a webcast on "Oracle SOA Governance Strategy" intended for our partners. SOA Governance is the framework that enables you to define and enforce rules for communication, collaboration, service development, management and usage across the enterprise and among the decision makers. It also allows you to define metrics to assess the quality of services and to measure their cost and benefits for your organization.

Service Oriented Architecture comes with a promise! A promise to make your business more agile by the ability to create reusable services developed and deployed in cooperation between the business and IT.

This promise can only be kept, if all the involved parties in your enterprise, across departments communicate and collaborate efficiently on establishing and maintaining and developing the service oriented assets. Such collaboration requires guidance and control.

In this webcast you will hear about the key factors needed to establish successful SOA governance both from organizational as well as from technical point of view.

Agenda:

  • Introduction to SOA
  • Challenges of SOA governance
  • SOA governance principles
  • Governing Service lifecycle
  • Rules for choosing a service
  • Q&A session

Delivery Format
This FREE online LIVE eSeminar will be delivered over the Web. Registrations received less than 24hours prior to start time may not receive confirmation to attend.

Duration: 1 hour

Register Now




Also make sure to checkout the relevant SOA Governance Resource Kit

For any questions please contact us at partner.imc@beehiveonline.oracle-DOT-com

Monday Sep 17, 2012

Oracle OpenWorld 2012 Hands-on Lab: “Leading Your Everyday Application Integration Projects with Enterprise SOA”

Sharpen your Oracle skill sets and master Oracle technology in Oracle OpenWorld Hands-on Labs.
In self-paced, practical learning sessions covering everything from business applications to middleware, database, storage, and enterprise management solutions, you'll discover new ways to derive maximum benefits from your Oracle hardware and software solutions
Oracle experts will be available in person to answer questions and guide you through each lab.
Hands-on Labs fill up early, and seats are limited, so don’t be late.
This  HOL10093 - Leading Your Everyday Application Integration Projects with Enterprise SOA is scheduled for:
  • Date: Monday, Oct 1
  • Time: 10:45 AM - 11:45 AM
  • Location: Marriott Marquis - Salon 5/6
In this Hands-on Lab, Experience firsthand how Oracle Enterprise Repository, Oracle Application Integration Architecture (AIA) Foundation Pack, and Oracle SOA Suite work together to help you drive your enterprisewide integration projects.
From asset management, discovery, and management in Oracle Enterprise Repository to integration of content in Oracle AIA Foundation Pack operating on the Oracle SOA Suite platform, discover how you can develop integrations to support business agility.
Take advantage of Oracle-delivered integration assets and validate your services for compliance, within Oracle JDeveloper. You will get your hands on the tools and talk with Oracle experts in this hands-on lab.
Objectives for this session are to:
  1. Use Oracle Enterprise Repository to manage application interfaces, composite applications, and business processes
  2. See how Oracle Enterprise Repository can benefit every service-based application integration project
  3. Learn how to govern services through the software lifecycle and validate your services for compliance

Thursday Sep 13, 2012

Focus On SOA & BPM for Oracle OpenWorld Now Available

To help our valued customers & partners make the most of time spent at Oracle Openworld, please check out the Focus On Oracle Fusion Middleware documents.  Over the years, we've learned that these provide a great roadmap to must-attend sessions, demos, partner exhibits, and networking events during Oracle OpenWorld.

In addition to those “Focus On..” documents, session details (speakers, abstracts) can be found in the Content Catalog at: https://oracleus.activeevents.com/connect/search.ww?event=openworld

We strongly recommend our customers to attend the following sessions:

  • Service Integration (SOA) & BPM: “Using the Right Tools, Techniques, and Technologies for Integration Projects” 
    • Monday, 10/1/2012; 3:15 PM; Moscone South - 308
  • BPM Suite: “Oracle Unified Business Process Management Suite 11g Overview and Roadmap”
    • Monday, 10/1/ 2012; 12:15 PM; Moscone South – 308
  • SOA Suite:“Oracle SOA Suite, the Most Capable Tool for Every Possible Integration Challenge”
    • Monday, 10/1/2012; 10:45 AM; Moscone South - 102
  • Foundation Pack: “Jump-starting Integration Projects with Oracle AIA Foundation Pack”
    • Tuesday, 10/2/2012; 1:15 PM; Marriott Marquis - Salon 7
  • Oracle Enterprise Repository: “Gaining Victory over SOA and Application Integration Complexity”
    • Tuesday, 10/2/2012; 1:15 PM; Moscone South - 310


See you in San Francisco!

Not attending the show?  Some of the general and key sessions will be available online - so please stay tuned for those announcements as Oracle OpenWorld gets closer.

About

Latest news, updates, best practices and thoughts on Oracle SOA Governance products


Oracle SOA Governance includes Oracle Enterprise Repository, Oracle SOA Management Pack and our API Management Solution

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today