solshare.net
Sign in or Join. Username:   Password:   (forgot password?)     Submit

Education

July 2008 - Posts

  • Software Entrepreneurship Faculty Workshop

    Hi All,

    In June, Bournemouth University played host to Lars Lindstedt who delivered a two day Software Entrepreneurship Faculty Workshop.

    The training materials for that event are now available to view on the National Council for Graduate Entrepreneurship website and include the slide decks together with a couple of case studies.

    Do please take a look, and if you have any questions or want further information, come back to me and I’ll be happy to help.

    Best,

    Allison McVety

    Academic Information Manager

  • Populating your Profanity or Bad Word Filter with PowerShell on Exchange Labs

    $&#@!

    My colleague, and fellow PowerShell fan, Richard Wakeman has just spent some time developing a script that administrators can use in conjunction with bad word list files to install them into an Exchange Labs domain.  I am delighted to be able to provide this file for you here.  As usual, use this at your own risk, and test it out fully before before running it in your production environment.

    Richard also supplied me with bad word lists in multiple languages that he was able to extract from Microsoft ForeFront...so I have those in my possession if anyone wants them; send me an email.  The word list is just in a text file, one word below the other.  I would post them...but am unsure what sort of trouble I would get into with my mother if I did...surely her son does not know so many bad words!

    Here is how you use the script...

    SYNTAX:

    ManageProfanityFilter.ps1 [-Rulename <String>] [-WordListFile <Strings>] [-RejectionReason <String>] [-ExceptForMembersOf <RecipientIdParameter>] [-RemoteURL <String>] [-LiveCredential <PSCredential>]

    PARAMETERS:

    -Rulename (required) Name of the new TransportRule to be created by the script.
    -WordListFile (required) File Path for List of bad words to check.
    -RejectionReason (Optional) Message that end users get when they try to send email to each other |
    -ExceptForMembersOf (Optional) The groups which have exception to skip the check.
    -RemoteURL (required) URL for the connection to the Remote PowerShell environment.
    -LiveCredential (required) Credentials for the basic auth logon to the Remote PowerShell environment.

    <EXAMPLE>

    Populate credentials to variable:
    $cred = Get-Credential

    -or-

    $Username = admin@mydomain.com
    $Password = ConvertTo-SecureString 'MyPassword' -AsPlainText -Force
    $cred = New-Object System.Management.Automation.PSCredential $Username, $Password

    .\ManageProfanityFilter.ps1 "Harassment Policy a-h" -WordListFile "English Profanity List a-h.txt" -RejectionReason "This message cannot be delivered because it contains inappropriate content as defined in the Harassment Policy." -ExceptForMembersOf Admins -RemoteURL https://ps.exchangelabs.com/powershell/ -LiveCredential $cred

    </EXAMPLE>

    Enjoy!

    Jonny

    Technorati Tags: ,
  • Pixel Poetry

    Hi,

    It was our very great pleasure to sponsor and support the Microsoft Photography Competition at the Department of Engineering 2008, at the University of Cambridge.

    sf386_10

    Blue Spikes, by Sonja Findeisen-Tandel

    If proof were needed, these photographs exemplify the strong connection between art and science and that engineering particularly, has an inner beauty. The winning photograph, Blue Spikes, by Sonja Findeisen-Tandel, together with other stunning entries can be viewed at Microsoft Photography Competition at the Department of Engineering.

    Which puts me in mind on Imagine Cup 2009 and the category for best photo story. It isn’t too soon to get your students involved and thinking about the competition.  You never know, the lucky winner could be from your university and joining us in Cairo for the world finals. The next set of photographs could be of the pyramids and feluccas on Nile.

    For an overview of the photo story competition please visit Photo Story.

    All the best,

    Allison

  • ILM and Exchange Labs

    Customers ask me about this all of the time, so I wanted to share here what I have been telling them.  There is often confusion over what it can and cannot do, what the alternatives are.  Thanks to Richard Wakeman from our MS Services group and Erik DesBois from our Exchange team for consulting with me in preparing this post!

    So here we go...note that some of my recommendations are my opinions, yours may of course vary as I do not pretend that I can guess what will work best for any given institution :)

    Microsoft Identity Lifecycle Manager (ILM) 2007 provides an integrated solution for managing the entire lifecycle of user identities and their associated credentials. It provides identity synchronization from schools directory, and user provisioning into Live@edu.  It is a product that a lot of education institutions have had great success with in synchronizing their Active Directory user accounts with Live@Edu Hotmail LiveIDs, and it is a solution that Microsoft is introducing to our Live@Edu Exchange Labs customers with an early adopter version of our Exchange Labs Management Agent (ELMA) for ILM over the next 2 months or so.

    This is not to say you cannot use ILM today, one of our partners, the Oxford Computer Group has rolled out ILM in a way that provides a csv file to, and then drives, the CSV Import tool, it just cannot do password synchronization.  This actually may or may not be an issue for colleges depending on what their approach is for SSO...remember we offer support there too.

    The ELMA provides synchronization of a number of mailbox attributes including Display Name, contact details and extended attributes such as department which is useful for identifying school affinity.  ILM is an advanced solution for provisioning Exchange Labs accounts.  We typically only suggest adoption of ILM by our most technologically savvy customers.  Of those, most are initially deployed by one of our capable partners.  Our partners do have programs in place for quick starts onto ILM.  These usually last about three days onsite.

    Besides ELMA, we are delighted to be able to provide a number of other, powerful yet simple to set up alternatives to support Exchange Labs mailbox provisioning:

    • A comprehensive Web UI that allows an administrator to manage their Mailboxes and Distribution Groups on an individual basis.
    • A Remote PowerShell interface, an extensible command-line shell and scripting language which supports granular interaction with the Exchange Labs service on a bulk mailbox basis if required.
    • A dedicated CSV Import tool that can be used for the bulk creation, updating and deleting of mailboxes.

    There are pros and cons to all of these approaches, and with some effort, they can be interchangeable, happy to discuss any of them with you in some more detail.

    I hope that makes sense and helps in your planning

    Jonny

     

    Technorati Tags: ,
  • Managing Distribution Groups in Exchange Labs with PowerShell

    Dynamic Distribution Groups serve a purpose, but they are not for everyone.  They tend to be used more for communicating with bigger groups of people in an organization or sometimes when you do not want people to be able to browse group membership...because that is the challenge with them, a user browsing the Exchange Global Address List cannot expand the group membership; membership only gets expanded by Exchange when it needs to work out who is in the group based on a filter calculation.

    So that leaves us with regular Distribution Groups where of course membership can be viewed/expanded if permitted, but presents its own unique challenge in that adding uses to a regular Distribution Group can take a long time if there are many users to add.  This is where our friend PowerShell comes in :)  It is really straight forward to manage groups memberships with a basic few lines of code and a csv file.

    The PowerShell command to add a mailbox/contact/mailuser (e.g. John Doe) to a group (e.g. AllStudents) is:

    Add-DistributionGroupMember -Identity AllStudents -Member 'John Doe'

    ...and to remove a mailbox/contact/mailuser (e.g. John Doe) from a group (e.g. AllStudents) is:

    Remove-DistributionGroupMember -Identity AllStudents -Member 'John Doe'

    As Technet shows, you can actually use a variety of ways to identify the user and group to add or remove them.  So for example

    Add-DistributionGroupMember -Identity AllStudents@contoiso.edu -Member john.doe@contoso.edu

    ...will also work.

    "But I have 50,000 users." I hear you say...what can PowerShell do to help me?  Well that is where basic scripting skills come in...and I have just spent 15 minutes knocking up sample (use at your own risk) scripts that takes a simple csv file that I created in Excel, and uses the information in it to add users to groups and remove users from groups.  There are only 2 columns...

    image

    I created 2 separate scripts just for cleanliness...you will see that they are identical apart from one key line (and some comments).   I have also provided a csv file for you to use.

    Usage is simple:

    1. Start PowerShell CTP
    2. enter:
      $LiveCred = Get-Credential
    3. enter:
      your admin username and password to the popup dialog
    4. to add group members enter, with the right drive paths:
      c:\add_to_dg.ps1 -LiveCredential $LiveCred -RemoteURL https://ps.exchangelabs.com/powershell/ -UsersFile "c:\groups.csv"
    5. to remove group members enter, with the right drive paths:
      c:\remove_from_dg.ps1 -LiveCredential $LiveCred -RemoteURL https://ps.exchangelabs.com/powershell/ -UsersFile "c:\groups.csv"

    The script creates and deletes a runspace for you...but if you terminate the script (DON'T CLOSE PowerShell) remember to do 'Get-RunSpace | Remove-RunSpace' to kill of any unwanted runspaces.

    I did not include any advanced error handling or logging in my script just for the sake of time.  If you want to do this, there are some best practices in the CSV_Parser.ps1 file that you can get from the connect site, or here.

    I have not yet covered how to bulk create Distribution Groups with PowerShell, and I wasn't planning to.  It is pretty straight-forward...and the scripts I provided in this post can be modified quite easily...commands you need are here.

    Enjoy!

    Jonny

  • Presentations from the Live@Edu World Event

    This was an event that we ran for customers that were prepared to make the trip to Redmond, WA a few weeks back.  It was good to be able to meet some of you there.

    I have just uploaded the presentations from the event to my SkyDrive...you can download them from here.

    Enjoy!

    Jonny

  • Don't test delete/recreate with your Production Account info in your Exchange Labs domain!

    Hi folks,

    For those of you that are in the test phase right now in Exchange Labs, one word of caution.  Do not use your real user data in testing.  There is a restriction in the Live service that controls the number of times an account can be created, deleted, and then recreated again.  This is currently set to 4 times...try and recreate a 5th time, and the action will be blocked.  You can get these accounts evicted so that the counter resets to zero, but this takes time...perhaps more than some of you have!

    Use the samples I provided, and only use your real data when you are ready for real.

    Jonny

  • remix UK – a 48 hour conversation

    clip_image001

    clip_image003

    Hi Everyone

    If you have been wondering 'where next for the web?' this event might just be for you and there is an early bird saving for the first three hundred people to book. Click here to reserve a place.

    And if you have any ideas for a topic you would like to see presented at remix UK and have a good idea of just who you’d like to present it, there is a chance you can get it added to the mash up.

    Best for the weekend,

    Allison

  • Using and modifying Exchange Custom Attributes in Exchange Labs

    Exchange mailboxes can have multiple attributes set against them...Department, State, Address, Phone Number, etc, but what if you need more than that?  Typical questions I have been asked are:

    • How do I tag a mailbox as an Alumni
    • How do I tag a mailbox as a male/female user
    • How do I tag a mailbox as ...?

    Using PowerShell, if you run the Get-Mailbox command against a mailbox (e.g. 'Get-Mailbox Jonny') you will produce a rather large list of complete set of attributes, and right in the middle of the list, you will see CustomAttribute1 thru CustomAttribute15, which if you have not used them until now, will be blank.  These attributes can be used to store more or less any data you want.  You can then tie things like Dynamic Distribution Groups, applications, or something else to them.  The only thing an admin cannot do is rename the attribute itself, nor can you create new attributes, so you will need to keep a note of what each custom attribute is for.

    These attributes can be updated quite easily...here is an example of how:

    Lets say you wanted to use CustomAttribute1 to tag Jonny's mailbox as an Alumni:

    Set-Mailbox jonny -CustomAttribute1 'Alumni'

    That's it.  You can also make reference to these attributes when doing bulk mailbox creation.

    Jonny

    Technorati Tags: ,
  • Make sure you install the correct version of PowerShell for Exchange Labs

    I have had a few customers that are having trouble getting PowerShell up and running on their desktops.  The primary reason for this has been trying to run the incorrect version.  What you will need is the Windows PowerShell V2 Community Technology Preview (CTP) release and the WinRM 2.0 transport CTP release installed on your client computer.  Full instructions on how to get this are here

    I hope this helps clarify things.

    Jonny

    Technorati Tags:
  • Blog list: Blogroll

    Blogroll

  • Quickly get a list of mailbox stats using PowerShell

    One useful, and quick, report you can run against your Exchange Labs service has to do with Mailbox Statistics.  Data returned includes the date of the last logon by a user...a simple yet effective way of measuring the usage of the service, but also who has yet to log on as this attribute is blank for inactive users.

    To run this report in PowerShell:

      :Connect to Exchange Labs Runspace
      1. $LiveCred = Get-Credential
      2. $rs = New-Runspace -Shell Microsoft.Exchange -ConnectionUri https://ps.exchangelabs.com/powershell/ -Credential $LiveCred  -Authentication Basic

      To write the mailbox statistics to a CSV file

      3. icm -r $rs {Get-Mailbox | Get-MailboxStatistics} | Export-Csv 'c:\Temp\MailboxStatistics.csv'

      :Gracefully exit runspace
      4. Remove-Runspace $rs

    There are also other reports:

      :Connect to Exchange Labs Runspace
      1. $LiveCred = Get-Credential
      2. $rs = New-Runspace -Shell Microsoft.Exchange -ConnectionUri https://ps.exchangelabs.com/powershell/ -Credential $LiveCred  -Authentication Basic

      :To create a report in HTML that shows the name, e-mail addresses, and mailbox quotas for the specified user accounts
      3. Invoke-Command -Runspace $rs {Get-Mailbox} | Select Name, EmailAddresses,*Quota | ConvertTo-HTML | Out-File c:\MailboxInfo.html

      :To create a mailbox statistics report in HTML that shows the display name, total size of all the items in the returned mailboxes, and the total number items in each mailbox
      3. Invoke-Command -Runspace $rs {Get-Mailbox | Get-MailboxStatistics} | Select DisplayName,TotalItemSize,ItemCount | ConvertTo-HTML | Out-File c:\MailboxStatistics.html

      To write the mailbox statistics to a CSV file
      Invoke-Command -Runspace $rs {Get-Mailbox | Get-MailboxStatistics} | Select DisplayName,TotalItemSize,ItemCount | Export-Csv c:\MailboxStatistics.csv

      :Gracefully exit runspace
      4. Remove-Runspace $rs

    Jonny

  • Need to support aliases for mailboxes for users that have different domains associated? Accepted Domains is the answer...

    A few days ago, a customer told me that the educational institution they support consists of multiple campuses, and that each of these campuses has its own brand identity; something that carries through to the DNS domains that have been set up to support them.  As far as student email is concerned, for the last number of years, they have provided two email addresses for each student: one that is associated with the parent institution, and one that is associated with the campus they are attending.  While there are two addresses, the campus email is just a proxy or alias for a mailbox that this actually on the parent institution's mail domain.  So for example:

    Student name: Jack Jones
    Institutional email address: jack.jones@contoso.edu (this is the actual mailbox)
    Campus email address: jack.jones@ny.contoso.edu (this is an alias)

    Ultimately, when a mail is sent to Jack Jones at his campus email address, the default reply will come from the parent address, so the branding will be lost unless Jack sets his "Have replies sent to" option for each mail he sends to his campus email.  Currently it is not possible in Exchange Labs to change the Primary SMTP address as it must match up with the Windows Live ID.

    The point of all of this is that this is a scenario that is supported in Exchange Labs that you can build by using Accepted Domains.  An accepted domain is any SMTP namespace for which an Exchange Organization sends and receives email.  I will cover different things you can do with accepted domains in more detail as time passes because there are a number of clever things you can do with them...but in this case, and in the screencast I recorded, I want to look at the scenario described above.  Instructions are also on Technet here.

    Double click to view the video in full screen

     

    download

    Jonny

    Technorati Tags: ,
  • Pilot Quickstart - some sample CSV files

    In order to assit with a bulk user creation, and in connection with my previous blogs on the topics of user creation and user deletion, I have created a couple of csv files to help you out.
     
    Students.xls will create 500 users for you.  Just go to the feeder tab, enter in your Exchange Labs domain which will make sure that each user account gets the right LiveID, and then save the file as a CSV file...ensuring that the list is the active sheet at the time.
     
    DelStudents.csv will delete those same users.
     
    Enjoy
     
    Jonny
  • Admin UI for Exchange Labs

    Some folks are asking what the Exchange Labs Admin UI looks like.  Well, you can see me using it in many of my screencasts, but for your convenience, I have just created a bunch of screenshots of the major features in PowerPoint and stored it on my SkyDrive...you can download this here.
     
    Enjoy!
     
    Jonny
  • Create Dynamic Distribution Groups in Exchange Labs

    What better way to start a blog entry than to use someone else's fine words:

    "Unlike regular Exchange Labs distribution groups that contain a defined set of members, the membership list for a dynamic distribution group is calculated every time that a message is sent to the group. This calculation is based on the filters and conditions that you define. When an e-mail message is sent to a dynamic distribution group, it is delivered to all recipients in the organization that match the criteria defined for that dynamic distribution group."
    http://technet.microsoft.com/en-us/exchangelabshelp/cc546291.aspx 

    I just did a screencast of me creating a Dynamic Distribution Group ion my Exchange Labs service in PowerShell.  Dynamic Distribution groups can save a lot of time for administrators in that in certain scenarios, and with smart use of mailbox attributes to store information about users and base your group membership on, you can have 'set it and forget it' groups that manage themselves.

    double click to watch in full screen

    download

    Jonny

  • How do I do my videos?

    A customer asked me today how I do my videos for my site...they would not tell me if they thought they were good or bad...but I told them what I do anyway.  I thought I would share the info with you as well.  Most of what I do has got relevance in an education environment as well, so I hope it is food for thought...
     
    • I record the videos using Camtasia Studio - a simple to use, yet fantastic product for doing all sort of video related work.  I use it to create a WMV file from my screen captures.
    • I set the resolution of my screen to 800x600 during the recording...although Camtasia can do a resize afterwards if you have done something larger.
    • I use a ZOOM Handy Recorder H2 plugged into my laptop - another brilliant piece of kit.  It sits about 20 inches from me on my desk, but you can still hear me breathing :)
    • I upload all of my videos to my account on http://silverlight.live.com, which in turn provides me with a download URL and an iFrame statement that I embed into the HTML of my blog. Best of all the SilverLight site allows me to stream so you all get a better experience.
    • I use Windows Live Writer to keep my blog going...which of course is running on http://spaces.live.com.
    • I use a public folder on my Skydrive, to share out files and so on.

    At some point, I am going to have a fiddle around with Expression Encoder, which will allow me to do more funky video overlays and controls...some day I'll get round to it...

    So I hope that helps

    Jonny

  • How can students see faculty contact details if one email system is hosted and the other is on-premise?

    ...and vice versa?  This is a question that I have been asked a lot now that many of my customers are now at that all-important mailbox provisioning stage.

    Currently if you host your student mailboxes on Exchange Labs and keep your faculty and staff mailboxes on, say, an on-campus Exchange mail solution, the two systems cannot 'see' each other and are unaware of each other's existence.  So for example, when a student looks at their Global Address List in Outlook, all they see is other student contact details; there is however a way in which you can provide contact details for faculty and staff right into the student GAL.

    Exchange Labs Contacts contain the e-mail addresses and other information for users who exist outside of an Exchange mail domain.

    image

    The way this works is a mail administrator takes a snapshot of the faculty/staff contact information they would like students to see in their GAL; this is created as a CSV file.  This CSV file is then laid out in such a way that it can be used by the CSV Import tool supplied for use with Exchange Labs, or with PowerShell.  The administrator then creates a collection of contacts in the student Exchange Labs mail domain.  These contacts do not have mailboxes or anything like that in the student domain, think of them just as you would contacts you may have stored for your own personal use in your own mail client, except they are visible to everyone.  Once you have created these contacts, you can keep them up to date on a scheduled basis using the Update or Delete actions in conjunction with CSV Import or PowerShell.

    So what about the 'vice versa'?  What if you want students to appear as contacts in your faculty/staff mail system.  This is achieved in much the same way.  Many email solutions such as Exchange allow you to create shared contacts for those accounts that do not have mailboxes locally.  The same file that you use to create student mailboxes on Exchange Labs can be re-purposed to create contacts on whatever system you are running on-campus.

    A note on Distribution Groups.  DG's also have SMTP addressed, for example AllPsychologyStudents@contoso.edu.  A DG will exist on one side of the overall Exchange Solution described above, but similarly, a contact can be created for this group on the other side of the solution in the same way as you would create a contact for a remote mailbox.  The other thing to note is that Distribution Groups can contain both users with mailboxes in the same mail domain, and contacts from another domain, so if you wanted to created a group for say a research project that contained both Faculty and Students, this is entirely possible.

    Jonny

    Technorati Tags: ,
  • Create and Manage a Manual Distribution Group in Exchange Labs

    Just a quick one, that I don't think would trouble anyone to do...I just created a very short screencast on how you can create and manage a Distribution Group in Exchange Labs.  This is done though the Outlook Web Access UI.  I will follow up this screencast on a slightly more involved look at distribution groups when I look at Dynamic Distribution Groups.

    doubleclick to view in full screen

    download

    Jonny  

    Technorati Tags: ,
  • Can Exchange Labs mailboxes that have never been logged onto receive email?

    There has been some confusion over this...admittedly even from my end.

    The question that some customers have been asking is: Can a mailbox that has never been logged on to still receive email?  The concern is that newly enrolled students that have been supplied an email account by a college will miss out on communication from their college if they don't activate/log on to their account.  If you are testing out mailbox creation, and then straight away attempt to send a mail to a new mailbox, you may in fact get an NDR...but wait a few minutes, and it will work ok.  So when the student does finally pull themselves away from their summer vacation activities and gets around to access their new Exchange Labs email service for the first time, schools and colleges can rest assured that all communications sent to date will be in fresh inboxes waiting to be read.

    Jonny

  • Updating multiple Exchange Labs Mailboxes using PowerShell

    Customers that I speak with in Education sometimes manage many tens of thousands of student accounts, and from time to time want to make programmatic changes to some of the mailbox attributes either individually or in bulk.  These changes can spring from a number of needs, for example assigning a bunch of students to a class as they make their module elections, changing classes during a year, name changes do to changes in life circumstance, and so on...  Thinking about how these changes are actually effected, again it can vary.  Administrative staff may wish to work directly against the Exchange Labs mailboxes with a script they kick off manually, or they may create a script that is driven by some automated processes they set up in support of identity synchronization between a student records system, or LMS, or Active Directory and other connected systems where a student identity is maintained.

    In the demo associated with this blog entry, I have a look at how PowerShell can be employed to make changes against mailbox attributes in bulk...the scenario I use is modifying the class that a bunch of students have been assigned to.  I use the 'Department' attribute to store this information, you might choose to use some other attribute that is available for you to write into.  The demo is based on info you can find here.

    double click video to use full screen

    download

    Jonny

  • Gamesfest 2008

    clip_image001

    Hello Everyone,

    I thought you might like to hear about Gamefest 2008 which takes place on 6th August at Chelsea Football Club and particularly, I thought you’d like to know about the early bird savings on registration if you book before midnight on 25th July 2008.

    Gamefest 2008 is a full-day game technology conference with a keen industry focus, including a Gamefest Expo of exhibiting Games Tools and Middleware Companies together with Authorized Test Vendors and is aimed at key personnel from small game studios to the largest game publishers.

    There are forty talks across seven tracks ranging from Graphics to Producer & Business Development. In the Casual Games and XNA Game Studio track, for example, you will hear about Game Studio networking, performance, XNA Framework Content Pipeline and much, much more. You’ll also learn about plans to enable developers to drive the next wave of growth across the games industry.

    So do come along and join us for a day of serious play.

    Allison

  • Imagine Cup 2008 Round Up

    Like a computerised steamroller driven by 400 students, the Imagine Cup has left a considerable impression.

    Once again, the Imagine Cup pitted the best against the best in 9 categories of technology and digital arts challenges - and the winners have been crowned, and then let loose on a Paris night club.

    Despite taking three teams across the channel, the UK came home empty handed - c'mon guys!  But there's always next year...

    Rather than waffle on about the event, I'm going to pull my usual stunt and point to the far more erudite bloggers and web-elite that I'm lucky enough to work with.

     

    UK Blog Roll for IC 2008 (work in progress)

    Rob Miles

    Ed Dunhill

    Paolo Barone (and his tweets)

    Ben Nunney (UK Student, tweeter, and Software Design Finalist)

    Jason Parlour (UK Student and Digital Photography Finalist) show his portfolio off - loved this, but didn't make it into the top three. Aww. Never mind Jason - there's always next year!

     

    And for 2009?

    We're going to Egypt!  Do you want to come?

     

    Andy

  • New Silverlight Videos

    Hi,

    For those of you with an interest in Silverlight I thought you might like to take a look at a series of 'how to' videos available from the Silverlight team. You'll find everything from the basics through to best practices and even a series of tips and techniques.

    For example, Todd Miranda shows how to dynamically add markers to a video at runtime and Peter Bahaa shows how to handle the back and forward buttons, all in Silverlight 1.0.

    To browse the library of videos click here.

    All the best,

     

    Allison

SSN Program Home | Terms of Use | Privacy Statement
© Copyright 2007 Microsoft Corporation. All rights reserved.